IP : 18.219.202.234Hostname : premium184.web-hosting.comKernel : Linux premium184.web-hosting.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64Disable Function : None :) OS : Linux
PATH:
/
home/
riggvwfp/
public_html/
wp-includes/
js/
customize-base.js/
/
/** * @output wp-includes/js/customize-base.js */
/** @namespace wp */ window.wp = window.wp || {};
(function( exports, $ ){ var api = {}, ctor, inherits, slice = Array.prototype.slice;
// Shared empty constructor function to aid in prototype-chain creation. ctor = function() {};
/** * Helper function to correctly set up the prototype chain, for subclasses. * Similar to `goog.inherits`, but uses a hash of prototype properties and * class properties to be extended. * * @param object parent Parent class constructor to inherit from. * @param object protoProps Properties to apply to the prototype for use as class instance properties. * @param object staticProps Properties to apply directly to the class constructor. * @return child The subclassed constructor. */ inherits = function( parent, protoProps, staticProps ) { var child;
/* * The constructor function for the new subclass is either defined by you * (the "constructor" property in your `extend` definition), or defaulted * by us to simply call `super()`. */ if ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) { child = protoProps.constructor; } else { child = function() { /* * Storing the result `super()` before returning the value * prevents a bug in Opera where, if the constructor returns * a function, Opera will reject the return value in favor of * the original object. This causes all sorts of trouble. */ var result = parent.apply( this, arguments ); return result; }; }
// Inherit class (static) properties from parent. $.extend( child, parent );
// Set the prototype chain to inherit from `parent`, // without calling `parent`'s constructor function. ctor.prototype = parent.prototype; child.prototype = new ctor();
// Add prototype properties (instance properties) to the subclass, // if supplied. if ( protoProps ) { $.extend( child.prototype, protoProps ); }
// Add static properties to the constructor function, if supplied. if ( staticProps ) { $.extend( child, staticProps ); }
// Correctly set child's `prototype.constructor`. child.prototype.constructor = child;
// Set a convenience property in case the parent's prototype is needed later. child.__super__ = parent.prototype;
return child; };
/** * Base class for object inheritance. */ api.Class = function( applicator, argsArray, options ) { var magic, args = arguments;
/* * If the class has a method called "instance", * the return value from the class' constructor will be a function that * calls the "instance" method. * * It is also an object that has properties and methods inside it. */ if ( this.instance ) { magic = function() { return magic.instance.apply( magic, arguments ); };
/** * Creates a subclass of the class. * * @param object protoProps Properties to apply to the prototype. * @param object staticProps Properties to apply directly to the class. * @return child The subclass. */ api.Class.extend = function( protoProps, staticProps ) { var child = inherits( this, protoProps, staticProps ); child.extend = this.extend; return child; };
api.Class.applicator = {};
/** * Initialize a class instance. * * Override this function in a subclass as needed. */ api.Class.prototype.initialize = function() {};
/* * Checks whether a given instance extended a constructor. * * The magic surrounding the instance parameter causes the instanceof * keyword to return inaccurate results; it defaults to the function's * prototype instead of the constructor chain. Hence this function. */ api.Class.prototype.extended = function( constructor ) { var proto = this;
while ( typeof proto.constructor !== 'undefined' ) { if ( proto.constructor === constructor ) { return true; } if ( typeof proto.constructor.__super__ === 'undefined' ) { return false; } proto = proto.constructor.__super__; } return false; };
/** * An events manager object, offering the ability to bind to and trigger events. * * Used as a mixin. */ api.Events = { trigger: function( id ) { if ( this.topics && this.topics[ id ] ) { this.topics[ id ].fireWith( this, slice.call( arguments, 1 ) ); } return this; },
bind: function( id ) { this.topics = this.topics || {}; this.topics[ id ] = this.topics[ id ] || $.Callbacks(); this.topics[ id ].add.apply( this.topics[ id ], slice.call( arguments, 1 ) ); return this; },
unbind: function( id ) { if ( this.topics && this.topics[ id ] ) { this.topics[ id ].remove.apply( this.topics[ id ], slice.call( arguments, 1 ) ); } return this; } };
/* * Magic. Returns a function that will become the instance. * Set to null to prevent the instance from extending a function. */ instance: function() { return arguments.length ? this.set.apply( this, arguments ) : this.get(); },
/** * Get the value. * * @return {mixed} */ get: function() { return this._value; },
/** * Set the value and trigger all bound callbacks. * * @param {Object} to New value. */ set: function( to ) { var from = this._value;
to = this._setter.apply( this, arguments ); to = this.validate( to );
// Bail if the sanitized value is null or unchanged. if ( null === to || _.isEqual( from, to ) ) { return this; }
this._value = to; this._dirty = true;
this.callbacks.fireWith( this, [ to, from ] );
return this; },
_setter: function( to ) { return to; },
setter: function( callback ) { var from = this.get(); this._setter = callback; // Temporarily clear value so setter can decide if it's valid. this._value = null; this.set( from ); return this; },
/** * Bind a function to be invoked whenever the value changes. * * @param {...Function} A function, or multiple functions, to add to the callback stack. */ bind: function() { this.callbacks.add.apply( this.callbacks, arguments ); return this; },
/** * Unbind a previously bound function. * * @param {...Function} A function, or multiple functions, to remove from the callback stack. */ unbind: function() { this.callbacks.remove.apply( this.callbacks, arguments ); return this; },
link: function() { // values* var set = this.set; $.each( arguments, function() { this.bind( set ); }); return this; },
unlink: function() { // values* var set = this.set; $.each( arguments, function() { this.unbind( set ); }); return this; },
sync: function() { // values* var that = this; $.each( arguments, function() { that.link( this ); this.link( that ); }); return this; },
unsync: function() { // values* var that = this; $.each( arguments, function() { that.unlink( this ); this.unlink( that ); }); return this; } });
/** * Get the instance of an item from the collection if only ID is specified. * * If more than one argument is supplied, all are expected to be IDs and * the last to be a function callback that will be invoked when the requested * items are available. * * @see {api.Values.when} * * @param {string} id ID of the item. * @param {...} Zero or more IDs of items to wait for and a callback * function to invoke when they're available. Optional. * @return {mixed} The item instance if only one ID was supplied. * A Deferred Promise object if a callback function is supplied. */ instance: function( id ) { if ( arguments.length === 1 ) { return this.value( id ); }
return this.when.apply( this, arguments ); },
/** * Get the instance of an item. * * @param {string} id The ID of the item. * @return {[type]} [description] */ value: function( id ) { return this._value[ id ]; },
/** * Whether the collection has an item with the given ID. * * @param {string} id The ID of the item to look for. * @return {boolean} */ has: function( id ) { return typeof this._value[ id ] !== 'undefined'; },
/** * Add an item to the collection. * * @param {string|wp.customize.Class} item - The item instance to add, or the ID for the instance to add. * When an ID string is supplied, then itemObject must be provided. * @param {wp.customize.Class} [itemObject] - The item instance when the first argument is an ID string. * @return {wp.customize.Class} The new item's instance, or an existing instance if already added. */ add: function( item, itemObject ) { var collection = this, id, instance; if ( 'string' === typeof item ) { id = item; instance = itemObject; } else { if ( 'string' !== typeof item.id ) { throw new Error( 'Unknown key' ); } id = item.id; instance = item; }
if ( collection.has( id ) ) { return collection.value( id ); }
collection._value[ id ] = instance; instance.parent = collection;
// Propagate a 'change' event on an item up to the collection. if ( instance.extended( api.Value ) ) { instance.bind( collection._change ); }
collection.trigger( 'add', instance );
// If a deferred object exists for this item, // resolve it. if ( collection._deferreds[ id ] ) { collection._deferreds[ id ].resolve(); }
return collection._value[ id ]; },
/** * Create a new item of the collection using the collection's default constructor * and store it in the collection. * * @param {string} id The ID of the item. * @param {mixed} value Any extra arguments are passed into the item's initialize method. * @return {mixed} The new item's instance. */ create: function( id ) { return this.add( id, new this.defaultConstructor( api.Class.applicator, slice.call( arguments, 1 ) ) ); },
/** * Iterate over all items in the collection invoking the provided callback. * * @param {Function} callback Function to invoke. * @param {Object} context Object context to invoke the function with. Optional. */ each: function( callback, context ) { context = typeof context === 'undefined' ? this : context;
/** * Remove an item from the collection. * * @param {string} id The ID of the item to remove. */ remove: function( id ) { var value = this.value( id );
if ( value ) {
// Trigger event right before the element is removed from the collection. this.trigger( 'remove', value );
// If the last argument is a callback, bind it to .done(). if ( typeof ids[ ids.length - 1 ] === 'function' ) { dfd.done( ids.pop() ); }
/* * Create a stack of deferred objects for each item that is not * yet available, and invoke the supplied callback when they are. */ $.when.apply( $, $.map( ids, function( id ) { if ( self.has( id ) ) { return; }
/* * The requested item is not available yet, create a deferred * object to resolve when it becomes available. */ return self._deferreds[ id ] = self._deferreds[ id ] || $.Deferred(); })).done( function() { var values = $.map( ids, function( id ) { return self( id ); });
// If a value is missing, we've used at least one expired deferred. // Call Values.when again to generate a new deferred. if ( values.length !== ids.length ) { // ids.push( callback ); self.when.apply( self, ids ).done( function() { dfd.resolveWith( self, values ); }); return; }
dfd.resolveWith( self, values ); });
return dfd.promise(); },
/** * A helper function to propagate a 'change' event from an item * to the collection itself. */ _change: function() { this.parent.trigger( 'change', this ); } });
// Create a global events bus on the Customizer. $.extend( api.Values.prototype, api.Events );
/** * Cast a string to a jQuery collection if it isn't already. * * @param {string|jQuery collection} element */ api.ensure = function( element ) { return typeof element === 'string' ? $( element ) : element; };
/** * An observable value that syncs with an element. * * Handles inputs, selects, and textareas by default. * * @memberOf wp.customize * @alias wp.customize.Element * * @constructor * @augments wp.customize.Value * @augments wp.customize.Class */ api.Element = api.Value.extend(/** @lends wp.customize.Element */{ initialize: function( element, options ) { var self = this, synchronizer = api.Element.synchronizer.html, type, update, refresh;
this.element = api.ensure( element ); this.events = '';
/** * A communicator for sending data from one window to another over postMessage. * * @memberOf wp.customize * @alias wp.customize.Messenger * * @constructor * @augments wp.customize.Class * @mixes wp.customize.Events */ api.Messenger = api.Class.extend(/** @lends wp.customize.Messenger.prototype */{ /** * Create a new Value. * * @param {string} key Unique identifier. * @param {mixed} initial Initial value. * @param {mixed} options Options hash. Optional. * @return {Value} Class instance of the Value. */ add: function( key, initial, options ) { return this[ key ] = new api.Value( initial, options ); },
/** * Initialize Messenger. * * @param {Object} params - Parameters to configure the messenger. * {string} params.url - The URL to communicate with. * {window} params.targetWindow - The window instance to communicate with. Default window.parent. * {string} params.channel - If provided, will send the channel with each message and only accept messages a matching channel. * @param {Object} options - Extend any instance parameter or method with this object. */ initialize: function( params, options ) { // Target the parent frame by default, but only if a parent frame exists. var defaultTarget = window.parent === window ? null : window.parent;
$.extend( this, options || {} );
this.add( 'channel', params.channel ); this.add( 'url', params.url || '' ); this.add( 'origin', this.url() ).link( this.url ).setter( function( to ) { var urlParser = document.createElement( 'a' ); urlParser.href = to; // Port stripping needed by IE since it adds to host but not to event.origin. return urlParser.protocol + '//' + urlParser.host.replace( /:(80|443)$/, '' ); });
// First add with no value. this.add( 'targetWindow', null ); // This avoids SecurityErrors when setting a window object in x-origin iframe'd scenarios. this.targetWindow.set = function( to ) { var from = this._value;
to = this._setter.apply( this, arguments ); to = this.validate( to );
if ( null === to || from === to ) { return this; }
this._value = to; this._dirty = true;
this.callbacks.fireWith( this, [ to, from ] );
return this; }; // Now set it. this.targetWindow( params.targetWindow || defaultTarget );
/* * Since we want jQuery to treat the receive function as unique * to this instance, we give the function a new guid. * * This will prevent every Messenger's receive function from being * unbound when calling $.off( 'message', this.receive ); */ this.receive = this.receive.bind( this ); this.receive.guid = $.guid++;
// Add the Events mixin to api.Messenger. $.extend( api.Messenger.prototype, api.Events );
/** * Notification. * * @class * @augments wp.customize.Class * @since 4.6.0 * * @memberOf wp.customize * @alias wp.customize.Notification * * @param {string} code - The error code. * @param {object} params - Params. * @param {string} params.message=null - The error message. * @param {string} [params.type=error] - The notification type. * @param {boolean} [params.fromServer=false] - Whether the notification was server-sent. * @param {string} [params.setting=null] - The setting ID that the notification is related to. * @param {*} [params.data=null] - Any additional data. */ api.Notification = api.Class.extend(/** @lends wp.customize.Notification.prototype */{
/** * Template function for rendering the notification. * * This will be populated with template option or else it will be populated with template from the ID. * * @since 4.9.0 * @var {Function} */ template: null,
/** * ID for the template to render the notification. * * @since 4.9.0 * @var {string} */ templateId: 'customize-notification',
/** * Additional class names to add to the notification container. * * @since 4.9.0 * @var {string} */ containerClasses: '',
/** * Initialize notification. * * @since 4.9.0 * * @param {string} code - Notification code. * @param {Object} params - Notification parameters. * @param {string} params.message - Message. * @param {string} [params.type=error] - Type. * @param {string} [params.setting] - Related setting ID. * @param {Function} [params.template] - Function for rendering template. If not provided, this will come from templateId. * @param {string} [params.templateId] - ID for template to render the notification. * @param {string} [params.containerClasses] - Additional class names to add to the notification container. * @param {boolean} [params.dismissible] - Whether the notification can be dismissed. */ initialize: function( code, params ) { var _params; this.code = code; _params = _.extend( { message: null, type: 'error', fromServer: false, data: null, setting: null, template: null, dismissible: false, containerClasses: '' }, params ); delete _params.code; _.extend( this, _params ); },