packages/kirki-framework/field-background/src/script.js
/* global kirkiPostMessage */
/**
* Hook in the kirkiPostMessageStylesOutput filter.
*
* Handles postMessage styles for typography controls.
*/
jQuery( document ).ready( function() {
wp.hooks.addFilter(
'kirkiPostMessageStylesOutput',
'kirki',
/**
* Append styles for this control.
*
* @param {string} styles - The styles.
* @param {Object} value - The control value.
* @param {Object} output - The control's "output" argument.
* @param {string} controlType - The control type.
* @returns {string} - Returns CSS styles as a string.
*/
function( styles, value, output, controlType ) {
var processedValue;
if ( 'kirki-background' === controlType ) {
styles += output.element + '{';
_.each( value, function( val, key ) {
if ( output.choice && key !== output.choice ) {
return;
}
if ( 'background-image' === key ) {
val = -1 === val.indexOf( 'url(' ) ? 'url(' + val + ')' : val;
}
processedValue = kirkiPostMessage.util.processValue( output, val );
if ( '' === processedValue ) {
if ( 'background-color' === output.property ) {
processedValue = 'unset';
} else if ( 'background-image' === output.property ) {
processedValue = 'none';
}
}
if ( false !== processedValue ) {
styles += output.property ? output.property + ':' + processedValue + ';' : key + ':' + processedValue + ';';
}
} );
styles += '}';
}
return styles;
}
);
} );