spacing.js (1649B)
1 wp.customize.controlConstructor['kirki-spacing'] = wp.customize.Control.extend({ 2 3 ready: function () { 4 5 'use strict'; 6 7 var control = this, 8 subControls = control.params.choices.controls, 9 value = {}, 10 subsArray = [], 11 i; 12 13 _.each(subControls, function (v, i) { 14 if (true === v) { 15 subsArray.push(i); 16 } 17 }); 18 19 for (i = 0; i < subsArray.length; i++) { 20 21 value[subsArray[i]] = control.setting._value[subsArray[i]]; 22 23 control.updateSpacingValue(subsArray[i], value); 24 25 } 26 27 }, 28 29 /** 30 * Updates the value. 31 */ 32 updateSpacingValue: function (context, value) { 33 34 var control = this; 35 36 37 var onChange = _.debounce(function(input){ 38 39 if (control.setting && control.setting.get()) { 40 value = _.clone(control.setting.get()); 41 } 42 value[context] =input.val(); 43 44 // Notifications. 45 kirkiNotifications(control.id, 'kirki-spacing', control.params.kirkiConfig); 46 47 // Save the value 48 control.saveValue(value); 49 50 },500); 51 52 control.container.on('change keyup paste', '.' + context + ' input', function () { 53 onChange(jQuery(this)); 54 }); 55 56 }, 57 58 /** 59 * Saves the value. 60 */ 61 saveValue: function (value) { 62 63 'use strict'; 64 65 var control = this, 66 newValue = {}; 67 68 _.each(value, function (newSubValue, i) { 69 newValue[i] = newSubValue; 70 }); 71 72 control.setting.set(newValue); 73 } 74 75 });