Вход Регистрация
Файл: Main Website Files/assets/bower_components/jquery/src/callbacks.js
Строк: 247
<?php
define
([
    
"./core",
    
"./var/rnotwhite"
], function( jQueryrnotwhite ) {

// String to Object options format cache
var optionsCache = {};

// Convert String-formatted options into Object-formatted ones and store in cache
function createOptionsoptions ) {
    var 
object optionsCacheoptions ] = {};
    
jQuery.eachoptions.matchrnotwhite ) || [], function( _flag ) {
        
objectflag ] = true;
    });
    return 
object;
}

/*
 * Create a callback list using the following parameters:
 *
 *    options: an optional list of space-separated options that will change how
 *            the callback list behaves or a more traditional option object
 *
 * By default a callback list will act like an event callback list and can be
 * "fired" multiple times.
 *
 * Possible options:
 *
 *    once:            will ensure the callback list can only be fired once (like a Deferred)
 *
 *    memory:            will keep track of previous values and will call any callback added
 *                    after the list has been fired right away with the latest "memorized"
 *                    values (like a Deferred)
 *
 *    unique:            will ensure a callback can only be added once (no duplicate in the list)
 *
 *    stopOnFalse:    interrupt callings when a callback returns false
 *
 */
jQuery.Callbacks = function( options ) {

    
// Convert options from String-formatted to Object-formatted if needed
    // (we check in cache first)
    
options typeof options === "string" ?
        ( 
optionsCacheoptions ] || createOptionsoptions ) ) :
        
jQuery.extend( {}, options );

    var 
// Last fire value (for non-forgettable lists)
        
memory,
        
// Flag to know if list was already fired
        
fired,
        
// Flag to know if list is currently firing
        
firing,
        
// First callback to fire (used internally by add and fireWith)
        
firingStart,
        
// End of the loop when firing
        
firingLength,
        
// Index of currently firing callback (modified by remove if needed)
        
firingIndex,
        
// Actual callback list
        
list = [],
        
// Stack of fire calls for repeatable lists
        
stack = !options.once && [],
        
// Fire callbacks
        
fire = function( data ) {
            
memory options.memory && data;
            
fired true;
            
firingIndex firingStart || 0;
            
firingStart 0;
            
firingLength = list.length;
            
firing true;
            for ( ; list && 
firingIndex firingLengthfiringIndex++ ) {
                if ( list[ 
firingIndex ].applydata], data] ) === false && options.stopOnFalse ) {
                    
memory false// To prevent further calls using add
                    
break;
                }
            }
            
firing false;
            if ( list ) {
                if ( 
stack ) {
                    if ( 
stack.length ) {
                        
firestack.shift() );
                    }
                } else if ( 
memory ) {
                    list = [];
                } else {
                    
self.disable();
                }
            }
        },
        
// Actual Callbacks object
        
self = {
            
// Add a callback or a collection of callbacks to the list
            
add: function() {
                if ( list ) {
                    
// First, we save the current length
                    
var start = list.length;
                    (function 
addargs ) {
                        
jQuery.eachargs, function( _arg ) {
                            var 
type jQuery.typearg );
                            if ( 
type === "function" ) {
                                if ( !
options.unique || !self.hasarg ) ) {
                                    list.
pusharg );
                                }
                            } else if ( 
arg && arg.length && type !== "string" ) {
                                
// Inspect recursively
                                
addarg );
                            }
                        });
                    })( 
arguments );
                    
// Do we need to add the callbacks to the
                    // current firing batch?
                    
if ( firing ) {
                        
firingLength = list.length;
                    
// With memory, if we're not firing then
                    // we should call right away
                    
} else if ( memory ) {
                        
firingStart start;
                        
firememory );
                    }
                }
                return 
this;
            },
            
// Remove a callback from the list
            
remove: function() {
                if ( list ) {
                    
jQuery.eacharguments, function( _arg ) {
                        var 
index;
                        while ( ( 
index jQuery.inArrayarg, list, index ) ) > -) {
                            list.
spliceindex);
                            
// Handle firing indexes
                            
if ( firing ) {
                                if ( 
index <= firingLength ) {
                                    
firingLength--;
                                }
                                if ( 
index <= firingIndex ) {
                                    
firingIndex--;
                                }
                            }
                        }
                    });
                }
                return 
this;
            },
            
// Check if a given callback is in the list.
            // If no argument is given, return whether or not list has callbacks attached.
            
has: function( fn ) {
                return fn ? 
jQuery.inArray( fn, list ) > -: !!( list && list.length );
            },
            
// Remove all callbacks from the list
            
empty: function() {
                list = [];
                
firingLength 0;
                return 
this;
            },
            
// Have the list do nothing anymore
            
disable: function() {
                list = 
stack memory undefined;
                return 
this;
            },
            
// Is it disabled?
            
disabled: function() {
                return !list;
            },
            
// Lock the list in its current state
            
lock: function() {
                
stack undefined;
                if ( !
memory ) {
                    
self.disable();
                }
                return 
this;
            },
            
// Is it locked?
            
locked: function() {
                return !
stack;
            },
            
// Call all callbacks with the given context and arguments
            
fireWith: function( contextargs ) {
                if ( list && ( !
fired || stack ) ) {
                    
args args || [];
                    
args = [ contextargs.slice args.slice() : args ];
                    if ( 
firing ) {
                        
stack.pushargs );
                    } else {
                        
fireargs );
                    }
                }
                return 
this;
            },
            
// Call all the callbacks with the given arguments
            
fire: function() {
                
self.fireWiththisarguments );
                return 
this;
            },
            
// To know if the callbacks have already been called at least once
            
fired: function() {
                return !!
fired;
            }
        };

    return 
self;
};

return 
jQuery;
});
?>
Онлайн: 1
Реклама