redux-extension-customizer.min.js (5253B)
1 !function(l){"use strict";l.fn.serializeJSON=function(e){var r,t,i,s,u=l.serializeJSON,a=u.setupOpts(e),n=this.serializeArray();return u.readCheckboxUncheckedValues(n,this,a),r={},l.each(n,function(e,n){t=u.splitInputNameIntoKeysArray(n.name,a),"skip"!==(i=t.pop())&&(s=u.parseValue(n.value,i,a),a.parseWithFunction&&"_"===i&&(s=a.parseWithFunction(s,n.name)),u.deepSet(r,t,s,a))}),r},l.serializeJSON={defaultOptions:{checkboxUncheckedValue:void 0,parseNumbers:!1,parseBooleans:!1,parseNulls:!1,parseAll:!1,parseWithFunction:null,customTypes:{},defaultTypes:{string:function(e){return String(e)},number:function(e){return Number(e)},boolean:function(e){return-1===["false","null","undefined","","0"].indexOf(e)},null:function(e){return-1!==["false","null","undefined","","0"].indexOf(e)?null:e},array:function(e){return JSON.parse(e)},object:function(e){return JSON.parse(e)},auto:function(e){return l.serializeJSON.parseValue(e,null,{parseNumbers:!0,parseBooleans:!0,parseNulls:!0})}},useIntKeysAsArrayIndex:!1},setupOpts:function(n){var e,r,t,i,s,u=l.serializeJSON;for(e in null==n&&(n={}),t=u.defaultOptions||{},r=["checkboxUncheckedValue","parseNumbers","parseBooleans","parseNulls","parseAll","parseWithFunction","customTypes","defaultTypes","useIntKeysAsArrayIndex"],n)if(-1===r.indexOf(e))throw new Error("serializeJSON ERROR: invalid option "+e+". Please use one of "+r.join(", "));return s=(i=function(e){return!1!==n[e]&&""!==n[e]&&(n[e]||t[e])})("parseAll"),{checkboxUncheckedValue:i("checkboxUncheckedValue"),parseNumbers:s||i("parseNumbers"),parseBooleans:s||i("parseBooleans"),parseNulls:s||i("parseNulls"),parseWithFunction:i("parseWithFunction"),typeFunctions:l.extend({},i("defaultTypes"),i("customTypes")),useIntKeysAsArrayIndex:i("useIntKeysAsArrayIndex")}},parseValue:function(e,n,r){var t=l.serializeJSON,i=r.typeFunctions&&r.typeFunctions[n];return i?i(e):r.parseNumbers&&t.isNumeric(e)?Number(e):!r.parseBooleans||"true"!==e&&"false"!==e?r.parseNulls&&"null"===e?null:e:"true"===e},isObject:function(e){return e===Object(e)},isUndefined:function(e){return void 0===e},isValidArrayIndex:function(e){return/^[0-9]+$/.test(String(e))},isNumeric:function(e){return 0<=e-parseFloat(e)},optionKeys:function(e){var n,r;if(Object.keys)return Object.keys(e);for(r in n=[],e)e.hasOwnProperty(r)&&n.push(r);return n},splitInputNameIntoKeysArray:function(e,n){var r=l.serializeJSON.extractTypeFromInputName(e,n),t=r[0],i=r[1],s=t.split("[");return""===(s=l.map(s,function(e){return e.replace(/]/g,"")}))[0]&&s.shift(),s.push(i),s},extractTypeFromInputName:function(e,n){var r,t,i=e.match(/(.*):([^:]+)$/);if(i){if((r=(t=l.serializeJSON).optionKeys(n?n.typeFunctions:t.defaultOptions.defaultTypes)).push("skip"),-1!==r.indexOf(i[2]))return[i[1],i[2]];throw new Error("serializeJSON ERROR: Invalid type "+i[2]+' found in input name "'+e+'", please use one of '+r.join(", "))}return[e,"_"]},deepSet:function(e,n,r,t){var i,s,u,a,o,c;if(null===t&&(t={}),(c=l.serializeJSON).isUndefined(e))throw new Error("ArgumentError: param 'o' expected to be an object or array, found undefined");if(!n||0===n.length)throw new Error("ArgumentError: param 'keys' expected to be an array with least one element");i=n[0],1===n.length?""===i?e.push(r):e[i]=r:(s=n[1],""===i&&(o=e[a=e.length-1],i=c.isObject(o)&&(c.isUndefined(o[s])||2<n.length)?a:1+a),""===s||t.useIntKeysAsArrayIndex&&c.isValidArrayIndex(s)?!c.isUndefined(e[i])&&l.isArray(e[i])||(e[i]=[]):!c.isUndefined(e[i])&&c.isObject(e[i])||(e[i]={}),u=n.slice(1),c.deepSet(e[i],u,r,t))},readCheckboxUncheckedValues:function(r,e,t){var n,i,s,u;null===t&&(t={}),u=l.serializeJSON,n="input[type=checkbox][name]:not(:checked):not([disabled])",e.find(n).add(e.filter(n)).each(function(e,n){i=l(n),(s=i.attr("data-unchecked-value"))?r.push({name:n.name,value:s}):u.isUndefined(t.checkboxUncheckedValue)||r.push({name:n.name,value:t.checkboxUncheckedValue})})}}}(window.jQuery||window.$),function(s){"use strict";redux.customizer=redux.customizer||{},s(document).ready(function(){redux.customizer.init()}),redux.customizer.init=function(){var n,e;s("body").addClass(redux.customizer.body_class),s(".accordion-section.redux-section, .accordion-section.redux-panel, .accordion-section-title").on("click",function(){s.redux.initFields()}),void 0!==redux.optName?(redux.optName.args.disable_save_warn=!0,n=redux_change,redux_change=function(e){e=s(e),n.apply(this,arguments),redux.customizer.save(e)},e=s.redux.initFields,s.redux.initFiles=function(){e()}):console.log("Redux customizer extension failure")},redux.customizer.save=function(e){var n=e.hasClass("redux-field")?e:e.parents(".redux-field-container:first");redux.customizer.inputSave(n)},redux.customizer.inputSave=function(e){var n,r,t,i;e.hasClass("redux-field-container")||(e=e.parents('[class^="redux-field-container"]')),n=(n=e.parent().find(".redux-customizer-input").data("id"))||(e=e.parents(".redux-container-repeater:first")).parent().find(".redux-customizer-input").data("id"),r=e.find(":input").serializeJSON(),s.each(r,function(e,n){r=n}),t=e.parent().find(".redux-customizer-input").data("key"),r[t]&&(r=r[t]),i=wp.customize.control(n),JSON.stringify(i.setting._value)!==JSON.stringify(r)&&(i.setting._value=null),i.setting.set(r)}}(jQuery);