Show More
Commit Description:
change to encrypted cookies
Commit Description:
change to encrypted cookies
References:
File last commit:
Show/Diff file:
Action:
node_modules/jquery/src/queue.js
| 145 lines
| 3.0 KiB
| application/javascript
| JavascriptLexer
|
r789 | define( [ | |||
"./core", | ||||
"./data/var/dataPriv", | ||||
"./deferred", | ||||
"./callbacks" | ||||
], function( jQuery, dataPriv ) { | ||||
"use strict"; | ||||
jQuery.extend( { | ||||
queue: function( elem, type, data ) { | ||||
var queue; | ||||
if ( elem ) { | ||||
type = ( type || "fx" ) + "queue"; | ||||
queue = dataPriv.get( elem, type ); | ||||
// Speed up dequeue by getting out quickly if this is just a lookup | ||||
if ( data ) { | ||||
if ( !queue || Array.isArray( data ) ) { | ||||
queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); | ||||
} else { | ||||
queue.push( data ); | ||||
} | ||||
} | ||||
return queue || []; | ||||
} | ||||
}, | ||||
dequeue: function( elem, type ) { | ||||
type = type || "fx"; | ||||
var queue = jQuery.queue( elem, type ), | ||||
startLength = queue.length, | ||||
fn = queue.shift(), | ||||
hooks = jQuery._queueHooks( elem, type ), | ||||
next = function() { | ||||
jQuery.dequeue( elem, type ); | ||||
}; | ||||
// If the fx queue is dequeued, always remove the progress sentinel | ||||
if ( fn === "inprogress" ) { | ||||
fn = queue.shift(); | ||||
startLength--; | ||||
} | ||||
if ( fn ) { | ||||
// Add a progress sentinel to prevent the fx queue from being | ||||
// automatically dequeued | ||||
if ( type === "fx" ) { | ||||
queue.unshift( "inprogress" ); | ||||
} | ||||
// Clear up the last queue stop function | ||||
delete hooks.stop; | ||||
fn.call( elem, next, hooks ); | ||||
} | ||||
if ( !startLength && hooks ) { | ||||
hooks.empty.fire(); | ||||
} | ||||
}, | ||||
// Not public - generate a queueHooks object, or return the current one | ||||
_queueHooks: function( elem, type ) { | ||||
var key = type + "queueHooks"; | ||||
return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { | ||||
empty: jQuery.Callbacks( "once memory" ).add( function() { | ||||
dataPriv.remove( elem, [ type + "queue", key ] ); | ||||
} ) | ||||
} ); | ||||
} | ||||
} ); | ||||
jQuery.fn.extend( { | ||||
queue: function( type, data ) { | ||||
var setter = 2; | ||||
if ( typeof type !== "string" ) { | ||||
data = type; | ||||
type = "fx"; | ||||
setter--; | ||||
} | ||||
if ( arguments.length < setter ) { | ||||
return jQuery.queue( this[ 0 ], type ); | ||||
} | ||||
return data === undefined ? | ||||
this : | ||||
this.each( function() { | ||||
var queue = jQuery.queue( this, type, data ); | ||||
// Ensure a hooks for this queue | ||||
jQuery._queueHooks( this, type ); | ||||
if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { | ||||
jQuery.dequeue( this, type ); | ||||
} | ||||
} ); | ||||
}, | ||||
dequeue: function( type ) { | ||||
return this.each( function() { | ||||
jQuery.dequeue( this, type ); | ||||
} ); | ||||
}, | ||||
clearQueue: function( type ) { | ||||
return this.queue( type || "fx", [] ); | ||||
}, | ||||
// Get a promise resolved when queues of a certain type | ||||
// are emptied (fx is the type by default) | ||||
promise: function( type, obj ) { | ||||
var tmp, | ||||
count = 1, | ||||
defer = jQuery.Deferred(), | ||||
elements = this, | ||||
i = this.length, | ||||
resolve = function() { | ||||
if ( !( --count ) ) { | ||||
defer.resolveWith( elements, [ elements ] ); | ||||
} | ||||
}; | ||||
if ( typeof type !== "string" ) { | ||||
obj = type; | ||||
type = undefined; | ||||
} | ||||
type = type || "fx"; | ||||
while ( i-- ) { | ||||
tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); | ||||
if ( tmp && tmp.empty ) { | ||||
count++; | ||||
tmp.empty.add( resolve ); | ||||
} | ||||
} | ||||
resolve(); | ||||
return defer.promise( obj ); | ||||
} | ||||
} ); | ||||
return jQuery; | ||||
} ); | ||||