File manager - Edit - /home/bdwebsol/public_html/wp-content/themes/phlox/auxin/js/scripts.js
Back
/*! Auxin WordPress Framework - v2.17.7 - 2025-06-24 * Scripts for initializing admin plugins * http://averta.net * (c) 2014-2025 averta; */ /* ================== auxin/js/src/_dependency-manager.js =================== */ /** * Auxin dependency manager * * @package Auxin Framework * @author Averta */ (function($, window, document, undefined){ "use strict"; // default options var dependencyDefaultOptions = { fieldContainer : '.field-row', relation : 'and', fieldMapper : function( target ) { return '#' + target; }, observerMapper : function( target ) { return '#' + target; } }; /** * Constructor * @param {Object} $wrapper Container of fields * @param {Object} options Object of dependency options * @param {Object} dependencyGraph Object which maps dependency graph */ function DependencyManager( $wrapper, options, dependencyGraph ){ this.options = $.extend( dependencyDefaultOptions, options ); this.$wrapper = $wrapper; this.dependencyGraph = dependencyGraph; this.$observers = []; } var p = DependencyManager.prototype; p.setup = function() { for ( var depField in this.dependencyGraph ) { for ( var observeField in this.dependencyGraph[depField] ) { if ( observeField === 'relation' ) { continue; } var $observer = this.$wrapper.find( this.options.observerMapper( observeField ) ); if ( !$observer.data( 'added-before' ) ) { this.$observers.push( $observer.on( 'change', this._toggleDependecies.bind(this) ) ); $observer.data( 'added-before', true ); } } } // call dependency for all at starting this._toggleDependecies(); }; /* ------------------------------------------------------------------------------ */ /** * Check observers value and show or hide dependency fields * @return {void} */ p._toggleDependecies = function( e ) { var $depField, $observerField, observerValue, isDepValueSelected, finalVisibleStatus, goalObserverValue, relation, ObserverCompareOperator; for ( var depField in this.dependencyGraph ){ if( !depField ) { continue; } var depFieldSelector = this.options.fieldMapper( depField ); // depField is the field that we are looking for its observers $depField = this.$wrapper.find( depFieldSelector ); // A fix for selecting typography elements if( ! $depField.length ){ $depField = this.$wrapper.find( depFieldSelector + '_font' ); } // Let's check what is the relation of field dependencies relation = (this.dependencyGraph[depField].relation || this.options.relation).toLowerCase(); // define initial value for finalVisibleStatus according to relation finalVisibleStatus = "and" === relation ? true : false; // loop in dependencies of field for( var observerField in this.dependencyGraph[depField] ){ if ( observerField === 'relation' ) { continue; } $observerField = this.$wrapper.find( this.options.observerMapper( observerField ) ); if( ! $observerField.length ) { continue; } observerValue = $observerField.val(); goalObserverValue = this.dependencyGraph[depField][observerField].value; // what value we are waiting for ObserverCompareOperator = this.dependencyGraph[depField][observerField].operator || '=='; // what is the comparison operator // Make sure goalObserverValue is array if( !goalObserverValue instanceof Array ) { goalObserverValue = goalObserverValue.split("^"); } // @if DEV // console.log('Observers value for ' + observerField + ': ' + observerValue); // console.log('Observers goal value : ' + ObserverCompareOperator + goalObserverValue); // @endif // Check if current value of observer field is the value which script is waiting for if( $observerField[0].type === 'checkbox' ){ // an exception, if observer value is check box observerValue = $observerField[0].checked ? '1' : '0'; // @if DEV // console.log( "The result of comparison of " + observerValue + ObserverCompareOperator + goalObserverValue + " is :" , // this._inArray( observerValue, goalObserverValue, ObserverCompareOperator ) // ); // @endif } else if ( $observerField[0].type === 'hidden' ) { continue; } isDepValueSelected = this._inArray( observerValue, goalObserverValue, ObserverCompareOperator ); if( "and" === relation ){ finalVisibleStatus = finalVisibleStatus && isDepValueSelected; } else { finalVisibleStatus = finalVisibleStatus || isDepValueSelected; } } // console.log( 'result of observers status for "'+ depField +'" field is: ' + isDepValueSelected ); // at the end, let's hide or show the field based on result if( finalVisibleStatus ){ $depField.closest( this.options.fieldContainer ).show(); } else { $depField.closest( this.options.fieldContainer ).hide(); } } // Add a css class to wrapper of observer field, when it is enabled if ( e ) { var $target = $(e.target); if( $target[0].checked ){ $target.closest('.field-row').addClass('open'); } else { $target.closest('.field-row').removeClass('open'); } } }; /** * Check whether value exist in list or not * * @param {string|init} needle Value which we are looking for in list * @param {array} haystack List of items which we are searching in * @return {boolean} True if the value exist in list */ p._inArray = function( needle, haystack, operator ) { if( undefined === operator ){ operator = '=='; } var result; // make sure the haystack is array if( haystack.constructor !== Array ){ haystack = typeof haystack == 'string' ? haystack.split(',') : [haystack]; } for( var i = 0, length = haystack.length; i < length; i++ ) { switch( operator ) { case '==': result = needle == haystack[i]; break; case '===': result = needle === haystack[i]; break; case '!=': result = needle != haystack[i]; break; case '!==': result = needle !== haystack[i]; break; case '>=': result = needle >= haystack[i]; break; case '<=': result = needle <= haystack[i]; break; case '>': result = needle > haystack[i]; break; case '<': result = needle < haystack[i]; break; } if ( result ) { return true; } // @if DEV // we had no luck on using eval on comparison check with strings // return eval( needle + operator + haystack[i] ); // @endif } return false; }; window.DependencyManager = DependencyManager; /* ------------------------------------------------------------------------------ */ $(function(){ var $metabox, opsDeps; // Start to watch for field dependencies in metaboxes if ( auxin.metabox ) { for ( var metaboxID in auxin.metabox ) { var metaboxDepData = auxin.metabox[ metaboxID ].dependencies; $metabox = $('#'+ metaboxID ); if ( $metabox.length ) { // Create a depene watcher for each metabox opsDeps = new DependencyManager( $metabox, {} , metaboxDepData ); opsDeps.setup(); } } } // Start to watch for option panel dependencies var $panel = $('.auxin_options_form'); if ( $panel.length && auxin.optionpanel ) { opsDeps = new DependencyManager( $panel, {}, auxin.optionpanel ); opsDeps.setup(); } }); })(jQuery, window, document); /* ================== auxin/js/src/_init.js =================== */ /*======================================================================================= * Init Admin scripts *======================================================================================*/ ;(function($, window, document, undefined){ "use strict"; $(function () { var isWidgetsPage = $("body").hasClass("widgets-php"); ////// init plugins ////////////////////////////////////////////////// // init tabs for option pnale $(".av3_option_panel") .avertaMultiTabs({ enableHash: true, updateHash: true, hashSuffix: "-group", tabs: "ul.tabs > li:not(.auxin-logo)", subTabs: "> li:not(.not-tab)", }) .find(".tabs li > a") .on("click", function () { // call resize event to update some UI on tab clicked if (window.dispatchEvent) { setTimeout(function () { window.dispatchEvent(new Event("resize")); }, 100); } }); $(".axi-metabox-hub") .avertaLiveTabs({ enableHash: true, updateHash: true, hashSuffix: "-tab", tabs: "ul.tabs > li", }) .css("display", "block"); // remove loading $(".axi-metabox-loading").hide(); // Init sortable element $(".sortbox").sortable({ connectWith: ".draggable-area ul", helper: "clone", placeholder: "sort-item-heighlight", opacity: 1, revert: true, }); // Auxin Base Control Class // ===================================================================== if (wp.customize) { /** * Auxin base control. * */ var DependencyManager; DependencyManager = AuxinDependencyManager.setup(); wp.customize.AuxinSection = wp.customize.Section.extend({ ready: function () { var section = this; DependencyManager.add( section.id, { dependencies: section.params.dependencies, value: "", }, "sections" ); }, _toggle: function (result) { if (result) { this.headContainer[0].style.display = "list-item"; } else { this.headContainer[0].style.display = "none"; } }, }); wp.customize.AuxinControl = wp.customize.Control.extend({ ready: function () { this.picker; var control = this; DependencyManager.add( control.id, { dependencies: control.params.dependencies, value: control.setting.get(), }, "controls" ); wp.customize.bind("pane-contents-reflowed", function () { var dependControls = DependencyManager.getDependsStatus( control.id ); control.dependencyCheck(dependControls); }); control.setting.bind(function (value) { DependencyManager.update(control.id, value); var dependControls = DependencyManager.getDependsStatus( control.id ); control.dependencyCheck(dependControls); }); }, update: function (newValue, newData) { if (this.picker) { newData = newData || null; // if it is new value if (newValue !== this.setting()) { this.setting.set(newValue); this.picker.val(newValue); this.picker.trigger("change", [newData]); } } }, dependencyCheck: function (dependControls) { var dependsName = Object.keys(dependControls); if (!dependsName.length) { return; } dependsName.forEach(function (name) { var sectionObject = wp.customize.section(name), controlObject = wp.customize.control(name), isSection = sectionObject ? true : false, isControl = controlObject ? true : false, result = dependControls[name].isShow; if (isControl) { controlObject._toggle(result); } if (isSection) { sectionObject._toggle(result); } }); }, _toggle: function (result) { if (result) { this.container[0].style.display = "block"; // this.container.slideDown( 'fast', $.noop ); } else { this.container[0].style.display = "none"; // this.container.slideUp( 'fast', $.noop ); } var initvalue = this.setting(); this.setting.set(initvalue); }, }); } // Sections if (wp.customize) { wp.customize.sectionConstructor["auxin_section"] = wp.customize.AuxinSection.extend({ ready: function () { // call superclass wp.customize.AuxinSection.prototype.ready.apply( this, arguments ); }, }); } // Info Sections if (wp.customize) { wp.customize.sectionConstructor["auxin_info_section"] = wp.customize.AuxinSection.extend({ ready: function () { // call superclass wp.customize.AuxinSection.prototype.ready.apply( this, arguments ); }, }); } // Info controller // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_info"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); }, }); } // Color Repeater // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_color_repeater"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; var $color_picker = this.container.find(spectrum_picker); this.container .find(".customize-control-notifications-container") .hide(); $color_picker.each(function () { $(this).spectrum(spectrum_args); $(this).on( "dragstop.spectrum", function (e, color) { if (color === null) { $(this).val(""); } else { $(this).val(color.toString()); } updateControlValue(control.container); } ); }); $(".aux-plus").on("click", function () { $(this) .parents("li") .find("label") .first() .clone() .insertBefore(".aux-plus"); var $color_picker = $(this) .parents("li") .find("label") .last() .show(); // change id of custom color to something unique var uniqueID = Math.floor( Math.random() * 1000000000 ).toString(16); $color_picker .find(".mini-color-wrapper input") .data("id", uniqueID); $color_picker .find(".mini-color-wrapper input") .attr("data-id", uniqueID); $("<hr>").insertAfter($color_picker); $color_picker.find(".sp-replacer").remove(); $color_picker .find(spectrum_picker) .spectrum(spectrum_args); // call remove functionality so that cloned element remove button works too removeColor(); colorNameChange(); updateControlValue(control.container); $color_picker = $color_picker.find(spectrum_picker); $color_picker.on( "dragstop.spectrum", function (e, color) { if (color === null) { $color_picker.val(""); } else { $color_picker.val(color.toString()); } updateControlValue(control.container); } ); }); var updateControlValue = function ($container) { var $color_pickers = $container.find(spectrum_picker); var colors = []; $color_pickers.each(function (index) { colors[index] = { _id: $(this).data("id") ? $(this).data("id") : "", title: $(this) .parents("label") .find(".customize-control-title input") .val(), color: $(this).val(), }; }); control.setting.set(JSON.stringify(colors)); $("input.aux-color-repeater").trigger("change"); }; var removeColor = function () { $(".aux-remove-color").on("click", function () { if ($(".aux-remove-color").length == 1) { return; } $(this).parent("label").next("hr").remove(); $(this).parent("label").remove(); updateControlValue(control.container); }); }; removeColor(); var colorNameChange = function () { $( ".customize-control-auxin_color_repeater .customize-control-title input" ).each(function () { $(this).on("input", function () { updateControlValue(control.container); }); }); }; colorNameChange(); }, }); } // Textarea // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_textarea"] = wp.customize.AuxinControl.extend({ ready: function () { wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("textarea"); control.picker.on("change", function () { control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Code editor // ===================================================================== var editor_picker = "textarea[data-code-editor]"; $(editor_picker).each(function () { var textarea = $(this); var mode = textarea.data("code-editor") || "javascript"; var editDiv = $("<div>", { width: "100%", class: textarea.attr("class"), }).insertBefore(textarea); textarea.css("display", "none"); var editor = ace.edit(editDiv[0]); editor.renderer.setShowGutter(auxin.admin.ace.showGutter); editor.getSession().setValue(textarea.val()); editor.getSession().setMode("ace/mode/" + mode); editor.$blockScrolling = Infinity; editor.setTheme("ace/theme/" + auxin.admin.ace.theme); editor.getSession().setTabSize(auxin.admin.ace.tabSize); editor.getSession().setUseSoftTabs(auxin.admin.ace.useSoftTabs); editor.setOption("maxLines", auxin.admin.ace.maxLines); editor.setOption("minLines", auxin.admin.ace.minLines); editor.setOptions({ //enableBasicAutocompletion: auxin.admin.ace.enableBasicAutocompletion }); editor.getSession().on("change", function () { textarea.val(editor.getSession().getValue()); }); }); if (wp.customize) { wp.customize.controlConstructor["auxin_code"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(editor_picker); control.picker.each(function () { var textarea = $(this), execute_btn = textarea.siblings("button"), typingTimer, typingDelay; // The editor mode var mode = textarea.data("code-editor") || "javascript"; // Apply editor changes after this delay typingDelay = "css" === mode ? 500 : 1500; var editDiv = $("<div>", { width: "100%", class: textarea.attr("class"), }).insertBefore(textarea); textarea.css("display", "none"); var editor = ace.edit(editDiv[0]); window.lasteditor = editor; editor.$blockScrolling = Infinity; editor.renderer.setShowGutter( auxin.admin.ace.showGutter ); editor.getSession().setValue(textarea.val()); editor.getSession().setMode("ace/mode/" + mode); editor.setTheme( "ace/theme/" + auxin.admin.ace.theme ); editor .getSession() .setTabSize(auxin.admin.ace.tabSize); editor .getSession() .setUseSoftTabs(auxin.admin.ace.useSoftTabs); editor.setOption( "maxLines", auxin.admin.ace.maxLines ); editor.setOption( "minLines", auxin.admin.ace.minLines ); editor.setOptions({ //enableBasicAutocompletion: auxin.admin.ace.enableBasicAutocompletion }); // apply changes and update setting when user clicked on execute button if ("javascript" === mode && execute_btn.length) { execute_btn.on("click", function (e) { e.preventDefault(); textarea.val( editor.getSession().getValue() ); if ( control.setting.get() == editor.getSession().getValue() ) { control.setting.set( control.setting.get() + " " ); } else { control.setting.set( editor.getSession().getValue() ); } }); // apply changes and update setting when user stoped typing } else { editor.getSession().on("change", function () { textarea.val( editor.getSession().getValue() ); clearTimeout(typingTimer); typingTimer = setTimeout(function () { control.setting.set( editor.getSession().getValue() ); }, typingDelay); }); } // sync the setting value with editor content control.setting.bind(function (value) { textarea.val(value); }); }); }, update: function (value) {}, }); } // Color Picker // ===================================================================== // initialize spectrum color picker on text input field var spectrum_picker = '.mini-color-wrapper input[type="text"], .aux-colorpicker-field', spectrum_args = { allowEmpty: true, showInput: true, showAlpha: true, disabled: false, showSelectionPalette: true, showPalette: true, hideAfterPaletteSelect: true, palette: [["black", "white", " "]], clickoutFiresChange: true, showInitial: true, chooseText: auxin.admin.colorpicker.chooseText, cancelText: auxin.admin.colorpicker.cancelText, containerClassName: "axi-sp-wrapper", localStorageKey: "auxin.spectrum", preferredFormat: "hex6", change: function (color) { if (color === null) { $(this).val(""); } else { $(this).val(color.toString()); } }, }; // only in widgets page if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(spectrum_picker) .spectrum(spectrum_args); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(spectrum_picker) .spectrum(spectrum_args); }); // other pages } else { $(spectrum_picker).spectrum(spectrum_args); $(document).on("panelsopen", function () { $(spectrum_picker).spectrum(spectrum_args); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_color"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(spectrum_picker); control.picker .val(control.setting()) .spectrum(spectrum_args); control.picker.on( "dragstop.spectrum", function (e, color) { if (color === null) { control.picker.val(""); } else { control.picker.val(color.toString()); } control.setting.set(control.picker.val()); // @if DEV // wp.customize.previewer.refresh(); // @endif } ); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Gradient Select // ===================================================================== // initialize spectrum color picker on text input field var gradient_picker = '.mini-gradient-wrapper input[type="text"]'; if (wp.customize) { wp.customize.controlConstructor["auxin_gradient"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(gradient_picker); var $typeControl = this.container.find(".aux-gradient-type"), $directionControl = this.container.find( ".aux-gradient-direction" ); control.picker.val(control.setting()); var grapickPicker = new Grapick({ el: this.container.find(".aux-grapick-colors")[0], direction: "to right", min: 1, max: 99, }); if (control.setting()) { grapickPicker.setValue(control.setting()); $typeControl.val(grapickPicker.getType()); $directionControl.val(grapickPicker.getDirection()); } $typeControl.on("change", function (e) { grapickPicker.setType(this.value); }); $directionControl.on("change", function (e) { grapickPicker.setDirection(this.value); }); grapickPicker.on("change", function (complete) { control.setting.set(grapickPicker.getSafeValue()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Auxin Typography Controller // ===================================================================== function auxin_embed_controller_styles(prefix, controlID, cssValue) { var optionName = prefix + controlID.split("_control")[0]; if ( !Object.hasOwnProperty.call(wp.customize.previewer, "preview") ) { return; } var styleTag = wp.customize.previewer.preview.iframe[0].contentDocument.getElementById( optionName ); if (cssValue) { styleTag.innerHTML = cssValue; } else { styleTag.innerHTML = ""; } } function auxin_embed_fonts_url(fontsList) { if (fontsList.length) { if ( !Object.hasOwnProperty.call( wp.customize.previewer, "preview" ) ) { return; } var iframeHead = wp.customize.previewer.preview.iframe[0].contentDocument.querySelector( "head" ); fontsList.forEach(function (font) { var fontLink = iframeHead.querySelector( 'link[href="' + font + '"]' ); if (!fontLink) { var LinkTag = document.createElement("link"); LinkTag.rel = "stylesheet"; LinkTag.href = font; iframeHead.appendChild(LinkTag); } }); } else { return; } } if (wp.customize) { wp.customize.controlConstructor["auxin_group_typography"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this, input = this.container .eq(0) .find(".aux-typo-controller-input")[0], container = this.container .eq(0) .find(".aux-typo-controller-container")[0]; OptionControls.inputAdapter( input, container, function (optionControl) { // for onchange auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.toCSS() ); auxin_embed_fonts_url(optionControl.getFonts()); }, function (optionControl) { // for init wp.customize.previewer.bind( "ready", function () { auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.toCSS() ); auxin_embed_fonts_url( optionControl.getFonts() ); } ); } ); }, }); } // Auxin Global Color Controller // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_group_global_colors"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this, jsonInput = this.container .eq(0) .find( ".aux-global-colors-controller-json-input" )[0], container = this.container .eq(0) .find( ".aux-global-colors-controller-container" )[0], input = this.container .eq(0) .find(".aux-global-colors-controller-input")[0]; OptionControls.inputAdapter( jsonInput, container, function (optionControl) { // for onchange control.setting.set(optionControl.value.color); auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.toCSS() ); }, function (optionControl) { // for init wp.customize.previewer.bind( "ready", function () { auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.toCSS() ); } ); } ); }, }); } if (wp.customize) { wp.customize.controlConstructor["auxin_responsive_slider"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this, input = this.container .eq(0) .find(".aux-slider-controller-input")[0], container = this.container .eq(0) .find(".aux-slider-controller-container")[0]; OptionControls.inputAdapter( input, container, function (optionControl) { // for onchange auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.generateCSS() ); }, function (optionControl) { // for init wp.customize.previewer.bind( "ready", function () { auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.generateCSS() ); } ); } ); }, }); } // Auxin Dimension Controller // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_responsive_dimensions"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this, input = this.container .eq(0) .find(".aux-dimension-controller-input")[0], container = this.container .eq(0) .find(".aux-dimension-controller-container")[0]; OptionControls.inputAdapter( input, container, function (optionControl) { // for onchange auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.toCSS() ); }, function (optionControl) { // for init wp.customize.previewer.bind( "ready", function () { auxin_embed_controller_styles( "auxin-customizer-css-", control.id, optionControl.toCSS() ); } ); } ); }, }); } // Auxin Pair Repeater // ===================================================================== var pairRepeaterContainer = document.querySelector( ".aux-pair-repeater-container" ), pairRepeaterInput = document.querySelector( ".aux-product-custom-fields" ); if (!wp.customize && pairRepeaterContainer) { OptionControls.inputAdapter( pairRepeaterInput, pairRepeaterContainer ); } // Visual Select // ===================================================================== var visual_select_picker = ".visual-select-wrapper", visual_select_args = { insertCaption: false, item: "axi-select-item", }; // only in widgets page if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(visual_select_picker) .avertaVisualSelect(visual_select_args); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(visual_select_picker) .avertaVisualSelect(visual_select_args); }); // other pages } else { $(visual_select_picker).avertaVisualSelect(visual_select_args); $(document).on("panelsopen", function () { $(visual_select_picker).avertaVisualSelect(visual_select_args); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_radio_image"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(visual_select_picker); control.picker .val(control.setting()) .avertaVisualSelect(visual_select_args); control.picker.on("change", function () { if ( control.params.presets.constructor === Object && Object.keys(control.params.presets).length ) { var presetID, presetValue, presetControl; for (presetID in control.params.presets[ control.setting() ]) { presetValue = control.params.presets[ control.setting() ][presetID]; wp.customize .control(presetID + "_control") .update(presetValue); } } control.setting.set(control.picker.val()); //control.setting.preview(); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Auxin Select // ===================================================================== var selectPicker = $(".aux-meta-select"); if (!isWidgetsPage) { selectPicker.on("change", function (event) { if (auxin.metabox) { for (var metaboxID in auxin.metabox) { var metaboxRelatedControls = auxin.metabox[metaboxID].relatedControls, relatedControls = metaboxRelatedControls[event.target.id]; relatedControls.forEach(function (related) { var control = $("#" + related); if (control[0].value !== event.target.value) { control[0].value = event.target.value; control.trigger("change"); } }); } } }); } // Elementor Tempalte List // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_template_library"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(visual_select_picker); control.picker .val(control.setting()) .avertaVisualSelect(visual_select_args); control.picker.on("change", function (event) { if ( control.params.presets.constructor === Object && Object.keys(control.params.presets).length ) { var presetID, presetValue, presetControl; for (presetID in control.params.presets[ control.setting() ]) { presetValue = control.params.presets[ control.setting() ][presetID]; wp.customize .control(presetID + "_control") .update(presetValue); } } control.setting.set(control.picker.val()); //control.setting.preview(); var $selectedVisual = control.container.find(".axi-selected"), $loadingText = $("<span />") .addClass("aux-fetching-text") .html("Importing To Your Library"); $selectedVisual.addClass("aux-fetching"); $loadingText.insertAfter($selectedVisual); var $template_type = control.picker .parents(".aux-template-type") .data("template-type"); $.ajax({ url: auxin.ajaxurl, type: "POST", dataType: "json", data: { action: "auxin_template_control_importer", id: control.picker.val(), template_type: $template_type, nonce: $( "#_" + $template_type + "_template_library_nonce" ).val(), }, complete: function (data) { $selectedVisual.removeClass("aux-fetching"); $loadingText.remove(); }, }) .done(function (response) { if (response.success) { var relatedControls = control.params.relatedControls; relatedControls.forEach(function ( related ) { var relatedControl = wp.customize.control( related + "_control" ); if (!response.data.isImported) { relatedControl.picker.trigger( "change", [ { title: response.data .postTitle, id: response.data .postId, }, ] ); } else { var selectedTitle = $selectedVisual.attr( "title" ); relatedControl.picker .find("option") .each(function ( index, option ) { var $option = $(option), optionTitle = $option.text(); if ( optionTitle === selectedTitle ) { var optionValue = $option.attr( "value" ); relatedControl.update( optionValue ); } }); } }); console.log( "Successfully Done. " + response.data.message ); } else { console.log( "Failed. " + response.data.message ); } }) .fail(function () { console.log("error"); }); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Selective List // ===================================================================== var selectiveListArgs = { insertCaption: true, item: "axi-select-item", container: "aux-selective-list", }; if (isWidgetsPage) { } else { var selectiveList = $( ".aux-meta-selective-list" ).avertaVisualSelect(selectiveListArgs); selectiveList.on("change", function (event) { if (auxin.metabox) { var controlValue = selectiveList.val(), controlTitle = $(event.target) .find("option[selected]") .text(); for (var metaboxID in auxin.metabox) { var metaboxRelatedControls = auxin.metabox[metaboxID].relatedControls, relatedControls = metaboxRelatedControls[event.target.id]; relatedControls.forEach(function (related) { $("#" + related).trigger("change", [ { title: controlTitle, id: controlValue }, ]); }); } } }); } if (wp.customize) { wp.customize.controlConstructor["auxin_selective_list"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find( ".aux-control-selective-list" ); control.picker .val(control.setting()) .avertaVisualSelect(selectiveListArgs); control.picker.on("change", function (event, data) { // check if selective list option has url to open , open it in new tab var _link = $("option:selected", this).attr( "data-link" ); if (typeof _link != "undefined" && _link != "") { window.open(_link, "_blank"); } if (data) { control.picker.avertaVisualSelect( "addItem", data.id, data.title ); control.picker.val(data.id); } if (control.params.relatedControls) { var relatedName = control.params.relatedControls, relatedControl = wp.customize.control( relatedName + "_control" ), controlTitle = control.container .find( ".axi-select-item.axi-selected .axi-select-caption" ) .text(), controlValue = control.picker.val(); relatedControl.update(controlValue, { title: controlTitle, id: controlValue, }); } control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Elementor Edit Template // ===================================================================== if (isWidgetsPage) { } else { $(".aux-meta-edit-template input").on( "change", function (event, data) { var pageID = data.id.indexOf("-def") !== -1 ? data.id.replace("-def", "") : data.id; var elementorEditPageUrl = auxin.adminurl + "post.php?post=" + pageID + "&action=elementor"; $(event.target) .parent() .find(".axi-select-caption") .text(data.title); $(event.target) .parent() .find(".aux-edit-elementor-button") .attr("href", elementorEditPageUrl); event.target.value = data.id; } ); } if (wp.customize) { wp.customize.controlConstructor["auxin_edit_template"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("input"); control.picker.on("change", function (event, data) { var elementorEditPageUrl = auxin.adminurl + "post.php?post=" + data.id + "&action=elementor"; control.container .find(".axi-select-caption") .text(data.title); control.container .find(".aux-edit-elementor-button") .attr("href", elementorEditPageUrl); control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Visual Select // ===================================================================== var sortable_input_picker = ".aux-sortable-input", sortable_input_args = { addButtonText: "Add to List", addbuttonClass: "sortin-add-btn button button-primary button-large", sortable: true, fields: [], wrapperClass: "sortin-wrapper auxin-sortin", selectboxClass: "sortin-selectbox aux-select2-single", }; // only in widgets page if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(sortable_input_picker) .sortableInput(sortable_input_args); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(sortable_input_picker) .sortableInput(sortable_input_args); }); // other pages } else { $(sortable_input_picker).sortableInput(sortable_input_args); $(document).on("panelsopen", function () { $(sortable_input_picker).sortableInput(sortable_input_args); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_sortable_input"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find( sortable_input_picker ); control.picker .val(control.setting()) .sortableInput(sortable_input_args); this.setting.bind(function (value) {}); }, }); } // Switchery // ===================================================================== var switchery_picker = '.av3_container input[type="checkbox"], .aux_switch[type="checkbox"]', switchery_args = { color: "#0074A2", secondaryColor: "#C2C2C2", className: "axi-switch", speed: "0.3s", }; function initSwitchary($target) { $target.each(function (index, el) { if (!el.getAttribute("data-switchery")) { new Switchery(el, switchery_args); } }); } function disableHiddenSwitch() { $(".aux_switch:checkbox:checked").each(function (index, el) { $(this).prev().prop("disabled", false); }); } // only in widgets page if (isWidgetsPage) { initSwitchary( $(".inactive-sidebar, .widget-liquid-right").find( switchery_picker ) ); $(document).on("widget-added widget-updated", function () { initSwitchary( $(".inactive-sidebar, .widget-liquid-right").find( switchery_picker ) ); disableHiddenSwitch(); }); // other pages } else { var switchery_inputs = $(switchery_picker); initSwitchary(switchery_inputs); switchery_inputs.on("change", function (e) { if (auxin.metabox) { for (var metaboxID in auxin.metabox) { var metaboxRelatedControls = auxin.metabox[metaboxID].relatedControls, relatedControls = metaboxRelatedControls[event.target.id]; relatedControls.forEach(function (related) { var control = $("#" + related); if (control[0].checked !== e.target.checked) { control.trigger("click"); } }); } } e.target.setAttribute("value", e.target.checked ? "1" : "0"); }); $(document).on("panelsopen", function () { initSwitchary($(switchery_picker)); disableHiddenSwitch(); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_switch"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(switchery_picker); control.picker.val(control.setting()); switchery_args.size = "small"; var switchery = new Switchery( control.picker[0], switchery_args ); this.setting.bind(function (value) { if (control.params.relatedControls) { control.params.relatedControls.forEach( function (relatedName, index) { var relatedControl = wp.customize.control( relatedName + "_control" ); relatedControl.update(value); } ); } switchery.setPosition(false); switchery.handleOnchange(false); }); }, }); } // Font Selector // ===================================================================== var font_select_picker = ".axi-font-field", font_select_args = { insertPreviewText: true, googleFontsPrefix: "_gof_", // Google fonts prefix systemFontsPrefix: "_sys_", // System fonts prefix geaFontsPrefix: "_gea_", // Google Early Access fonts prefix customFontsPrefix: "_cus_", // Custom fonts prefix useGoogleFonts: true, // whether load google fonts systemFonts: auxin.admin.fonts.system.faces, // system font list DS -> [..,{name:'', thickness:'300,bold,600'},..] geaFonts: auxin.admin.fonts.google_early.faces, // Google Early Access fonts DS -> [..,{name:'', thickness:'300,bold,600', url:''},..] customFonts: auxin.admin.fonts.custom.faces, // Custom fonts DS -> [..,{name:'', thickness:'300,bold,600', url:''},..] l10n: { // localization object previewTextLabel: auxin.admin.fontSelector.previewTextLabel || "Preview text:", fontLabel: auxin.admin.fontSelector.fontLabel || "Font:", fontSizeLabel: auxin.admin.fontSelector.fontSizeLabel || "Size:", fontStyleLabel: auxin.admin.fontSelector.fontStyleLabel || "Style:", googleFonts: auxin.admin.fontSelector.googleFonts || "Google Fonts", systemFonts: auxin.admin.fontSelector.systemFonts || "System Fonts", geaFonts: auxin.admin.fontSelector.geaFonts || "Google Early Access", customFonts: auxin.admin.fontSelector.customFonts || "Custom Fonts", }, }; $(font_select_picker).avertaFontSelector(font_select_args); if (wp.customize) { wp.customize.controlConstructor["auxin_typography"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(font_select_picker); control.picker .val(control.setting()) .avertaFontSelector(font_select_args); control.picker.on("change", function () { control.setting.set(control.picker.val()); // @if DEV // wp.customize.previewer.refresh(); // @endif }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Attachmedia // ===================================================================== var attach_media_picker = '.axi-attachmedia-wrapper input[type="text"]', $attach_media_elem = $(".axi-attachmedia-wrapper").find( 'input[type="text"]' ), attach_media_args = { item: "am-item am-frame", // attached media item in dragable list [css class name] thumbnail: "am-img-holder", // thumbnail image [css class name] removeItem: "am-remove", // remove item button [class name] sortable: "axi-attach-items", // soratable container addItem: "am-add-new am-frame", // add attachment button srcMap: auxin.attachmedia || null, // id:src map object sortableOptions: { placeholder: "am-placeholder", forcePlaceholderSize: true, }, autoHideElement: true, // hide input element after init confirmOnRemove: true, // ask before removing attachment multiple: true, // enables multiple section in wp's media uploader limit: 9999, // specifies maximum number of items type: null, // select media uploader attachment type insertCaption: false, // whether insert caption or not l10n: { // localization object addToList: "Add image(s)", uploaderTitle: "Select Image", uploderSubmit: "Add image", removeConfirm: "Are you sure that you want to remove this attachment?", }, }; // only in widgets page if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(attach_media_picker) .avertaAttachMedia(attach_media_args); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(attach_media_picker) .avertaAttachMedia(attach_media_args); }); // other pages } else { $(attach_media_picker).avertaAttachMedia(attach_media_args); $(document).on("panelsopen", function () { $(attach_media_picker).avertaAttachMedia(attach_media_args); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_media"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(attach_media_picker); if (control.params.attachments) { attach_media_args.srcMap = control.params.attachments; } control.picker .val(control.setting()) .avertaAttachMedia(attach_media_args); control.picker.on("change", function () { control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } if (wp.customize) { wp.customize.controlConstructor["auxin_text"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("input[type]"); control.picker.on("change", function () { control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } if (wp.customize) { wp.customize.controlConstructor["auxin_base"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("input[type]"); control.picker.on("change", function () { control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // // ===================================================================== // initialize spectrum color palette on text input field var $palette_pickers = $('.auxin-color-palette input[type="text"]'); var $palette_picker, colors, palette_picker_name; for (var i = 0, l = $palette_pickers.length; i < l; i++) { $palette_picker = $palette_pickers.eq(i); palette_picker_name = $palette_picker.prop("name"); if ( typeof window.auxin.admin.palette[palette_picker_name] != "undefined" ) { $palette_picker.spectrum({ allowEmpty: true, showInput: false, showAlpha: true, disabled: false, showSelectionPalette: true, showPaletteOnly: false, showPalette: true, hideAfterPaletteSelect: true, palette: auxin.admin.palette[palette_picker_name], clickoutFiresChange: true, showInitial: true, chooseText: auxin.admin.colorpicker.chooseText, cancelText: auxin.admin.colorpicker.cancelText, containerClassName: "axi-sp-wrapper", localStorageKey: "auxin.spectrum", preferredFormat: "hex6", }); } } // Init date fields if exist var $dateFields = $("input#custom_news_date"); if ($dateFields.length) { $dateFields.datepicker({ dateFormat: "yy-mm-dd", }); } // export // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_export"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("form"); control.picker.on("submit", function (e) { e.preventDefault(); var $this = $(this), $button = $this .find("button") .addClass("aux-button-loading"); $.ajax({ url: auxin.ajaxurl, type: "POST", dataType: "json", data: { nonce: $this .find("#auxin-export-nonce") .val(), action: "auxin_customizer_export", // the ajax handler }, success: function (response) { $button.removeClass("aux-button-loading"); if (response.success) { var element = document.createElement("a"); element.setAttribute( "href", "data:text/plain;charset=utf-8," + encodeURIComponent( response.data.content ) ); element.setAttribute( "download", response.data.fileName ); element.style.display = "none"; document.body.appendChild(element); element.click(); document.body.removeChild(element); } }, }); }); }, }); } // import // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_import"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("form"); control.picker.on("submit", function (e) { e.preventDefault(); var $this = $(this), $button = $this .find("button") .addClass("aux-button-loading"); var data = new FormData(); data.append( "file", $this .find("#auxin-select-import") .prop("files")[0] ); data.append("action", "auxin_customizer_import"); data.append( "nonce", $this.find("#auxin-import-nonce").val() ); $.ajax({ url: auxin.ajaxurl, type: "POST", dataType: "json", processData: false, contentType: false, data: data, success: function (response) { $button.removeClass("aux-button-loading"); if (response.success) { setTimeout(function () { location.reload(); }, 1000); } }, }); }); }, }); } // select // ===================================================================== if (wp.customize) { wp.customize.controlConstructor["auxin_select"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find("select"); control.picker.val(control.setting()); control.picker.on("change", function () { control.setting.set(control.picker.val()); //control.setting.preview(); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // select2 // ===================================================================== if ($.fn.select2) { var select2_picker = ".aux-select2-single", select2_args = { theme: "auxin", }; // only in widgets page if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(select2_picker) .select2(select2_args); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(select2_picker) .select2(select2_args); }); // other pages } else { $(select2_picker).select2(select2_args); $(document).on("panelsopen", function () { select2_args.dropdownParent = $( ".auxin-admin-widget-wrapper" ); $(select2_picker).select2(select2_args); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_select2"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find(select2_picker); control.picker .val(control.setting()) .select2(select2_args); control.picker.on("change", function () { control.setting.set(control.picker.val()); //control.setting.preview(); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Select 2 multiple --------------------- var select2_picker_multi = ".aux-select2-multiple", select2_args_multi = { theme: "auxin", placeholder: "Select Options", allowClear: true, dropdownParent: $("#vc_ui-panel-edit-element"), }, old_name; // only in widgets page on widgets the name of multiple select should have [] at the end. if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(select2_picker_multi) .each(function () { old_name = $(this).attr("name"); if (!old_name.endsWith("[]")) { $(this).attr("name", old_name + "[]"); } }); $(".inactive-sidebar, .widget-liquid-right") .find(select2_picker_multi) .select2(select2_args_multi); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(select2_picker_multi) .each(function () { old_name = $(this).attr("name"); if (!old_name.endsWith("[]")) { $(this).attr("name", old_name + "[]"); } }); $(".inactive-sidebar, .widget-liquid-right") .find(select2_picker_multi) .select2(select2_args_multi); }); // other pages } else { $(select2_picker_multi).select2(select2_args_multi); $(document).on("panelsopen", function () { select2_args_multi.dropdownParent = $( select2_picker_multi ).closest(".aux-element-field.aux-multiple-selector"); $(select2_picker_multi).select2(select2_args_multi); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_select2_multiple"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; select2_args_multi.dropdownParent = this.container .find(select2_picker_multi) .closest( ".customize-control-auxin_select2_multiple" ); control.picker = this.container.find(select2_picker_multi); control.picker .val(control.setting()) .select2(select2_args_multi); control.picker.on("change", function () { control.setting.set(control.picker.val()); // control.setting.preview(); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } } if ($.fn.spinner) { var $numerics = $(".auxin-admin-numeric"); for (var i = 0, l = $numerics.length; i < l; i++) { var $this = $numerics.eq(i), params = {}; if (undefined !== (minVal = $this.data("min"))) { params.min = parseInt(minVal); } if (undefined !== (maxVal = $this.data("max"))) { params.max = parseInt(maxVal); } if (undefined !== (stepVal = $this.data("step"))) { params.step = parseInt(stepVal); } $this.spinner(params); } } // iconpicker // ===================================================================== var auxIconPickerOptions = { theme: "fip-grey", // The CSS theme to use with this fontIconPicker. You can set different themes on multiple elements on the same page source: false, // Icons source (array|false|object) emptyIcon: true, // Empty icon should be shown? emptyIconValue: "", // The value of the empty icon, change if you select has something else, say "none" iconsPerPage: 15, // Number of icons per page hasSearch: true, // Is search enabled? searchSource: false, // Give a manual search values. If using attributes then for proper search feature we also need to pass icon names under the same order of source useAttribute: false, // Whether to use attribute selector for printing icons attributeName: "data-icon", // HTML Attribute name convertToHex: true, // Whether or not to convert to hexadecimal for attribute value. If true then please pass decimal integer value to the source (or as value="" attribute of the select field) allCategoryText: "From all categories", // The text for the select all category option unCategorizedText: "Uncategorized", // The text for the select uncategorized option }, auxIconPickerSelector = ".aux-fonticonpicker"; // only in widgets page if (isWidgetsPage) { $(".inactive-sidebar, .widget-liquid-right") .find(auxIconPickerSelector) .fontIconPicker(auxIconPickerOptions); $(document).on("widget-added widget-updated", function () { $(".inactive-sidebar, .widget-liquid-right") .find(auxIconPickerSelector) .fontIconPicker(auxIconPickerOptions); }); // other pages } else { $(auxIconPickerSelector).fontIconPicker(auxIconPickerOptions); if (wp.customize) { wp.customize.bind("ready", function () { $(auxIconPickerSelector).fontIconPicker( auxIconPickerOptions ); }); } $(document).on("panelsopen", function () { $(auxIconPickerSelector).fontIconPicker(auxIconPickerOptions); }); } if (wp.customize) { wp.customize.controlConstructor["auxin_icon"] = wp.customize.AuxinControl.extend({ ready: function () { // call superclass wp.customize.AuxinControl.prototype.ready.apply( this, arguments ); var control = this; control.picker = this.container.find( auxIconPickerSelector ); control.picker.val(control.setting()); control.picker.on("change", function () { control.setting.set(control.picker.val()); }); this.setting.bind(function (value) { control.picker.val(value); }); }, }); } // Activate the corresponding post format tab on post edit page // ===================================================================== function onWPDataChange() { var format = wp.data.select("core/editor").getPostEdits().format || wp.data.select("core/editor").getCurrentPostAttribute("format"); if (format !== lastFormat) { lastFormat = format; if (typeof format === "undefined") { return; } $(".aux-format-tab").hide(); get_format_section(format).show(); } } // Fix gutenberg issue if ( typeof wp.blocks !== "undefined" && wp.data.select("core/editor") != null ) { var lastFormat = ""; wp.data.subscribe(onWPDataChange); onWPDataChange(); } var $format_select_buttons = $( '#post-formats-select input[type="radio"]' ); function get_format_section(format) { format = format.replace("post-format-", ""); return $(".axi-metabox-container .tabs .aux-tab-post-" + format); } if ($format_select_buttons.length) { var $format_tabs = $(".aux-format-tab"), $lastDisplayed = get_format_section( $format_select_buttons.filter(":checked").prop("id") ).show(); if (!window.location.hash) { // find the corresponding tab $( '.axi-metabox-container .tabs a[href="' + window.location.hash + '"]' ) .parent("li") .trigger("click"); } $format_select_buttons.on("change", function () { $format_tabs.hide(); $lastDisplayed = get_format_section($(this).prop("id")); // if no corresponding tab found, activate the layout tab if (!$lastDisplayed.length) $lastDisplayed = get_format_section( "post-format-sidebar-layout" ); $lastDisplayed.show().trigger("click"); }); } /* ------------------------------------------------------------------------------ */ // setup dependency in widgets if (isWidgetsPage) { // init for active widgets $(".widget-liquid-right .widget").each(function (index, element) { auxInitWidgetDependencies($(this)); }); $(document).on("widget-added widget-updated", function (e, target) { auxInitWidgetDependencies(target); }); } else { jQuery(document).on("panelsopen", function (e) { auxInitWidgetDependencies($(e.target)); }); } function auxInitWidgetDependencies($widget) { var $wrapper = $widget.find(".auxin-admin-widget-wrapper"), id, deps; if ($wrapper.length === 0) { return; } id = $wrapper.attr("id"); if (!window.auxin || !auxin.elements || !auxin.elements[id]) { return; } deps = auxin.elements[id].dependencies; var manager = new window.DependencyManager( $wrapper, { fieldContainer: ".aux-element-field", fieldMapper: auxDependencyFieldMapper, observerMapper: auxDependencyFieldMapper, }, deps ); manager.setup(); } function auxDependencyFieldMapper(target) { return '[id$="-' + target + '"]'; } /** * Store URL hash to a field * @param {[type]} $ [description] * @return {[type]} [description] */ (function ($) { var $rating = $(".aux-rating-section input"); if (!$rating.length) { return; } var $feedback_form = $(".aux-feedback-form"), $feedback_section = $feedback_form.find( ".aux-feedback-section" ), $submit_btn = $feedback_section.find('input[type="submit"]'), $status_progress = $(".aux-sending-status .ajax-progress"), $status_response = $(".aux-sending-status .ajax-response"), $rate_us_notice = $feedback_section.find(".aux-rate-us-offer"), rate; $rating .on("change", function () { rate = $rating.filter(":checked").val(); if (rate !== undefined) { $feedback_section.removeClass("aux-hide"); $rate_us_notice.toggleClass("aux-hide", rate < 9); } }) .trigger("change"); $submit_btn.on("click", function (e) { e.preventDefault(); if ($submit_btn.prop("disabled")) { return; } $status_progress.removeClass("aux-hide"); $status_response.removeClass("aux-hide"); $.ajax({ url: auxin.ajaxurl, type: "POST", dataType: "json", data: { form: $feedback_form.serializeObject(), action: "send_feedback", // the ajax handler }, success: function (reposnse) { if (reposnse.success) { // sent successfully $status_response .html( '<i class="_success">✓</i>' + reposnse.data ) .removeClass("aux-hide"); $status_progress.addClass("aux-hide"); } else { // authorization failed $status_response .html( '<i class="_fail">✘</i>' + reposnse.data ) .removeClass("aux-hide"); $status_progress.addClass("aux-hide"); submit_btn.prop("disabled", false); } }, }); $submit_btn.prop("disabled", true).addClass("disabled"); }); })(jQuery); /** * Store URL hash to a field */ (function ($) { $("form#post").on("submit", function (event) { localStorage.setPostMeta( auxin.post && auxin.post.id, "edit_fragment", window.location.hash ); return true; }); })(jQuery); }); // override jquery show and hide function with pure js const superShow = jQuery.fn.show; jQuery.fn.show = function () { var i = 0, l = this.length; for (; i < l; i++) { //if this[i] is an element if (this[i] && this[i].style) { this[i].style.display = "block"; } else { superShow.call(jQuery(this[i])); } } return this; }; const superHide = jQuery.fn.hide; jQuery.fn.hide = function () { var i = 0, l = this.length; for (; i < l; i++) { //if this[i] is an element if (this[i] && this[i].style) { this[i].style.display = "none"; } else { superHide.call(jQuery(this[i])); } } return this; }; // override slideUp and slideDown function with pure js const superSlideUp = jQuery.fn.slideUp; jQuery.fn.slideUp = function () { var i = 0, l = this.length; for (; i < l; i++) { //if this[i] is an element if (this[i]?.style) { this[i].style.display = "none"; } else { superSlideUp.call(jQuery(this[i])); } } return this; }; const superSlideDown = jQuery.fn.slideDown; jQuery.fn.slideDown = function () { var i = 0, l = this.length; for (; i < l; i++) { //if this[i] is an element if (this[i]?.style) { this[i].style.display = "block"; } else { superSlideDown.call(jQuery(this[i])); } } return this; }; })(jQuery, window, document); /* ================== auxin/js/src/_presets-manager.js =================== */ ////// Preset for open panel and meta fields /////////////////////////////////// (function($, window, document, undefined){ "use strict"; /** * Constructor * @param {Object} $wrapper Container of fields * @param {Object} presetFields Object which maps presets graph */ function AuxinPresetManager( $wrapper, presetFields ){ this.$wrapper = $wrapper; this.presetFields = presetFields; this.$observers; } var p = AuxinPresetManager.prototype; p.setup = function(){ var self = this; for( var presetFieldId in self.presetFields ){ self.$wrapper.find( '#' + presetFieldId ).on('change', function(){ var $this = $(this), observerId = $this.prop('id'); if( typeof self.presetFields[ observerId ] !== 'undefined' ){ self.applyPresets( self.presetFields[ observerId ], $this.val() ); } }); } }; p.applyPresets = function( presetDataStacks, selectedStack ){ var self = this; var presetTargets = presetDataStacks[ selectedStack ]; if( typeof presetTargets === 'undefined' ){ // console.log( "Preset stack with '" + selectedStack + "' ID not found in stacks list." ); return; } for( var presetTargetId in presetTargets ){ var presetTargetValue = presetTargets[ presetTargetId ]; var $targetField = self.$wrapper.find( '#' + presetTargetId ); if( ! $targetField.length ){ continue; } switch ( $targetField[0].nodeName) { case 'INPUT': switch ( $targetField[0].type) { case 'text': // if the field is color picker if( $targetField.hasClass("colorpickerField") ){ $targetField.spectrum( "set", presetTargetValue ).change(); $targetField.val( presetTargetValue ); continue; } case 'checkbox': if( presetTargetValue != $targetField[0].checked ){ $targetField.trigger("click"); } continue; case 'radio': break; } break; case 'TEXTAREA': if( $targetField.hasClass("wp-editor-area") ){ if( tinyMCE ){ tinyMCE.get( presetTargetId ).setContent( presetTargetValue ); } continue; } break; case 'SELECT': switch ( $targetField[0].type ) { // if the select dom is NOT multiple case 'select-one': break; // if the select dom is multiple case 'select-multiple': break; } break; } $targetField.val( presetTargetValue ); } } $(function(){ var $metabox, opsPres; // Start to watch for field dependencies in metaboxes if( auxin.metabox ){ for ( var metaboxID in auxin.metabox ) { var metaboxpresetData = auxin.metabox[ metaboxID ].presets; $metabox = $('#'+ metaboxID ); if( $metabox.length ){ // Create a preset watcher for each metabox opsPres = new AuxinPresetManager( $metabox, metaboxpresetData ); // Make sure the setup function is accessible in page builder too if( undefined !== opsPres.setup ){ opsPres.setup(); } } } } // Start to watch for option panel dependencies var $panel = $('.auxin_options_form'); if( $panel.length && auxin.optionpanel.presets ){ opsPres = new AuxinPresetManager( $panel, auxin.optionpanel.presets ); opsPres.setup(); } }); })(jQuery, window, document); /* ================== auxin/js/src/_upload.js =================== */ /*======================================================================================= * Image Upload Field *======================================================================================*/ (function($){ "use strict"; var $container; $(function(){ $container = $('.av3_container .uploader'); if( ! $container.length ) return; $container.each(function(index) { ////////////// get elements //////////////////////////////////////// // cache wrapper var $this = $(this); var $input = $this.find('input[type="text"]').eq(0); var $placeholder = $this.find('.img-placeholder').eq(0); var $upload = $this.find('input[type="button"]').eq(0); var $remove = $this.find('input[type="button"]').eq(1); var $imgHolder = $this.find('div.imgHolder').addClass('no-media'); var $close = $this.find('strong.close').addClass('no-media'); ////////////// handlers //////////////////////////////////////////// // on click image close button $close.on('click', function(){ var $this = $(this); var $img = $this.next('img'); $img.hide(); $this.addClass('no-media'); $imgHolder.addClass('no-media'); $input.val(''); }); // on click remove button $remove.on('click', function(){ $input.val(''); $close.trigger('click'); }); // on input value change $input.on('keyup change blur', function(e){ if(e.type == 'click' && e.ctrlKey){ $upload.trigger('click'); }else{ updateImage($(e.target)); } }); // on upload btn click $upload.on( 'click', function() { var $this = $(this); // get input field var $input = $this.siblings('input[type="text"]'); // open wp media uploader (since 3.5) --------------- // If the frame already exists, re-open it. if ( frame ) { frame.open(); return; } var frame = wp.media.frames.frame = wp.media({ title: "Select Image", multiple: false, frame: 'select', library: { type: 'image' }, button : { text : 'Add Image' } }); frame.on( 'select', function() { var attachment = frame.state().get('selection').first().toJSON(); $input.val(attachment.url).trigger('change'); }); // now let's open media uploader frame.open(); // end - open wp media uploader --------------------- }); // on upload btn click $placeholder.on( 'click', function() { var $this = $(this); // get input field var $input = $this.closest('.uploader').find('input[type="text"]'); // open wp media uploader (since 3.5) --------------- // If the frame already exists, re-open it. if ( frame ) { frame.open(); return; } var frame = wp.media.frames.frame = wp.media({ title: "Select Image", multiple: false, frame: 'select', library: { type: 'image' }, button : { text : 'Add Image' } }); frame.on( 'select', function() { var attachment = frame.state().get('selection').first().toJSON(); $input.val(attachment.url).trigger('change'); }); // now let's open media uploader frame.open(); // end - open wp media uploader --------------------- }); updateImage($input); }); ////////////// functions ///////////////////////////////////////////// // updates image preview , if link is changed function updateImage($input){ var $holder = $input.siblings('.imgHolder'); var $close = $holder.children('.close'); var $img = $close.next('img') .load(function(e) { $holder.removeClass('no-media'); $close.removeClass('no-media' ); $img.show(); }).error(function(e) { $holder.addClass('no-media'); $close.addClass('no-media' ); $img.hide(); }); var imgUrl = $input.val(); if (imgUrl.indexOf("http://") === -1) imgUrl = auxin.uploadbaseurl + '/' + imgUrl; $img.attr('src', imgUrl); } }); })(jQuery);
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0 |
proxy
|
phpinfo
|
Settings