SILENT KILLERPanel

Current Path: > home > codekrsu > > ameliagraphics.com > wp-includes > js > > >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/codekrsu//ameliagraphics.com/wp-includes/js///

NameTypeSizeLast ModifiedActions
codemirror Directory - -
crop Directory - -
dist Directory - -
imgareaselect Directory - -
jcrop Directory - -
jquery Directory - -
mediaelement Directory - -
plupload Directory - -
swfupload Directory - -
thickbox Directory - -
tinymce Directory - -
admin-bar.js File 10547 bytes May 11 2024 22:28:08.
admin-bar.min.js File 3487 bytes February 06 2025 22:27:26.
api-request.js File 3324 bytes December 01 2020 08:44:06.
api-request.min.js File 1023 bytes February 06 2025 22:27:26.
autosave.js File 22476 bytes January 24 2025 04:54:24.
autosave.min.js File 5807 bytes February 06 2025 22:27:26.
backbone.js File 80390 bytes August 08 2024 23:37:20.
backbone.min.js File 24301 bytes February 06 2025 22:27:26.
clipboard.js File 26807 bytes October 04 2022 19:55:24.
clipboard.min.js File 9009 bytes February 06 2025 22:27:26.
colorpicker.js File 29083 bytes November 17 2012 20:11:30.
colorpicker.min.js File 16498 bytes December 14 2024 00:06:24.
comment-reply.js File 12513 bytes September 04 2024 00:36:10.
comment-reply.min.js File 3026 bytes February 06 2025 22:27:26.
customize-base.js File 25822 bytes May 20 2023 14:19:24.
customize-base.min.js File 7852 bytes February 06 2025 22:27:26.
customize-loader.js File 7903 bytes April 12 2024 21:47:14.
customize-loader.min.js File 3551 bytes February 06 2025 22:27:26.
customize-models.js File 6821 bytes June 25 2020 16:43:08.
customize-models.min.js File 3681 bytes February 06 2025 22:27:26.
customize-preview-nav-menus.js File 15024 bytes July 28 2020 03:35:02.
customize-preview-nav-menus.min.js File 5033 bytes February 06 2025 22:27:26.
customize-preview-widgets.js File 23253 bytes June 20 2020 16:58:10.
customize-preview-widgets.min.js File 7820 bytes February 06 2025 22:27:26.
customize-preview.js File 27960 bytes July 28 2020 03:35:02.
customize-preview.min.js File 10704 bytes February 06 2025 22:27:26.
customize-selective-refresh.js File 33335 bytes April 12 2024 21:47:14.
customize-selective-refresh.min.js File 10693 bytes February 06 2025 22:27:26.
customize-views.js File 5065 bytes June 28 2018 06:30:16.
customize-views.min.js File 2451 bytes February 06 2025 22:27:26.
heartbeat.js File 24052 bytes September 12 2024 03:09:16.
heartbeat.min.js File 5947 bytes February 06 2025 22:27:26.
hoverIntent.js File 7225 bytes January 03 2022 20:03:18.
hoverIntent.min.js File 1499 bytes February 06 2025 22:27:26.
hoverintent-js.min.js File 1718 bytes December 10 2019 06:03:02.
imagesloaded.min.js File 5520 bytes August 11 2023 22:18:26.
json2.js File 18422 bytes October 06 2015 18:02:26.
json2.min.js File 3143 bytes February 06 2025 22:27:26.
masonry.min.js File 24138 bytes June 13 2020 22:53:28.
mce-view.js File 25849 bytes October 10 2023 01:31:28.
mce-view.min.js File 9770 bytes February 06 2025 22:27:26.
media-audiovideo.js File 24819 bytes March 04 2025 19:55:30.
media-audiovideo.min.js File 12052 bytes March 04 2025 19:55:30.
media-editor.js File 29119 bytes July 28 2020 03:35:02.
media-editor.min.js File 10885 bytes February 06 2025 22:27:26.
media-grid.js File 26651 bytes March 04 2025 19:55:30.
media-grid.min.js File 13258 bytes March 04 2025 19:55:30.
media-models.js File 43604 bytes March 04 2025 19:55:30.
media-models.min.js File 13284 bytes March 04 2025 19:55:30.
media-views.js File 273321 bytes March 19 2025 20:27:28.
media-views.min.js File 110712 bytes March 19 2025 20:27:28.
quicktags.js File 22601 bytes September 09 2021 03:29:58.
quicktags.min.js File 11132 bytes February 06 2025 22:27:26.
shortcode.js File 10758 bytes January 29 2020 05:45:18.
shortcode.min.js File 2643 bytes September 23 2022 23:55:30.
swfobject.js File 10231 bytes April 18 2012 03:09:30.
tw-sack.js File 4969 bytes August 23 2012 04:04:18.
tw-sack.min.js File 3288 bytes April 09 2022 00:07:18.
twemoji.js File 33459 bytes June 18 2025 05:53:34.
twemoji.min.js File 16312 bytes June 18 2025 05:53:34.
underscore.js File 68735 bytes August 11 2024 03:57:16.
underscore.min.js File 18905 bytes February 06 2025 22:27:26.
utils.js File 4665 bytes January 29 2020 05:45:18.
utils.min.js File 1864 bytes September 23 2022 23:55:30.
wp-ajax-response.js File 3903 bytes February 08 2025 20:53:18.
wp-ajax-response.min.js File 2571 bytes February 08 2025 20:53:18.
wp-api.js File 46983 bytes January 10 2023 14:30:14.
wp-api.min.js File 14682 bytes February 06 2025 22:27:26.
wp-auth-check.js File 4207 bytes March 18 2021 23:01:04.
wp-auth-check.min.js File 1658 bytes February 06 2025 22:27:26.
wp-backbone.js File 15241 bytes April 12 2024 21:47:14.
wp-backbone.min.js File 3039 bytes February 06 2025 22:27:26.
wp-custom-header.js File 10465 bytes April 10 2021 16:40:06.
wp-custom-header.min.js File 4442 bytes February 06 2025 22:27:26.
wp-embed-template.js File 6779 bytes November 11 2021 07:49:18.
wp-embed-template.min.js File 3174 bytes February 06 2025 22:27:26.
wp-embed.js File 3214 bytes August 10 2023 23:49:18.
wp-embed.min.js File 1251 bytes February 06 2025 22:27:26.
wp-emoji-loader.js File 14009 bytes June 18 2025 05:53:34.
wp-emoji-loader.min.js File 3088 bytes June 18 2025 05:53:34.
wp-emoji-release.min.js File 19251 bytes June 18 2025 05:53:34.
wp-emoji.js File 8969 bytes February 02 2023 05:53:26.
wp-emoji.min.js File 2890 bytes February 06 2025 22:27:26.
wp-list-revisions.js File 970 bytes June 28 2018 06:30:16.
wp-list-revisions.min.js File 597 bytes February 06 2025 22:27:26.
wp-lists.js File 25315 bytes June 24 2023 18:32:20.
wp-lists.min.js File 7521 bytes February 06 2025 22:27:26.
wp-pointer.js File 10233 bytes February 17 2021 01:25:04.
wp-pointer.min.js File 3621 bytes February 06 2025 22:27:26.
wp-sanitize.js File 1341 bytes January 28 2025 00:25:26.
wp-sanitize.min.js File 458 bytes April 09 2022 00:07:18.
wp-util.js File 4679 bytes September 20 2022 07:52:10.
wp-util.min.js File 1426 bytes February 06 2025 22:27:26.
wpdialog.js File 569 bytes January 25 2023 02:13:12.
wpdialog.min.js File 281 bytes February 06 2025 22:27:26.
wplink.js File 21240 bytes January 24 2025 04:54:24.
wplink.min.js File 11317 bytes February 06 2025 22:27:26.
zxcvbn-async.js File 821 bytes June 28 2018 06:30:16.
zxcvbn-async.min.js File 351 bytes February 23 2021 21:45:20.
zxcvbn.min.js File 822237 bytes October 26 2019 04:17:08.

