/* global kirkiPostMessage */
import "./control.scss";
/**
* 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 the CSS as a string.
*/
function( styles, value, output, controlType ) {
var processedValue;
if ( 'kirki-dimensions' === controlType ) {
styles += output.element + '{';
_.each( value, function( val, key ) {
if ( output.choice && key !== output.choice ) {
return;
}
processedValue = kirkiPostMessage.util.processValue( output, val );
if ( false !== processedValue ) {
// Mostly used for padding, margin & position properties.
if ( output.property ) {
styles += output.property;
if ( '' !== output.property && ( 'top' === key || 'bottom' === key || 'left' === key || 'right' === key ) ) {
styles += '-' + key;
}
styles += ':' + processedValue + ';';
} else {
styles += key + ':' + processedValue + ';';
}
}
} );
styles += '}';
}
return styles;
}
);
} );