Reading File: /home/codekrsu//ameliagraphics.com/wp-includes/js////customize-preview-nav-menus.js

/**
 * @output wp-includes/js/customize-preview-nav-menus.js
 */

/* global _wpCustomizePreviewNavMenusExports */

/** @namespace wp.customize.navMenusPreview */
wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function( $, _, wp, api ) {
	'use strict';

	var self = {
		data: {
			navMenuInstanceArgs: {}
		}
	};
	if ( 'undefined' !== typeof _wpCustomizePreviewNavMenusExports ) {
		_.extend( self.data, _wpCustomizePreviewNavMenusExports );
	}

	/**
	 * Initialize nav menus preview.
	 */
	self.init = function() {
		var self = this, synced = false;

		/*
		 * Keep track of whether we synced to determine whether or not bindSettingListener
		 * should also initially fire the listener. This initial firing needs to wait until
		 * after all of the settings have been synced from the pane in order to prevent
		 * an infinite selective fallback-refresh. Note that this sync handler will be
		 * added after the sync handler in customize-preview.js, so it will be triggered
		 * after all of the settings are added.
		 */
		api.preview.bind( 'sync', function() {
			synced = true;
		} );

		if ( api.selectiveRefresh ) {
			// Listen for changes to settings related to nav menus.
			api.each( function( setting ) {
				self.bindSettingListener( setting );
			} );
			api.bind( 'add', function( setting ) {

				/*
				 * Handle case where an invalid nav menu item (one for which its associated object has been deleted)
				 * is synced from the controls into the preview. Since invalid nav menu items are filtered out from
				 * being exported to the frontend by the _is_valid_nav_menu_item filter in wp_get_nav_menu_items(),
				 * the customizer controls will have a nav_menu_item setting where the preview will have none, and
				 * this can trigger an infinite fallback refresh when the nav menu item lacks any valid items.
				 */
				if ( setting.get() && ! setting.get()._invalid ) {
					self.bindSettingListener( setting, { fire: synced } );
				}
			} );
			api.bind( 'remove', function( setting ) {
				self.unbindSettingListener( setting );
			} );

			/*
			 * Ensure that wp_nav_menu() instances nested inside of other partials
			 * will be recognized as being present on the page.
			 */
			api.selectiveRefresh.bind( 'render-partials-response', function( response ) {
				if ( response.nav_menu_instance_args ) {
					_.extend( self.data.navMenuInstanceArgs, response.nav_menu_instance_args );
				}
			} );
		}

		api.preview.bind( 'active', function() {
			self.highlightControls();
		} );
	};

	if ( api.selectiveRefresh ) {

		/**
		 * Partial representing an invocation of wp_nav_menu().
		 *
		 * @memberOf wp.customize.navMenusPreview
		 * @alias wp.customize.navMenusPreview.NavMenuInstancePartial
		 *
		 * @class
		 * @augments wp.customize.selectiveRefresh.Partial
		 * @since 4.5.0
		 */
		self.NavMenuInstancePartial = api.selectiveRefresh.Partial.extend(/** @lends wp.customize.navMenusPreview.NavMenuInstancePartial.prototype */{

			/**
			 * Constructor.
			 *
			 * @since 4.5.0
			 * @param {string} id - Partial ID.
			 * @param {Object} options
			 * @param {Object} options.params
			 * @param {Object} options.params.navMenuArgs
			 * @param {string} options.params.navMenuArgs.args_hmac
			 * @param {string} [options.params.navMenuArgs.theme_location]
			 * @param {number} [options.params.navMenuArgs.menu]
			 * @param {Object} [options.constructingContainerContext]
			 */
			initialize: function( id, options ) {
				var partial = this, matches, argsHmac;
				matches = id.match( /^nav_menu_instance\[([0-9a-f]{32})]$/ );
				if ( ! matches ) {
					throw new Error( 'Illegal id for nav_menu_instance partial. The key corresponds with the args HMAC.' );
				}
				argsHmac = matches[1];

				options = options || {};
				options.params = _.extend(
					{
						selector: '[data-customize-partial-id="' + id + '"]',
						navMenuArgs: options.constructingContainerContext || {},
						containerInclusive: true
					},
					options.params || {}
				);
				api.selectiveRefresh.Partial.prototype.initialize.call( partial, id, options );

				if ( ! _.isObject( partial.params.navMenuArgs ) ) {
					throw new Error( 'Missing navMenuArgs' );
				}
				if ( partial.params.navMenuArgs.args_hmac !== argsHmac ) {
					throw new Error( 'args_hmac mismatch with id' );
				}
			},

			/**
			 * Return whether the setting is related to this partial.
			 *
			 * @since 4.5.0
			 * @param {wp.customize.Value|string} setting  - Object or ID.
			 * @param {number|Object|false|null}  newValue - New value, or null if the setting was just removed.
			 * @param {number|Object|false|null}  oldValue - Old value, or null if the setting was just added.
			 * @return {boolean}
			 */
			isRelatedSetting: function( setting, newValue, oldValue ) {
				var partial = this, navMenuLocationSetting, navMenuId, isNavMenuItemSetting, _newValue, _oldValue, urlParser;
				if ( _.isString( setting ) ) {
					setting = api( setting );
				}

				/*
				 * Prevent nav_menu_item changes only containing type_label differences triggering a refresh.
				 * These settings in the preview do not include type_label property, and so if one of these
				 * nav_menu_item settings is dirty, after a refresh the nav menu instance would do a selective
				 * refresh immediately because the setting from the pane would have the type_label whereas
				 * the setting in the preview would not, thus triggering a change event. The following
				 * condition short-circuits this unnecessary selective refresh and also prevents an infinite
				 * loop in the case where a nav_menu_instance partial had done a fallback refresh.
				 * @todo Nav menu item settings should not include a type_label property to begin with.
				 */
				isNavMenuItemSetting = /^nav_menu_item\[/.test( setting.id );
				if ( isNavMenuItemSetting && _.isObject( newValue ) && _.isObject( oldValue ) ) {
					_newValue = _.clone( newValue );
					_oldValue = _.clone( oldValue );
					delete _newValue.type_label;
					delete _oldValue.type_label;

					// Normalize URL scheme when parent frame is HTTPS to prevent selective refresh upon initial page load.
					if ( 'https' === api.preview.scheme.get() ) {
						urlParser = document.createElement( 'a' );
						urlParser.href = _newValue.url;
						urlParser.protocol = 'https:';
						_newValue.url = urlParser.href;
						urlParser.href = _oldValue.url;
						urlParser.protocol = 'https:';
						_oldValue.url = urlParser.href;
					}

					// Prevent original_title differences from causing refreshes if title is present.
					if ( newValue.title ) {
						delete _oldValue.original_title;
						delete _newValue.original_title;
					}

					if ( _.isEqual( _oldValue, _newValue ) ) {
						return false;
					}
				}

				if ( partial.params.navMenuArgs.theme_location ) {
					if ( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' === setting.id ) {
						return true;
					}
					navMenuLocationSetting = api( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' );
				}

				navMenuId = partial.params.navMenuArgs.menu;
				if ( ! navMenuId && navMenuLocationSetting ) {
					navMenuId = navMenuLocationSetting();
				}

				if ( ! navMenuId ) {
					return false;
				}
				return (
					( 'nav_menu[' + navMenuId + ']' === setting.id ) ||
					( isNavMenuItemSetting && (
						( newValue && newValue.nav_menu_term_id === navMenuId ) ||
						( oldValue && oldValue.nav_menu_term_id === navMenuId )
					) )
				);
			},

			/**
			 * Make sure that partial fallback behavior is invoked if there is no associated menu.
			 *
			 * @since 4.5.0
			 *
			 * @return {Promise}
			 */
			refresh: function() {
				var partial = this, menuId, deferred = $.Deferred();

				// Make sure the fallback behavior is invoked when the partial is no longer associated with a menu.
				if ( _.isNumber( partial.params.navMenuArgs.menu ) ) {
					menuId = partial.params.navMenuArgs.menu;
				} else if ( partial.params.navMenuArgs.theme_location && api.has( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' ) ) {
					menuId = api( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' ).get();
				}
				if ( ! menuId ) {
					partial.fallback();
					deferred.reject();
					return deferred.promise();
				}

				return api.selectiveRefresh.Partial.prototype.refresh.call( partial );
			},

			/**
			 * Render content.
			 *
			 * @inheritdoc
			 * @param {wp.customize.selectiveRefresh.Placement} placement
			 */
			renderContent: function( placement ) {
				var partial = this, previousContainer = placement.container;

				// Do fallback behavior to refresh preview if menu is now empty.
				if ( '' === placement.addedContent ) {
					placement.partial.fallback();
				}

				if ( api.selectiveRefresh.Partial.prototype.renderContent.call( partial, placement ) ) {

					// Trigger deprecated event.
					$( document ).trigger( 'customize-preview-menu-refreshed', [ {
						instanceNumber: null, // @deprecated
						wpNavArgs: placement.context, // @deprecated
						wpNavMenuArgs: placement.context,
						oldContainer: previousContainer,
						newContainer: placement.container
					} ] );
				}
			}
		});

		api.selectiveRefresh.partialConstructor.nav_menu_instance = self.NavMenuInstancePartial;

		/**
		 * Request full refresh if there are nav menu instances that lack partials which also match the supplied args.
		 *
		 * @param {Object} navMenuInstanceArgs
		 */
		self.handleUnplacedNavMenuInstances = function( navMenuInstanceArgs ) {
			var unplacedNavMenuInstances;
			unplacedNavMenuInstances = _.filter( _.values( self.data.navMenuInstanceArgs ), function( args ) {
				return ! api.selectiveRefresh.partial.has( 'nav_menu_instance[' + args.args_hmac + ']' );
			} );
			if ( _.findWhere( unplacedNavMenuInstances, navMenuInstanceArgs ) ) {
				api.selectiveRefresh.requestFullRefresh();
				return true;
			}
			return false;
		};

		/**
		 * Add change listener for a nav_menu[], nav_menu_item[], or nav_menu_locations[] setting.
		 *
		 * @since 4.5.0
		 *
		 * @param {wp.customize.Value} setting
		 * @param {Object}             [options]
		 * @param {boolean}            options.fire Whether to invoke the callback after binding.
		 *                                          This is used when a dynamic setting is added.
		 * @return {boolean} Whether the setting was bound.
		 */
		self.bindSettingListener = function( setting, options ) {
			var matches;
			options = options || {};

			matches = setting.id.match( /^nav_menu\[(-?\d+)]$/ );
			if ( matches ) {
				setting._navMenuId = parseInt( matches[1], 10 );
				setting.bind( this.onChangeNavMenuSetting );
				if ( options.fire ) {
					this.onChangeNavMenuSetting.call( setting, setting(), false );
				}
				return true;
			}

			matches = setting.id.match( /^nav_menu_item\[(-?\d+)]$/ );
			if ( matches ) {
				setting._navMenuItemId = parseInt( matches[1], 10 );
				setting.bind( this.onChangeNavMenuItemSetting );
				if ( options.fire ) {
					this.onChangeNavMenuItemSetting.call( setting, setting(), false );
				}
				return true;
			}

			matches = setting.id.match( /^nav_menu_locations\[(.+?)]/ );
			if ( matches ) {
				setting._navMenuThemeLocation = matches[1];
				setting.bind( this.onChangeNavMenuLocationsSetting );
				if ( options.fire ) {
					this.onChangeNavMenuLocationsSetting.call( setting, setting(), false );
				}
				return true;
			}

			return false;
		};

		/**
		 * Remove change listeners for nav_menu[], nav_menu_item[], or nav_menu_locations[] setting.
		 *
		 * @since 4.5.0
		 *
		 * @param {wp.customize.Value} setting
		 */
		self.unbindSettingListener = function( setting ) {
			setting.unbind( this.onChangeNavMenuSetting );
			setting.unbind( this.onChangeNavMenuItemSetting );
			setting.unbind( this.onChangeNavMenuLocationsSetting );
		};

		/**
		 * Handle change for nav_menu[] setting for nav menu instances lacking partials.
		 *
		 * @since 4.5.0
		 *
		 * @this {wp.customize.Value}
		 */
		self.onChangeNavMenuSetting = function() {
			var setting = this;

			self.handleUnplacedNavMenuInstances( {
				menu: setting._navMenuId
			} );

			// Ensure all nav menu instances with a theme_location assigned to this menu are handled.
			api.each( function( otherSetting ) {
				if ( ! otherSetting._navMenuThemeLocation ) {
					return;
				}
				if ( setting._navMenuId === otherSetting() ) {
					self.handleUnplacedNavMenuInstances( {
						theme_location: otherSetting._navMenuThemeLocation
					} );
				}
			} );
		};

		/**
		 * Handle change for nav_menu_item[] setting for nav menu instances lacking partials.
		 *
		 * @since 4.5.0
		 *
		 * @param {Object} newItem New value for nav_menu_item[] setting.
		 * @param {Object} oldItem Old value for nav_menu_item[] setting.
		 * @this {wp.customize.Value}
		 */
		self.onChangeNavMenuItemSetting = function( newItem, oldItem ) {
			var item = newItem || oldItem, navMenuSetting;
			navMenuSetting = api( 'nav_menu[' + String( item.nav_menu_term_id ) + ']' );
			if ( navMenuSetting ) {
				self.onChangeNavMenuSetting.call( navMenuSetting );
			}
		};

		/**
		 * Handle change for nav_menu_locations[] setting for nav menu instances lacking partials.
		 *
		 * @since 4.5.0
		 *
		 * @this {wp.customize.Value}
		 */
		self.onChangeNavMenuLocationsSetting = function() {
			var setting = this, hasNavMenuInstance;
			self.handleUnplacedNavMenuInstances( {
				theme_location: setting._navMenuThemeLocation
			} );

			// If there are no wp_nav_menu() instances that refer to the theme location, do full refresh.
			hasNavMenuInstance = !! _.findWhere( _.values( self.data.navMenuInstanceArgs ), {
				theme_location: setting._navMenuThemeLocation
			} );
			if ( ! hasNavMenuInstance ) {
				api.selectiveRefresh.requestFullRefresh();
			}
		};
	}

	/**
	 * Connect nav menu items with their corresponding controls in the pane.
	 *
	 * Setup shift-click on nav menu items which are more granular than the nav menu partial itself.
	 * Also this applies even if a nav menu is not partial-refreshable.
	 *
	 * @since 4.5.0
	 */
	self.highlightControls = function() {
		var selector = '.menu-item';

		// Skip adding highlights if not in the customizer preview iframe.
		if ( ! api.settings.channel ) {
			return;
		}

		// Focus on the menu item control when shift+clicking the menu item.
		$( document ).on( 'click', selector, function( e ) {
			var navMenuItemParts;
			if ( ! e.shiftKey ) {
				return;
			}

			navMenuItemParts = $( this ).attr( 'class' ).match( /(?:^|\s)menu-item-(-?\d+)(?:\s|$)/ );
			if ( navMenuItemParts ) {
				e.preventDefault();
				e.stopPropagation(); // Make sure a sub-nav menu item will get focused instead of parent items.
				api.preview.send( 'focus-nav-menu-item-control', parseInt( navMenuItemParts[1], 10 ) );
			}
		});
	};

	api.bind( 'preview-ready', function() {
		self.init();
	} );

	return self;

}( jQuery, _, wp, wp.customize ) );

SILENT KILLER Tool