mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
merge from dev
This commit is contained in:
parent
d96250df7f
commit
bcfee41a57
318 changed files with 54424 additions and 6419 deletions
29
dashboard-ui/bower_components/jquery/src/.jshintrc
vendored
Normal file
29
dashboard-ui/bower_components/jquery/src/.jshintrc
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"boss": true,
|
||||
"curly": true,
|
||||
"eqeqeq": true,
|
||||
"eqnull": true,
|
||||
"expr": true,
|
||||
"immed": true,
|
||||
"noarg": true,
|
||||
"quotmark": "double",
|
||||
"undef": true,
|
||||
"unused": true,
|
||||
|
||||
"sub": true,
|
||||
|
||||
// Support: IE < 10, Android < 4.1
|
||||
// The above browsers are failing a lot of tests in the ES5
|
||||
// test suite at http://test262.ecmascript.org.
|
||||
"es3": true,
|
||||
|
||||
"globals": {
|
||||
"window": true,
|
||||
"JSON": false,
|
||||
|
||||
"jQuery": true,
|
||||
"define": true,
|
||||
"module": true,
|
||||
"noGlobal": true
|
||||
}
|
||||
}
|
173
dashboard-ui/bower_components/jquery/src/ajax.js
vendored
173
dashboard-ui/bower_components/jquery/src/ajax.js
vendored
|
@ -1,23 +1,27 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/document",
|
||||
"./var/rnotwhite",
|
||||
"./ajax/var/location",
|
||||
"./ajax/var/nonce",
|
||||
"./ajax/var/rquery",
|
||||
|
||||
"./core/init",
|
||||
"./ajax/parseJSON",
|
||||
"./ajax/parseXML",
|
||||
"./event/trigger",
|
||||
"./deferred"
|
||||
], function( jQuery, rnotwhite, nonce, rquery ) {
|
||||
], function( jQuery, document, rnotwhite, location, nonce, rquery ) {
|
||||
|
||||
var
|
||||
rhash = /#.*$/,
|
||||
rts = /([?&])_=[^&]*/,
|
||||
rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
|
||||
|
||||
// #7653, #8125, #8152: local protocol detection
|
||||
rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
|
||||
rnoContent = /^(?:GET|HEAD)$/,
|
||||
rprotocol = /^\/\//,
|
||||
rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
|
||||
|
||||
/* Prefilters
|
||||
* 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
|
||||
|
@ -40,11 +44,9 @@ var
|
|||
// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
|
||||
allTypes = "*/".concat( "*" ),
|
||||
|
||||
// Document location
|
||||
ajaxLocation = window.location.href,
|
||||
|
||||
// Segment location into parts
|
||||
ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
|
||||
// Anchor tag for parsing the document origin
|
||||
originAnchor = document.createElement( "a" );
|
||||
originAnchor.href = location.href;
|
||||
|
||||
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
|
||||
function addToPrefiltersOrTransports( structure ) {
|
||||
|
@ -62,16 +64,18 @@ function addToPrefiltersOrTransports( structure ) {
|
|||
dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
|
||||
|
||||
if ( jQuery.isFunction( func ) ) {
|
||||
|
||||
// For each dataType in the dataTypeExpression
|
||||
while ( (dataType = dataTypes[i++]) ) {
|
||||
while ( ( dataType = dataTypes[ i++ ] ) ) {
|
||||
|
||||
// Prepend if requested
|
||||
if ( dataType[0] === "+" ) {
|
||||
if ( dataType[ 0 ] === "+" ) {
|
||||
dataType = dataType.slice( 1 ) || "*";
|
||||
(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
|
||||
( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
|
||||
|
||||
// Otherwise append
|
||||
} else {
|
||||
(structure[ dataType ] = structure[ dataType ] || []).push( func );
|
||||
( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -89,14 +93,16 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
|
|||
inspected[ dataType ] = true;
|
||||
jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
|
||||
var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
|
||||
if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
|
||||
if ( typeof dataTypeOrTransport === "string" &&
|
||||
!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
|
||||
|
||||
options.dataTypes.unshift( dataTypeOrTransport );
|
||||
inspect( dataTypeOrTransport );
|
||||
return false;
|
||||
} else if ( seekingTransport ) {
|
||||
return !( selected = dataTypeOrTransport );
|
||||
}
|
||||
});
|
||||
} );
|
||||
return selected;
|
||||
}
|
||||
|
||||
|
@ -112,7 +118,7 @@ function ajaxExtend( target, src ) {
|
|||
|
||||
for ( key in src ) {
|
||||
if ( src[ key ] !== undefined ) {
|
||||
( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
|
||||
( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
|
||||
}
|
||||
}
|
||||
if ( deep ) {
|
||||
|
@ -136,7 +142,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
|
|||
while ( dataTypes[ 0 ] === "*" ) {
|
||||
dataTypes.shift();
|
||||
if ( ct === undefined ) {
|
||||
ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
|
||||
ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,9 +160,10 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
|
|||
if ( dataTypes[ 0 ] in responses ) {
|
||||
finalDataType = dataTypes[ 0 ];
|
||||
} else {
|
||||
|
||||
// Try convertible dataTypes
|
||||
for ( type in responses ) {
|
||||
if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
|
||||
if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
|
||||
finalDataType = type;
|
||||
break;
|
||||
}
|
||||
|
@ -164,6 +171,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
|
|||
firstDataType = type;
|
||||
}
|
||||
}
|
||||
|
||||
// Or just use first one
|
||||
finalDataType = finalDataType || firstDataType;
|
||||
}
|
||||
|
@ -185,6 +193,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
|
|||
function ajaxConvert( s, response, jqXHR, isSuccess ) {
|
||||
var conv2, current, conv, tmp, prev,
|
||||
converters = {},
|
||||
|
||||
// Work with a copy of dataTypes in case we need to modify it for conversion
|
||||
dataTypes = s.dataTypes.slice();
|
||||
|
||||
|
@ -237,6 +246,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
|
|||
conv = converters[ prev + " " + tmp[ 0 ] ] ||
|
||||
converters[ "* " + tmp[ 0 ] ];
|
||||
if ( conv ) {
|
||||
|
||||
// Condense equivalence converters
|
||||
if ( conv === true ) {
|
||||
conv = converters[ conv2 ];
|
||||
|
@ -256,13 +266,16 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
|
|||
if ( conv !== true ) {
|
||||
|
||||
// Unless errors are allowed to bubble, catch and return them
|
||||
if ( conv && s[ "throws" ] ) {
|
||||
if ( conv && s.throws ) {
|
||||
response = conv( response );
|
||||
} else {
|
||||
try {
|
||||
response = conv( response );
|
||||
} catch ( e ) {
|
||||
return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
|
||||
return {
|
||||
state: "parsererror",
|
||||
error: conv ? e : "No conversion from " + prev + " to " + current
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -273,7 +286,7 @@ function ajaxConvert( s, response, jqXHR, isSuccess ) {
|
|||
return { state: "success", data: response };
|
||||
}
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
|
||||
// Counter for holding the number of active queries
|
||||
active: 0,
|
||||
|
@ -283,9 +296,9 @@ jQuery.extend({
|
|||
etag: {},
|
||||
|
||||
ajaxSettings: {
|
||||
url: ajaxLocation,
|
||||
url: location.href,
|
||||
type: "GET",
|
||||
isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
|
||||
isLocal: rlocalProtocol.test( location.protocol ),
|
||||
global: true,
|
||||
processData: true,
|
||||
async: true,
|
||||
|
@ -311,9 +324,9 @@ jQuery.extend({
|
|||
},
|
||||
|
||||
contents: {
|
||||
xml: /xml/,
|
||||
html: /html/,
|
||||
json: /json/
|
||||
xml: /\bxml\b/,
|
||||
html: /\bhtml/,
|
||||
json: /\bjson\b/
|
||||
},
|
||||
|
||||
responseFields: {
|
||||
|
@ -378,39 +391,55 @@ jQuery.extend({
|
|||
options = options || {};
|
||||
|
||||
var transport,
|
||||
|
||||
// URL without anti-cache param
|
||||
cacheURL,
|
||||
|
||||
// Response headers
|
||||
responseHeadersString,
|
||||
responseHeaders,
|
||||
|
||||
// timeout handle
|
||||
timeoutTimer,
|
||||
// Cross-domain detection vars
|
||||
parts,
|
||||
|
||||
// Url cleanup var
|
||||
urlAnchor,
|
||||
|
||||
// To know if global events are to be dispatched
|
||||
fireGlobals,
|
||||
|
||||
// Loop variable
|
||||
i,
|
||||
|
||||
// Create the final options object
|
||||
s = jQuery.ajaxSetup( {}, options ),
|
||||
|
||||
// Callbacks context
|
||||
callbackContext = s.context || s,
|
||||
|
||||
// Context for global events is callbackContext if it is a DOM node or jQuery collection
|
||||
globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
|
||||
jQuery( callbackContext ) :
|
||||
jQuery.event,
|
||||
globalEventContext = s.context &&
|
||||
( callbackContext.nodeType || callbackContext.jquery ) ?
|
||||
jQuery( callbackContext ) :
|
||||
jQuery.event,
|
||||
|
||||
// Deferreds
|
||||
deferred = jQuery.Deferred(),
|
||||
completeDeferred = jQuery.Callbacks("once memory"),
|
||||
completeDeferred = jQuery.Callbacks( "once memory" ),
|
||||
|
||||
// Status-dependent callbacks
|
||||
statusCode = s.statusCode || {},
|
||||
|
||||
// Headers (they are sent all at once)
|
||||
requestHeaders = {},
|
||||
requestHeadersNames = {},
|
||||
|
||||
// The jqXHR state
|
||||
state = 0,
|
||||
|
||||
// Default abort message
|
||||
strAbort = "canceled",
|
||||
|
||||
// Fake xhr
|
||||
jqXHR = {
|
||||
readyState: 0,
|
||||
|
@ -421,8 +450,8 @@ jQuery.extend({
|
|||
if ( state === 2 ) {
|
||||
if ( !responseHeaders ) {
|
||||
responseHeaders = {};
|
||||
while ( (match = rheaders.exec( responseHeadersString )) ) {
|
||||
responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
|
||||
while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
|
||||
responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
|
||||
}
|
||||
}
|
||||
match = responseHeaders[ key.toLowerCase() ];
|
||||
|
@ -459,10 +488,12 @@ jQuery.extend({
|
|||
if ( map ) {
|
||||
if ( state < 2 ) {
|
||||
for ( code in map ) {
|
||||
|
||||
// Lazy-add the new callback in a way that preserves old ones
|
||||
statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
|
||||
}
|
||||
} else {
|
||||
|
||||
// Execute the appropriate callbacks
|
||||
jqXHR.always( map[ jqXHR.status ] );
|
||||
}
|
||||
|
@ -490,8 +521,8 @@ jQuery.extend({
|
|||
// Add protocol if not provided (prefilters might expect it)
|
||||
// Handle falsy url in the settings object (#10093: consistency with old signature)
|
||||
// We also use the url parameter if available
|
||||
s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
|
||||
.replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
|
||||
s.url = ( ( url || s.url || location.href ) + "" ).replace( rhash, "" )
|
||||
.replace( rprotocol, location.protocol + "//" );
|
||||
|
||||
// Alias method option to type as per ticket #12004
|
||||
s.type = options.method || options.type || s.method || s.type;
|
||||
|
@ -499,14 +530,26 @@ jQuery.extend({
|
|||
// Extract dataTypes list
|
||||
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
|
||||
|
||||
// A cross-domain request is in order when we have a protocol:host:port mismatch
|
||||
// A cross-domain request is in order when the origin doesn't match the current origin.
|
||||
if ( s.crossDomain == null ) {
|
||||
parts = rurl.exec( s.url.toLowerCase() );
|
||||
s.crossDomain = !!( parts &&
|
||||
( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
|
||||
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
|
||||
( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
|
||||
);
|
||||
urlAnchor = document.createElement( "a" );
|
||||
|
||||
// Support: IE8-11+
|
||||
// IE throws exception if url is malformed, e.g. http://example.com:80x/
|
||||
try {
|
||||
urlAnchor.href = s.url;
|
||||
|
||||
// Support: IE8-11+
|
||||
// Anchor's host property isn't correctly set when s.url is relative
|
||||
urlAnchor.href = urlAnchor.href;
|
||||
s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
|
||||
urlAnchor.protocol + "//" + urlAnchor.host;
|
||||
} catch ( e ) {
|
||||
|
||||
// If there is an error parsing the URL, assume it is crossDomain,
|
||||
// it can be rejected by the transport if it is invalid
|
||||
s.crossDomain = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert data if not already a string
|
||||
|
@ -528,7 +571,7 @@ jQuery.extend({
|
|||
|
||||
// Watch for a new set of requests
|
||||
if ( fireGlobals && jQuery.active++ === 0 ) {
|
||||
jQuery.event.trigger("ajaxStart");
|
||||
jQuery.event.trigger( "ajaxStart" );
|
||||
}
|
||||
|
||||
// Uppercase the type
|
||||
|
@ -547,6 +590,7 @@ jQuery.extend({
|
|||
// If data is available, append data to url
|
||||
if ( s.data ) {
|
||||
cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
|
||||
|
||||
// #9682: remove data so that it's not used in an eventual retry
|
||||
delete s.data;
|
||||
}
|
||||
|
@ -581,8 +625,9 @@ jQuery.extend({
|
|||
// Set the Accepts header for the server, depending on the dataType
|
||||
jqXHR.setRequestHeader(
|
||||
"Accept",
|
||||
s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
|
||||
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
|
||||
s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
|
||||
s.accepts[ s.dataTypes[ 0 ] ] +
|
||||
( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
|
||||
s.accepts[ "*" ]
|
||||
);
|
||||
|
||||
|
@ -592,7 +637,9 @@ jQuery.extend({
|
|||
}
|
||||
|
||||
// Allow custom headers/mimetypes and early abort
|
||||
if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
|
||||
if ( s.beforeSend &&
|
||||
( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
|
||||
|
||||
// Abort if not done already and return
|
||||
return jqXHR.abort();
|
||||
}
|
||||
|
@ -618,10 +665,16 @@ jQuery.extend({
|
|||
if ( fireGlobals ) {
|
||||
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
|
||||
}
|
||||
|
||||
// If request was aborted inside ajaxSend, stop there
|
||||
if ( state === 2 ) {
|
||||
return jqXHR;
|
||||
}
|
||||
|
||||
// Timeout
|
||||
if ( s.async && s.timeout > 0 ) {
|
||||
timeoutTimer = setTimeout(function() {
|
||||
jqXHR.abort("timeout");
|
||||
timeoutTimer = window.setTimeout( function() {
|
||||
jqXHR.abort( "timeout" );
|
||||
}, s.timeout );
|
||||
}
|
||||
|
||||
|
@ -629,9 +682,11 @@ jQuery.extend({
|
|||
state = 1;
|
||||
transport.send( requestHeaders, done );
|
||||
} catch ( e ) {
|
||||
|
||||
// Propagate exception as error if not done
|
||||
if ( state < 2 ) {
|
||||
done( -1, e );
|
||||
|
||||
// Simply rethrow otherwise
|
||||
} else {
|
||||
throw e;
|
||||
|
@ -654,7 +709,7 @@ jQuery.extend({
|
|||
|
||||
// Clear timeout if it exists
|
||||
if ( timeoutTimer ) {
|
||||
clearTimeout( timeoutTimer );
|
||||
window.clearTimeout( timeoutTimer );
|
||||
}
|
||||
|
||||
// Dereference transport for early garbage collection
|
||||
|
@ -683,11 +738,11 @@ jQuery.extend({
|
|||
|
||||
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
|
||||
if ( s.ifModified ) {
|
||||
modified = jqXHR.getResponseHeader("Last-Modified");
|
||||
modified = jqXHR.getResponseHeader( "Last-Modified" );
|
||||
if ( modified ) {
|
||||
jQuery.lastModified[ cacheURL ] = modified;
|
||||
}
|
||||
modified = jqXHR.getResponseHeader("etag");
|
||||
modified = jqXHR.getResponseHeader( "etag" );
|
||||
if ( modified ) {
|
||||
jQuery.etag[ cacheURL ] = modified;
|
||||
}
|
||||
|
@ -709,6 +764,7 @@ jQuery.extend({
|
|||
isSuccess = !error;
|
||||
}
|
||||
} else {
|
||||
|
||||
// Extract error from statusText and normalize for non-aborts
|
||||
error = statusText;
|
||||
if ( status || !statusText ) {
|
||||
|
@ -744,9 +800,10 @@ jQuery.extend({
|
|||
|
||||
if ( fireGlobals ) {
|
||||
globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
|
||||
|
||||
// Handle the global AJAX counter
|
||||
if ( !( --jQuery.active ) ) {
|
||||
jQuery.event.trigger("ajaxStop");
|
||||
jQuery.event.trigger( "ajaxStop" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -761,10 +818,11 @@ jQuery.extend({
|
|||
getScript: function( url, callback ) {
|
||||
return jQuery.get( url, undefined, callback, "script" );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.each( [ "get", "post" ], function( i, method ) {
|
||||
jQuery[ method ] = function( url, data, callback, type ) {
|
||||
|
||||
// Shift arguments if data argument was omitted
|
||||
if ( jQuery.isFunction( data ) ) {
|
||||
type = type || callback;
|
||||
|
@ -772,15 +830,16 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
|
|||
data = undefined;
|
||||
}
|
||||
|
||||
return jQuery.ajax({
|
||||
// The url can be an options object (which then must have .url)
|
||||
return jQuery.ajax( jQuery.extend( {
|
||||
url: url,
|
||||
type: method,
|
||||
dataType: type,
|
||||
data: data,
|
||||
success: callback
|
||||
});
|
||||
}, jQuery.isPlainObject( url ) && url ) );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"./var/nonce",
|
||||
"./var/rquery",
|
||||
|
@ -9,14 +9,14 @@ var oldCallbacks = [],
|
|||
rjsonp = /(=)\?(?=&|$)|\?\?/;
|
||||
|
||||
// Default jsonp settings
|
||||
jQuery.ajaxSetup({
|
||||
jQuery.ajaxSetup( {
|
||||
jsonp: "callback",
|
||||
jsonpCallback: function() {
|
||||
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
|
||||
this[ callback ] = true;
|
||||
return callback;
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
// Detect, normalize options and install callbacks for jsonp requests
|
||||
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
||||
|
@ -24,7 +24,10 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
|||
var callbackName, overwritten, responseContainer,
|
||||
jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
|
||||
"url" :
|
||||
typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
|
||||
typeof s.data === "string" &&
|
||||
( s.contentType || "" )
|
||||
.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
|
||||
rjsonp.test( s.data ) && "data"
|
||||
);
|
||||
|
||||
// Handle iff the expected data type is "jsonp" or we have a parameter to set
|
||||
|
@ -43,14 +46,14 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
|||
}
|
||||
|
||||
// Use data converter to retrieve json after script execution
|
||||
s.converters["script json"] = function() {
|
||||
s.converters[ "script json" ] = function() {
|
||||
if ( !responseContainer ) {
|
||||
jQuery.error( callbackName + " was not called" );
|
||||
}
|
||||
return responseContainer[ 0 ];
|
||||
};
|
||||
|
||||
// force json dataType
|
||||
// Force json dataType
|
||||
s.dataTypes[ 0 ] = "json";
|
||||
|
||||
// Install callback
|
||||
|
@ -60,16 +63,24 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
|||
};
|
||||
|
||||
// Clean-up function (fires after converters)
|
||||
jqXHR.always(function() {
|
||||
// Restore preexisting value
|
||||
window[ callbackName ] = overwritten;
|
||||
jqXHR.always( function() {
|
||||
|
||||
// If previous value didn't exist - remove it
|
||||
if ( overwritten === undefined ) {
|
||||
jQuery( window ).removeProp( callbackName );
|
||||
|
||||
// Otherwise restore preexisting value
|
||||
} else {
|
||||
window[ callbackName ] = overwritten;
|
||||
}
|
||||
|
||||
// Save back as free
|
||||
if ( s[ callbackName ] ) {
|
||||
// make sure that re-using the options doesn't screw things around
|
||||
|
||||
// Make sure that re-using the options doesn't screw things around
|
||||
s.jsonpCallback = originalSettings.jsonpCallback;
|
||||
|
||||
// save the callback name for future use
|
||||
// Save the callback name for future use
|
||||
oldCallbacks.push( callbackName );
|
||||
}
|
||||
|
||||
|
@ -79,11 +90,11 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
|||
}
|
||||
|
||||
responseContainer = overwritten = undefined;
|
||||
});
|
||||
} );
|
||||
|
||||
// Delegate to script
|
||||
return "script";
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../core/parseHTML",
|
||||
"../ajax",
|
||||
"../traversing",
|
||||
"../manipulation",
|
||||
"../selector",
|
||||
|
||||
// Optional event/alias dependency
|
||||
"../event/alias"
|
||||
], function( jQuery ) {
|
||||
|
@ -22,9 +23,9 @@ jQuery.fn.load = function( url, params, callback ) {
|
|||
|
||||
var selector, type, response,
|
||||
self = this,
|
||||
off = url.indexOf(" ");
|
||||
off = url.indexOf( " " );
|
||||
|
||||
if ( off >= 0 ) {
|
||||
if ( off > -1 ) {
|
||||
selector = jQuery.trim( url.slice( off ) );
|
||||
url = url.slice( 0, off );
|
||||
}
|
||||
|
@ -43,14 +44,16 @@ jQuery.fn.load = function( url, params, callback ) {
|
|||
|
||||
// If we have elements to modify, make the request
|
||||
if ( self.length > 0 ) {
|
||||
jQuery.ajax({
|
||||
jQuery.ajax( {
|
||||
url: url,
|
||||
|
||||
// if "type" variable is undefined, then "GET" method will be used
|
||||
type: type,
|
||||
// If "type" variable is undefined, then "GET" method will be used.
|
||||
// Make value of this field explicit since
|
||||
// user can override it through ajaxSetup method
|
||||
type: type || "GET",
|
||||
dataType: "html",
|
||||
data: params
|
||||
}).done(function( responseText ) {
|
||||
} ).done( function( responseText ) {
|
||||
|
||||
// Save response for use in complete callback
|
||||
response = arguments;
|
||||
|
@ -59,17 +62,22 @@ jQuery.fn.load = function( url, params, callback ) {
|
|||
|
||||
// If a selector was specified, locate the right elements in a dummy div
|
||||
// Exclude scripts to avoid IE 'Permission Denied' errors
|
||||
jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
|
||||
jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
|
||||
|
||||
// Otherwise use the full result
|
||||
responseText );
|
||||
|
||||
}).complete( callback && function( jqXHR, status ) {
|
||||
self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
|
||||
});
|
||||
// If the request succeeds, this function gets "data", "status", "jqXHR"
|
||||
// but they are ignored because response was set above.
|
||||
// If it fails, this function gets "jqXHR", "status", "error"
|
||||
} ).always( callback && function( jqXHR, status ) {
|
||||
self.each( function() {
|
||||
callback.apply( self, response || [ jqXHR.responseText, status, jqXHR ] );
|
||||
} );
|
||||
} );
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
|
@ -10,4 +10,4 @@ jQuery.parseJSON = function( data ) {
|
|||
|
||||
return jQuery.parseJSON;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
define([
|
||||
define( [
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
// Cross-browser xml parsing
|
||||
jQuery.parseXML = function( data ) {
|
||||
var xml, tmp;
|
||||
var xml;
|
||||
if ( !data || typeof data !== "string" ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Support: IE9
|
||||
try {
|
||||
tmp = new DOMParser();
|
||||
xml = tmp.parseFromString( data, "text/xml" );
|
||||
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
|
||||
} catch ( e ) {
|
||||
xml = undefined;
|
||||
}
|
||||
|
@ -25,4 +24,4 @@ jQuery.parseXML = function( data ) {
|
|||
|
||||
return jQuery.parseXML;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"../ajax"
|
||||
], function( jQuery ) {
|
||||
], function( jQuery, document ) {
|
||||
|
||||
// Install script dataType
|
||||
jQuery.ajaxSetup({
|
||||
jQuery.ajaxSetup( {
|
||||
accepts: {
|
||||
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
|
||||
script: "text/javascript, application/javascript, " +
|
||||
"application/ecmascript, application/x-ecmascript"
|
||||
},
|
||||
contents: {
|
||||
script: /(?:java|ecma)script/
|
||||
script: /\b(?:java|ecma)script\b/
|
||||
},
|
||||
converters: {
|
||||
"text script": function( text ) {
|
||||
|
@ -17,7 +19,7 @@ jQuery.ajaxSetup({
|
|||
return text;
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
// Handle cache's special case and crossDomain
|
||||
jQuery.ajaxPrefilter( "script", function( s ) {
|
||||
|
@ -27,20 +29,20 @@ jQuery.ajaxPrefilter( "script", function( s ) {
|
|||
if ( s.crossDomain ) {
|
||||
s.type = "GET";
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
// Bind script tag hack transport
|
||||
jQuery.ajaxTransport( "script", function( s ) {
|
||||
|
||||
// This transport only deals with cross domain requests
|
||||
if ( s.crossDomain ) {
|
||||
var script, callback;
|
||||
return {
|
||||
send: function( _, complete ) {
|
||||
script = jQuery("<script>").prop({
|
||||
async: true,
|
||||
script = jQuery( "<script>" ).prop( {
|
||||
charset: s.scriptCharset,
|
||||
src: s.url
|
||||
}).on(
|
||||
} ).on(
|
||||
"load error",
|
||||
callback = function( evt ) {
|
||||
script.remove();
|
||||
|
@ -50,6 +52,8 @@ jQuery.ajaxTransport( "script", function( s ) {
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Use native DOM manipulation to avoid our domManip AJAX trickery
|
||||
document.head.appendChild( script[ 0 ] );
|
||||
},
|
||||
abort: function() {
|
||||
|
@ -59,6 +63,6 @@ jQuery.ajaxTransport( "script", function( s ) {
|
|||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
115
dashboard-ui/bower_components/jquery/src/ajax/xhr.js
vendored
115
dashboard-ui/bower_components/jquery/src/ajax/xhr.js
vendored
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/support",
|
||||
"../ajax"
|
||||
|
@ -6,47 +6,41 @@ define([
|
|||
|
||||
jQuery.ajaxSettings.xhr = function() {
|
||||
try {
|
||||
return new XMLHttpRequest();
|
||||
} catch( e ) {}
|
||||
return new window.XMLHttpRequest();
|
||||
} catch ( e ) {}
|
||||
};
|
||||
|
||||
var xhrId = 0,
|
||||
xhrCallbacks = {},
|
||||
xhrSuccessStatus = {
|
||||
// file protocol always yields status code 0, assume 200
|
||||
var xhrSuccessStatus = {
|
||||
|
||||
// File protocol always yields status code 0, assume 200
|
||||
0: 200,
|
||||
|
||||
// Support: IE9
|
||||
// #1450: sometimes IE returns 1223 when it should be 204
|
||||
1223: 204
|
||||
},
|
||||
xhrSupported = jQuery.ajaxSettings.xhr();
|
||||
|
||||
// Support: IE9
|
||||
// Open requests must be manually aborted on unload (#5280)
|
||||
// See https://support.microsoft.com/kb/2856746 for more info
|
||||
if ( window.attachEvent ) {
|
||||
window.attachEvent( "onunload", function() {
|
||||
for ( var key in xhrCallbacks ) {
|
||||
xhrCallbacks[ key ]();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
|
||||
support.ajax = xhrSupported = !!xhrSupported;
|
||||
|
||||
jQuery.ajaxTransport(function( options ) {
|
||||
var callback;
|
||||
jQuery.ajaxTransport( function( options ) {
|
||||
var callback, errorCallback;
|
||||
|
||||
// Cross domain only allowed if supported through XMLHttpRequest
|
||||
if ( support.cors || xhrSupported && !options.crossDomain ) {
|
||||
return {
|
||||
send: function( headers, complete ) {
|
||||
var i,
|
||||
xhr = options.xhr(),
|
||||
id = ++xhrId;
|
||||
xhr = options.xhr();
|
||||
|
||||
xhr.open( options.type, options.url, options.async, options.username, options.password );
|
||||
xhr.open(
|
||||
options.type,
|
||||
options.url,
|
||||
options.async,
|
||||
options.username,
|
||||
options.password
|
||||
);
|
||||
|
||||
// Apply custom fields if provided
|
||||
if ( options.xhrFields ) {
|
||||
|
@ -65,8 +59,8 @@ jQuery.ajaxTransport(function( options ) {
|
|||
// akin to a jigsaw puzzle, we simply never set it to be sure.
|
||||
// (it can always be set on a per-request basis or even using ajaxSetup)
|
||||
// For same-domain requests, won't change header if already provided.
|
||||
if ( !options.crossDomain && !headers["X-Requested-With"] ) {
|
||||
headers["X-Requested-With"] = "XMLHttpRequest";
|
||||
if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
|
||||
headers[ "X-Requested-With" ] = "XMLHttpRequest";
|
||||
}
|
||||
|
||||
// Set headers
|
||||
|
@ -78,27 +72,38 @@ jQuery.ajaxTransport(function( options ) {
|
|||
callback = function( type ) {
|
||||
return function() {
|
||||
if ( callback ) {
|
||||
delete xhrCallbacks[ id ];
|
||||
callback = xhr.onload = xhr.onerror = null;
|
||||
callback = errorCallback = xhr.onload =
|
||||
xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
|
||||
|
||||
if ( type === "abort" ) {
|
||||
xhr.abort();
|
||||
} else if ( type === "error" ) {
|
||||
complete(
|
||||
// file: protocol always yields status 0; see #8605, #14207
|
||||
xhr.status,
|
||||
xhr.statusText
|
||||
);
|
||||
|
||||
// Support: IE9
|
||||
// On a manual native abort, IE9 throws
|
||||
// errors on any property access that is not readyState
|
||||
if ( typeof xhr.status !== "number" ) {
|
||||
complete( 0, "error" );
|
||||
} else {
|
||||
complete(
|
||||
|
||||
// File: protocol always yields status 0; see #8605, #14207
|
||||
xhr.status,
|
||||
xhr.statusText
|
||||
);
|
||||
}
|
||||
} else {
|
||||
complete(
|
||||
xhrSuccessStatus[ xhr.status ] || xhr.status,
|
||||
xhr.statusText,
|
||||
// Support: IE9
|
||||
// Accessing binary-data responseText throws an exception
|
||||
// (#11426)
|
||||
typeof xhr.responseText === "string" ? {
|
||||
text: xhr.responseText
|
||||
} : undefined,
|
||||
|
||||
// Support: IE9 only
|
||||
// IE9 has no XHR2 but throws on binary (trac-11426)
|
||||
// For XHR2 non-text, let the caller handle it (gh-2498)
|
||||
( xhr.responseType || "text" ) !== "text" ||
|
||||
typeof xhr.responseText !== "string" ?
|
||||
{ binary: xhr.response } :
|
||||
{ text: xhr.responseText },
|
||||
xhr.getAllResponseHeaders()
|
||||
);
|
||||
}
|
||||
|
@ -108,15 +113,41 @@ jQuery.ajaxTransport(function( options ) {
|
|||
|
||||
// Listen to events
|
||||
xhr.onload = callback();
|
||||
xhr.onerror = callback("error");
|
||||
errorCallback = xhr.onerror = callback( "error" );
|
||||
|
||||
// Support: IE9
|
||||
// Use onreadystatechange to replace onabort
|
||||
// to handle uncaught aborts
|
||||
if ( xhr.onabort !== undefined ) {
|
||||
xhr.onabort = errorCallback;
|
||||
} else {
|
||||
xhr.onreadystatechange = function() {
|
||||
|
||||
// Check readyState before timeout as it changes
|
||||
if ( xhr.readyState === 4 ) {
|
||||
|
||||
// Allow onerror to be called first,
|
||||
// but that will not handle a native abort
|
||||
// Also, save errorCallback to a variable
|
||||
// as xhr.onerror cannot be accessed
|
||||
window.setTimeout( function() {
|
||||
if ( callback ) {
|
||||
errorCallback();
|
||||
}
|
||||
} );
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Create the abort callback
|
||||
callback = xhrCallbacks[ id ] = callback("abort");
|
||||
callback = callback( "abort" );
|
||||
|
||||
try {
|
||||
|
||||
// Do send the request (this may raise an exception)
|
||||
xhr.send( options.hasContent && options.data || null );
|
||||
} catch ( e ) {
|
||||
|
||||
// #14683: Only rethrow if this hasn't been notified as an error yet
|
||||
if ( callback ) {
|
||||
throw e;
|
||||
|
@ -131,6 +162,6 @@ jQuery.ajaxTransport(function( options ) {
|
|||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./attributes/attr",
|
||||
"./attributes/prop",
|
||||
|
@ -8,4 +8,4 @@ define([
|
|||
|
||||
// Return jQuery for attributes-only inclusion
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,39 +1,38 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/rnotwhite",
|
||||
"../var/strundefined",
|
||||
"../core/access",
|
||||
"./support",
|
||||
"../var/rnotwhite",
|
||||
"../selector"
|
||||
], function( jQuery, rnotwhite, strundefined, access, support ) {
|
||||
], function( jQuery, access, support, rnotwhite ) {
|
||||
|
||||
var nodeHook, boolHook,
|
||||
var boolHook,
|
||||
attrHandle = jQuery.expr.attrHandle;
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
attr: function( name, value ) {
|
||||
return access( this, jQuery.attr, name, value, arguments.length > 1 );
|
||||
},
|
||||
|
||||
removeAttr: function( name ) {
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
jQuery.removeAttr( this, name );
|
||||
});
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
attr: function( elem, name, value ) {
|
||||
var hooks, ret,
|
||||
var ret, hooks,
|
||||
nType = elem.nodeType;
|
||||
|
||||
// don't get/set attributes on text, comment and attribute nodes
|
||||
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
|
||||
// Don't get/set attributes on text, comment and attribute nodes
|
||||
if ( nType === 3 || nType === 8 || nType === 2 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Fallback to prop when attributes are not supported
|
||||
if ( typeof elem.getAttribute === strundefined ) {
|
||||
if ( typeof elem.getAttribute === "undefined" ) {
|
||||
return jQuery.prop( elem, name, value );
|
||||
}
|
||||
|
||||
|
@ -42,53 +41,32 @@ jQuery.extend({
|
|||
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
|
||||
name = name.toLowerCase();
|
||||
hooks = jQuery.attrHooks[ name ] ||
|
||||
( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
|
||||
( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
|
||||
}
|
||||
|
||||
if ( value !== undefined ) {
|
||||
|
||||
if ( value === null ) {
|
||||
jQuery.removeAttr( elem, name );
|
||||
return;
|
||||
}
|
||||
|
||||
} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
|
||||
if ( hooks && "set" in hooks &&
|
||||
( ret = hooks.set( elem, value, name ) ) !== undefined ) {
|
||||
return ret;
|
||||
|
||||
} else {
|
||||
elem.setAttribute( name, value + "" );
|
||||
return value;
|
||||
}
|
||||
|
||||
} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
|
||||
elem.setAttribute( name, value + "" );
|
||||
return value;
|
||||
}
|
||||
|
||||
if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
|
||||
return ret;
|
||||
|
||||
} else {
|
||||
ret = jQuery.find.attr( elem, name );
|
||||
|
||||
// Non-existent attributes return null, we normalize to undefined
|
||||
return ret == null ?
|
||||
undefined :
|
||||
ret;
|
||||
}
|
||||
},
|
||||
|
||||
removeAttr: function( elem, value ) {
|
||||
var name, propName,
|
||||
i = 0,
|
||||
attrNames = value && value.match( rnotwhite );
|
||||
ret = jQuery.find.attr( elem, name );
|
||||
|
||||
if ( attrNames && elem.nodeType === 1 ) {
|
||||
while ( (name = attrNames[i++]) ) {
|
||||
propName = jQuery.propFix[ name ] || name;
|
||||
|
||||
// Boolean attributes get special treatment (#10870)
|
||||
if ( jQuery.expr.match.bool.test( name ) ) {
|
||||
// Set corresponding property to false
|
||||
elem[ propName ] = false;
|
||||
}
|
||||
|
||||
elem.removeAttribute( name );
|
||||
}
|
||||
}
|
||||
// Non-existent attributes return null, we normalize to undefined
|
||||
return ret == null ? undefined : ret;
|
||||
},
|
||||
|
||||
attrHooks: {
|
||||
|
@ -105,13 +83,35 @@ jQuery.extend({
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
removeAttr: function( elem, value ) {
|
||||
var name, propName,
|
||||
i = 0,
|
||||
attrNames = value && value.match( rnotwhite );
|
||||
|
||||
if ( attrNames && elem.nodeType === 1 ) {
|
||||
while ( ( name = attrNames[ i++ ] ) ) {
|
||||
propName = jQuery.propFix[ name ] || name;
|
||||
|
||||
// Boolean attributes get special treatment (#10870)
|
||||
if ( jQuery.expr.match.bool.test( name ) ) {
|
||||
|
||||
// Set corresponding property to false
|
||||
elem[ propName ] = false;
|
||||
}
|
||||
|
||||
elem.removeAttribute( name );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
// Hooks for boolean attributes
|
||||
boolHook = {
|
||||
set: function( elem, value, name ) {
|
||||
if ( value === false ) {
|
||||
|
||||
// Remove boolean attributes when set to false
|
||||
jQuery.removeAttr( elem, name );
|
||||
} else {
|
||||
|
@ -126,6 +126,7 @@ jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name )
|
|||
attrHandle[ name ] = function( elem, name, isXML ) {
|
||||
var ret, handle;
|
||||
if ( !isXML ) {
|
||||
|
||||
// Avoid an infinite loop by temporarily removing this function from the getter
|
||||
handle = attrHandle[ name ];
|
||||
attrHandle[ name ] = ret;
|
||||
|
@ -136,6 +137,6 @@ jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name )
|
|||
}
|
||||
return ret;
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,49 +1,47 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/rnotwhite",
|
||||
"../var/strundefined",
|
||||
"../data/var/data_priv",
|
||||
"../data/var/dataPriv",
|
||||
"../core/init"
|
||||
], function( jQuery, rnotwhite, strundefined, data_priv ) {
|
||||
], function( jQuery, rnotwhite, dataPriv ) {
|
||||
|
||||
var rclass = /[\t\r\n\f]/g;
|
||||
|
||||
jQuery.fn.extend({
|
||||
function getClass( elem ) {
|
||||
return elem.getAttribute && elem.getAttribute( "class" ) || "";
|
||||
}
|
||||
|
||||
jQuery.fn.extend( {
|
||||
addClass: function( value ) {
|
||||
var classes, elem, cur, clazz, j, finalValue,
|
||||
proceed = typeof value === "string" && value,
|
||||
i = 0,
|
||||
len = this.length;
|
||||
var classes, elem, cur, curValue, clazz, j, finalValue,
|
||||
i = 0;
|
||||
|
||||
if ( jQuery.isFunction( value ) ) {
|
||||
return this.each(function( j ) {
|
||||
jQuery( this ).addClass( value.call( this, j, this.className ) );
|
||||
});
|
||||
return this.each( function( j ) {
|
||||
jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
|
||||
} );
|
||||
}
|
||||
|
||||
if ( proceed ) {
|
||||
// The disjunction here is for better compressibility (see removeClass)
|
||||
classes = ( value || "" ).match( rnotwhite ) || [];
|
||||
if ( typeof value === "string" && value ) {
|
||||
classes = value.match( rnotwhite ) || [];
|
||||
|
||||
for ( ; i < len; i++ ) {
|
||||
elem = this[ i ];
|
||||
cur = elem.nodeType === 1 && ( elem.className ?
|
||||
( " " + elem.className + " " ).replace( rclass, " " ) :
|
||||
" "
|
||||
);
|
||||
while ( ( elem = this[ i++ ] ) ) {
|
||||
curValue = getClass( elem );
|
||||
cur = elem.nodeType === 1 &&
|
||||
( " " + curValue + " " ).replace( rclass, " " );
|
||||
|
||||
if ( cur ) {
|
||||
j = 0;
|
||||
while ( (clazz = classes[j++]) ) {
|
||||
while ( ( clazz = classes[ j++ ] ) ) {
|
||||
if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
|
||||
cur += clazz + " ";
|
||||
}
|
||||
}
|
||||
|
||||
// only assign if different to avoid unneeded rendering.
|
||||
// Only assign if different to avoid unneeded rendering.
|
||||
finalValue = jQuery.trim( cur );
|
||||
if ( elem.className !== finalValue ) {
|
||||
elem.className = finalValue;
|
||||
if ( curValue !== finalValue ) {
|
||||
elem.setAttribute( "class", finalValue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -53,40 +51,43 @@ jQuery.fn.extend({
|
|||
},
|
||||
|
||||
removeClass: function( value ) {
|
||||
var classes, elem, cur, clazz, j, finalValue,
|
||||
proceed = arguments.length === 0 || typeof value === "string" && value,
|
||||
i = 0,
|
||||
len = this.length;
|
||||
var classes, elem, cur, curValue, clazz, j, finalValue,
|
||||
i = 0;
|
||||
|
||||
if ( jQuery.isFunction( value ) ) {
|
||||
return this.each(function( j ) {
|
||||
jQuery( this ).removeClass( value.call( this, j, this.className ) );
|
||||
});
|
||||
return this.each( function( j ) {
|
||||
jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
|
||||
} );
|
||||
}
|
||||
if ( proceed ) {
|
||||
classes = ( value || "" ).match( rnotwhite ) || [];
|
||||
|
||||
for ( ; i < len; i++ ) {
|
||||
elem = this[ i ];
|
||||
if ( !arguments.length ) {
|
||||
return this.attr( "class", "" );
|
||||
}
|
||||
|
||||
if ( typeof value === "string" && value ) {
|
||||
classes = value.match( rnotwhite ) || [];
|
||||
|
||||
while ( ( elem = this[ i++ ] ) ) {
|
||||
curValue = getClass( elem );
|
||||
|
||||
// This expression is here for better compressibility (see addClass)
|
||||
cur = elem.nodeType === 1 && ( elem.className ?
|
||||
( " " + elem.className + " " ).replace( rclass, " " ) :
|
||||
""
|
||||
);
|
||||
cur = elem.nodeType === 1 &&
|
||||
( " " + curValue + " " ).replace( rclass, " " );
|
||||
|
||||
if ( cur ) {
|
||||
j = 0;
|
||||
while ( (clazz = classes[j++]) ) {
|
||||
while ( ( clazz = classes[ j++ ] ) ) {
|
||||
|
||||
// Remove *all* instances
|
||||
while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
|
||||
while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
|
||||
cur = cur.replace( " " + clazz + " ", " " );
|
||||
}
|
||||
}
|
||||
|
||||
// Only assign if different to avoid unneeded rendering.
|
||||
finalValue = value ? jQuery.trim( cur ) : "";
|
||||
if ( elem.className !== finalValue ) {
|
||||
elem.className = finalValue;
|
||||
finalValue = jQuery.trim( cur );
|
||||
if ( curValue !== finalValue ) {
|
||||
elem.setAttribute( "class", finalValue );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -103,20 +104,26 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
if ( jQuery.isFunction( value ) ) {
|
||||
return this.each(function( i ) {
|
||||
jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
|
||||
});
|
||||
return this.each( function( i ) {
|
||||
jQuery( this ).toggleClass(
|
||||
value.call( this, i, getClass( this ), stateVal ),
|
||||
stateVal
|
||||
);
|
||||
} );
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
if ( type === "string" ) {
|
||||
// Toggle individual class names
|
||||
var className,
|
||||
i = 0,
|
||||
self = jQuery( this ),
|
||||
classNames = value.match( rnotwhite ) || [];
|
||||
return this.each( function() {
|
||||
var className, i, self, classNames;
|
||||
|
||||
if ( type === "string" ) {
|
||||
|
||||
// Toggle individual class names
|
||||
i = 0;
|
||||
self = jQuery( this );
|
||||
classNames = value.match( rnotwhite ) || [];
|
||||
|
||||
while ( ( className = classNames[ i++ ] ) ) {
|
||||
|
||||
while ( (className = classNames[ i++ ]) ) {
|
||||
// Check each className given, space separated list
|
||||
if ( self.hasClass( className ) ) {
|
||||
self.removeClass( className );
|
||||
|
@ -126,33 +133,45 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
// Toggle whole class name
|
||||
} else if ( type === strundefined || type === "boolean" ) {
|
||||
if ( this.className ) {
|
||||
// store className if set
|
||||
data_priv.set( this, "__className__", this.className );
|
||||
} else if ( value === undefined || type === "boolean" ) {
|
||||
className = getClass( this );
|
||||
if ( className ) {
|
||||
|
||||
// Store className if set
|
||||
dataPriv.set( this, "__className__", className );
|
||||
}
|
||||
|
||||
// If the element has a class name or if we're passed `false`,
|
||||
// then remove the whole classname (if there was one, the above saved it).
|
||||
// Otherwise bring back whatever was previously saved (if anything),
|
||||
// falling back to the empty string if nothing was stored.
|
||||
this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || "";
|
||||
if ( this.setAttribute ) {
|
||||
this.setAttribute( "class",
|
||||
className || value === false ?
|
||||
"" :
|
||||
dataPriv.get( this, "__className__" ) || ""
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
hasClass: function( selector ) {
|
||||
var className = " " + selector + " ",
|
||||
i = 0,
|
||||
l = this.length;
|
||||
for ( ; i < l; i++ ) {
|
||||
if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
|
||||
var className, elem,
|
||||
i = 0;
|
||||
|
||||
className = " " + selector + " ";
|
||||
while ( ( elem = this[ i++ ] ) ) {
|
||||
if ( elem.nodeType === 1 &&
|
||||
( " " + getClass( elem ) + " " ).replace( rclass, " " )
|
||||
.indexOf( className ) > -1
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,68 +1,83 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../core/access",
|
||||
"./support"
|
||||
"./support",
|
||||
"../selector"
|
||||
], function( jQuery, access, support ) {
|
||||
|
||||
var rfocusable = /^(?:input|select|textarea|button)$/i;
|
||||
var rfocusable = /^(?:input|select|textarea|button)$/i,
|
||||
rclickable = /^(?:a|area)$/i;
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
prop: function( name, value ) {
|
||||
return access( this, jQuery.prop, name, value, arguments.length > 1 );
|
||||
},
|
||||
|
||||
removeProp: function( name ) {
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
delete this[ jQuery.propFix[ name ] || name ];
|
||||
});
|
||||
} );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery.extend({
|
||||
propFix: {
|
||||
"for": "htmlFor",
|
||||
"class": "className"
|
||||
},
|
||||
} );
|
||||
|
||||
jQuery.extend( {
|
||||
prop: function( elem, name, value ) {
|
||||
var ret, hooks, notxml,
|
||||
var ret, hooks,
|
||||
nType = elem.nodeType;
|
||||
|
||||
// Don't get/set properties on text, comment and attribute nodes
|
||||
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
|
||||
if ( nType === 3 || nType === 8 || nType === 2 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
|
||||
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
|
||||
|
||||
if ( notxml ) {
|
||||
// Fix name and attach hooks
|
||||
name = jQuery.propFix[ name ] || name;
|
||||
hooks = jQuery.propHooks[ name ];
|
||||
}
|
||||
|
||||
if ( value !== undefined ) {
|
||||
return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
|
||||
ret :
|
||||
( elem[ name ] = value );
|
||||
if ( hooks && "set" in hooks &&
|
||||
( ret = hooks.set( elem, value, name ) ) !== undefined ) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
} else {
|
||||
return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
|
||||
ret :
|
||||
elem[ name ];
|
||||
return ( elem[ name ] = value );
|
||||
}
|
||||
|
||||
if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
return elem[ name ];
|
||||
},
|
||||
|
||||
propHooks: {
|
||||
tabIndex: {
|
||||
get: function( elem ) {
|
||||
return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
|
||||
elem.tabIndex :
|
||||
-1;
|
||||
|
||||
// elem.tabIndex doesn't always return the
|
||||
// correct value when it hasn't been explicitly set
|
||||
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
|
||||
// Use proper attribute retrieval(#12072)
|
||||
var tabindex = jQuery.find.attr( elem, "tabindex" );
|
||||
|
||||
return tabindex ?
|
||||
parseInt( tabindex, 10 ) :
|
||||
rfocusable.test( elem.nodeName ) ||
|
||||
rclickable.test( elem.nodeName ) && elem.href ?
|
||||
0 :
|
||||
-1;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
propFix: {
|
||||
"for": "htmlFor",
|
||||
"class": "className"
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
if ( !support.optSelected ) {
|
||||
jQuery.propHooks.selected = {
|
||||
|
@ -76,7 +91,7 @@ if ( !support.optSelected ) {
|
|||
};
|
||||
}
|
||||
|
||||
jQuery.each([
|
||||
jQuery.each( [
|
||||
"tabIndex",
|
||||
"readOnly",
|
||||
"maxLength",
|
||||
|
@ -89,6 +104,6 @@ jQuery.each([
|
|||
"contentEditable"
|
||||
], function() {
|
||||
jQuery.propFix[ this.toLowerCase() ] = this;
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
define([
|
||||
define( [
|
||||
"../var/document",
|
||||
"../var/support"
|
||||
], function( support ) {
|
||||
], function( document, support ) {
|
||||
|
||||
(function() {
|
||||
( function() {
|
||||
var input = document.createElement( "input" ),
|
||||
select = document.createElement( "select" ),
|
||||
opt = select.appendChild( document.createElement( "option" ) );
|
||||
|
@ -28,8 +29,8 @@ define([
|
|||
input.value = "t";
|
||||
input.type = "radio";
|
||||
support.radioValue = input.value === "t";
|
||||
})();
|
||||
} )();
|
||||
|
||||
return support;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"./support",
|
||||
"../core/init"
|
||||
|
@ -6,24 +6,30 @@ define([
|
|||
|
||||
var rreturn = /\r/g;
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
val: function( value ) {
|
||||
var hooks, ret, isFunction,
|
||||
elem = this[0];
|
||||
elem = this[ 0 ];
|
||||
|
||||
if ( !arguments.length ) {
|
||||
if ( elem ) {
|
||||
hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
|
||||
hooks = jQuery.valHooks[ elem.type ] ||
|
||||
jQuery.valHooks[ elem.nodeName.toLowerCase() ];
|
||||
|
||||
if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
|
||||
if ( hooks &&
|
||||
"get" in hooks &&
|
||||
( ret = hooks.get( elem, "value" ) ) !== undefined
|
||||
) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = elem.value;
|
||||
|
||||
return typeof ret === "string" ?
|
||||
|
||||
// Handle most common string cases
|
||||
ret.replace(rreturn, "") :
|
||||
ret.replace( rreturn, "" ) :
|
||||
|
||||
// Handle cases where value is null/undef or number
|
||||
ret == null ? "" : ret;
|
||||
}
|
||||
|
@ -33,7 +39,7 @@ jQuery.fn.extend({
|
|||
|
||||
isFunction = jQuery.isFunction( value );
|
||||
|
||||
return this.each(function( i ) {
|
||||
return this.each( function( i ) {
|
||||
var val;
|
||||
|
||||
if ( this.nodeType !== 1 ) {
|
||||
|
@ -56,29 +62,27 @@ jQuery.fn.extend({
|
|||
} else if ( jQuery.isArray( val ) ) {
|
||||
val = jQuery.map( val, function( value ) {
|
||||
return value == null ? "" : value + "";
|
||||
});
|
||||
} );
|
||||
}
|
||||
|
||||
hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
|
||||
|
||||
// If set returns undefined, fall back to normal setting
|
||||
if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
|
||||
if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
|
||||
this.value = val;
|
||||
}
|
||||
});
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
valHooks: {
|
||||
option: {
|
||||
get: function( elem ) {
|
||||
var val = jQuery.find.attr( elem, "value" );
|
||||
return val != null ?
|
||||
val :
|
||||
// Support: IE10-11+
|
||||
// option.text throws exceptions (#14686, #14858)
|
||||
jQuery.trim( jQuery.text( elem ) );
|
||||
|
||||
// Support: IE<11
|
||||
// option.value not trimmed (#14858)
|
||||
return jQuery.trim( elem.value );
|
||||
}
|
||||
},
|
||||
select: {
|
||||
|
@ -97,11 +101,14 @@ jQuery.extend({
|
|||
for ( ; i < max; i++ ) {
|
||||
option = options[ i ];
|
||||
|
||||
// IE6-9 doesn't update selected after form reset (#2551)
|
||||
// IE8-9 doesn't update selected after form reset (#2551)
|
||||
if ( ( option.selected || i === index ) &&
|
||||
|
||||
// Don't return options that are disabled or in a disabled optgroup
|
||||
( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) &&
|
||||
( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
|
||||
( support.optDisabled ?
|
||||
!option.disabled : option.getAttribute( "disabled" ) === null ) &&
|
||||
( !option.parentNode.disabled ||
|
||||
!jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
|
||||
|
||||
// Get the specific value for the option
|
||||
value = jQuery( option ).val();
|
||||
|
@ -127,7 +134,9 @@ jQuery.extend({
|
|||
|
||||
while ( i-- ) {
|
||||
option = options[ i ];
|
||||
if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
|
||||
if ( option.selected =
|
||||
jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
|
||||
) {
|
||||
optionSet = true;
|
||||
}
|
||||
}
|
||||
|
@ -140,22 +149,22 @@ jQuery.extend({
|
|||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
// Radios and checkboxes getter/setter
|
||||
jQuery.each([ "radio", "checkbox" ], function() {
|
||||
jQuery.each( [ "radio", "checkbox" ], function() {
|
||||
jQuery.valHooks[ this ] = {
|
||||
set: function( elem, value ) {
|
||||
if ( jQuery.isArray( value ) ) {
|
||||
return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
|
||||
return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
|
||||
}
|
||||
}
|
||||
};
|
||||
if ( !support.checkOn ) {
|
||||
jQuery.valHooks[ this ].get = function( elem ) {
|
||||
return elem.getAttribute("value") === null ? "on" : elem.value;
|
||||
return elem.getAttribute( "value" ) === null ? "on" : elem.value;
|
||||
};
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/rnotwhite"
|
||||
], function( jQuery, rnotwhite ) {
|
||||
|
||||
// String to Object options format cache
|
||||
var optionsCache = {};
|
||||
|
||||
// Convert String-formatted options into Object-formatted ones and store in cache
|
||||
// Convert String-formatted options into Object-formatted ones
|
||||
function createOptions( options ) {
|
||||
var object = optionsCache[ options ] = {};
|
||||
var object = {};
|
||||
jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
|
||||
object[ flag ] = true;
|
||||
});
|
||||
} );
|
||||
return object;
|
||||
}
|
||||
|
||||
|
@ -42,156 +39,186 @@ jQuery.Callbacks = function( options ) {
|
|||
// Convert options from String-formatted to Object-formatted if needed
|
||||
// (we check in cache first)
|
||||
options = typeof options === "string" ?
|
||||
( optionsCache[ options ] || createOptions( options ) ) :
|
||||
createOptions( options ) :
|
||||
jQuery.extend( {}, options );
|
||||
|
||||
var // Last fire value (for non-forgettable lists)
|
||||
var // Flag to know if list is currently firing
|
||||
firing,
|
||||
|
||||
// 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,
|
||||
|
||||
// Flag to prevent firing
|
||||
locked,
|
||||
|
||||
// Actual callback list
|
||||
list = [],
|
||||
// Stack of fire calls for repeatable lists
|
||||
stack = !options.once && [],
|
||||
|
||||
// Queue of execution data for repeatable lists
|
||||
queue = [],
|
||||
|
||||
// Index of currently firing callback (modified by add/remove as needed)
|
||||
firingIndex = -1,
|
||||
|
||||
// Fire callbacks
|
||||
fire = function( data ) {
|
||||
memory = options.memory && data;
|
||||
fired = true;
|
||||
firingIndex = firingStart || 0;
|
||||
firingStart = 0;
|
||||
firingLength = list.length;
|
||||
firing = true;
|
||||
for ( ; list && firingIndex < firingLength; firingIndex++ ) {
|
||||
if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
|
||||
memory = false; // To prevent further calls using add
|
||||
break;
|
||||
fire = function() {
|
||||
|
||||
// Enforce single-firing
|
||||
locked = options.once;
|
||||
|
||||
// Execute callbacks for all pending executions,
|
||||
// respecting firingIndex overrides and runtime changes
|
||||
fired = firing = true;
|
||||
for ( ; queue.length; firingIndex = -1 ) {
|
||||
memory = queue.shift();
|
||||
while ( ++firingIndex < list.length ) {
|
||||
|
||||
// Run callback and check for early termination
|
||||
if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
|
||||
options.stopOnFalse ) {
|
||||
|
||||
// Jump to end and forget the data so .add doesn't re-fire
|
||||
firingIndex = list.length;
|
||||
memory = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Forget the data if we're done with it
|
||||
if ( !options.memory ) {
|
||||
memory = false;
|
||||
}
|
||||
|
||||
firing = false;
|
||||
if ( list ) {
|
||||
if ( stack ) {
|
||||
if ( stack.length ) {
|
||||
fire( stack.shift() );
|
||||
}
|
||||
} else if ( memory ) {
|
||||
|
||||
// Clean up if we're done firing for good
|
||||
if ( locked ) {
|
||||
|
||||
// Keep an empty list if we have data for future add calls
|
||||
if ( memory ) {
|
||||
list = [];
|
||||
|
||||
// Otherwise, this object is spent
|
||||
} else {
|
||||
self.disable();
|
||||
list = "";
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 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 add( args ) {
|
||||
|
||||
// If we have memory from a past run, we should fire after adding
|
||||
if ( memory && !firing ) {
|
||||
firingIndex = list.length - 1;
|
||||
queue.push( memory );
|
||||
}
|
||||
|
||||
( function add( args ) {
|
||||
jQuery.each( args, function( _, arg ) {
|
||||
var type = jQuery.type( arg );
|
||||
if ( type === "function" ) {
|
||||
if ( jQuery.isFunction( arg ) ) {
|
||||
if ( !options.unique || !self.has( arg ) ) {
|
||||
list.push( arg );
|
||||
}
|
||||
} else if ( arg && arg.length && type !== "string" ) {
|
||||
} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
|
||||
|
||||
// Inspect recursively
|
||||
add( arg );
|
||||
}
|
||||
});
|
||||
})( 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;
|
||||
fire( memory );
|
||||
} );
|
||||
} )( arguments );
|
||||
|
||||
if ( memory && !firing ) {
|
||||
fire();
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// Remove a callback from the list
|
||||
remove: function() {
|
||||
if ( list ) {
|
||||
jQuery.each( arguments, function( _, arg ) {
|
||||
var index;
|
||||
while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
|
||||
list.splice( index, 1 );
|
||||
// Handle firing indexes
|
||||
if ( firing ) {
|
||||
if ( index <= firingLength ) {
|
||||
firingLength--;
|
||||
}
|
||||
if ( index <= firingIndex ) {
|
||||
firingIndex--;
|
||||
}
|
||||
}
|
||||
jQuery.each( arguments, function( _, arg ) {
|
||||
var index;
|
||||
while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
|
||||
list.splice( index, 1 );
|
||||
|
||||
// Handle firing indexes
|
||||
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 ) > -1 : !!( list && list.length );
|
||||
return fn ?
|
||||
jQuery.inArray( fn, list ) > -1 :
|
||||
list.length > 0;
|
||||
},
|
||||
|
||||
// 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();
|
||||
if ( list ) {
|
||||
list = [];
|
||||
}
|
||||
return this;
|
||||
},
|
||||
// Is it locked?
|
||||
locked: function() {
|
||||
return !stack;
|
||||
|
||||
// Disable .fire and .add
|
||||
// Abort any current/pending executions
|
||||
// Clear all callbacks and values
|
||||
disable: function() {
|
||||
locked = queue = [];
|
||||
list = memory = "";
|
||||
return this;
|
||||
},
|
||||
disabled: function() {
|
||||
return !list;
|
||||
},
|
||||
|
||||
// Disable .fire
|
||||
// Also disable .add unless we have memory (since it would have no effect)
|
||||
// Abort any pending executions
|
||||
lock: function() {
|
||||
locked = queue = [];
|
||||
if ( !memory ) {
|
||||
list = memory = "";
|
||||
}
|
||||
return this;
|
||||
},
|
||||
locked: function() {
|
||||
return !!locked;
|
||||
},
|
||||
|
||||
// Call all callbacks with the given context and arguments
|
||||
fireWith: function( context, args ) {
|
||||
if ( list && ( !fired || stack ) ) {
|
||||
if ( !locked ) {
|
||||
args = args || [];
|
||||
args = [ context, args.slice ? args.slice() : args ];
|
||||
if ( firing ) {
|
||||
stack.push( args );
|
||||
} else {
|
||||
fire( args );
|
||||
queue.push( args );
|
||||
if ( !firing ) {
|
||||
fire();
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// Call all the callbacks with the given arguments
|
||||
fire: function() {
|
||||
self.fireWith( this, arguments );
|
||||
return this;
|
||||
},
|
||||
|
||||
// To know if the callbacks have already been called at least once
|
||||
fired: function() {
|
||||
return !!fired;
|
||||
|
@ -202,4 +229,4 @@ jQuery.Callbacks = function( options ) {
|
|||
};
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
149
dashboard-ui/bower_components/jquery/src/core.js
vendored
149
dashboard-ui/bower_components/jquery/src/core.js
vendored
|
@ -1,5 +1,6 @@
|
|||
define([
|
||||
define( [
|
||||
"./var/arr",
|
||||
"./var/document",
|
||||
"./var/slice",
|
||||
"./var/concat",
|
||||
"./var/push",
|
||||
|
@ -8,16 +9,14 @@ define([
|
|||
"./var/toString",
|
||||
"./var/hasOwn",
|
||||
"./var/support"
|
||||
], function( arr, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) {
|
||||
], function( arr, document, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) {
|
||||
|
||||
var
|
||||
// Use the correct document accordingly with window argument (sandbox)
|
||||
document = window.document,
|
||||
|
||||
version = "@VERSION",
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
|
||||
// The jQuery object is actually just the init constructor 'enhanced'
|
||||
// Need init if jQuery is called (just allow error to be thrown if not included)
|
||||
return new jQuery.fn.init( selector, context );
|
||||
|
@ -37,6 +36,7 @@ var
|
|||
};
|
||||
|
||||
jQuery.fn = jQuery.prototype = {
|
||||
|
||||
// The current version of jQuery being used
|
||||
jquery: version,
|
||||
|
||||
|
@ -80,16 +80,14 @@ jQuery.fn = jQuery.prototype = {
|
|||
},
|
||||
|
||||
// Execute a callback for every element in the matched set.
|
||||
// (You can seed the arguments with an array of args, but this is
|
||||
// only used internally.)
|
||||
each: function( callback, args ) {
|
||||
return jQuery.each( this, callback, args );
|
||||
each: function( callback ) {
|
||||
return jQuery.each( this, callback );
|
||||
},
|
||||
|
||||
map: function( callback ) {
|
||||
return this.pushStack( jQuery.map(this, function( elem, i ) {
|
||||
return this.pushStack( jQuery.map( this, function( elem, i ) {
|
||||
return callback.call( elem, i, elem );
|
||||
}));
|
||||
} ) );
|
||||
},
|
||||
|
||||
slice: function() {
|
||||
|
@ -107,11 +105,11 @@ jQuery.fn = jQuery.prototype = {
|
|||
eq: function( i ) {
|
||||
var len = this.length,
|
||||
j = +i + ( i < 0 ? len : 0 );
|
||||
return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
|
||||
return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
|
||||
},
|
||||
|
||||
end: function() {
|
||||
return this.prevObject || this.constructor(null);
|
||||
return this.prevObject || this.constructor();
|
||||
},
|
||||
|
||||
// For internal use only.
|
||||
|
@ -123,7 +121,7 @@ jQuery.fn = jQuery.prototype = {
|
|||
|
||||
jQuery.extend = jQuery.fn.extend = function() {
|
||||
var options, name, src, copy, copyIsArray, clone,
|
||||
target = arguments[0] || {},
|
||||
target = arguments[ 0 ] || {},
|
||||
i = 1,
|
||||
length = arguments.length,
|
||||
deep = false;
|
||||
|
@ -138,7 +136,7 @@ jQuery.extend = jQuery.fn.extend = function() {
|
|||
}
|
||||
|
||||
// Handle case when target is a string or something (possible in deep copy)
|
||||
if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
|
||||
if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
|
||||
target = {};
|
||||
}
|
||||
|
||||
|
@ -149,8 +147,10 @@ jQuery.extend = jQuery.fn.extend = function() {
|
|||
}
|
||||
|
||||
for ( ; i < length; i++ ) {
|
||||
|
||||
// Only deal with non-null/undefined values
|
||||
if ( (options = arguments[ i ]) != null ) {
|
||||
if ( ( options = arguments[ i ] ) != null ) {
|
||||
|
||||
// Extend the base object
|
||||
for ( name in options ) {
|
||||
src = target[ name ];
|
||||
|
@ -162,13 +162,15 @@ jQuery.extend = jQuery.fn.extend = function() {
|
|||
}
|
||||
|
||||
// Recurse if we're merging plain objects or arrays
|
||||
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
|
||||
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
|
||||
( copyIsArray = jQuery.isArray( copy ) ) ) ) {
|
||||
|
||||
if ( copyIsArray ) {
|
||||
copyIsArray = false;
|
||||
clone = src && jQuery.isArray(src) ? src : [];
|
||||
clone = src && jQuery.isArray( src ) ? src : [];
|
||||
|
||||
} else {
|
||||
clone = src && jQuery.isPlainObject(src) ? src : {};
|
||||
clone = src && jQuery.isPlainObject( src ) ? src : {};
|
||||
}
|
||||
|
||||
// Never move original objects, clone them
|
||||
|
@ -186,7 +188,8 @@ jQuery.extend = jQuery.fn.extend = function() {
|
|||
return target;
|
||||
};
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
|
||||
// Unique for each copy of jQuery on the page
|
||||
expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
|
||||
|
||||
|
@ -200,7 +203,7 @@ jQuery.extend({
|
|||
noop: function() {},
|
||||
|
||||
isFunction: function( obj ) {
|
||||
return jQuery.type(obj) === "function";
|
||||
return jQuery.type( obj ) === "function";
|
||||
},
|
||||
|
||||
isArray: Array.isArray,
|
||||
|
@ -210,14 +213,17 @@ jQuery.extend({
|
|||
},
|
||||
|
||||
isNumeric: function( obj ) {
|
||||
|
||||
// parseFloat NaNs numeric-cast false positives (null|true|false|"")
|
||||
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
|
||||
// subtraction forces infinities to NaN
|
||||
// adding 1 corrects loss of precision from parseFloat (#15100)
|
||||
return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
|
||||
var realStringObj = obj && obj.toString();
|
||||
return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
|
||||
},
|
||||
|
||||
isPlainObject: function( obj ) {
|
||||
|
||||
// Not plain objects:
|
||||
// - Any object or value whose internal [[Class]] property is not "[object Object]"
|
||||
// - DOM nodes
|
||||
|
@ -248,9 +254,10 @@ jQuery.extend({
|
|||
if ( obj == null ) {
|
||||
return obj + "";
|
||||
}
|
||||
|
||||
// Support: Android<4.0, iOS<6 (functionish RegExp)
|
||||
return typeof obj === "object" || typeof obj === "function" ?
|
||||
class2type[ toString.call(obj) ] || "object" :
|
||||
class2type[ toString.call( obj ) ] || "object" :
|
||||
typeof obj;
|
||||
},
|
||||
|
||||
|
@ -262,16 +269,19 @@ jQuery.extend({
|
|||
code = jQuery.trim( code );
|
||||
|
||||
if ( code ) {
|
||||
|
||||
// If the code includes a valid, prologue position
|
||||
// strict mode pragma, execute code by injecting a
|
||||
// script tag into the document.
|
||||
if ( code.indexOf("use strict") === 1 ) {
|
||||
script = document.createElement("script");
|
||||
if ( code.indexOf( "use strict" ) === 1 ) {
|
||||
script = document.createElement( "script" );
|
||||
script.text = code;
|
||||
document.head.appendChild( script ).parentNode.removeChild( script );
|
||||
} else {
|
||||
// Otherwise, avoid the DOM node creation, insertion
|
||||
// and removal by using an indirect global eval
|
||||
|
||||
// Otherwise, avoid the DOM node creation, insertion
|
||||
// and removal by using an indirect global eval
|
||||
|
||||
indirect( code );
|
||||
}
|
||||
}
|
||||
|
@ -288,49 +298,20 @@ jQuery.extend({
|
|||
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
||||
},
|
||||
|
||||
// args is for internal usage only
|
||||
each: function( obj, callback, args ) {
|
||||
var value,
|
||||
i = 0,
|
||||
length = obj.length,
|
||||
isArray = isArraylike( obj );
|
||||
each: function( obj, callback ) {
|
||||
var length, i = 0;
|
||||
|
||||
if ( args ) {
|
||||
if ( isArray ) {
|
||||
for ( ; i < length; i++ ) {
|
||||
value = callback.apply( obj[ i ], args );
|
||||
|
||||
if ( value === false ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for ( i in obj ) {
|
||||
value = callback.apply( obj[ i ], args );
|
||||
|
||||
if ( value === false ) {
|
||||
break;
|
||||
}
|
||||
if ( isArrayLike( obj ) ) {
|
||||
length = obj.length;
|
||||
for ( ; i < length; i++ ) {
|
||||
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// A special, fast, case for the most common use of each
|
||||
} else {
|
||||
if ( isArray ) {
|
||||
for ( ; i < length; i++ ) {
|
||||
value = callback.call( obj[ i ], i, obj[ i ] );
|
||||
|
||||
if ( value === false ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for ( i in obj ) {
|
||||
value = callback.call( obj[ i ], i, obj[ i ] );
|
||||
|
||||
if ( value === false ) {
|
||||
break;
|
||||
}
|
||||
for ( i in obj ) {
|
||||
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -350,7 +331,7 @@ jQuery.extend({
|
|||
var ret = results || [];
|
||||
|
||||
if ( arr != null ) {
|
||||
if ( isArraylike( Object(arr) ) ) {
|
||||
if ( isArrayLike( Object( arr ) ) ) {
|
||||
jQuery.merge( ret,
|
||||
typeof arr === "string" ?
|
||||
[ arr ] : arr
|
||||
|
@ -402,14 +383,13 @@ jQuery.extend({
|
|||
|
||||
// arg is for internal usage only
|
||||
map: function( elems, callback, arg ) {
|
||||
var value,
|
||||
var length, value,
|
||||
i = 0,
|
||||
length = elems.length,
|
||||
isArray = isArraylike( elems ),
|
||||
ret = [];
|
||||
|
||||
// Go through the array, translating each of the items to their new values
|
||||
if ( isArray ) {
|
||||
if ( isArrayLike( elems ) ) {
|
||||
length = elems.length;
|
||||
for ( ; i < length; i++ ) {
|
||||
value = callback( elems[ i ], i, arg );
|
||||
|
||||
|
@ -470,33 +450,40 @@ jQuery.extend({
|
|||
// jQuery.support is not used in Core but other projects attach their
|
||||
// properties to it so it needs to exist.
|
||||
support: support
|
||||
});
|
||||
} );
|
||||
|
||||
// JSHint would error on this code due to the Symbol not being defined in ES5.
|
||||
// Defining this global in .jshintrc would create a danger of using the global
|
||||
// unguarded in another place, it seems safer to just disable JSHint for these
|
||||
// three lines.
|
||||
/* jshint ignore: start */
|
||||
if ( typeof Symbol === "function" ) {
|
||||
jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
|
||||
}
|
||||
/* jshint ignore: end */
|
||||
|
||||
// Populate the class2type map
|
||||
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
|
||||
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
|
||||
function( i, name ) {
|
||||
class2type[ "[object " + name + "]" ] = name.toLowerCase();
|
||||
});
|
||||
} );
|
||||
|
||||
function isArraylike( obj ) {
|
||||
function isArrayLike( obj ) {
|
||||
|
||||
// Support: iOS 8.2 (not reproducible in simulator)
|
||||
// `in` check used to prevent JIT error (gh-2145)
|
||||
// hasOwn isn't used here due to false negatives
|
||||
// regarding Nodelist length in IE
|
||||
var length = "length" in obj && obj.length,
|
||||
var length = !!obj && "length" in obj && obj.length,
|
||||
type = jQuery.type( obj );
|
||||
|
||||
if ( type === "function" || jQuery.isWindow( obj ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( obj.nodeType === 1 && length ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return type === "array" || length === 0 ||
|
||||
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
|
||||
}
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
define([
|
||||
define( [
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
// Multifunctional method to get and set values of a collection
|
||||
// The value/s can optionally be executed if it's a function
|
||||
var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
|
||||
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
|
||||
var i = 0,
|
||||
len = elems.length,
|
||||
bulk = key == null;
|
||||
|
@ -13,7 +13,7 @@ var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGe
|
|||
if ( jQuery.type( key ) === "object" ) {
|
||||
chainable = true;
|
||||
for ( i in key ) {
|
||||
jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
|
||||
access( elems, fn, i, key[ i ], true, emptyGet, raw );
|
||||
}
|
||||
|
||||
// Sets one value
|
||||
|
@ -25,6 +25,7 @@ var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGe
|
|||
}
|
||||
|
||||
if ( bulk ) {
|
||||
|
||||
// Bulk operations run against the entire set
|
||||
if ( raw ) {
|
||||
fn.call( elems, value );
|
||||
|
@ -41,7 +42,11 @@ var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGe
|
|||
|
||||
if ( fn ) {
|
||||
for ( ; i < len; i++ ) {
|
||||
fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
|
||||
fn(
|
||||
elems[ i ], key, raw ?
|
||||
value :
|
||||
value.call( elems[ i ], i, fn( elems[ i ], key ) )
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,9 +57,9 @@ var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGe
|
|||
// Gets
|
||||
bulk ?
|
||||
fn.call( elems ) :
|
||||
len ? fn( elems[0], key ) : emptyGet;
|
||||
len ? fn( elems[ 0 ], key ) : emptyGet;
|
||||
};
|
||||
|
||||
return access;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
// Initialize a jQuery object
|
||||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"./var/rsingleTag",
|
||||
"../traversing/findFilter"
|
||||
], function( jQuery, rsingleTag ) {
|
||||
], function( jQuery, document, rsingleTag ) {
|
||||
|
||||
// A central reference to the root jQuery(document)
|
||||
var rootjQuery,
|
||||
|
@ -13,7 +14,7 @@ var rootjQuery,
|
|||
// Strict HTML recognition (#11290: must start with <)
|
||||
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
|
||||
|
||||
init = jQuery.fn.init = function( selector, context ) {
|
||||
init = jQuery.fn.init = function( selector, context, root ) {
|
||||
var match, elem;
|
||||
|
||||
// HANDLE: $(""), $(null), $(undefined), $(false)
|
||||
|
@ -21,9 +22,16 @@ var rootjQuery,
|
|||
return this;
|
||||
}
|
||||
|
||||
// Method init() accepts an alternate rootjQuery
|
||||
// so migrate can support jQuery.sub (gh-2101)
|
||||
root = root || rootjQuery;
|
||||
|
||||
// Handle HTML strings
|
||||
if ( typeof selector === "string" ) {
|
||||
if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
|
||||
if ( selector[ 0 ] === "<" &&
|
||||
selector[ selector.length - 1 ] === ">" &&
|
||||
selector.length >= 3 ) {
|
||||
|
||||
// Assume that strings that start and end with <> are HTML and skip the regex check
|
||||
match = [ null, selector, null ];
|
||||
|
||||
|
@ -32,23 +40,24 @@ var rootjQuery,
|
|||
}
|
||||
|
||||
// Match html or make sure no context is specified for #id
|
||||
if ( match && (match[1] || !context) ) {
|
||||
if ( match && ( match[ 1 ] || !context ) ) {
|
||||
|
||||
// HANDLE: $(html) -> $(array)
|
||||
if ( match[1] ) {
|
||||
context = context instanceof jQuery ? context[0] : context;
|
||||
if ( match[ 1 ] ) {
|
||||
context = context instanceof jQuery ? context[ 0 ] : context;
|
||||
|
||||
// Option to run scripts is true for back-compat
|
||||
// Intentionally let the error be thrown if parseHTML is not present
|
||||
jQuery.merge( this, jQuery.parseHTML(
|
||||
match[1],
|
||||
match[ 1 ],
|
||||
context && context.nodeType ? context.ownerDocument || context : document,
|
||||
true
|
||||
) );
|
||||
|
||||
// HANDLE: $(html, props)
|
||||
if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
|
||||
if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
|
||||
for ( match in context ) {
|
||||
|
||||
// Properties of context are called as methods if possible
|
||||
if ( jQuery.isFunction( this[ match ] ) ) {
|
||||
this[ match ]( context[ match ] );
|
||||
|
@ -64,14 +73,15 @@ var rootjQuery,
|
|||
|
||||
// HANDLE: $(#id)
|
||||
} else {
|
||||
elem = document.getElementById( match[2] );
|
||||
elem = document.getElementById( match[ 2 ] );
|
||||
|
||||
// Support: Blackberry 4.6
|
||||
// gEBID returns nodes no longer in the document (#6963)
|
||||
if ( elem && elem.parentNode ) {
|
||||
|
||||
// Inject the element directly into the jQuery object
|
||||
this.length = 1;
|
||||
this[0] = elem;
|
||||
this[ 0 ] = elem;
|
||||
}
|
||||
|
||||
this.context = document;
|
||||
|
@ -81,7 +91,7 @@ var rootjQuery,
|
|||
|
||||
// HANDLE: $(expr, $(...))
|
||||
} else if ( !context || context.jquery ) {
|
||||
return ( context || rootjQuery ).find( selector );
|
||||
return ( context || root ).find( selector );
|
||||
|
||||
// HANDLE: $(expr, context)
|
||||
// (which is just equivalent to: $(context).find(expr)
|
||||
|
@ -91,15 +101,16 @@ var rootjQuery,
|
|||
|
||||
// HANDLE: $(DOMElement)
|
||||
} else if ( selector.nodeType ) {
|
||||
this.context = this[0] = selector;
|
||||
this.context = this[ 0 ] = selector;
|
||||
this.length = 1;
|
||||
return this;
|
||||
|
||||
// HANDLE: $(function)
|
||||
// Shortcut for document ready
|
||||
} else if ( jQuery.isFunction( selector ) ) {
|
||||
return typeof rootjQuery.ready !== "undefined" ?
|
||||
rootjQuery.ready( selector ) :
|
||||
return root.ready !== undefined ?
|
||||
root.ready( selector ) :
|
||||
|
||||
// Execute immediately if ready is not present
|
||||
selector( jQuery );
|
||||
}
|
||||
|
@ -120,4 +131,4 @@ rootjQuery = jQuery( document );
|
|||
|
||||
return init;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"./var/rsingleTag",
|
||||
"../manipulation" // buildFragment
|
||||
], function( jQuery, rsingleTag ) {
|
||||
"../manipulation/buildFragment",
|
||||
|
||||
// data: string of html
|
||||
// context (optional): If specified, the fragment will be created in this context, defaults to document
|
||||
// This is the only module that needs core/support
|
||||
"./support"
|
||||
], function( jQuery, document, rsingleTag, buildFragment, support ) {
|
||||
|
||||
// Argument "data" should be string of html
|
||||
// context (optional): If specified, the fragment will be created in this context,
|
||||
// defaults to document
|
||||
// keepScripts (optional): If true, will include scripts passed in the html string
|
||||
jQuery.parseHTML = function( data, context, keepScripts ) {
|
||||
if ( !data || typeof data !== "string" ) {
|
||||
|
@ -15,17 +20,22 @@ jQuery.parseHTML = function( data, context, keepScripts ) {
|
|||
keepScripts = context;
|
||||
context = false;
|
||||
}
|
||||
context = context || document;
|
||||
|
||||
// Stop scripts or inline event handlers from being executed immediately
|
||||
// by using document.implementation
|
||||
context = context || ( support.createHTMLDocument ?
|
||||
document.implementation.createHTMLDocument( "" ) :
|
||||
document );
|
||||
|
||||
var parsed = rsingleTag.exec( data ),
|
||||
scripts = !keepScripts && [];
|
||||
|
||||
// Single tag
|
||||
if ( parsed ) {
|
||||
return [ context.createElement( parsed[1] ) ];
|
||||
return [ context.createElement( parsed[ 1 ] ) ];
|
||||
}
|
||||
|
||||
parsed = jQuery.buildFragment( [ data ], context, scripts );
|
||||
parsed = buildFragment( [ data ], context, scripts );
|
||||
|
||||
if ( scripts && scripts.length ) {
|
||||
jQuery( scripts ).remove();
|
||||
|
@ -36,4 +46,4 @@ jQuery.parseHTML = function( data, context, keepScripts ) {
|
|||
|
||||
return jQuery.parseHTML;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"../core/init",
|
||||
"../deferred"
|
||||
], function( jQuery ) {
|
||||
], function( jQuery, document ) {
|
||||
|
||||
// The deferred used on DOM ready
|
||||
var readyList;
|
||||
|
||||
jQuery.fn.ready = function( fn ) {
|
||||
|
||||
// Add the callback
|
||||
jQuery.ready.promise().done( fn );
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
|
||||
// Is the DOM ready to be used? Set to true once it occurs.
|
||||
isReady: false,
|
||||
|
||||
|
@ -56,14 +59,14 @@ jQuery.extend({
|
|||
jQuery( document ).off( "ready" );
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
/**
|
||||
* The ready event handler and self cleanup method
|
||||
*/
|
||||
function completed() {
|
||||
document.removeEventListener( "DOMContentLoaded", completed, false );
|
||||
window.removeEventListener( "load", completed, false );
|
||||
document.removeEventListener( "DOMContentLoaded", completed );
|
||||
window.removeEventListener( "load", completed );
|
||||
jQuery.ready();
|
||||
}
|
||||
|
||||
|
@ -72,20 +75,23 @@ jQuery.ready.promise = function( obj ) {
|
|||
|
||||
readyList = jQuery.Deferred();
|
||||
|
||||
// Catch cases where $(document).ready() is called after the browser event has already occurred.
|
||||
// We once tried to use readyState "interactive" here, but it caused issues like the one
|
||||
// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
|
||||
if ( document.readyState === "complete" ) {
|
||||
// Catch cases where $(document).ready() is called
|
||||
// after the browser event has already occurred.
|
||||
// Support: IE9-10 only
|
||||
// Older IE sometimes signals "interactive" too soon
|
||||
if ( document.readyState === "complete" ||
|
||||
( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
|
||||
|
||||
// Handle it asynchronously to allow scripts the opportunity to delay ready
|
||||
setTimeout( jQuery.ready );
|
||||
window.setTimeout( jQuery.ready );
|
||||
|
||||
} else {
|
||||
|
||||
// Use the handy event callback
|
||||
document.addEventListener( "DOMContentLoaded", completed, false );
|
||||
document.addEventListener( "DOMContentLoaded", completed );
|
||||
|
||||
// A fallback to window.onload, that will always work
|
||||
window.addEventListener( "load", completed, false );
|
||||
window.addEventListener( "load", completed );
|
||||
}
|
||||
}
|
||||
return readyList.promise( obj );
|
||||
|
@ -94,4 +100,4 @@ jQuery.ready.promise = function( obj ) {
|
|||
// Kick off the DOM ready check even if the user does not
|
||||
jQuery.ready.promise();
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
18
dashboard-ui/bower_components/jquery/src/core/support.js
vendored
Normal file
18
dashboard-ui/bower_components/jquery/src/core/support.js
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
define( [
|
||||
"../var/document",
|
||||
"../var/support"
|
||||
], function( document, support ) {
|
||||
|
||||
// Support: Safari 8+
|
||||
// In Safari 8 documents created via document.implementation.createHTMLDocument
|
||||
// collapse sibling forms: the second one becomes a child of the first one.
|
||||
// Because of that, this security measure has to be disabled in Safari 8.
|
||||
// https://bugs.webkit.org/show_bug.cgi?id=137337
|
||||
support.createHTMLDocument = ( function() {
|
||||
var body = document.implementation.createHTMLDocument( "" ).body;
|
||||
body.innerHTML = "<form></form><form></form>";
|
||||
return body.childNodes.length === 2;
|
||||
} )();
|
||||
|
||||
return support;
|
||||
} );
|
175
dashboard-ui/bower_components/jquery/src/css.js
vendored
175
dashboard-ui/bower_components/jquery/src/css.js
vendored
|
@ -1,31 +1,34 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/pnum",
|
||||
"./core/access",
|
||||
"./css/var/rmargin",
|
||||
"./var/document",
|
||||
"./var/rcssNum",
|
||||
"./css/var/rnumnonpx",
|
||||
"./css/var/cssExpand",
|
||||
"./css/var/isHidden",
|
||||
"./css/var/getStyles",
|
||||
"./css/var/swap",
|
||||
"./css/curCSS",
|
||||
"./css/adjustCSS",
|
||||
"./css/defaultDisplay",
|
||||
"./css/addGetHookIf",
|
||||
"./css/support",
|
||||
"./data/var/data_priv",
|
||||
"./data/var/dataPriv",
|
||||
|
||||
"./core/init",
|
||||
"./css/swap",
|
||||
"./core/ready",
|
||||
"./selector" // contains
|
||||
], function( jQuery, pnum, access, rmargin, rnumnonpx, cssExpand, isHidden,
|
||||
getStyles, curCSS, defaultDisplay, addGetHookIf, support, data_priv ) {
|
||||
], function( jQuery, pnum, access, rmargin, document, rcssNum, rnumnonpx, cssExpand, isHidden,
|
||||
getStyles, swap, curCSS, adjustCSS, defaultDisplay, addGetHookIf, support, dataPriv ) {
|
||||
|
||||
var
|
||||
// Swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
|
||||
|
||||
// Swappable if display is none or starts with table
|
||||
// except "table", "table-cell", or "table-caption"
|
||||
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
|
||||
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
|
||||
rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
|
||||
rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
|
||||
|
||||
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
||||
cssNormalTransform = {
|
||||
|
@ -33,55 +36,61 @@ var
|
|||
fontWeight: "400"
|
||||
},
|
||||
|
||||
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
|
||||
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
|
||||
emptyStyle = document.createElement( "div" ).style;
|
||||
|
||||
// Return a css property mapped to a potentially vendor prefixed property
|
||||
function vendorPropName( style, name ) {
|
||||
function vendorPropName( name ) {
|
||||
|
||||
// Shortcut for names that are not vendor prefixed
|
||||
if ( name in style ) {
|
||||
if ( name in emptyStyle ) {
|
||||
return name;
|
||||
}
|
||||
|
||||
// Check for vendor prefixed names
|
||||
var capName = name[0].toUpperCase() + name.slice(1),
|
||||
origName = name,
|
||||
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
|
||||
i = cssPrefixes.length;
|
||||
|
||||
while ( i-- ) {
|
||||
name = cssPrefixes[ i ] + capName;
|
||||
if ( name in style ) {
|
||||
if ( name in emptyStyle ) {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
return origName;
|
||||
}
|
||||
|
||||
function setPositiveNumber( elem, value, subtract ) {
|
||||
var matches = rnumsplit.exec( value );
|
||||
|
||||
// Any relative (+/-) values have already been
|
||||
// normalized at this point
|
||||
var matches = rcssNum.exec( value );
|
||||
return matches ?
|
||||
|
||||
// Guard against undefined "subtract", e.g., when used as in cssHooks
|
||||
Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
|
||||
Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
|
||||
value;
|
||||
}
|
||||
|
||||
function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
|
||||
var i = extra === ( isBorderBox ? "border" : "content" ) ?
|
||||
|
||||
// If we already have the right measurement, avoid augmentation
|
||||
4 :
|
||||
|
||||
// Otherwise initialize for horizontal or vertical properties
|
||||
name === "width" ? 1 : 0,
|
||||
|
||||
val = 0;
|
||||
|
||||
for ( ; i < 4; i += 2 ) {
|
||||
|
||||
// Both box models exclude margin, so add it if we want it
|
||||
if ( extra === "margin" ) {
|
||||
val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
|
||||
}
|
||||
|
||||
if ( isBorderBox ) {
|
||||
|
||||
// border-box includes padding, so remove it if we want content
|
||||
if ( extra === "content" ) {
|
||||
val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
|
||||
|
@ -92,6 +101,7 @@ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
|
|||
val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
|
||||
}
|
||||
} else {
|
||||
|
||||
// At this point, extra isn't content, so add padding
|
||||
val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
|
||||
|
||||
|
@ -113,10 +123,24 @@ function getWidthOrHeight( elem, name, extra ) {
|
|||
styles = getStyles( elem ),
|
||||
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
|
||||
|
||||
// Support: IE11 only
|
||||
// In IE 11 fullscreen elements inside of an iframe have
|
||||
// 100x too small dimensions (gh-1764).
|
||||
if ( document.msFullscreenElement && window.top !== window ) {
|
||||
|
||||
// Support: IE11 only
|
||||
// Running getBoundingClientRect on a disconnected node
|
||||
// in IE throws an error.
|
||||
if ( elem.getClientRects().length ) {
|
||||
val = Math.round( elem.getBoundingClientRect()[ name ] * 100 );
|
||||
}
|
||||
}
|
||||
|
||||
// Some non-html elements return undefined for offsetWidth, so check for null/undefined
|
||||
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
|
||||
// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
|
||||
if ( val <= 0 || val == null ) {
|
||||
|
||||
// Fall back to computed then uncomputed css if necessary
|
||||
val = curCSS( elem, name, styles );
|
||||
if ( val < 0 || val == null ) {
|
||||
|
@ -124,7 +148,7 @@ function getWidthOrHeight( elem, name, extra ) {
|
|||
}
|
||||
|
||||
// Computed unit is not pixels. Stop here and return.
|
||||
if ( rnumnonpx.test(val) ) {
|
||||
if ( rnumnonpx.test( val ) ) {
|
||||
return val;
|
||||
}
|
||||
|
||||
|
@ -161,9 +185,10 @@ function showHide( elements, show ) {
|
|||
continue;
|
||||
}
|
||||
|
||||
values[ index ] = data_priv.get( elem, "olddisplay" );
|
||||
values[ index ] = dataPriv.get( elem, "olddisplay" );
|
||||
display = elem.style.display;
|
||||
if ( show ) {
|
||||
|
||||
// Reset the inline display of this element to learn if it is
|
||||
// being hidden by cascaded rules or not
|
||||
if ( !values[ index ] && display === "none" ) {
|
||||
|
@ -174,13 +199,21 @@ function showHide( elements, show ) {
|
|||
// in a stylesheet to whatever the default browser style is
|
||||
// for such an element
|
||||
if ( elem.style.display === "" && isHidden( elem ) ) {
|
||||
values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
|
||||
values[ index ] = dataPriv.access(
|
||||
elem,
|
||||
"olddisplay",
|
||||
defaultDisplay( elem.nodeName )
|
||||
);
|
||||
}
|
||||
} else {
|
||||
hidden = isHidden( elem );
|
||||
|
||||
if ( display !== "none" || !hidden ) {
|
||||
data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
|
||||
dataPriv.set(
|
||||
elem,
|
||||
"olddisplay",
|
||||
hidden ? display : jQuery.css( elem, "display" )
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -200,7 +233,7 @@ function showHide( elements, show ) {
|
|||
return elements;
|
||||
}
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
|
||||
// Add in style property hooks for overriding the default
|
||||
// behavior of getting and setting a style property
|
||||
|
@ -219,6 +252,7 @@ jQuery.extend({
|
|||
|
||||
// Don't automatically add "px" to these possibly-unitless properties
|
||||
cssNumber: {
|
||||
"animationIterationCount": true,
|
||||
"columnCount": true,
|
||||
"fillOpacity": true,
|
||||
"flexGrow": true,
|
||||
|
@ -252,7 +286,8 @@ jQuery.extend({
|
|||
origName = jQuery.camelCase( name ),
|
||||
style = elem.style;
|
||||
|
||||
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
|
||||
name = jQuery.cssProps[ origName ] ||
|
||||
( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
|
||||
|
||||
// Gets hook for the prefixed version, then unprefixed version
|
||||
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
|
||||
|
@ -262,8 +297,9 @@ jQuery.extend({
|
|||
type = typeof value;
|
||||
|
||||
// Convert "+=" or "-=" to relative numbers (#7345)
|
||||
if ( type === "string" && (ret = rrelNum.exec( value )) ) {
|
||||
value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
|
||||
if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
|
||||
value = adjustCSS( elem, name, ret );
|
||||
|
||||
// Fixes bug #9237
|
||||
type = "number";
|
||||
}
|
||||
|
@ -273,9 +309,9 @@ jQuery.extend({
|
|||
return;
|
||||
}
|
||||
|
||||
// If a number, add 'px' to the (except for certain CSS properties)
|
||||
if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
|
||||
value += "px";
|
||||
// If a number was passed in, add the unit (except for certain CSS properties)
|
||||
if ( type === "number" ) {
|
||||
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
|
||||
}
|
||||
|
||||
// Support: IE9-11+
|
||||
|
@ -285,13 +321,18 @@ jQuery.extend({
|
|||
}
|
||||
|
||||
// If a hook was provided, use that value, otherwise just set the specified value
|
||||
if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
|
||||
if ( !hooks || !( "set" in hooks ) ||
|
||||
( value = hooks.set( elem, value, extra ) ) !== undefined ) {
|
||||
|
||||
style[ name ] = value;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// If a hook was provided get the non-computed value from there
|
||||
if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
|
||||
if ( hooks && "get" in hooks &&
|
||||
( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -305,7 +346,8 @@ jQuery.extend({
|
|||
origName = jQuery.camelCase( name );
|
||||
|
||||
// Make sure that we're working with the right name
|
||||
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
|
||||
name = jQuery.cssProps[ origName ] ||
|
||||
( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
|
||||
|
||||
// Try prefixed name followed by the unprefixed name
|
||||
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
|
||||
|
@ -328,54 +370,77 @@ jQuery.extend({
|
|||
// Make numeric if forced or a qualifier was provided and val looks numeric
|
||||
if ( extra === "" || extra ) {
|
||||
num = parseFloat( val );
|
||||
return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
|
||||
return extra === true || isFinite( num ) ? num || 0 : val;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.each([ "height", "width" ], function( i, name ) {
|
||||
jQuery.each( [ "height", "width" ], function( i, name ) {
|
||||
jQuery.cssHooks[ name ] = {
|
||||
get: function( elem, computed, extra ) {
|
||||
if ( computed ) {
|
||||
|
||||
// Certain elements can have dimension info if we invisibly show them
|
||||
// but it must have a current display style that would benefit
|
||||
return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
|
||||
jQuery.swap( elem, cssShow, function() {
|
||||
return getWidthOrHeight( elem, name, extra );
|
||||
}) :
|
||||
getWidthOrHeight( elem, name, extra );
|
||||
return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
|
||||
elem.offsetWidth === 0 ?
|
||||
swap( elem, cssShow, function() {
|
||||
return getWidthOrHeight( elem, name, extra );
|
||||
} ) :
|
||||
getWidthOrHeight( elem, name, extra );
|
||||
}
|
||||
},
|
||||
|
||||
set: function( elem, value, extra ) {
|
||||
var styles = extra && getStyles( elem );
|
||||
return setPositiveNumber( elem, value, extra ?
|
||||
augmentWidthOrHeight(
|
||||
var matches,
|
||||
styles = extra && getStyles( elem ),
|
||||
subtract = extra && augmentWidthOrHeight(
|
||||
elem,
|
||||
name,
|
||||
extra,
|
||||
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
||||
styles
|
||||
) : 0
|
||||
);
|
||||
);
|
||||
|
||||
// Convert to pixels if value adjustment is needed
|
||||
if ( subtract && ( matches = rcssNum.exec( value ) ) &&
|
||||
( matches[ 3 ] || "px" ) !== "px" ) {
|
||||
|
||||
elem.style[ name ] = value;
|
||||
value = jQuery.css( elem, name );
|
||||
}
|
||||
|
||||
return setPositiveNumber( elem, value, subtract );
|
||||
}
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
|
||||
function( elem, computed ) {
|
||||
if ( computed ) {
|
||||
return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
|
||||
elem.getBoundingClientRect().left -
|
||||
swap( elem, { marginLeft: 0 }, function() {
|
||||
return elem.getBoundingClientRect().left;
|
||||
} )
|
||||
) + "px";
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Support: Android 2.3
|
||||
jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
|
||||
function( elem, computed ) {
|
||||
if ( computed ) {
|
||||
return jQuery.swap( elem, { "display": "inline-block" },
|
||||
return swap( elem, { "display": "inline-block" },
|
||||
curCSS, [ elem, "marginRight" ] );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// These hooks are used by animate to expand properties
|
||||
jQuery.each({
|
||||
jQuery.each( {
|
||||
margin: "",
|
||||
padding: "",
|
||||
border: "Width"
|
||||
|
@ -386,7 +451,7 @@ jQuery.each({
|
|||
expanded = {},
|
||||
|
||||
// Assumes a single number if not a string
|
||||
parts = typeof value === "string" ? value.split(" ") : [ value ];
|
||||
parts = typeof value === "string" ? value.split( " " ) : [ value ];
|
||||
|
||||
for ( ; i < 4; i++ ) {
|
||||
expanded[ prefix + cssExpand[ i ] + suffix ] =
|
||||
|
@ -400,9 +465,9 @@ jQuery.each({
|
|||
if ( !rmargin.test( prefix ) ) {
|
||||
jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
css: function( name, value ) {
|
||||
return access( this, function( elem, name, value ) {
|
||||
var styles, len,
|
||||
|
@ -436,15 +501,15 @@ jQuery.fn.extend({
|
|||
return state ? this.show() : this.hide();
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
if ( isHidden( this ) ) {
|
||||
jQuery( this ).show();
|
||||
} else {
|
||||
jQuery( this ).hide();
|
||||
}
|
||||
});
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
define(function() {
|
||||
define( function() {
|
||||
|
||||
function addGetHookIf( conditionFn, hookFn ) {
|
||||
|
||||
// Define the hook, we'll check on the first run if it's really needed.
|
||||
return {
|
||||
get: function() {
|
||||
if ( conditionFn() ) {
|
||||
|
||||
// Hook not needed (or it's not possible to use it due
|
||||
// to missing dependency), remove it.
|
||||
delete this.get;
|
||||
|
@ -12,11 +14,11 @@ function addGetHookIf( conditionFn, hookFn ) {
|
|||
}
|
||||
|
||||
// Hook needed; redefine it so that the support test is not executed again.
|
||||
return (this.get = hookFn).apply( this, arguments );
|
||||
return ( this.get = hookFn ).apply( this, arguments );
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return addGetHookIf;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
65
dashboard-ui/bower_components/jquery/src/css/adjustCSS.js
vendored
Normal file
65
dashboard-ui/bower_components/jquery/src/css/adjustCSS.js
vendored
Normal file
|
@ -0,0 +1,65 @@
|
|||
define( [
|
||||
"../core",
|
||||
"../var/rcssNum"
|
||||
], function( jQuery, rcssNum ) {
|
||||
|
||||
function adjustCSS( elem, prop, valueParts, tween ) {
|
||||
var adjusted,
|
||||
scale = 1,
|
||||
maxIterations = 20,
|
||||
currentValue = tween ?
|
||||
function() { return tween.cur(); } :
|
||||
function() { return jQuery.css( elem, prop, "" ); },
|
||||
initial = currentValue(),
|
||||
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
|
||||
|
||||
// Starting value computation is required for potential unit mismatches
|
||||
initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
|
||||
rcssNum.exec( jQuery.css( elem, prop ) );
|
||||
|
||||
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
|
||||
|
||||
// Trust units reported by jQuery.css
|
||||
unit = unit || initialInUnit[ 3 ];
|
||||
|
||||
// Make sure we update the tween properties later on
|
||||
valueParts = valueParts || [];
|
||||
|
||||
// Iteratively approximate from a nonzero starting point
|
||||
initialInUnit = +initial || 1;
|
||||
|
||||
do {
|
||||
|
||||
// If previous iteration zeroed out, double until we get *something*.
|
||||
// Use string for doubling so we don't accidentally see scale as unchanged below
|
||||
scale = scale || ".5";
|
||||
|
||||
// Adjust and apply
|
||||
initialInUnit = initialInUnit / scale;
|
||||
jQuery.style( elem, prop, initialInUnit + unit );
|
||||
|
||||
// Update scale, tolerating zero or NaN from tween.cur()
|
||||
// Break the loop if scale is unchanged or perfect, or if we've just had enough.
|
||||
} while (
|
||||
scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
|
||||
);
|
||||
}
|
||||
|
||||
if ( valueParts ) {
|
||||
initialInUnit = +initialInUnit || +initial || 0;
|
||||
|
||||
// Apply relative offset (+=/-=) if specified
|
||||
adjusted = valueParts[ 1 ] ?
|
||||
initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
|
||||
+valueParts[ 2 ];
|
||||
if ( tween ) {
|
||||
tween.unit = unit;
|
||||
tween.start = initialInUnit;
|
||||
tween.end = adjusted;
|
||||
}
|
||||
}
|
||||
return adjusted;
|
||||
}
|
||||
|
||||
return adjustCSS;
|
||||
} );
|
|
@ -1,10 +1,11 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"./var/rnumnonpx",
|
||||
"./var/rmargin",
|
||||
"./var/getStyles",
|
||||
"../selector" // contains
|
||||
], function( jQuery, rnumnonpx, rmargin, getStyles ) {
|
||||
"./support",
|
||||
"../selector" // Get jQuery.contains
|
||||
], function( jQuery, rnumnonpx, rmargin, getStyles, support ) {
|
||||
|
||||
function curCSS( elem, name, computed ) {
|
||||
var width, minWidth, maxWidth, ret,
|
||||
|
@ -16,19 +17,17 @@ function curCSS( elem, name, computed ) {
|
|||
// getPropertyValue is only needed for .css('filter') (#12537)
|
||||
if ( computed ) {
|
||||
ret = computed.getPropertyValue( name ) || computed[ name ];
|
||||
}
|
||||
|
||||
if ( computed ) {
|
||||
|
||||
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
|
||||
ret = jQuery.style( elem, name );
|
||||
}
|
||||
|
||||
// Support: iOS < 6
|
||||
// A tribute to the "awesome hack by Dean Edwards"
|
||||
// iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
|
||||
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
|
||||
if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
|
||||
// Android Browser returns percentage for some values,
|
||||
// but width seems to be reliably pixels.
|
||||
// This is against the CSSOM draft spec:
|
||||
// http://dev.w3.org/csswg/cssom/#resolved-values
|
||||
if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
|
||||
|
||||
// Remember the original values
|
||||
width = style.width;
|
||||
|
@ -47,11 +46,12 @@ function curCSS( elem, name, computed ) {
|
|||
}
|
||||
|
||||
return ret !== undefined ?
|
||||
// Support: IE
|
||||
|
||||
// Support: IE9-11+
|
||||
// IE returns zIndex value as an integer.
|
||||
ret + "" :
|
||||
ret;
|
||||
}
|
||||
|
||||
return curCSS;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,27 +1,29 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"../manipulation" // appendTo
|
||||
], function( jQuery ) {
|
||||
], function( jQuery, document ) {
|
||||
|
||||
var iframe,
|
||||
elemdisplay = {};
|
||||
elemdisplay = {
|
||||
|
||||
// Support: Firefox
|
||||
// We have to pre-define these values for FF (#10227)
|
||||
HTML: "block",
|
||||
BODY: "block"
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieve the actual display of a element
|
||||
* @param {String} name nodeName of the element
|
||||
* @param {Object} doc Document object
|
||||
*/
|
||||
|
||||
// Called only from within defaultDisplay
|
||||
function actualDisplay( name, doc ) {
|
||||
var style,
|
||||
elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
|
||||
var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
|
||||
|
||||
// getDefaultComputedStyle might be reliably used only on attached element
|
||||
display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
|
||||
|
||||
// Use of this method is a temporary fix (more like optimization) until something better comes along,
|
||||
// since it was removed from specification and supported only in FF
|
||||
style.display : jQuery.css( elem[ 0 ], "display" );
|
||||
display = jQuery.css( elem[ 0 ], "display" );
|
||||
|
||||
// We don't have any data stored on the element,
|
||||
// so use "detach" method as fast way to get rid of the element
|
||||
|
@ -45,7 +47,8 @@ function defaultDisplay( nodeName ) {
|
|||
if ( display === "none" || !display ) {
|
||||
|
||||
// Use the already-created iframe if possible
|
||||
iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
|
||||
iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
|
||||
.appendTo( doc.documentElement );
|
||||
|
||||
// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
|
||||
doc = iframe[ 0 ].contentDocument;
|
||||
|
@ -66,5 +69,4 @@ function defaultDisplay( nodeName ) {
|
|||
}
|
||||
|
||||
return defaultDisplay;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,15 +1,18 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../selector"
|
||||
], function( jQuery ) {
|
||||
|
||||
jQuery.expr.filters.hidden = function( elem ) {
|
||||
// Support: Opera <= 12.12
|
||||
// Opera reports offsetWidths and offsetHeights less than zero on some elements
|
||||
return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
|
||||
return !jQuery.expr.filters.visible( elem );
|
||||
};
|
||||
jQuery.expr.filters.visible = function( elem ) {
|
||||
return !jQuery.expr.filters.hidden( elem );
|
||||
|
||||
// Support: Opera <= 12.12
|
||||
// Opera reports offsetWidths and offsetHeights less than zero on some elements
|
||||
// Use OR instead of AND as the element is not visible if either is true
|
||||
// See tickets #10406 and #13132
|
||||
return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;
|
||||
};
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
48
dashboard-ui/bower_components/jquery/src/css/showHide.js
vendored
Normal file
48
dashboard-ui/bower_components/jquery/src/css/showHide.js
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
define( [
|
||||
"../data/var/dataPriv"
|
||||
], function( dataPriv ) {
|
||||
|
||||
function showHide( elements, show ) {
|
||||
var display, elem,
|
||||
values = [],
|
||||
index = 0,
|
||||
length = elements.length;
|
||||
|
||||
// Determine new display value for elements that need to change
|
||||
for ( ; index < length; index++ ) {
|
||||
elem = elements[ index ];
|
||||
if ( !elem.style ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
display = elem.style.display;
|
||||
if ( show ) {
|
||||
if ( display === "none" ) {
|
||||
|
||||
// Restore a pre-hide() value if we have one
|
||||
values[ index ] = dataPriv.get( elem, "display" ) || "";
|
||||
}
|
||||
} else {
|
||||
if ( display !== "none" ) {
|
||||
values[ index ] = "none";
|
||||
|
||||
// Remember the value we're replacing
|
||||
dataPriv.set( elem, "display", display );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set the display of the elements in a second loop
|
||||
// to avoid the constant reflow
|
||||
for ( index = 0; index < length; index++ ) {
|
||||
if ( values[ index ] != null ) {
|
||||
elements[ index ].style.display = values[ index ];
|
||||
}
|
||||
}
|
||||
|
||||
return elements;
|
||||
}
|
||||
|
||||
return showHide;
|
||||
|
||||
} );
|
|
@ -1,14 +1,16 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"../var/documentElement",
|
||||
"../var/support"
|
||||
], function( jQuery, support ) {
|
||||
], function( jQuery, document, documentElement, support ) {
|
||||
|
||||
(function() {
|
||||
var pixelPositionVal, boxSizingReliableVal,
|
||||
docElem = document.documentElement,
|
||||
( function() {
|
||||
var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
|
||||
container = document.createElement( "div" ),
|
||||
div = document.createElement( "div" );
|
||||
|
||||
// Finish early in limited (non-browser) environments
|
||||
if ( !div.style ) {
|
||||
return;
|
||||
}
|
||||
|
@ -19,78 +21,101 @@ define([
|
|||
div.cloneNode( true ).style.backgroundClip = "";
|
||||
support.clearCloneStyle = div.style.backgroundClip === "content-box";
|
||||
|
||||
container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
|
||||
"position:absolute";
|
||||
container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
|
||||
"padding:0;margin-top:1px;position:absolute";
|
||||
container.appendChild( div );
|
||||
|
||||
// Executing both pixelPosition & boxSizingReliable tests require only one layout
|
||||
// so they're executed at the same time to save the second computation.
|
||||
function computePixelPositionAndBoxSizingReliable() {
|
||||
function computeStyleTests() {
|
||||
div.style.cssText =
|
||||
|
||||
// Support: Firefox<29, Android 2.3
|
||||
// Vendor-prefix box-sizing
|
||||
"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
|
||||
"box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
|
||||
"border:1px;padding:1px;width:4px;position:absolute";
|
||||
"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
|
||||
"position:relative;display:block;" +
|
||||
"margin:auto;border:1px;padding:1px;" +
|
||||
"top:1%;width:50%";
|
||||
div.innerHTML = "";
|
||||
docElem.appendChild( container );
|
||||
documentElement.appendChild( container );
|
||||
|
||||
var divStyle = window.getComputedStyle( div, null );
|
||||
var divStyle = window.getComputedStyle( div );
|
||||
pixelPositionVal = divStyle.top !== "1%";
|
||||
reliableMarginLeftVal = divStyle.marginLeft === "2px";
|
||||
boxSizingReliableVal = divStyle.width === "4px";
|
||||
|
||||
docElem.removeChild( container );
|
||||
// Support: Android 4.0 - 4.3 only
|
||||
// Some styles come back with percentage values, even though they shouldn't
|
||||
div.style.marginRight = "50%";
|
||||
pixelMarginRightVal = divStyle.marginRight === "4px";
|
||||
|
||||
documentElement.removeChild( container );
|
||||
}
|
||||
|
||||
// Support: node.js jsdom
|
||||
// Don't assume that getComputedStyle is a property of the global object
|
||||
if ( window.getComputedStyle ) {
|
||||
jQuery.extend( support, {
|
||||
pixelPosition: function() {
|
||||
jQuery.extend( support, {
|
||||
pixelPosition: function() {
|
||||
|
||||
// This test is executed only once but we still do memoizing
|
||||
// since we can use the boxSizingReliable pre-computing.
|
||||
// No need to check if the test was already performed, though.
|
||||
computePixelPositionAndBoxSizingReliable();
|
||||
return pixelPositionVal;
|
||||
},
|
||||
boxSizingReliable: function() {
|
||||
if ( boxSizingReliableVal == null ) {
|
||||
computePixelPositionAndBoxSizingReliable();
|
||||
}
|
||||
return boxSizingReliableVal;
|
||||
},
|
||||
reliableMarginRight: function() {
|
||||
// This test is executed only once but we still do memoizing
|
||||
// since we can use the boxSizingReliable pre-computing.
|
||||
// No need to check if the test was already performed, though.
|
||||
computeStyleTests();
|
||||
return pixelPositionVal;
|
||||
},
|
||||
boxSizingReliable: function() {
|
||||
if ( boxSizingReliableVal == null ) {
|
||||
computeStyleTests();
|
||||
}
|
||||
return boxSizingReliableVal;
|
||||
},
|
||||
pixelMarginRight: function() {
|
||||
|
||||
// Support: Android 4.0-4.3
|
||||
// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal
|
||||
// since that compresses better and they're computed together anyway.
|
||||
if ( boxSizingReliableVal == null ) {
|
||||
computeStyleTests();
|
||||
}
|
||||
return pixelMarginRightVal;
|
||||
},
|
||||
reliableMarginLeft: function() {
|
||||
|
||||
// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
|
||||
if ( boxSizingReliableVal == null ) {
|
||||
computeStyleTests();
|
||||
}
|
||||
return reliableMarginLeftVal;
|
||||
},
|
||||
reliableMarginRight: function() {
|
||||
|
||||
// Support: Android 2.3
|
||||
// Check if div with explicit width and no margin-right incorrectly
|
||||
// gets computed margin-right based on width of container. (#3333)
|
||||
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
||||
// This support function is only executed once so no memoizing is needed.
|
||||
var ret,
|
||||
marginDiv = div.appendChild( document.createElement( "div" ) );
|
||||
|
||||
// Reset CSS: box-sizing; display; margin; border; padding
|
||||
marginDiv.style.cssText = div.style.cssText =
|
||||
|
||||
// Support: Android 2.3
|
||||
// Check if div with explicit width and no margin-right incorrectly
|
||||
// gets computed margin-right based on width of container. (#3333)
|
||||
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
||||
// This support function is only executed once so no memoizing is needed.
|
||||
var ret,
|
||||
marginDiv = div.appendChild( document.createElement( "div" ) );
|
||||
// Vendor-prefix box-sizing
|
||||
"-webkit-box-sizing:content-box;box-sizing:content-box;" +
|
||||
"display:block;margin:0;border:0;padding:0";
|
||||
marginDiv.style.marginRight = marginDiv.style.width = "0";
|
||||
div.style.width = "1px";
|
||||
documentElement.appendChild( container );
|
||||
|
||||
// Reset CSS: box-sizing; display; margin; border; padding
|
||||
marginDiv.style.cssText = div.style.cssText =
|
||||
// Support: Firefox<29, Android 2.3
|
||||
// Vendor-prefix box-sizing
|
||||
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
|
||||
"box-sizing:content-box;display:block;margin:0;border:0;padding:0";
|
||||
marginDiv.style.marginRight = marginDiv.style.width = "0";
|
||||
div.style.width = "1px";
|
||||
docElem.appendChild( container );
|
||||
ret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );
|
||||
|
||||
ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
|
||||
documentElement.removeChild( container );
|
||||
div.removeChild( marginDiv );
|
||||
|
||||
docElem.removeChild( container );
|
||||
div.removeChild( marginDiv );
|
||||
|
||||
return ret;
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
return ret;
|
||||
}
|
||||
} );
|
||||
} )();
|
||||
|
||||
return support;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
define([
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
// A method for quickly swapping in/out CSS properties to get correct calculations.
|
||||
jQuery.swap = function( elem, options, callback, args ) {
|
||||
var ret, name,
|
||||
old = {};
|
||||
|
||||
// Remember the old values, and insert the new ones
|
||||
for ( name in options ) {
|
||||
old[ name ] = elem.style[ name ];
|
||||
elem.style[ name ] = options[ name ];
|
||||
}
|
||||
|
||||
ret = callback.apply( elem, args || [] );
|
||||
|
||||
// Revert the old values
|
||||
for ( name in options ) {
|
||||
elem.style[ name ] = old[ name ];
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
return jQuery.swap;
|
||||
|
||||
});
|
89
dashboard-ui/bower_components/jquery/src/data.js
vendored
89
dashboard-ui/bower_components/jquery/src/data.js
vendored
|
@ -1,10 +1,9 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/rnotwhite",
|
||||
"./core/access",
|
||||
"./data/var/data_priv",
|
||||
"./data/var/data_user"
|
||||
], function( jQuery, rnotwhite, access, data_priv, data_user ) {
|
||||
"./data/var/dataPriv",
|
||||
"./data/var/dataUser"
|
||||
], function( jQuery, access, dataPriv, dataUser ) {
|
||||
|
||||
// Implementation Summary
|
||||
//
|
||||
|
@ -17,7 +16,7 @@ define([
|
|||
// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
|
||||
|
||||
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
|
||||
rmultiDash = /([A-Z])/g;
|
||||
rmultiDash = /[A-Z]/g;
|
||||
|
||||
function dataAttr( elem, key, data ) {
|
||||
var name;
|
||||
|
@ -25,7 +24,7 @@ function dataAttr( elem, key, data ) {
|
|||
// If nothing was found internally, try to fetch any
|
||||
// data from the HTML5 data-* attribute
|
||||
if ( data === undefined && elem.nodeType === 1 ) {
|
||||
name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
|
||||
name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
|
||||
data = elem.getAttribute( name );
|
||||
|
||||
if ( typeof data === "string" ) {
|
||||
|
@ -33,14 +32,15 @@ function dataAttr( elem, key, data ) {
|
|||
data = data === "true" ? true :
|
||||
data === "false" ? false :
|
||||
data === "null" ? null :
|
||||
|
||||
// Only convert to a number if it doesn't change the string
|
||||
+data + "" === data ? +data :
|
||||
rbrace.test( data ) ? jQuery.parseJSON( data ) :
|
||||
data;
|
||||
} catch( e ) {}
|
||||
} catch ( e ) {}
|
||||
|
||||
// Make sure we set the data so it isn't changed later
|
||||
data_user.set( elem, key, data );
|
||||
dataUser.set( elem, key, data );
|
||||
} else {
|
||||
data = undefined;
|
||||
}
|
||||
|
@ -48,31 +48,31 @@ function dataAttr( elem, key, data ) {
|
|||
return data;
|
||||
}
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
hasData: function( elem ) {
|
||||
return data_user.hasData( elem ) || data_priv.hasData( elem );
|
||||
return dataUser.hasData( elem ) || dataPriv.hasData( elem );
|
||||
},
|
||||
|
||||
data: function( elem, name, data ) {
|
||||
return data_user.access( elem, name, data );
|
||||
return dataUser.access( elem, name, data );
|
||||
},
|
||||
|
||||
removeData: function( elem, name ) {
|
||||
data_user.remove( elem, name );
|
||||
dataUser.remove( elem, name );
|
||||
},
|
||||
|
||||
// TODO: Now that all calls to _data and _removeData have been replaced
|
||||
// with direct calls to data_priv methods, these can be deprecated.
|
||||
// with direct calls to dataPriv methods, these can be deprecated.
|
||||
_data: function( elem, name, data ) {
|
||||
return data_priv.access( elem, name, data );
|
||||
return dataPriv.access( elem, name, data );
|
||||
},
|
||||
|
||||
_removeData: function( elem, name ) {
|
||||
data_priv.remove( elem, name );
|
||||
dataPriv.remove( elem, name );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
data: function( key, value ) {
|
||||
var i, name, data,
|
||||
elem = this[ 0 ],
|
||||
|
@ -81,9 +81,9 @@ jQuery.fn.extend({
|
|||
// Gets all values
|
||||
if ( key === undefined ) {
|
||||
if ( this.length ) {
|
||||
data = data_user.get( elem );
|
||||
data = dataUser.get( elem );
|
||||
|
||||
if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
|
||||
if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
|
||||
i = attrs.length;
|
||||
while ( i-- ) {
|
||||
|
||||
|
@ -92,12 +92,12 @@ jQuery.fn.extend({
|
|||
if ( attrs[ i ] ) {
|
||||
name = attrs[ i ].name;
|
||||
if ( name.indexOf( "data-" ) === 0 ) {
|
||||
name = jQuery.camelCase( name.slice(5) );
|
||||
name = jQuery.camelCase( name.slice( 5 ) );
|
||||
dataAttr( elem, name, data[ name ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
data_priv.set( elem, "hasDataAttrs", true );
|
||||
dataPriv.set( elem, "hasDataAttrs", true );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,14 +106,13 @@ jQuery.fn.extend({
|
|||
|
||||
// Sets multiple values
|
||||
if ( typeof key === "object" ) {
|
||||
return this.each(function() {
|
||||
data_user.set( this, key );
|
||||
});
|
||||
return this.each( function() {
|
||||
dataUser.set( this, key );
|
||||
} );
|
||||
}
|
||||
|
||||
return access( this, function( value ) {
|
||||
var data,
|
||||
camelKey = jQuery.camelCase( key );
|
||||
var data, camelKey;
|
||||
|
||||
// The calling jQuery object (element matches) is not empty
|
||||
// (and therefore has an element appears at this[ 0 ]) and the
|
||||
|
@ -121,16 +120,24 @@ jQuery.fn.extend({
|
|||
// will result in `undefined` for elem = this[ 0 ] which will
|
||||
// throw an exception if an attempt to read a data cache is made.
|
||||
if ( elem && value === undefined ) {
|
||||
|
||||
// Attempt to get data from the cache
|
||||
// with the key as-is
|
||||
data = data_user.get( elem, key );
|
||||
data = dataUser.get( elem, key ) ||
|
||||
|
||||
// Try to find dashed key if it exists (gh-2779)
|
||||
// This is for 2.2.x only
|
||||
dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() );
|
||||
|
||||
if ( data !== undefined ) {
|
||||
return data;
|
||||
}
|
||||
|
||||
camelKey = jQuery.camelCase( key );
|
||||
|
||||
// Attempt to get data from the cache
|
||||
// with the key camelized
|
||||
data = data_user.get( elem, camelKey );
|
||||
data = dataUser.get( elem, camelKey );
|
||||
if ( data !== undefined ) {
|
||||
return data;
|
||||
}
|
||||
|
@ -147,32 +154,34 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
// Set the data...
|
||||
this.each(function() {
|
||||
camelKey = jQuery.camelCase( key );
|
||||
this.each( function() {
|
||||
|
||||
// First, attempt to store a copy or reference of any
|
||||
// data that might've been store with a camelCased key.
|
||||
var data = data_user.get( this, camelKey );
|
||||
var data = dataUser.get( this, camelKey );
|
||||
|
||||
// For HTML5 data-* attribute interop, we have to
|
||||
// store property names with dashes in a camelCase form.
|
||||
// This might not apply to all properties...*
|
||||
data_user.set( this, camelKey, value );
|
||||
dataUser.set( this, camelKey, value );
|
||||
|
||||
// *... In the case of properties that might _actually_
|
||||
// have dashes, we need to also store a copy of that
|
||||
// unchanged property.
|
||||
if ( key.indexOf("-") !== -1 && data !== undefined ) {
|
||||
data_user.set( this, key, value );
|
||||
if ( key.indexOf( "-" ) > -1 && data !== undefined ) {
|
||||
dataUser.set( this, key, value );
|
||||
}
|
||||
});
|
||||
} );
|
||||
}, null, value, arguments.length > 1, null, true );
|
||||
},
|
||||
|
||||
removeData: function( key ) {
|
||||
return this.each(function() {
|
||||
data_user.remove( this, key );
|
||||
});
|
||||
return this.each( function() {
|
||||
dataUser.remove( this, key );
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,69 +1,80 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/rnotwhite",
|
||||
"./accepts"
|
||||
], function( jQuery, rnotwhite ) {
|
||||
"./var/acceptData"
|
||||
], function( jQuery, rnotwhite, acceptData ) {
|
||||
|
||||
function Data() {
|
||||
// Support: Android<4,
|
||||
// Old WebKit does not have Object.preventExtensions/freeze method,
|
||||
// return new empty object instead with no [[set]] accessor
|
||||
Object.defineProperty( this.cache = {}, 0, {
|
||||
get: function() {
|
||||
return {};
|
||||
}
|
||||
});
|
||||
|
||||
this.expando = jQuery.expando + Data.uid++;
|
||||
}
|
||||
|
||||
Data.uid = 1;
|
||||
Data.accepts = jQuery.acceptData;
|
||||
|
||||
Data.prototype = {
|
||||
key: function( owner ) {
|
||||
|
||||
register: function( owner, initial ) {
|
||||
var value = initial || {};
|
||||
|
||||
// If it is a node unlikely to be stringify-ed or looped over
|
||||
// use plain assignment
|
||||
if ( owner.nodeType ) {
|
||||
owner[ this.expando ] = value;
|
||||
|
||||
// Otherwise secure it in a non-enumerable, non-writable property
|
||||
// configurability must be true to allow the property to be
|
||||
// deleted with the delete operator
|
||||
} else {
|
||||
Object.defineProperty( owner, this.expando, {
|
||||
value: value,
|
||||
writable: true,
|
||||
configurable: true
|
||||
} );
|
||||
}
|
||||
return owner[ this.expando ];
|
||||
},
|
||||
cache: function( owner ) {
|
||||
|
||||
// We can accept data for non-element nodes in modern browsers,
|
||||
// but we should not, see #8335.
|
||||
// Always return the key for a frozen object.
|
||||
if ( !Data.accepts( owner ) ) {
|
||||
return 0;
|
||||
// Always return an empty object.
|
||||
if ( !acceptData( owner ) ) {
|
||||
return {};
|
||||
}
|
||||
|
||||
var descriptor = {},
|
||||
// Check if the owner object already has a cache key
|
||||
unlock = owner[ this.expando ];
|
||||
// Check if the owner object already has a cache
|
||||
var value = owner[ this.expando ];
|
||||
|
||||
// If not, create one
|
||||
if ( !unlock ) {
|
||||
unlock = Data.uid++;
|
||||
if ( !value ) {
|
||||
value = {};
|
||||
|
||||
// Secure it in a non-enumerable, non-writable property
|
||||
try {
|
||||
descriptor[ this.expando ] = { value: unlock };
|
||||
Object.defineProperties( owner, descriptor );
|
||||
// We can accept data for non-element nodes in modern browsers,
|
||||
// but we should not, see #8335.
|
||||
// Always return an empty object.
|
||||
if ( acceptData( owner ) ) {
|
||||
|
||||
// Support: Android<4
|
||||
// Fallback to a less secure definition
|
||||
} catch ( e ) {
|
||||
descriptor[ this.expando ] = unlock;
|
||||
jQuery.extend( owner, descriptor );
|
||||
// If it is a node unlikely to be stringify-ed or looped over
|
||||
// use plain assignment
|
||||
if ( owner.nodeType ) {
|
||||
owner[ this.expando ] = value;
|
||||
|
||||
// Otherwise secure it in a non-enumerable property
|
||||
// configurable must be true to allow the property to be
|
||||
// deleted when data is removed
|
||||
} else {
|
||||
Object.defineProperty( owner, this.expando, {
|
||||
value: value,
|
||||
configurable: true
|
||||
} );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure the cache object
|
||||
if ( !this.cache[ unlock ] ) {
|
||||
this.cache[ unlock ] = {};
|
||||
}
|
||||
|
||||
return unlock;
|
||||
return value;
|
||||
},
|
||||
set: function( owner, data, value ) {
|
||||
var prop,
|
||||
// There may be an unlock assigned to this node,
|
||||
// if there is no entry for this "owner", create one inline
|
||||
// and set the unlock as though an owner entry had always existed
|
||||
unlock = this.key( owner ),
|
||||
cache = this.cache[ unlock ];
|
||||
cache = this.cache( owner );
|
||||
|
||||
// Handle: [ owner, key, value ] args
|
||||
if ( typeof data === "string" ) {
|
||||
|
@ -71,30 +82,22 @@ Data.prototype = {
|
|||
|
||||
// Handle: [ owner, { properties } ] args
|
||||
} else {
|
||||
// Fresh assignments by object are shallow copied
|
||||
if ( jQuery.isEmptyObject( cache ) ) {
|
||||
jQuery.extend( this.cache[ unlock ], data );
|
||||
// Otherwise, copy the properties one-by-one to the cache object
|
||||
} else {
|
||||
for ( prop in data ) {
|
||||
cache[ prop ] = data[ prop ];
|
||||
}
|
||||
|
||||
// Copy the properties one-by-one to the cache object
|
||||
for ( prop in data ) {
|
||||
cache[ prop ] = data[ prop ];
|
||||
}
|
||||
}
|
||||
return cache;
|
||||
},
|
||||
get: function( owner, key ) {
|
||||
// Either a valid cache is found, or will be created.
|
||||
// New caches will be created and the unlock returned,
|
||||
// allowing direct access to the newly created
|
||||
// empty data object. A valid owner object must be provided.
|
||||
var cache = this.cache[ this.key( owner ) ];
|
||||
|
||||
return key === undefined ?
|
||||
cache : cache[ key ];
|
||||
this.cache( owner ) :
|
||||
owner[ this.expando ] && owner[ this.expando ][ key ];
|
||||
},
|
||||
access: function( owner, key, value ) {
|
||||
var stored;
|
||||
|
||||
// In cases where either:
|
||||
//
|
||||
// 1. No key was specified
|
||||
|
@ -107,15 +110,15 @@ Data.prototype = {
|
|||
// 2. The data stored at the key
|
||||
//
|
||||
if ( key === undefined ||
|
||||
((key && typeof key === "string") && value === undefined) ) {
|
||||
( ( key && typeof key === "string" ) && value === undefined ) ) {
|
||||
|
||||
stored = this.get( owner, key );
|
||||
|
||||
return stored !== undefined ?
|
||||
stored : this.get( owner, jQuery.camelCase(key) );
|
||||
stored : this.get( owner, jQuery.camelCase( key ) );
|
||||
}
|
||||
|
||||
// [*]When the key is not a string, or both a key and value
|
||||
// When the key is not a string, or both a key and value
|
||||
// are specified, set or extend (existing objects) with either:
|
||||
//
|
||||
// 1. An object of properties
|
||||
|
@ -129,15 +132,20 @@ Data.prototype = {
|
|||
},
|
||||
remove: function( owner, key ) {
|
||||
var i, name, camel,
|
||||
unlock = this.key( owner ),
|
||||
cache = this.cache[ unlock ];
|
||||
cache = owner[ this.expando ];
|
||||
|
||||
if ( cache === undefined ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( key === undefined ) {
|
||||
this.cache[ unlock ] = {};
|
||||
this.register( owner );
|
||||
|
||||
} else {
|
||||
|
||||
// Support array or space separated string of keys
|
||||
if ( jQuery.isArray( key ) ) {
|
||||
|
||||
// If "name" is an array of keys...
|
||||
// When data is initially created, via ("key", "val") signature,
|
||||
// keys will be converted to camelCase.
|
||||
|
@ -147,10 +155,12 @@ Data.prototype = {
|
|||
name = key.concat( key.map( jQuery.camelCase ) );
|
||||
} else {
|
||||
camel = jQuery.camelCase( key );
|
||||
|
||||
// Try the string as a key before any manipulation
|
||||
if ( key in cache ) {
|
||||
name = [ key, camel ];
|
||||
} else {
|
||||
|
||||
// If a key with the spaces exists, use it.
|
||||
// Otherwise, create an array by matching non-whitespace
|
||||
name = camel;
|
||||
|
@ -160,22 +170,31 @@ Data.prototype = {
|
|||
}
|
||||
|
||||
i = name.length;
|
||||
|
||||
while ( i-- ) {
|
||||
delete cache[ name[ i ] ];
|
||||
}
|
||||
}
|
||||
|
||||
// Remove the expando if there's no more data
|
||||
if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
|
||||
|
||||
// Support: Chrome <= 35-45+
|
||||
// Webkit & Blink performance suffers when deleting properties
|
||||
// from DOM nodes, so set to undefined instead
|
||||
// https://code.google.com/p/chromium/issues/detail?id=378607
|
||||
if ( owner.nodeType ) {
|
||||
owner[ this.expando ] = undefined;
|
||||
} else {
|
||||
delete owner[ this.expando ];
|
||||
}
|
||||
}
|
||||
},
|
||||
hasData: function( owner ) {
|
||||
return !jQuery.isEmptyObject(
|
||||
this.cache[ owner[ this.expando ] ] || {}
|
||||
);
|
||||
},
|
||||
discard: function( owner ) {
|
||||
if ( owner[ this.expando ] ) {
|
||||
delete this.cache[ owner[ this.expando ] ];
|
||||
}
|
||||
var cache = owner[ this.expando ];
|
||||
return cache !== undefined && !jQuery.isEmptyObject( cache );
|
||||
}
|
||||
};
|
||||
|
||||
return Data;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
define([
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
/**
|
||||
* Determines whether an object can have data
|
||||
*/
|
||||
jQuery.acceptData = function( owner ) {
|
||||
// Accepts only:
|
||||
// - Node
|
||||
// - Node.ELEMENT_NODE
|
||||
// - Node.DOCUMENT_NODE
|
||||
// - Object
|
||||
// - Any
|
||||
/* jshint -W018 */
|
||||
return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
|
||||
};
|
||||
|
||||
return jQuery.acceptData;
|
||||
});
|
|
@ -1,17 +1,18 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/slice",
|
||||
"./callbacks"
|
||||
], function( jQuery, slice ) {
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
|
||||
Deferred: function( func ) {
|
||||
var tuples = [
|
||||
|
||||
// action, add listener, listener list, final state
|
||||
[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
|
||||
[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
|
||||
[ "notify", "progress", jQuery.Callbacks("memory") ]
|
||||
[ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
|
||||
[ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
|
||||
[ "notify", "progress", jQuery.Callbacks( "memory" ) ]
|
||||
],
|
||||
state = "pending",
|
||||
promise = {
|
||||
|
@ -24,25 +25,30 @@ jQuery.extend({
|
|||
},
|
||||
then: function( /* fnDone, fnFail, fnProgress */ ) {
|
||||
var fns = arguments;
|
||||
return jQuery.Deferred(function( newDefer ) {
|
||||
return jQuery.Deferred( function( newDefer ) {
|
||||
jQuery.each( tuples, function( i, tuple ) {
|
||||
var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
|
||||
|
||||
// deferred[ done | fail | progress ] for forwarding actions to newDefer
|
||||
deferred[ tuple[1] ](function() {
|
||||
deferred[ tuple[ 1 ] ]( function() {
|
||||
var returned = fn && fn.apply( this, arguments );
|
||||
if ( returned && jQuery.isFunction( returned.promise ) ) {
|
||||
returned.promise()
|
||||
.progress( newDefer.notify )
|
||||
.done( newDefer.resolve )
|
||||
.fail( newDefer.reject )
|
||||
.progress( newDefer.notify );
|
||||
.fail( newDefer.reject );
|
||||
} else {
|
||||
newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
|
||||
newDefer[ tuple[ 0 ] + "With" ](
|
||||
this === promise ? newDefer.promise() : this,
|
||||
fn ? [ returned ] : arguments
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
} );
|
||||
} );
|
||||
fns = null;
|
||||
}).promise();
|
||||
} ).promise();
|
||||
},
|
||||
|
||||
// Get a promise for this deferred
|
||||
// If obj is provided, the promise aspect is added to the object
|
||||
promise: function( obj ) {
|
||||
|
@ -60,11 +66,12 @@ jQuery.extend({
|
|||
stateString = tuple[ 3 ];
|
||||
|
||||
// promise[ done | fail | progress ] = list.add
|
||||
promise[ tuple[1] ] = list.add;
|
||||
promise[ tuple[ 1 ] ] = list.add;
|
||||
|
||||
// Handle state
|
||||
if ( stateString ) {
|
||||
list.add(function() {
|
||||
list.add( function() {
|
||||
|
||||
// state = [ resolved | rejected ]
|
||||
state = stateString;
|
||||
|
||||
|
@ -73,12 +80,12 @@ jQuery.extend({
|
|||
}
|
||||
|
||||
// deferred[ resolve | reject | notify ]
|
||||
deferred[ tuple[0] ] = function() {
|
||||
deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
|
||||
deferred[ tuple[ 0 ] ] = function() {
|
||||
deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
|
||||
return this;
|
||||
};
|
||||
deferred[ tuple[0] + "With" ] = list.fireWith;
|
||||
});
|
||||
deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
|
||||
} );
|
||||
|
||||
// Make the deferred a promise
|
||||
promise.promise( deferred );
|
||||
|
@ -99,9 +106,11 @@ jQuery.extend({
|
|||
length = resolveValues.length,
|
||||
|
||||
// the count of uncompleted subordinates
|
||||
remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
|
||||
remaining = length !== 1 ||
|
||||
( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
|
||||
|
||||
// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
|
||||
// the master Deferred.
|
||||
// If resolveValues consist of only a single Deferred, just use that.
|
||||
deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
|
||||
|
||||
// Update function for both resolve and progress values
|
||||
|
@ -127,9 +136,9 @@ jQuery.extend({
|
|||
for ( ; i < length; i++ ) {
|
||||
if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
|
||||
resolveValues[ i ].promise()
|
||||
.progress( updateFunc( i, progressContexts, progressValues ) )
|
||||
.done( updateFunc( i, resolveContexts, resolveValues ) )
|
||||
.fail( deferred.reject )
|
||||
.progress( updateFunc( i, progressContexts, progressValues ) );
|
||||
.fail( deferred.reject );
|
||||
} else {
|
||||
--remaining;
|
||||
}
|
||||
|
@ -143,7 +152,7 @@ jQuery.extend({
|
|||
|
||||
return deferred.promise();
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,13 +1,32 @@
|
|||
define([
|
||||
"./core",
|
||||
"./traversing"
|
||||
define( [
|
||||
"./core"
|
||||
], function( jQuery ) {
|
||||
|
||||
// The number of elements contained in the matched element set
|
||||
jQuery.fn.size = function() {
|
||||
return this.length;
|
||||
};
|
||||
jQuery.fn.extend( {
|
||||
|
||||
bind: function( types, data, fn ) {
|
||||
return this.on( types, null, data, fn );
|
||||
},
|
||||
unbind: function( types, fn ) {
|
||||
return this.off( types, null, fn );
|
||||
},
|
||||
|
||||
delegate: function( selector, types, data, fn ) {
|
||||
return this.on( types, selector, data, fn );
|
||||
},
|
||||
undelegate: function( selector, types, fn ) {
|
||||
|
||||
// ( namespace ) or ( selector, types [, fn] )
|
||||
return arguments.length === 1 ?
|
||||
this.off( selector, "**" ) :
|
||||
this.off( types, selector || "**", fn );
|
||||
},
|
||||
size: function() {
|
||||
return this.length;
|
||||
}
|
||||
} );
|
||||
|
||||
jQuery.fn.andSelf = jQuery.fn.addBack;
|
||||
|
||||
});
|
||||
} );
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./core/access",
|
||||
"./css"
|
||||
|
@ -6,7 +6,9 @@ define([
|
|||
|
||||
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
|
||||
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
||||
jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
|
||||
jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
|
||||
function( defaultExtra, funcName ) {
|
||||
|
||||
// Margin is only for outerHeight, outerWidth
|
||||
jQuery.fn[ funcName ] = function( margin, value ) {
|
||||
var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
|
||||
|
@ -16,6 +18,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
|||
var doc;
|
||||
|
||||
if ( jQuery.isWindow( elem ) ) {
|
||||
|
||||
// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
|
||||
// isn't a whole lot we can do. See pull request at this URL for discussion:
|
||||
// https://github.com/jquery/jquery/pull/764
|
||||
|
@ -36,6 +39,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
|||
}
|
||||
|
||||
return value === undefined ?
|
||||
|
||||
// Get width or height on the element, requesting but not forcing parseFloat
|
||||
jQuery.css( elem, type, extra ) :
|
||||
|
||||
|
@ -43,8 +47,8 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
|||
jQuery.style( elem, type, value, extra );
|
||||
}, type, chainable ? margin : undefined, chainable, null );
|
||||
};
|
||||
});
|
||||
});
|
||||
} );
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
211
dashboard-ui/bower_components/jquery/src/effects.js
vendored
211
dashboard-ui/bower_components/jquery/src/effects.js
vendored
|
@ -1,10 +1,13 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/pnum",
|
||||
"./var/document",
|
||||
"./var/rcssNum",
|
||||
"./css/var/cssExpand",
|
||||
"./var/rnotwhite",
|
||||
"./css/var/isHidden",
|
||||
"./css/adjustCSS",
|
||||
"./css/defaultDisplay",
|
||||
"./data/var/data_priv",
|
||||
"./data/var/dataPriv",
|
||||
|
||||
"./core/init",
|
||||
"./effects/Tween",
|
||||
|
@ -12,70 +15,19 @@ define([
|
|||
"./css",
|
||||
"./deferred",
|
||||
"./traversing"
|
||||
], function( jQuery, pnum, cssExpand, isHidden, defaultDisplay, data_priv ) {
|
||||
], function( jQuery, document, rcssNum, cssExpand, rnotwhite,
|
||||
isHidden, adjustCSS, defaultDisplay, dataPriv ) {
|
||||
|
||||
var
|
||||
fxNow, timerId,
|
||||
rfxtypes = /^(?:toggle|show|hide)$/,
|
||||
rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
|
||||
rrun = /queueHooks$/,
|
||||
animationPrefilters = [ defaultPrefilter ],
|
||||
tweeners = {
|
||||
"*": [ function( prop, value ) {
|
||||
var tween = this.createTween( prop, value ),
|
||||
target = tween.cur(),
|
||||
parts = rfxnum.exec( value ),
|
||||
unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
|
||||
|
||||
// Starting value computation is required for potential unit mismatches
|
||||
start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
|
||||
rfxnum.exec( jQuery.css( tween.elem, prop ) ),
|
||||
scale = 1,
|
||||
maxIterations = 20;
|
||||
|
||||
if ( start && start[ 3 ] !== unit ) {
|
||||
// Trust units reported by jQuery.css
|
||||
unit = unit || start[ 3 ];
|
||||
|
||||
// Make sure we update the tween properties later on
|
||||
parts = parts || [];
|
||||
|
||||
// Iteratively approximate from a nonzero starting point
|
||||
start = +target || 1;
|
||||
|
||||
do {
|
||||
// If previous iteration zeroed out, double until we get *something*.
|
||||
// Use string for doubling so we don't accidentally see scale as unchanged below
|
||||
scale = scale || ".5";
|
||||
|
||||
// Adjust and apply
|
||||
start = start / scale;
|
||||
jQuery.style( tween.elem, prop, start + unit );
|
||||
|
||||
// Update scale, tolerating zero or NaN from tween.cur(),
|
||||
// break the loop if scale is unchanged or perfect, or if we've just had enough
|
||||
} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
|
||||
}
|
||||
|
||||
// Update tween properties
|
||||
if ( parts ) {
|
||||
start = tween.start = +start || +target || 0;
|
||||
tween.unit = unit;
|
||||
// If a +=/-= token was provided, we're doing a relative animation
|
||||
tween.end = parts[ 1 ] ?
|
||||
start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
|
||||
+parts[ 2 ];
|
||||
}
|
||||
|
||||
return tween;
|
||||
} ]
|
||||
};
|
||||
rrun = /queueHooks$/;
|
||||
|
||||
// Animations created synchronously will run synchronously
|
||||
function createFxNow() {
|
||||
setTimeout(function() {
|
||||
window.setTimeout( function() {
|
||||
fxNow = undefined;
|
||||
});
|
||||
} );
|
||||
return ( fxNow = jQuery.now() );
|
||||
}
|
||||
|
||||
|
@ -102,11 +54,11 @@ function genFx( type, includeWidth ) {
|
|||
|
||||
function createTween( value, prop, animation ) {
|
||||
var tween,
|
||||
collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
|
||||
collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
|
||||
index = 0,
|
||||
length = collection.length;
|
||||
for ( ; index < length; index++ ) {
|
||||
if ( (tween = collection[ index ].call( animation, prop, value )) ) {
|
||||
if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
|
||||
|
||||
// We're done with this property
|
||||
return tween;
|
||||
|
@ -121,7 +73,7 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
orig = {},
|
||||
style = elem.style,
|
||||
hidden = elem.nodeType && isHidden( elem ),
|
||||
dataShow = data_priv.get( elem, "fxshow" );
|
||||
dataShow = dataPriv.get( elem, "fxshow" );
|
||||
|
||||
// Handle queue: false promises
|
||||
if ( !opts.queue ) {
|
||||
|
@ -137,19 +89,21 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
}
|
||||
hooks.unqueued++;
|
||||
|
||||
anim.always(function() {
|
||||
anim.always( function() {
|
||||
|
||||
// Ensure the complete handler is called before this completes
|
||||
anim.always(function() {
|
||||
anim.always( function() {
|
||||
hooks.unqueued--;
|
||||
if ( !jQuery.queue( elem, "fx" ).length ) {
|
||||
hooks.empty.fire();
|
||||
}
|
||||
});
|
||||
});
|
||||
} );
|
||||
} );
|
||||
}
|
||||
|
||||
// Height/width overflow pass
|
||||
if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
|
||||
|
||||
// Make sure that nothing sneaks out
|
||||
// Record all 3 overflow attributes because IE9-10 do not
|
||||
// change the overflow attribute when overflowX and
|
||||
|
@ -162,7 +116,7 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
|
||||
// Test default display if display is currently "none"
|
||||
checkDisplay = display === "none" ?
|
||||
data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
|
||||
dataPriv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
|
||||
|
||||
if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
|
||||
style.display = "inline-block";
|
||||
|
@ -171,11 +125,11 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
|
||||
if ( opts.overflow ) {
|
||||
style.overflow = "hidden";
|
||||
anim.always(function() {
|
||||
anim.always( function() {
|
||||
style.overflow = opts.overflow[ 0 ];
|
||||
style.overflowX = opts.overflow[ 1 ];
|
||||
style.overflowY = opts.overflow[ 2 ];
|
||||
});
|
||||
} );
|
||||
}
|
||||
|
||||
// show/hide pass
|
||||
|
@ -186,7 +140,8 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
toggle = toggle || value === "toggle";
|
||||
if ( value === ( hidden ? "hide" : "show" ) ) {
|
||||
|
||||
// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
|
||||
// If there is dataShow left over from a stopped hide or show
|
||||
// and we are going to proceed with show, we should pretend to be hidden
|
||||
if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
|
||||
hidden = true;
|
||||
} else {
|
||||
|
@ -207,7 +162,7 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
hidden = dataShow.hidden;
|
||||
}
|
||||
} else {
|
||||
dataShow = data_priv.access( elem, "fxshow", {} );
|
||||
dataShow = dataPriv.access( elem, "fxshow", {} );
|
||||
}
|
||||
|
||||
// Store state if its toggle - enables .stop().toggle() to "reverse"
|
||||
|
@ -217,18 +172,18 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
if ( hidden ) {
|
||||
jQuery( elem ).show();
|
||||
} else {
|
||||
anim.done(function() {
|
||||
anim.done( function() {
|
||||
jQuery( elem ).hide();
|
||||
});
|
||||
} );
|
||||
}
|
||||
anim.done(function() {
|
||||
anim.done( function() {
|
||||
var prop;
|
||||
|
||||
data_priv.remove( elem, "fxshow" );
|
||||
dataPriv.remove( elem, "fxshow" );
|
||||
for ( prop in orig ) {
|
||||
jQuery.style( elem, prop, orig[ prop ] );
|
||||
}
|
||||
});
|
||||
} );
|
||||
for ( prop in orig ) {
|
||||
tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
|
||||
|
||||
|
@ -242,7 +197,7 @@ function defaultPrefilter( elem, props, opts ) {
|
|||
}
|
||||
|
||||
// If this is a noop like .hide().hide(), restore an overwritten display value
|
||||
} else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
|
||||
} else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
|
||||
style.display = display;
|
||||
}
|
||||
}
|
||||
|
@ -288,17 +243,19 @@ function Animation( elem, properties, options ) {
|
|||
var result,
|
||||
stopped,
|
||||
index = 0,
|
||||
length = animationPrefilters.length,
|
||||
length = Animation.prefilters.length,
|
||||
deferred = jQuery.Deferred().always( function() {
|
||||
|
||||
// Don't match elem in the :animated selector
|
||||
delete tick.elem;
|
||||
}),
|
||||
} ),
|
||||
tick = function() {
|
||||
if ( stopped ) {
|
||||
return false;
|
||||
}
|
||||
var currentTime = fxNow || createFxNow(),
|
||||
remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
|
||||
|
||||
// Support: Android 2.3
|
||||
// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
|
||||
temp = remaining / animation.duration || 0,
|
||||
|
@ -310,7 +267,7 @@ function Animation( elem, properties, options ) {
|
|||
animation.tweens[ index ].run( percent );
|
||||
}
|
||||
|
||||
deferred.notifyWith( elem, [ animation, percent, remaining ]);
|
||||
deferred.notifyWith( elem, [ animation, percent, remaining ] );
|
||||
|
||||
if ( percent < 1 && length ) {
|
||||
return remaining;
|
||||
|
@ -319,10 +276,13 @@ function Animation( elem, properties, options ) {
|
|||
return false;
|
||||
}
|
||||
},
|
||||
animation = deferred.promise({
|
||||
animation = deferred.promise( {
|
||||
elem: elem,
|
||||
props: jQuery.extend( {}, properties ),
|
||||
opts: jQuery.extend( true, { specialEasing: {} }, options ),
|
||||
opts: jQuery.extend( true, {
|
||||
specialEasing: {},
|
||||
easing: jQuery.easing._default
|
||||
}, options ),
|
||||
originalProperties: properties,
|
||||
originalOptions: options,
|
||||
startTime: fxNow || createFxNow(),
|
||||
|
@ -336,6 +296,7 @@ function Animation( elem, properties, options ) {
|
|||
},
|
||||
stop: function( gotoEnd ) {
|
||||
var index = 0,
|
||||
|
||||
// If we are going to the end, we want to run all the tweens
|
||||
// otherwise we skip this part
|
||||
length = gotoEnd ? animation.tweens.length : 0;
|
||||
|
@ -349,20 +310,25 @@ function Animation( elem, properties, options ) {
|
|||
|
||||
// Resolve when we played the last frame; otherwise, reject
|
||||
if ( gotoEnd ) {
|
||||
deferred.notifyWith( elem, [ animation, 1, 0 ] );
|
||||
deferred.resolveWith( elem, [ animation, gotoEnd ] );
|
||||
} else {
|
||||
deferred.rejectWith( elem, [ animation, gotoEnd ] );
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}),
|
||||
} ),
|
||||
props = animation.props;
|
||||
|
||||
propFilter( props, animation.opts.specialEasing );
|
||||
|
||||
for ( ; index < length ; index++ ) {
|
||||
result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
|
||||
result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
|
||||
if ( result ) {
|
||||
if ( jQuery.isFunction( result.stop ) ) {
|
||||
jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
|
||||
jQuery.proxy( result.stop, result );
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -378,7 +344,7 @@ function Animation( elem, properties, options ) {
|
|||
elem: elem,
|
||||
anim: animation,
|
||||
queue: animation.opts.queue
|
||||
})
|
||||
} )
|
||||
);
|
||||
|
||||
// attach callbacks from options
|
||||
|
@ -389,13 +355,20 @@ function Animation( elem, properties, options ) {
|
|||
}
|
||||
|
||||
jQuery.Animation = jQuery.extend( Animation, {
|
||||
tweeners: {
|
||||
"*": [ function( prop, value ) {
|
||||
var tween = this.createTween( prop, value );
|
||||
adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
|
||||
return tween;
|
||||
} ]
|
||||
},
|
||||
|
||||
tweener: function( props, callback ) {
|
||||
if ( jQuery.isFunction( props ) ) {
|
||||
callback = props;
|
||||
props = [ "*" ];
|
||||
} else {
|
||||
props = props.split(" ");
|
||||
props = props.match( rnotwhite );
|
||||
}
|
||||
|
||||
var prop,
|
||||
|
@ -404,19 +377,21 @@ jQuery.Animation = jQuery.extend( Animation, {
|
|||
|
||||
for ( ; index < length ; index++ ) {
|
||||
prop = props[ index ];
|
||||
tweeners[ prop ] = tweeners[ prop ] || [];
|
||||
tweeners[ prop ].unshift( callback );
|
||||
Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
|
||||
Animation.tweeners[ prop ].unshift( callback );
|
||||
}
|
||||
},
|
||||
|
||||
prefilters: [ defaultPrefilter ],
|
||||
|
||||
prefilter: function( callback, prepend ) {
|
||||
if ( prepend ) {
|
||||
animationPrefilters.unshift( callback );
|
||||
Animation.prefilters.unshift( callback );
|
||||
} else {
|
||||
animationPrefilters.push( callback );
|
||||
Animation.prefilters.push( callback );
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.speed = function( speed, easing, fn ) {
|
||||
var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
|
||||
|
@ -426,8 +401,9 @@ jQuery.speed = function( speed, easing, fn ) {
|
|||
easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
|
||||
};
|
||||
|
||||
opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
|
||||
opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
|
||||
opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ?
|
||||
opt.duration : opt.duration in jQuery.fx.speeds ?
|
||||
jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
|
||||
|
||||
// Normalize opt.queue - true/undefined/null -> "fx"
|
||||
if ( opt.queue == null || opt.queue === true ) {
|
||||
|
@ -450,24 +426,25 @@ jQuery.speed = function( speed, easing, fn ) {
|
|||
return opt;
|
||||
};
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
fadeTo: function( speed, to, easing, callback ) {
|
||||
|
||||
// Show any hidden elements after setting opacity to 0
|
||||
return this.filter( isHidden ).css( "opacity", 0 ).show()
|
||||
|
||||
// Animate to the value specified
|
||||
.end().animate({ opacity: to }, speed, easing, callback );
|
||||
.end().animate( { opacity: to }, speed, easing, callback );
|
||||
},
|
||||
animate: function( prop, speed, easing, callback ) {
|
||||
var empty = jQuery.isEmptyObject( prop ),
|
||||
optall = jQuery.speed( speed, easing, callback ),
|
||||
doAnimation = function() {
|
||||
|
||||
// Operate on a copy of prop so per-property easing won't be lost
|
||||
var anim = Animation( this, jQuery.extend( {}, prop ), optall );
|
||||
|
||||
// Empty animations, or finishing resolves immediately
|
||||
if ( empty || data_priv.get( this, "finish" ) ) {
|
||||
if ( empty || dataPriv.get( this, "finish" ) ) {
|
||||
anim.stop( true );
|
||||
}
|
||||
};
|
||||
|
@ -493,11 +470,11 @@ jQuery.fn.extend({
|
|||
this.queue( type || "fx", [] );
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
var dequeue = true,
|
||||
index = type != null && type + "queueHooks",
|
||||
timers = jQuery.timers,
|
||||
data = data_priv.get( this );
|
||||
data = dataPriv.get( this );
|
||||
|
||||
if ( index ) {
|
||||
if ( data[ index ] && data[ index ].stop ) {
|
||||
|
@ -512,7 +489,9 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
for ( index = timers.length; index--; ) {
|
||||
if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
|
||||
if ( timers[ index ].elem === this &&
|
||||
( type == null || timers[ index ].queue === type ) ) {
|
||||
|
||||
timers[ index ].anim.stop( gotoEnd );
|
||||
dequeue = false;
|
||||
timers.splice( index, 1 );
|
||||
|
@ -525,15 +504,15 @@ jQuery.fn.extend({
|
|||
if ( dequeue || !gotoEnd ) {
|
||||
jQuery.dequeue( this, type );
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
finish: function( type ) {
|
||||
if ( type !== false ) {
|
||||
type = type || "fx";
|
||||
}
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
var index,
|
||||
data = data_priv.get( this ),
|
||||
data = dataPriv.get( this ),
|
||||
queue = data[ type + "queue" ],
|
||||
hooks = data[ type + "queueHooks" ],
|
||||
timers = jQuery.timers,
|
||||
|
@ -566,24 +545,24 @@ jQuery.fn.extend({
|
|||
|
||||
// Turn off finishing flag
|
||||
delete data.finish;
|
||||
});
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
|
||||
jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
|
||||
var cssFn = jQuery.fn[ name ];
|
||||
jQuery.fn[ name ] = function( speed, easing, callback ) {
|
||||
return speed == null || typeof speed === "boolean" ?
|
||||
cssFn.apply( this, arguments ) :
|
||||
this.animate( genFx( name, true ), speed, easing, callback );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
// Generate shortcuts for custom animations
|
||||
jQuery.each({
|
||||
slideDown: genFx("show"),
|
||||
slideUp: genFx("hide"),
|
||||
slideToggle: genFx("toggle"),
|
||||
jQuery.each( {
|
||||
slideDown: genFx( "show" ),
|
||||
slideUp: genFx( "hide" ),
|
||||
slideToggle: genFx( "toggle" ),
|
||||
fadeIn: { opacity: "show" },
|
||||
fadeOut: { opacity: "hide" },
|
||||
fadeToggle: { opacity: "toggle" }
|
||||
|
@ -591,7 +570,7 @@ jQuery.each({
|
|||
jQuery.fn[ name ] = function( speed, easing, callback ) {
|
||||
return this.animate( props, speed, easing, callback );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.timers = [];
|
||||
jQuery.fx.tick = function() {
|
||||
|
@ -603,6 +582,7 @@ jQuery.fx.tick = function() {
|
|||
|
||||
for ( ; i < timers.length; i++ ) {
|
||||
timer = timers[ i ];
|
||||
|
||||
// Checks the timer has not already been removed
|
||||
if ( !timer() && timers[ i ] === timer ) {
|
||||
timers.splice( i--, 1 );
|
||||
|
@ -625,24 +605,25 @@ jQuery.fx.timer = function( timer ) {
|
|||
};
|
||||
|
||||
jQuery.fx.interval = 13;
|
||||
|
||||
jQuery.fx.start = function() {
|
||||
if ( !timerId ) {
|
||||
timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
|
||||
timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
|
||||
}
|
||||
};
|
||||
|
||||
jQuery.fx.stop = function() {
|
||||
clearInterval( timerId );
|
||||
window.clearInterval( timerId );
|
||||
|
||||
timerId = null;
|
||||
};
|
||||
|
||||
jQuery.fx.speeds = {
|
||||
slow: 600,
|
||||
fast: 200,
|
||||
|
||||
// Default speed
|
||||
_default: 400
|
||||
};
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../css"
|
||||
], function( jQuery ) {
|
||||
|
@ -13,7 +13,7 @@ Tween.prototype = {
|
|||
init: function( elem, options, prop, end, easing, unit ) {
|
||||
this.elem = elem;
|
||||
this.prop = prop;
|
||||
this.easing = easing || "swing";
|
||||
this.easing = easing || jQuery.easing._default;
|
||||
this.options = options;
|
||||
this.start = this.now = this.cur();
|
||||
this.end = end;
|
||||
|
@ -59,8 +59,10 @@ Tween.propHooks = {
|
|||
get: function( tween ) {
|
||||
var result;
|
||||
|
||||
if ( tween.elem[ tween.prop ] != null &&
|
||||
(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
|
||||
// Use a property on the element directly when it is not a DOM element,
|
||||
// or when there is no matching style property that exists.
|
||||
if ( tween.elem.nodeType !== 1 ||
|
||||
tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
|
||||
return tween.elem[ tween.prop ];
|
||||
}
|
||||
|
||||
|
@ -69,16 +71,20 @@ Tween.propHooks = {
|
|||
// Simple values such as "10px" are parsed to Float;
|
||||
// complex values such as "rotate(1rad)" are returned as-is.
|
||||
result = jQuery.css( tween.elem, tween.prop, "" );
|
||||
|
||||
// Empty strings, null, undefined and "auto" are converted to 0.
|
||||
return !result || result === "auto" ? 0 : result;
|
||||
},
|
||||
set: function( tween ) {
|
||||
|
||||
// Use step hook for back compat.
|
||||
// Use cssHook if its there.
|
||||
// Use .style if available and use plain properties where available.
|
||||
if ( jQuery.fx.step[ tween.prop ] ) {
|
||||
jQuery.fx.step[ tween.prop ]( tween );
|
||||
} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
|
||||
} else if ( tween.elem.nodeType === 1 &&
|
||||
( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
|
||||
jQuery.cssHooks[ tween.prop ] ) ) {
|
||||
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
||||
} else {
|
||||
tween.elem[ tween.prop ] = tween.now;
|
||||
|
@ -103,7 +109,8 @@ jQuery.easing = {
|
|||
},
|
||||
swing: function( p ) {
|
||||
return 0.5 - Math.cos( p * Math.PI ) / 2;
|
||||
}
|
||||
},
|
||||
_default: "swing"
|
||||
};
|
||||
|
||||
jQuery.fx = Tween.prototype.init;
|
||||
|
@ -111,4 +118,4 @@ jQuery.fx = Tween.prototype.init;
|
|||
// Back Compat <1.8 extension point
|
||||
jQuery.fx.step = {};
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../selector",
|
||||
"../effects"
|
||||
], function( jQuery ) {
|
||||
|
||||
jQuery.expr.filters.animated = function( elem ) {
|
||||
return jQuery.grep(jQuery.timers, function( fn ) {
|
||||
return jQuery.grep( jQuery.timers, function( fn ) {
|
||||
return elem === fn.elem;
|
||||
}).length;
|
||||
} ).length;
|
||||
};
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
492
dashboard-ui/bower_components/jquery/src/event.js
vendored
492
dashboard-ui/bower_components/jquery/src/event.js
vendored
|
@ -1,22 +1,18 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/strundefined",
|
||||
"./var/document",
|
||||
"./var/rnotwhite",
|
||||
"./var/hasOwn",
|
||||
"./var/slice",
|
||||
"./event/support",
|
||||
"./data/var/data_priv",
|
||||
"./data/var/dataPriv",
|
||||
|
||||
"./core/init",
|
||||
"./data/accepts",
|
||||
"./selector"
|
||||
], function( jQuery, strundefined, rnotwhite, hasOwn, slice, support, data_priv ) {
|
||||
], function( jQuery, document, rnotwhite, slice, dataPriv ) {
|
||||
|
||||
var
|
||||
rkeyEvent = /^key/,
|
||||
rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
|
||||
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
|
||||
rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
|
||||
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
|
||||
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
||||
|
||||
function returnTrue() {
|
||||
return true;
|
||||
|
@ -26,12 +22,75 @@ function returnFalse() {
|
|||
return false;
|
||||
}
|
||||
|
||||
// Support: IE9
|
||||
// See #13393 for more info
|
||||
function safeActiveElement() {
|
||||
try {
|
||||
return document.activeElement;
|
||||
} catch ( err ) { }
|
||||
}
|
||||
|
||||
function on( elem, types, selector, data, fn, one ) {
|
||||
var origFn, type;
|
||||
|
||||
// Types can be a map of types/handlers
|
||||
if ( typeof types === "object" ) {
|
||||
|
||||
// ( types-Object, selector, data )
|
||||
if ( typeof selector !== "string" ) {
|
||||
|
||||
// ( types-Object, data )
|
||||
data = data || selector;
|
||||
selector = undefined;
|
||||
}
|
||||
for ( type in types ) {
|
||||
on( elem, type, selector, data, types[ type ], one );
|
||||
}
|
||||
return elem;
|
||||
}
|
||||
|
||||
if ( data == null && fn == null ) {
|
||||
|
||||
// ( types, fn )
|
||||
fn = selector;
|
||||
data = selector = undefined;
|
||||
} else if ( fn == null ) {
|
||||
if ( typeof selector === "string" ) {
|
||||
|
||||
// ( types, selector, fn )
|
||||
fn = data;
|
||||
data = undefined;
|
||||
} else {
|
||||
|
||||
// ( types, data, fn )
|
||||
fn = data;
|
||||
data = selector;
|
||||
selector = undefined;
|
||||
}
|
||||
}
|
||||
if ( fn === false ) {
|
||||
fn = returnFalse;
|
||||
} else if ( !fn ) {
|
||||
return this;
|
||||
}
|
||||
|
||||
if ( one === 1 ) {
|
||||
origFn = fn;
|
||||
fn = function( event ) {
|
||||
|
||||
// Can use an empty set, since event contains the info
|
||||
jQuery().off( event );
|
||||
return origFn.apply( this, arguments );
|
||||
};
|
||||
|
||||
// Use same guid so caller can remove using origFn
|
||||
fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
|
||||
}
|
||||
return elem.each( function() {
|
||||
jQuery.event.add( this, types, fn, data, selector );
|
||||
} );
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper functions for managing events -- not part of the public interface.
|
||||
* Props to Dean Edwards' addEvent library for many of the ideas.
|
||||
|
@ -45,7 +104,7 @@ jQuery.event = {
|
|||
var handleObjIn, eventHandle, tmp,
|
||||
events, t, handleObj,
|
||||
special, handlers, type, namespaces, origType,
|
||||
elemData = data_priv.get( elem );
|
||||
elemData = dataPriv.get( elem );
|
||||
|
||||
// Don't attach events to noData or text/comment nodes (but allow plain objects)
|
||||
if ( !elemData ) {
|
||||
|
@ -65,14 +124,15 @@ jQuery.event = {
|
|||
}
|
||||
|
||||
// Init the element's event structure and main handler, if this is the first
|
||||
if ( !(events = elemData.events) ) {
|
||||
if ( !( events = elemData.events ) ) {
|
||||
events = elemData.events = {};
|
||||
}
|
||||
if ( !(eventHandle = elemData.handle) ) {
|
||||
if ( !( eventHandle = elemData.handle ) ) {
|
||||
eventHandle = elemData.handle = function( e ) {
|
||||
|
||||
// Discard the second event of a jQuery.event.trigger() and
|
||||
// when an event is called after a page has unloaded
|
||||
return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
|
||||
return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
|
||||
jQuery.event.dispatch.apply( elem, arguments ) : undefined;
|
||||
};
|
||||
}
|
||||
|
@ -81,9 +141,9 @@ jQuery.event = {
|
|||
types = ( types || "" ).match( rnotwhite ) || [ "" ];
|
||||
t = types.length;
|
||||
while ( t-- ) {
|
||||
tmp = rtypenamespace.exec( types[t] ) || [];
|
||||
type = origType = tmp[1];
|
||||
namespaces = ( tmp[2] || "" ).split( "." ).sort();
|
||||
tmp = rtypenamespace.exec( types[ t ] ) || [];
|
||||
type = origType = tmp[ 1 ];
|
||||
namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
|
||||
|
||||
// There *must* be a type, no attaching namespace-only handlers
|
||||
if ( !type ) {
|
||||
|
@ -100,7 +160,7 @@ jQuery.event = {
|
|||
special = jQuery.event.special[ type ] || {};
|
||||
|
||||
// handleObj is passed to all event handlers
|
||||
handleObj = jQuery.extend({
|
||||
handleObj = jQuery.extend( {
|
||||
type: type,
|
||||
origType: origType,
|
||||
data: data,
|
||||
|
@ -108,18 +168,20 @@ jQuery.event = {
|
|||
guid: handler.guid,
|
||||
selector: selector,
|
||||
needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
|
||||
namespace: namespaces.join(".")
|
||||
namespace: namespaces.join( "." )
|
||||
}, handleObjIn );
|
||||
|
||||
// Init the event handler queue if we're the first
|
||||
if ( !(handlers = events[ type ]) ) {
|
||||
if ( !( handlers = events[ type ] ) ) {
|
||||
handlers = events[ type ] = [];
|
||||
handlers.delegateCount = 0;
|
||||
|
||||
// Only use addEventListener if the special events handler returns false
|
||||
if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
|
||||
if ( !special.setup ||
|
||||
special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
|
||||
|
||||
if ( elem.addEventListener ) {
|
||||
elem.addEventListener( type, eventHandle, false );
|
||||
elem.addEventListener( type, eventHandle );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -151,9 +213,9 @@ jQuery.event = {
|
|||
var j, origCount, tmp,
|
||||
events, t, handleObj,
|
||||
special, handlers, type, namespaces, origType,
|
||||
elemData = data_priv.hasData( elem ) && data_priv.get( elem );
|
||||
elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
|
||||
|
||||
if ( !elemData || !(events = elemData.events) ) {
|
||||
if ( !elemData || !( events = elemData.events ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -161,9 +223,9 @@ jQuery.event = {
|
|||
types = ( types || "" ).match( rnotwhite ) || [ "" ];
|
||||
t = types.length;
|
||||
while ( t-- ) {
|
||||
tmp = rtypenamespace.exec( types[t] ) || [];
|
||||
type = origType = tmp[1];
|
||||
namespaces = ( tmp[2] || "" ).split( "." ).sort();
|
||||
tmp = rtypenamespace.exec( types[ t ] ) || [];
|
||||
type = origType = tmp[ 1 ];
|
||||
namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
|
||||
|
||||
// Unbind all events (on this namespace, if provided) for the element
|
||||
if ( !type ) {
|
||||
|
@ -176,7 +238,8 @@ jQuery.event = {
|
|||
special = jQuery.event.special[ type ] || {};
|
||||
type = ( selector ? special.delegateType : special.bindType ) || type;
|
||||
handlers = events[ type ] || [];
|
||||
tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
|
||||
tmp = tmp[ 2 ] &&
|
||||
new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
|
||||
|
||||
// Remove matching events
|
||||
origCount = j = handlers.length;
|
||||
|
@ -186,7 +249,8 @@ jQuery.event = {
|
|||
if ( ( mappedTypes || origType === handleObj.origType ) &&
|
||||
( !handler || handler.guid === handleObj.guid ) &&
|
||||
( !tmp || tmp.test( handleObj.namespace ) ) &&
|
||||
( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
|
||||
( !selector || selector === handleObj.selector ||
|
||||
selector === "**" && handleObj.selector ) ) {
|
||||
handlers.splice( j, 1 );
|
||||
|
||||
if ( handleObj.selector ) {
|
||||
|
@ -201,7 +265,9 @@ jQuery.event = {
|
|||
// Remove generic event handler if we removed something and no more handlers exist
|
||||
// (avoids potential for endless recursion during removal of special event handlers)
|
||||
if ( origCount && !handlers.length ) {
|
||||
if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
|
||||
if ( !special.teardown ||
|
||||
special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
|
||||
|
||||
jQuery.removeEvent( elem, type, elemData.handle );
|
||||
}
|
||||
|
||||
|
@ -209,145 +275,12 @@ jQuery.event = {
|
|||
}
|
||||
}
|
||||
|
||||
// Remove the expando if it's no longer used
|
||||
// Remove data and the expando if it's no longer used
|
||||
if ( jQuery.isEmptyObject( events ) ) {
|
||||
delete elemData.handle;
|
||||
data_priv.remove( elem, "events" );
|
||||
dataPriv.remove( elem, "handle events" );
|
||||
}
|
||||
},
|
||||
|
||||
trigger: function( event, data, elem, onlyHandlers ) {
|
||||
|
||||
var i, cur, tmp, bubbleType, ontype, handle, special,
|
||||
eventPath = [ elem || document ],
|
||||
type = hasOwn.call( event, "type" ) ? event.type : event,
|
||||
namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
|
||||
|
||||
cur = tmp = elem = elem || document;
|
||||
|
||||
// Don't do events on text and comment nodes
|
||||
if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// focus/blur morphs to focusin/out; ensure we're not firing them right now
|
||||
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( type.indexOf(".") >= 0 ) {
|
||||
// Namespaced trigger; create a regexp to match event type in handle()
|
||||
namespaces = type.split(".");
|
||||
type = namespaces.shift();
|
||||
namespaces.sort();
|
||||
}
|
||||
ontype = type.indexOf(":") < 0 && "on" + type;
|
||||
|
||||
// Caller can pass in a jQuery.Event object, Object, or just an event type string
|
||||
event = event[ jQuery.expando ] ?
|
||||
event :
|
||||
new jQuery.Event( type, typeof event === "object" && event );
|
||||
|
||||
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
|
||||
event.isTrigger = onlyHandlers ? 2 : 3;
|
||||
event.namespace = namespaces.join(".");
|
||||
event.namespace_re = event.namespace ?
|
||||
new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
|
||||
null;
|
||||
|
||||
// Clean up the event in case it is being reused
|
||||
event.result = undefined;
|
||||
if ( !event.target ) {
|
||||
event.target = elem;
|
||||
}
|
||||
|
||||
// Clone any incoming data and prepend the event, creating the handler arg list
|
||||
data = data == null ?
|
||||
[ event ] :
|
||||
jQuery.makeArray( data, [ event ] );
|
||||
|
||||
// Allow special events to draw outside the lines
|
||||
special = jQuery.event.special[ type ] || {};
|
||||
if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine event propagation path in advance, per W3C events spec (#9951)
|
||||
// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
|
||||
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
|
||||
|
||||
bubbleType = special.delegateType || type;
|
||||
if ( !rfocusMorph.test( bubbleType + type ) ) {
|
||||
cur = cur.parentNode;
|
||||
}
|
||||
for ( ; cur; cur = cur.parentNode ) {
|
||||
eventPath.push( cur );
|
||||
tmp = cur;
|
||||
}
|
||||
|
||||
// Only add window if we got to document (e.g., not plain obj or detached DOM)
|
||||
if ( tmp === (elem.ownerDocument || document) ) {
|
||||
eventPath.push( tmp.defaultView || tmp.parentWindow || window );
|
||||
}
|
||||
}
|
||||
|
||||
// Fire handlers on the event path
|
||||
i = 0;
|
||||
while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
|
||||
|
||||
event.type = i > 1 ?
|
||||
bubbleType :
|
||||
special.bindType || type;
|
||||
|
||||
// jQuery handler
|
||||
handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
|
||||
if ( handle ) {
|
||||
handle.apply( cur, data );
|
||||
}
|
||||
|
||||
// Native handler
|
||||
handle = ontype && cur[ ontype ];
|
||||
if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
|
||||
event.result = handle.apply( cur, data );
|
||||
if ( event.result === false ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
event.type = type;
|
||||
|
||||
// If nobody prevented the default action, do it now
|
||||
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
|
||||
|
||||
if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
|
||||
jQuery.acceptData( elem ) ) {
|
||||
|
||||
// Call a native DOM method on the target with the same name name as the event.
|
||||
// Don't do default actions on window, that's where global variables be (#6170)
|
||||
if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
|
||||
|
||||
// Don't re-trigger an onFOO event when we call its FOO() method
|
||||
tmp = elem[ ontype ];
|
||||
|
||||
if ( tmp ) {
|
||||
elem[ ontype ] = null;
|
||||
}
|
||||
|
||||
// Prevent re-triggering of the same event, since we already bubbled it above
|
||||
jQuery.event.triggered = type;
|
||||
elem[ type ]();
|
||||
jQuery.event.triggered = undefined;
|
||||
|
||||
if ( tmp ) {
|
||||
elem[ ontype ] = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return event.result;
|
||||
},
|
||||
|
||||
dispatch: function( event ) {
|
||||
|
||||
// Make a writable jQuery.Event from the native event object
|
||||
|
@ -356,11 +289,11 @@ jQuery.event = {
|
|||
var i, j, ret, matched, handleObj,
|
||||
handlerQueue = [],
|
||||
args = slice.call( arguments ),
|
||||
handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
|
||||
handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
|
||||
special = jQuery.event.special[ event.type ] || {};
|
||||
|
||||
// Use the fix-ed jQuery.Event rather than the (read-only) native event
|
||||
args[0] = event;
|
||||
args[ 0 ] = event;
|
||||
event.delegateTarget = this;
|
||||
|
||||
// Call the preDispatch hook for the mapped type, and let it bail if desired
|
||||
|
@ -373,24 +306,25 @@ jQuery.event = {
|
|||
|
||||
// Run delegates first; they may want to stop propagation beneath us
|
||||
i = 0;
|
||||
while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
|
||||
while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
|
||||
event.currentTarget = matched.elem;
|
||||
|
||||
j = 0;
|
||||
while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
|
||||
while ( ( handleObj = matched.handlers[ j++ ] ) &&
|
||||
!event.isImmediatePropagationStopped() ) {
|
||||
|
||||
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
|
||||
// a subset or equal to those in the bound event (both can have no namespace).
|
||||
if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
|
||||
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
|
||||
|
||||
event.handleObj = handleObj;
|
||||
event.data = handleObj.data;
|
||||
|
||||
ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
|
||||
.apply( matched.elem, args );
|
||||
ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
|
||||
handleObj.handler ).apply( matched.elem, args );
|
||||
|
||||
if ( ret !== undefined ) {
|
||||
if ( (event.result = ret) === false ) {
|
||||
if ( ( event.result = ret ) === false ) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
@ -413,15 +347,20 @@ jQuery.event = {
|
|||
delegateCount = handlers.delegateCount,
|
||||
cur = event.target;
|
||||
|
||||
// Support (at least): Chrome, IE9
|
||||
// Find delegate handlers
|
||||
// Black-hole SVG <use> instance trees (#13180)
|
||||
// Avoid non-left-click bubbling in Firefox (#3861)
|
||||
if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
|
||||
//
|
||||
// Support: Firefox<=42+
|
||||
// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
|
||||
if ( delegateCount && cur.nodeType &&
|
||||
( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
|
||||
|
||||
for ( ; cur !== this; cur = cur.parentNode || this ) {
|
||||
|
||||
// Don't check non-elements (#13208)
|
||||
// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
|
||||
if ( cur.disabled !== true || event.type !== "click" ) {
|
||||
if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
|
||||
matches = [];
|
||||
for ( i = 0; i < delegateCount; i++ ) {
|
||||
handleObj = handlers[ i ];
|
||||
|
@ -431,7 +370,7 @@ jQuery.event = {
|
|||
|
||||
if ( matches[ sel ] === undefined ) {
|
||||
matches[ sel ] = handleObj.needsContext ?
|
||||
jQuery( sel, this ).index( cur ) >= 0 :
|
||||
jQuery( sel, this ).index( cur ) > -1 :
|
||||
jQuery.find( sel, this, null, [ cur ] ).length;
|
||||
}
|
||||
if ( matches[ sel ] ) {
|
||||
|
@ -439,7 +378,7 @@ jQuery.event = {
|
|||
}
|
||||
}
|
||||
if ( matches.length ) {
|
||||
handlerQueue.push({ elem: cur, handlers: matches });
|
||||
handlerQueue.push( { elem: cur, handlers: matches } );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -447,19 +386,20 @@ jQuery.event = {
|
|||
|
||||
// Add the remaining (directly-bound) handlers
|
||||
if ( delegateCount < handlers.length ) {
|
||||
handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
|
||||
handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
|
||||
}
|
||||
|
||||
return handlerQueue;
|
||||
},
|
||||
|
||||
// Includes some event props shared by KeyEvent and MouseEvent
|
||||
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
|
||||
props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
|
||||
"metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
|
||||
|
||||
fixHooks: {},
|
||||
|
||||
keyHooks: {
|
||||
props: "char charCode key keyCode".split(" "),
|
||||
props: "char charCode key keyCode".split( " " ),
|
||||
filter: function( event, original ) {
|
||||
|
||||
// Add which for key events
|
||||
|
@ -472,7 +412,8 @@ jQuery.event = {
|
|||
},
|
||||
|
||||
mouseHooks: {
|
||||
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
|
||||
props: ( "button buttons clientX clientY offsetX offsetY pageX pageY " +
|
||||
"screenX screenY toElement" ).split( " " ),
|
||||
filter: function( event, original ) {
|
||||
var eventDoc, doc, body,
|
||||
button = original.button;
|
||||
|
@ -483,8 +424,12 @@ jQuery.event = {
|
|||
doc = eventDoc.documentElement;
|
||||
body = eventDoc.body;
|
||||
|
||||
event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
|
||||
event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
|
||||
event.pageX = original.clientX +
|
||||
( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
|
||||
( doc && doc.clientLeft || body && body.clientLeft || 0 );
|
||||
event.pageY = original.clientY +
|
||||
( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
|
||||
( doc && doc.clientTop || body && body.clientTop || 0 );
|
||||
}
|
||||
|
||||
// Add which for click: 1 === left; 2 === middle; 3 === right
|
||||
|
@ -541,10 +486,12 @@ jQuery.event = {
|
|||
|
||||
special: {
|
||||
load: {
|
||||
|
||||
// Prevent triggered image.load events from bubbling to window.load
|
||||
noBubble: true
|
||||
},
|
||||
focus: {
|
||||
|
||||
// Fire native event if possible so blur/focus sequence is correct
|
||||
trigger: function() {
|
||||
if ( this !== safeActiveElement() && this.focus ) {
|
||||
|
@ -564,6 +511,7 @@ jQuery.event = {
|
|||
delegateType: "focusout"
|
||||
},
|
||||
click: {
|
||||
|
||||
// For checkbox, fire native event so checked state will be right
|
||||
trigger: function() {
|
||||
if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
|
||||
|
@ -588,41 +536,21 @@ jQuery.event = {
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
simulate: function( type, elem, event, bubble ) {
|
||||
// Piggyback on a donor event to simulate a different one.
|
||||
// Fake originalEvent to avoid donor's stopPropagation, but if the
|
||||
// simulated event prevents default then we do the same on the donor.
|
||||
var e = jQuery.extend(
|
||||
new jQuery.Event(),
|
||||
event,
|
||||
{
|
||||
type: type,
|
||||
isSimulated: true,
|
||||
originalEvent: {}
|
||||
}
|
||||
);
|
||||
if ( bubble ) {
|
||||
jQuery.event.trigger( e, null, elem );
|
||||
} else {
|
||||
jQuery.event.dispatch.call( elem, e );
|
||||
}
|
||||
if ( e.isDefaultPrevented() ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
jQuery.removeEvent = function( elem, type, handle ) {
|
||||
|
||||
// This "if" is needed for plain objects
|
||||
if ( elem.removeEventListener ) {
|
||||
elem.removeEventListener( type, handle, false );
|
||||
elem.removeEventListener( type, handle );
|
||||
}
|
||||
};
|
||||
|
||||
jQuery.Event = function( src, props ) {
|
||||
|
||||
// Allow instantiation without the 'new' keyword
|
||||
if ( !(this instanceof jQuery.Event) ) {
|
||||
if ( !( this instanceof jQuery.Event ) ) {
|
||||
return new jQuery.Event( src, props );
|
||||
}
|
||||
|
||||
|
@ -635,6 +563,7 @@ jQuery.Event = function( src, props ) {
|
|||
// by a handler lower down the tree; reflect the correct value.
|
||||
this.isDefaultPrevented = src.defaultPrevented ||
|
||||
src.defaultPrevented === undefined &&
|
||||
|
||||
// Support: Android<4.0
|
||||
src.returnValue === false ?
|
||||
returnTrue :
|
||||
|
@ -660,6 +589,7 @@ jQuery.Event = function( src, props ) {
|
|||
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
|
||||
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
|
||||
jQuery.Event.prototype = {
|
||||
constructor: jQuery.Event,
|
||||
isDefaultPrevented: returnFalse,
|
||||
isPropagationStopped: returnFalse,
|
||||
isImmediatePropagationStopped: returnFalse,
|
||||
|
@ -669,7 +599,7 @@ jQuery.Event.prototype = {
|
|||
|
||||
this.isDefaultPrevented = returnTrue;
|
||||
|
||||
if ( e && e.preventDefault ) {
|
||||
if ( e ) {
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
|
@ -678,7 +608,7 @@ jQuery.Event.prototype = {
|
|||
|
||||
this.isPropagationStopped = returnTrue;
|
||||
|
||||
if ( e && e.stopPropagation ) {
|
||||
if ( e ) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
},
|
||||
|
@ -687,7 +617,7 @@ jQuery.Event.prototype = {
|
|||
|
||||
this.isImmediatePropagationStopped = returnTrue;
|
||||
|
||||
if ( e && e.stopImmediatePropagation ) {
|
||||
if ( e ) {
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
|
||||
|
@ -696,8 +626,14 @@ jQuery.Event.prototype = {
|
|||
};
|
||||
|
||||
// Create mouseenter/leave events using mouseover/out and event-time checks
|
||||
// Support: Chrome 15+
|
||||
jQuery.each({
|
||||
// so that event delegation works in jQuery.
|
||||
// Do the same for pointerenter/pointerleave and pointerover/pointerout
|
||||
//
|
||||
// Support: Safari 7 only
|
||||
// Safari sends mouseenter too often; see:
|
||||
// https://code.google.com/p/chromium/issues/detail?id=470258
|
||||
// for the description of the bug (it existed in older Chrome versions as well).
|
||||
jQuery.each( {
|
||||
mouseenter: "mouseover",
|
||||
mouseleave: "mouseout",
|
||||
pointerenter: "pointerover",
|
||||
|
@ -713,9 +649,9 @@ jQuery.each({
|
|||
related = event.relatedTarget,
|
||||
handleObj = event.handleObj;
|
||||
|
||||
// For mousenter/leave call the handler if related is outside the target.
|
||||
// For mouseenter/leave call the handler if related is outside the target.
|
||||
// NB: No relatedTarget if the mouse left/entered the browser window
|
||||
if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
|
||||
if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
|
||||
event.type = handleObj.origType;
|
||||
ret = handleObj.handler.apply( this, arguments );
|
||||
event.type = fix;
|
||||
|
@ -723,115 +659,32 @@ jQuery.each({
|
|||
return ret;
|
||||
}
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
// Support: Firefox, Chrome, Safari
|
||||
// Create "bubbling" focus and blur events
|
||||
if ( !support.focusinBubbles ) {
|
||||
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
||||
|
||||
// Attach a single capturing handler on the document while someone wants focusin/focusout
|
||||
var handler = function( event ) {
|
||||
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
|
||||
};
|
||||
|
||||
jQuery.event.special[ fix ] = {
|
||||
setup: function() {
|
||||
var doc = this.ownerDocument || this,
|
||||
attaches = data_priv.access( doc, fix );
|
||||
|
||||
if ( !attaches ) {
|
||||
doc.addEventListener( orig, handler, true );
|
||||
}
|
||||
data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
|
||||
},
|
||||
teardown: function() {
|
||||
var doc = this.ownerDocument || this,
|
||||
attaches = data_priv.access( doc, fix ) - 1;
|
||||
|
||||
if ( !attaches ) {
|
||||
doc.removeEventListener( orig, handler, true );
|
||||
data_priv.remove( doc, fix );
|
||||
|
||||
} else {
|
||||
data_priv.access( doc, fix, attaches );
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
jQuery.fn.extend({
|
||||
|
||||
on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
|
||||
var origFn, type;
|
||||
|
||||
// Types can be a map of types/handlers
|
||||
if ( typeof types === "object" ) {
|
||||
// ( types-Object, selector, data )
|
||||
if ( typeof selector !== "string" ) {
|
||||
// ( types-Object, data )
|
||||
data = data || selector;
|
||||
selector = undefined;
|
||||
}
|
||||
for ( type in types ) {
|
||||
this.on( type, selector, data, types[ type ], one );
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
if ( data == null && fn == null ) {
|
||||
// ( types, fn )
|
||||
fn = selector;
|
||||
data = selector = undefined;
|
||||
} else if ( fn == null ) {
|
||||
if ( typeof selector === "string" ) {
|
||||
// ( types, selector, fn )
|
||||
fn = data;
|
||||
data = undefined;
|
||||
} else {
|
||||
// ( types, data, fn )
|
||||
fn = data;
|
||||
data = selector;
|
||||
selector = undefined;
|
||||
}
|
||||
}
|
||||
if ( fn === false ) {
|
||||
fn = returnFalse;
|
||||
} else if ( !fn ) {
|
||||
return this;
|
||||
}
|
||||
|
||||
if ( one === 1 ) {
|
||||
origFn = fn;
|
||||
fn = function( event ) {
|
||||
// Can use an empty set, since event contains the info
|
||||
jQuery().off( event );
|
||||
return origFn.apply( this, arguments );
|
||||
};
|
||||
// Use same guid so caller can remove using origFn
|
||||
fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
|
||||
}
|
||||
return this.each( function() {
|
||||
jQuery.event.add( this, types, fn, data, selector );
|
||||
});
|
||||
jQuery.fn.extend( {
|
||||
on: function( types, selector, data, fn ) {
|
||||
return on( this, types, selector, data, fn );
|
||||
},
|
||||
one: function( types, selector, data, fn ) {
|
||||
return this.on( types, selector, data, fn, 1 );
|
||||
return on( this, types, selector, data, fn, 1 );
|
||||
},
|
||||
off: function( types, selector, fn ) {
|
||||
var handleObj, type;
|
||||
if ( types && types.preventDefault && types.handleObj ) {
|
||||
|
||||
// ( event ) dispatched jQuery.Event
|
||||
handleObj = types.handleObj;
|
||||
jQuery( types.delegateTarget ).off(
|
||||
handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
|
||||
handleObj.namespace ?
|
||||
handleObj.origType + "." + handleObj.namespace :
|
||||
handleObj.origType,
|
||||
handleObj.selector,
|
||||
handleObj.handler
|
||||
);
|
||||
return this;
|
||||
}
|
||||
if ( typeof types === "object" ) {
|
||||
|
||||
// ( types-object [, selector] )
|
||||
for ( type in types ) {
|
||||
this.off( type, selector, types[ type ] );
|
||||
|
@ -839,6 +692,7 @@ jQuery.fn.extend({
|
|||
return this;
|
||||
}
|
||||
if ( selector === false || typeof selector === "function" ) {
|
||||
|
||||
// ( types [, fn] )
|
||||
fn = selector;
|
||||
selector = undefined;
|
||||
|
@ -846,23 +700,11 @@ jQuery.fn.extend({
|
|||
if ( fn === false ) {
|
||||
fn = returnFalse;
|
||||
}
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
jQuery.event.remove( this, types, fn, selector );
|
||||
});
|
||||
},
|
||||
|
||||
trigger: function( type, data ) {
|
||||
return this.each(function() {
|
||||
jQuery.event.trigger( type, data, this );
|
||||
});
|
||||
},
|
||||
triggerHandler: function( type, data ) {
|
||||
var elem = this[0];
|
||||
if ( elem ) {
|
||||
return jQuery.event.trigger( type, data, elem, true );
|
||||
}
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,13 +1,20 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../event"
|
||||
], function( jQuery ) {
|
||||
|
||||
// Attach a bunch of functions for handling common AJAX events
|
||||
jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
|
||||
jQuery.each( [
|
||||
"ajaxStart",
|
||||
"ajaxStop",
|
||||
"ajaxComplete",
|
||||
"ajaxError",
|
||||
"ajaxSuccess",
|
||||
"ajaxSend"
|
||||
], function( i, type ) {
|
||||
jQuery.fn[ type ] = function( fn ) {
|
||||
return this.on( type, fn );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../event"
|
||||
|
||||
"../event",
|
||||
"./trigger"
|
||||
], function( jQuery ) {
|
||||
|
||||
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
|
||||
jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
|
||||
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
|
||||
"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
|
||||
"change select submit keydown keypress keyup error contextmenu" ).split( " " ),
|
||||
function( i, name ) {
|
||||
|
||||
// Handle event binding
|
||||
jQuery.fn[ name ] = function( data, fn ) {
|
||||
|
@ -13,27 +16,12 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
|
|||
this.on( name, null, data, fn ) :
|
||||
this.trigger( name );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
hover: function( fnOver, fnOut ) {
|
||||
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
|
||||
},
|
||||
|
||||
bind: function( types, data, fn ) {
|
||||
return this.on( types, null, data, fn );
|
||||
},
|
||||
unbind: function( types, fn ) {
|
||||
return this.off( types, null, fn );
|
||||
},
|
||||
|
||||
delegate: function( selector, types, data, fn ) {
|
||||
return this.on( types, selector, data, fn );
|
||||
},
|
||||
undelegate: function( selector, types, fn ) {
|
||||
// ( namespace ) or ( selector, types [, fn] )
|
||||
return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
53
dashboard-ui/bower_components/jquery/src/event/focusin.js
vendored
Normal file
53
dashboard-ui/bower_components/jquery/src/event/focusin.js
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
define( [
|
||||
"../core",
|
||||
"../data/var/dataPriv",
|
||||
"./support",
|
||||
|
||||
"../event",
|
||||
"./trigger"
|
||||
], function( jQuery, dataPriv, support ) {
|
||||
|
||||
// Support: Firefox
|
||||
// Firefox doesn't have focus(in | out) events
|
||||
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
|
||||
//
|
||||
// Support: Chrome, Safari
|
||||
// focus(in | out) events fire after focus & blur events,
|
||||
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
|
||||
// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
|
||||
if ( !support.focusin ) {
|
||||
jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
||||
|
||||
// Attach a single capturing handler on the document while someone wants focusin/focusout
|
||||
var handler = function( event ) {
|
||||
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
|
||||
};
|
||||
|
||||
jQuery.event.special[ fix ] = {
|
||||
setup: function() {
|
||||
var doc = this.ownerDocument || this,
|
||||
attaches = dataPriv.access( doc, fix );
|
||||
|
||||
if ( !attaches ) {
|
||||
doc.addEventListener( orig, handler, true );
|
||||
}
|
||||
dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
|
||||
},
|
||||
teardown: function() {
|
||||
var doc = this.ownerDocument || this,
|
||||
attaches = dataPriv.access( doc, fix ) - 1;
|
||||
|
||||
if ( !attaches ) {
|
||||
doc.removeEventListener( orig, handler, true );
|
||||
dataPriv.remove( doc, fix );
|
||||
|
||||
} else {
|
||||
dataPriv.access( doc, fix, attaches );
|
||||
}
|
||||
}
|
||||
};
|
||||
} );
|
||||
}
|
||||
|
||||
return jQuery;
|
||||
} );
|
|
@ -1,9 +1,9 @@
|
|||
define([
|
||||
define( [
|
||||
"../var/support"
|
||||
], function( support ) {
|
||||
|
||||
support.focusinBubbles = "onfocusin" in window;
|
||||
support.focusin = "onfocusin" in window;
|
||||
|
||||
return support;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
199
dashboard-ui/bower_components/jquery/src/event/trigger.js
vendored
Normal file
199
dashboard-ui/bower_components/jquery/src/event/trigger.js
vendored
Normal file
|
@ -0,0 +1,199 @@
|
|||
define( [
|
||||
"../core",
|
||||
"../var/document",
|
||||
"../data/var/dataPriv",
|
||||
"../data/var/acceptData",
|
||||
"../var/hasOwn",
|
||||
|
||||
"../event"
|
||||
], function( jQuery, document, dataPriv, acceptData, hasOwn ) {
|
||||
|
||||
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
|
||||
|
||||
jQuery.extend( jQuery.event, {
|
||||
|
||||
trigger: function( event, data, elem, onlyHandlers ) {
|
||||
|
||||
var i, cur, tmp, bubbleType, ontype, handle, special,
|
||||
eventPath = [ elem || document ],
|
||||
type = hasOwn.call( event, "type" ) ? event.type : event,
|
||||
namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
|
||||
|
||||
cur = tmp = elem = elem || document;
|
||||
|
||||
// Don't do events on text and comment nodes
|
||||
if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// focus/blur morphs to focusin/out; ensure we're not firing them right now
|
||||
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( type.indexOf( "." ) > -1 ) {
|
||||
|
||||
// Namespaced trigger; create a regexp to match event type in handle()
|
||||
namespaces = type.split( "." );
|
||||
type = namespaces.shift();
|
||||
namespaces.sort();
|
||||
}
|
||||
ontype = type.indexOf( ":" ) < 0 && "on" + type;
|
||||
|
||||
// Caller can pass in a jQuery.Event object, Object, or just an event type string
|
||||
event = event[ jQuery.expando ] ?
|
||||
event :
|
||||
new jQuery.Event( type, typeof event === "object" && event );
|
||||
|
||||
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
|
||||
event.isTrigger = onlyHandlers ? 2 : 3;
|
||||
event.namespace = namespaces.join( "." );
|
||||
event.rnamespace = event.namespace ?
|
||||
new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
|
||||
null;
|
||||
|
||||
// Clean up the event in case it is being reused
|
||||
event.result = undefined;
|
||||
if ( !event.target ) {
|
||||
event.target = elem;
|
||||
}
|
||||
|
||||
// Clone any incoming data and prepend the event, creating the handler arg list
|
||||
data = data == null ?
|
||||
[ event ] :
|
||||
jQuery.makeArray( data, [ event ] );
|
||||
|
||||
// Allow special events to draw outside the lines
|
||||
special = jQuery.event.special[ type ] || {};
|
||||
if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine event propagation path in advance, per W3C events spec (#9951)
|
||||
// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
|
||||
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
|
||||
|
||||
bubbleType = special.delegateType || type;
|
||||
if ( !rfocusMorph.test( bubbleType + type ) ) {
|
||||
cur = cur.parentNode;
|
||||
}
|
||||
for ( ; cur; cur = cur.parentNode ) {
|
||||
eventPath.push( cur );
|
||||
tmp = cur;
|
||||
}
|
||||
|
||||
// Only add window if we got to document (e.g., not plain obj or detached DOM)
|
||||
if ( tmp === ( elem.ownerDocument || document ) ) {
|
||||
eventPath.push( tmp.defaultView || tmp.parentWindow || window );
|
||||
}
|
||||
}
|
||||
|
||||
// Fire handlers on the event path
|
||||
i = 0;
|
||||
while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
|
||||
|
||||
event.type = i > 1 ?
|
||||
bubbleType :
|
||||
special.bindType || type;
|
||||
|
||||
// jQuery handler
|
||||
handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
|
||||
dataPriv.get( cur, "handle" );
|
||||
if ( handle ) {
|
||||
handle.apply( cur, data );
|
||||
}
|
||||
|
||||
// Native handler
|
||||
handle = ontype && cur[ ontype ];
|
||||
if ( handle && handle.apply && acceptData( cur ) ) {
|
||||
event.result = handle.apply( cur, data );
|
||||
if ( event.result === false ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
event.type = type;
|
||||
|
||||
// If nobody prevented the default action, do it now
|
||||
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
|
||||
|
||||
if ( ( !special._default ||
|
||||
special._default.apply( eventPath.pop(), data ) === false ) &&
|
||||
acceptData( elem ) ) {
|
||||
|
||||
// Call a native DOM method on the target with the same name name as the event.
|
||||
// Don't do default actions on window, that's where global variables be (#6170)
|
||||
if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
|
||||
|
||||
// Don't re-trigger an onFOO event when we call its FOO() method
|
||||
tmp = elem[ ontype ];
|
||||
|
||||
if ( tmp ) {
|
||||
elem[ ontype ] = null;
|
||||
}
|
||||
|
||||
// Prevent re-triggering of the same event, since we already bubbled it above
|
||||
jQuery.event.triggered = type;
|
||||
elem[ type ]();
|
||||
jQuery.event.triggered = undefined;
|
||||
|
||||
if ( tmp ) {
|
||||
elem[ ontype ] = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return event.result;
|
||||
},
|
||||
|
||||
// Piggyback on a donor event to simulate a different one
|
||||
simulate: function( type, elem, event ) {
|
||||
var e = jQuery.extend(
|
||||
new jQuery.Event(),
|
||||
event,
|
||||
{
|
||||
type: type,
|
||||
isSimulated: true
|
||||
|
||||
// Previously, `originalEvent: {}` was set here, so stopPropagation call
|
||||
// would not be triggered on donor event, since in our own
|
||||
// jQuery.event.stopPropagation function we had a check for existence of
|
||||
// originalEvent.stopPropagation method, so, consequently it would be a noop.
|
||||
//
|
||||
// But now, this "simulate" function is used only for events
|
||||
// for which stopPropagation() is noop, so there is no need for that anymore.
|
||||
//
|
||||
// For the compat branch though, guard for "click" and "submit"
|
||||
// events is still used, but was moved to jQuery.event.stopPropagation function
|
||||
// because `originalEvent` should point to the original event for the constancy
|
||||
// with other events and for more focused logic
|
||||
}
|
||||
);
|
||||
|
||||
jQuery.event.trigger( e, null, elem );
|
||||
|
||||
if ( e.isDefaultPrevented() ) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
jQuery.fn.extend( {
|
||||
|
||||
trigger: function( type, data ) {
|
||||
return this.each( function() {
|
||||
jQuery.event.trigger( type, data, this );
|
||||
} );
|
||||
},
|
||||
triggerHandler: function( type, data ) {
|
||||
var elem = this[ 0 ];
|
||||
if ( elem ) {
|
||||
return jQuery.event.trigger( type, data, elem, true );
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
} );
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
|
@ -18,7 +18,7 @@ define([
|
|||
if ( typeof define === "function" && define.amd ) {
|
||||
define( "jquery", [], function() {
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
}
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
define([
|
||||
"../core",
|
||||
"../var/strundefined"
|
||||
], function( jQuery, strundefined ) {
|
||||
|
||||
var
|
||||
|
||||
// Map over jQuery in case of overwrite
|
||||
_jQuery = window.jQuery,
|
||||
|
||||
|
@ -25,8 +21,6 @@ jQuery.noConflict = function( deep ) {
|
|||
// Expose jQuery and $ identifiers, even in AMD
|
||||
// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
|
||||
// and CommonJS for browser emulators (#13566)
|
||||
if ( typeof noGlobal === strundefined ) {
|
||||
if ( !noGlobal ) {
|
||||
window.jQuery = window.$ = jQuery;
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
*
|
||||
* Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* http://jquery.org/license
|
||||
*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./selector",
|
||||
"./traversing",
|
||||
|
@ -11,6 +11,7 @@ define([
|
|||
"./attributes",
|
||||
"./event",
|
||||
"./event/alias",
|
||||
"./event/focusin",
|
||||
"./manipulation",
|
||||
"./manipulation/_evalUrl",
|
||||
"./wrap",
|
||||
|
@ -28,10 +29,9 @@ define([
|
|||
"./offset",
|
||||
"./dimensions",
|
||||
"./deprecated",
|
||||
"./exports/amd",
|
||||
"./exports/global"
|
||||
"./exports/amd"
|
||||
], function( jQuery ) {
|
||||
|
||||
return jQuery;
|
||||
return ( window.jQuery = window.$ = jQuery );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,65 +1,56 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/concat",
|
||||
"./var/push",
|
||||
"./core/access",
|
||||
"./manipulation/var/rcheckableType",
|
||||
"./manipulation/var/rtagName",
|
||||
"./manipulation/var/rscriptType",
|
||||
"./manipulation/wrapMap",
|
||||
"./manipulation/getAll",
|
||||
"./manipulation/setGlobalEval",
|
||||
"./manipulation/buildFragment",
|
||||
"./manipulation/support",
|
||||
"./data/var/data_priv",
|
||||
"./data/var/data_user",
|
||||
|
||||
"./data/var/dataPriv",
|
||||
"./data/var/dataUser",
|
||||
"./data/var/acceptData",
|
||||
|
||||
"./core/init",
|
||||
"./data/accepts",
|
||||
"./traversing",
|
||||
"./selector",
|
||||
"./event"
|
||||
], function( jQuery, concat, push, access, rcheckableType, support, data_priv, data_user ) {
|
||||
], function( jQuery, concat, push, access,
|
||||
rcheckableType, rtagName, rscriptType,
|
||||
wrapMap, getAll, setGlobalEval, buildFragment, support,
|
||||
dataPriv, dataUser, acceptData ) {
|
||||
|
||||
var
|
||||
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
|
||||
rtagName = /<([\w:]+)/,
|
||||
rhtml = /<|&#?\w+;/,
|
||||
rnoInnerhtml = /<(?:script|style|link)/i,
|
||||
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
|
||||
|
||||
// Support: IE 10-11, Edge 10240+
|
||||
// In IE/Edge using regex groups here causes severe slowdowns.
|
||||
// See https://connect.microsoft.com/IE/feedback/details/1736512/
|
||||
rnoInnerhtml = /<script|<style|<link/i,
|
||||
|
||||
// checked="checked" or checked
|
||||
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
||||
rscriptType = /^$|\/(?:java|ecma)script/i,
|
||||
rscriptTypeMasked = /^true\/(.*)/,
|
||||
rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
|
||||
rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
|
||||
|
||||
// We have to close these tags to support XHTML (#13200)
|
||||
wrapMap = {
|
||||
|
||||
// Support: IE9
|
||||
option: [ 1, "<select multiple='multiple'>", "</select>" ],
|
||||
|
||||
thead: [ 1, "<table>", "</table>" ],
|
||||
col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
|
||||
tr: [ 2, "<table><tbody>", "</tbody></table>" ],
|
||||
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
|
||||
|
||||
_default: [ 0, "", "" ]
|
||||
};
|
||||
|
||||
// Support: IE9
|
||||
wrapMap.optgroup = wrapMap.option;
|
||||
|
||||
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
|
||||
wrapMap.th = wrapMap.td;
|
||||
|
||||
// Support: 1.x compatibility
|
||||
// Manipulating tables requires a tbody
|
||||
function manipulationTarget( elem, content ) {
|
||||
return jQuery.nodeName( elem, "table" ) &&
|
||||
jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
|
||||
if ( jQuery.nodeName( elem, "table" ) &&
|
||||
jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
|
||||
|
||||
elem.getElementsByTagName("tbody")[0] ||
|
||||
elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
|
||||
elem;
|
||||
return elem.getElementsByTagName( "tbody" )[ 0 ] || elem;
|
||||
}
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
||||
// Replace/restore the type attribute of script elements for safe DOM manipulation
|
||||
function disableScript( elem ) {
|
||||
elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
|
||||
elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
|
||||
return elem;
|
||||
}
|
||||
function restoreScript( elem ) {
|
||||
|
@ -68,24 +59,12 @@ function restoreScript( elem ) {
|
|||
if ( match ) {
|
||||
elem.type = match[ 1 ];
|
||||
} else {
|
||||
elem.removeAttribute("type");
|
||||
elem.removeAttribute( "type" );
|
||||
}
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
||||
// Mark scripts as having already been evaluated
|
||||
function setGlobalEval( elems, refElements ) {
|
||||
var i = 0,
|
||||
l = elems.length;
|
||||
|
||||
for ( ; i < l; i++ ) {
|
||||
data_priv.set(
|
||||
elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function cloneCopyEvent( src, dest ) {
|
||||
var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
|
||||
|
||||
|
@ -94,9 +73,9 @@ function cloneCopyEvent( src, dest ) {
|
|||
}
|
||||
|
||||
// 1. Copy private data: events, handlers, etc.
|
||||
if ( data_priv.hasData( src ) ) {
|
||||
pdataOld = data_priv.access( src );
|
||||
pdataCur = data_priv.set( dest, pdataOld );
|
||||
if ( dataPriv.hasData( src ) ) {
|
||||
pdataOld = dataPriv.access( src );
|
||||
pdataCur = dataPriv.set( dest, pdataOld );
|
||||
events = pdataOld.events;
|
||||
|
||||
if ( events ) {
|
||||
|
@ -112,24 +91,14 @@ function cloneCopyEvent( src, dest ) {
|
|||
}
|
||||
|
||||
// 2. Copy user data
|
||||
if ( data_user.hasData( src ) ) {
|
||||
udataOld = data_user.access( src );
|
||||
if ( dataUser.hasData( src ) ) {
|
||||
udataOld = dataUser.access( src );
|
||||
udataCur = jQuery.extend( {}, udataOld );
|
||||
|
||||
data_user.set( dest, udataCur );
|
||||
dataUser.set( dest, udataCur );
|
||||
}
|
||||
}
|
||||
|
||||
function getAll( context, tag ) {
|
||||
var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) :
|
||||
context.querySelectorAll ? context.querySelectorAll( tag || "*" ) :
|
||||
[];
|
||||
|
||||
return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
|
||||
jQuery.merge( [ context ], ret ) :
|
||||
ret;
|
||||
}
|
||||
|
||||
// Fix IE bugs, see support tests
|
||||
function fixInput( src, dest ) {
|
||||
var nodeName = dest.nodeName.toLowerCase();
|
||||
|
@ -144,7 +113,122 @@ function fixInput( src, dest ) {
|
|||
}
|
||||
}
|
||||
|
||||
jQuery.extend({
|
||||
function domManip( collection, args, callback, ignored ) {
|
||||
|
||||
// Flatten any nested arrays
|
||||
args = concat.apply( [], args );
|
||||
|
||||
var fragment, first, scripts, hasScripts, node, doc,
|
||||
i = 0,
|
||||
l = collection.length,
|
||||
iNoClone = l - 1,
|
||||
value = args[ 0 ],
|
||||
isFunction = jQuery.isFunction( value );
|
||||
|
||||
// We can't cloneNode fragments that contain checked, in WebKit
|
||||
if ( isFunction ||
|
||||
( l > 1 && typeof value === "string" &&
|
||||
!support.checkClone && rchecked.test( value ) ) ) {
|
||||
return collection.each( function( index ) {
|
||||
var self = collection.eq( index );
|
||||
if ( isFunction ) {
|
||||
args[ 0 ] = value.call( this, index, self.html() );
|
||||
}
|
||||
domManip( self, args, callback, ignored );
|
||||
} );
|
||||
}
|
||||
|
||||
if ( l ) {
|
||||
fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
|
||||
first = fragment.firstChild;
|
||||
|
||||
if ( fragment.childNodes.length === 1 ) {
|
||||
fragment = first;
|
||||
}
|
||||
|
||||
// Require either new content or an interest in ignored elements to invoke the callback
|
||||
if ( first || ignored ) {
|
||||
scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
|
||||
hasScripts = scripts.length;
|
||||
|
||||
// Use the original fragment for the last item
|
||||
// instead of the first because it can end up
|
||||
// being emptied incorrectly in certain situations (#8070).
|
||||
for ( ; i < l; i++ ) {
|
||||
node = fragment;
|
||||
|
||||
if ( i !== iNoClone ) {
|
||||
node = jQuery.clone( node, true, true );
|
||||
|
||||
// Keep references to cloned scripts for later restoration
|
||||
if ( hasScripts ) {
|
||||
|
||||
// Support: Android<4.1, PhantomJS<2
|
||||
// push.apply(_, arraylike) throws on ancient WebKit
|
||||
jQuery.merge( scripts, getAll( node, "script" ) );
|
||||
}
|
||||
}
|
||||
|
||||
callback.call( collection[ i ], node, i );
|
||||
}
|
||||
|
||||
if ( hasScripts ) {
|
||||
doc = scripts[ scripts.length - 1 ].ownerDocument;
|
||||
|
||||
// Reenable scripts
|
||||
jQuery.map( scripts, restoreScript );
|
||||
|
||||
// Evaluate executable scripts on first document insertion
|
||||
for ( i = 0; i < hasScripts; i++ ) {
|
||||
node = scripts[ i ];
|
||||
if ( rscriptType.test( node.type || "" ) &&
|
||||
!dataPriv.access( node, "globalEval" ) &&
|
||||
jQuery.contains( doc, node ) ) {
|
||||
|
||||
if ( node.src ) {
|
||||
|
||||
// Optional AJAX dependency, but won't run scripts if not present
|
||||
if ( jQuery._evalUrl ) {
|
||||
jQuery._evalUrl( node.src );
|
||||
}
|
||||
} else {
|
||||
jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return collection;
|
||||
}
|
||||
|
||||
function remove( elem, selector, keepData ) {
|
||||
var node,
|
||||
nodes = selector ? jQuery.filter( selector, elem ) : elem,
|
||||
i = 0;
|
||||
|
||||
for ( ; ( node = nodes[ i ] ) != null; i++ ) {
|
||||
if ( !keepData && node.nodeType === 1 ) {
|
||||
jQuery.cleanData( getAll( node ) );
|
||||
}
|
||||
|
||||
if ( node.parentNode ) {
|
||||
if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
|
||||
setGlobalEval( getAll( node, "script" ) );
|
||||
}
|
||||
node.parentNode.removeChild( node );
|
||||
}
|
||||
}
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
||||
jQuery.extend( {
|
||||
htmlPrefilter: function( html ) {
|
||||
return html.replace( rxhtmlTag, "<$1></$2>" );
|
||||
},
|
||||
|
||||
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
|
||||
var i, l, srcElements, destElements,
|
||||
clone = elem.cloneNode( true ),
|
||||
|
@ -187,102 +271,14 @@ jQuery.extend({
|
|||
return clone;
|
||||
},
|
||||
|
||||
buildFragment: function( elems, context, scripts, selection ) {
|
||||
var elem, tmp, tag, wrap, contains, j,
|
||||
fragment = context.createDocumentFragment(),
|
||||
nodes = [],
|
||||
i = 0,
|
||||
l = elems.length;
|
||||
|
||||
for ( ; i < l; i++ ) {
|
||||
elem = elems[ i ];
|
||||
|
||||
if ( elem || elem === 0 ) {
|
||||
|
||||
// Add nodes directly
|
||||
if ( jQuery.type( elem ) === "object" ) {
|
||||
// Support: QtWebKit, PhantomJS
|
||||
// push.apply(_, arraylike) throws on ancient WebKit
|
||||
jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
|
||||
|
||||
// Convert non-html into a text node
|
||||
} else if ( !rhtml.test( elem ) ) {
|
||||
nodes.push( context.createTextNode( elem ) );
|
||||
|
||||
// Convert html into DOM nodes
|
||||
} else {
|
||||
tmp = tmp || fragment.appendChild( context.createElement("div") );
|
||||
|
||||
// Deserialize a standard representation
|
||||
tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
|
||||
wrap = wrapMap[ tag ] || wrapMap._default;
|
||||
tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ];
|
||||
|
||||
// Descend through wrappers to the right content
|
||||
j = wrap[ 0 ];
|
||||
while ( j-- ) {
|
||||
tmp = tmp.lastChild;
|
||||
}
|
||||
|
||||
// Support: QtWebKit, PhantomJS
|
||||
// push.apply(_, arraylike) throws on ancient WebKit
|
||||
jQuery.merge( nodes, tmp.childNodes );
|
||||
|
||||
// Remember the top-level container
|
||||
tmp = fragment.firstChild;
|
||||
|
||||
// Ensure the created nodes are orphaned (#12392)
|
||||
tmp.textContent = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove wrapper from fragment
|
||||
fragment.textContent = "";
|
||||
|
||||
i = 0;
|
||||
while ( (elem = nodes[ i++ ]) ) {
|
||||
|
||||
// #4087 - If origin and destination elements are the same, and this is
|
||||
// that element, do not do anything
|
||||
if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
contains = jQuery.contains( elem.ownerDocument, elem );
|
||||
|
||||
// Append to fragment
|
||||
tmp = getAll( fragment.appendChild( elem ), "script" );
|
||||
|
||||
// Preserve script evaluation history
|
||||
if ( contains ) {
|
||||
setGlobalEval( tmp );
|
||||
}
|
||||
|
||||
// Capture executables
|
||||
if ( scripts ) {
|
||||
j = 0;
|
||||
while ( (elem = tmp[ j++ ]) ) {
|
||||
if ( rscriptType.test( elem.type || "" ) ) {
|
||||
scripts.push( elem );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fragment;
|
||||
},
|
||||
|
||||
cleanData: function( elems ) {
|
||||
var data, elem, type, key,
|
||||
var data, elem, type,
|
||||
special = jQuery.event.special,
|
||||
i = 0;
|
||||
|
||||
for ( ; (elem = elems[ i ]) !== undefined; i++ ) {
|
||||
if ( jQuery.acceptData( elem ) ) {
|
||||
key = elem[ data_priv.expando ];
|
||||
|
||||
if ( key && (data = data_priv.cache[ key ]) ) {
|
||||
for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
|
||||
if ( acceptData( elem ) ) {
|
||||
if ( ( data = elem[ dataPriv.expando ] ) ) {
|
||||
if ( data.events ) {
|
||||
for ( type in data.events ) {
|
||||
if ( special[ type ] ) {
|
||||
|
@ -294,91 +290,86 @@ jQuery.extend({
|
|||
}
|
||||
}
|
||||
}
|
||||
if ( data_priv.cache[ key ] ) {
|
||||
// Discard any remaining `private` data
|
||||
delete data_priv.cache[ key ];
|
||||
}
|
||||
|
||||
// Support: Chrome <= 35-45+
|
||||
// Assign undefined instead of using delete, see Data#remove
|
||||
elem[ dataPriv.expando ] = undefined;
|
||||
}
|
||||
if ( elem[ dataUser.expando ] ) {
|
||||
|
||||
// Support: Chrome <= 35-45+
|
||||
// Assign undefined instead of using delete, see Data#remove
|
||||
elem[ dataUser.expando ] = undefined;
|
||||
}
|
||||
}
|
||||
// Discard any remaining `user` data
|
||||
delete data_user.cache[ elem[ data_user.expando ] ];
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.fn.extend( {
|
||||
|
||||
// Keep domManip exposed until 3.0 (gh-2225)
|
||||
domManip: domManip,
|
||||
|
||||
detach: function( selector ) {
|
||||
return remove( this, selector, true );
|
||||
},
|
||||
|
||||
remove: function( selector ) {
|
||||
return remove( this, selector );
|
||||
},
|
||||
|
||||
jQuery.fn.extend({
|
||||
text: function( value ) {
|
||||
return access( this, function( value ) {
|
||||
return value === undefined ?
|
||||
jQuery.text( this ) :
|
||||
this.empty().each(function() {
|
||||
this.empty().each( function() {
|
||||
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
|
||||
this.textContent = value;
|
||||
}
|
||||
});
|
||||
} );
|
||||
}, null, value, arguments.length );
|
||||
},
|
||||
|
||||
append: function() {
|
||||
return this.domManip( arguments, function( elem ) {
|
||||
return domManip( this, arguments, function( elem ) {
|
||||
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
|
||||
var target = manipulationTarget( this, elem );
|
||||
target.appendChild( elem );
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
prepend: function() {
|
||||
return this.domManip( arguments, function( elem ) {
|
||||
return domManip( this, arguments, function( elem ) {
|
||||
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
|
||||
var target = manipulationTarget( this, elem );
|
||||
target.insertBefore( elem, target.firstChild );
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
before: function() {
|
||||
return this.domManip( arguments, function( elem ) {
|
||||
return domManip( this, arguments, function( elem ) {
|
||||
if ( this.parentNode ) {
|
||||
this.parentNode.insertBefore( elem, this );
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
after: function() {
|
||||
return this.domManip( arguments, function( elem ) {
|
||||
return domManip( this, arguments, function( elem ) {
|
||||
if ( this.parentNode ) {
|
||||
this.parentNode.insertBefore( elem, this.nextSibling );
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
remove: function( selector, keepData /* Internal Use Only */ ) {
|
||||
var elem,
|
||||
elems = selector ? jQuery.filter( selector, this ) : this,
|
||||
i = 0;
|
||||
|
||||
for ( ; (elem = elems[i]) != null; i++ ) {
|
||||
if ( !keepData && elem.nodeType === 1 ) {
|
||||
jQuery.cleanData( getAll( elem ) );
|
||||
}
|
||||
|
||||
if ( elem.parentNode ) {
|
||||
if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
|
||||
setGlobalEval( getAll( elem, "script" ) );
|
||||
}
|
||||
elem.parentNode.removeChild( elem );
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
} );
|
||||
},
|
||||
|
||||
empty: function() {
|
||||
var elem,
|
||||
i = 0;
|
||||
|
||||
for ( ; (elem = this[i]) != null; i++ ) {
|
||||
for ( ; ( elem = this[ i ] ) != null; i++ ) {
|
||||
if ( elem.nodeType === 1 ) {
|
||||
|
||||
// Prevent memory leaks
|
||||
|
@ -396,9 +387,9 @@ jQuery.fn.extend({
|
|||
dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
|
||||
deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
|
||||
|
||||
return this.map(function() {
|
||||
return this.map( function() {
|
||||
return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
html: function( value ) {
|
||||
|
@ -415,7 +406,7 @@ jQuery.fn.extend({
|
|||
if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
|
||||
!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
|
||||
|
||||
value = value.replace( rxhtmlTag, "<$1></$2>" );
|
||||
value = jQuery.htmlPrefilter( value );
|
||||
|
||||
try {
|
||||
for ( ; i < l; i++ ) {
|
||||
|
@ -431,7 +422,7 @@ jQuery.fn.extend({
|
|||
elem = 0;
|
||||
|
||||
// If using innerHTML throws an exception, use the fallback method
|
||||
} catch( e ) {}
|
||||
} catch ( e ) {}
|
||||
}
|
||||
|
||||
if ( elem ) {
|
||||
|
@ -441,115 +432,25 @@ jQuery.fn.extend({
|
|||
},
|
||||
|
||||
replaceWith: function() {
|
||||
var arg = arguments[ 0 ];
|
||||
var ignored = [];
|
||||
|
||||
// Make the changes, replacing each context element with the new content
|
||||
this.domManip( arguments, function( elem ) {
|
||||
arg = this.parentNode;
|
||||
// Make the changes, replacing each non-ignored context element with the new content
|
||||
return domManip( this, arguments, function( elem ) {
|
||||
var parent = this.parentNode;
|
||||
|
||||
jQuery.cleanData( getAll( this ) );
|
||||
|
||||
if ( arg ) {
|
||||
arg.replaceChild( elem, this );
|
||||
}
|
||||
});
|
||||
|
||||
// Force removal if there was no new content (e.g., from empty arguments)
|
||||
return arg && (arg.length || arg.nodeType) ? this : this.remove();
|
||||
},
|
||||
|
||||
detach: function( selector ) {
|
||||
return this.remove( selector, true );
|
||||
},
|
||||
|
||||
domManip: function( args, callback ) {
|
||||
|
||||
// Flatten any nested arrays
|
||||
args = concat.apply( [], args );
|
||||
|
||||
var fragment, first, scripts, hasScripts, node, doc,
|
||||
i = 0,
|
||||
l = this.length,
|
||||
set = this,
|
||||
iNoClone = l - 1,
|
||||
value = args[ 0 ],
|
||||
isFunction = jQuery.isFunction( value );
|
||||
|
||||
// We can't cloneNode fragments that contain checked, in WebKit
|
||||
if ( isFunction ||
|
||||
( l > 1 && typeof value === "string" &&
|
||||
!support.checkClone && rchecked.test( value ) ) ) {
|
||||
return this.each(function( index ) {
|
||||
var self = set.eq( index );
|
||||
if ( isFunction ) {
|
||||
args[ 0 ] = value.call( this, index, self.html() );
|
||||
}
|
||||
self.domManip( args, callback );
|
||||
});
|
||||
}
|
||||
|
||||
if ( l ) {
|
||||
fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
|
||||
first = fragment.firstChild;
|
||||
|
||||
if ( fragment.childNodes.length === 1 ) {
|
||||
fragment = first;
|
||||
}
|
||||
|
||||
if ( first ) {
|
||||
scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
|
||||
hasScripts = scripts.length;
|
||||
|
||||
// Use the original fragment for the last item instead of the first because it can end up
|
||||
// being emptied incorrectly in certain situations (#8070).
|
||||
for ( ; i < l; i++ ) {
|
||||
node = fragment;
|
||||
|
||||
if ( i !== iNoClone ) {
|
||||
node = jQuery.clone( node, true, true );
|
||||
|
||||
// Keep references to cloned scripts for later restoration
|
||||
if ( hasScripts ) {
|
||||
// Support: QtWebKit
|
||||
// jQuery.merge because push.apply(_, arraylike) throws
|
||||
jQuery.merge( scripts, getAll( node, "script" ) );
|
||||
}
|
||||
}
|
||||
|
||||
callback.call( this[ i ], node, i );
|
||||
}
|
||||
|
||||
if ( hasScripts ) {
|
||||
doc = scripts[ scripts.length - 1 ].ownerDocument;
|
||||
|
||||
// Reenable scripts
|
||||
jQuery.map( scripts, restoreScript );
|
||||
|
||||
// Evaluate executable scripts on first document insertion
|
||||
for ( i = 0; i < hasScripts; i++ ) {
|
||||
node = scripts[ i ];
|
||||
if ( rscriptType.test( node.type || "" ) &&
|
||||
!data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
|
||||
|
||||
if ( node.src ) {
|
||||
// Optional AJAX dependency, but won't run scripts if not present
|
||||
if ( jQuery._evalUrl ) {
|
||||
jQuery._evalUrl( node.src );
|
||||
}
|
||||
} else {
|
||||
jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( jQuery.inArray( this, ignored ) < 0 ) {
|
||||
jQuery.cleanData( getAll( this ) );
|
||||
if ( parent ) {
|
||||
parent.replaceChild( elem, this );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
// Force callback invocation
|
||||
}, ignored );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.each({
|
||||
jQuery.each( {
|
||||
appendTo: "append",
|
||||
prependTo: "prepend",
|
||||
insertBefore: "before",
|
||||
|
@ -574,7 +475,7 @@ jQuery.each({
|
|||
|
||||
return this.pushStack( ret );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
define([
|
||||
define( [
|
||||
"../ajax"
|
||||
], function( jQuery ) {
|
||||
|
||||
jQuery._evalUrl = function( url ) {
|
||||
return jQuery.ajax({
|
||||
return jQuery.ajax( {
|
||||
url: url,
|
||||
|
||||
// Make this explicit, since user can override this through ajaxSetup (#11264)
|
||||
type: "GET",
|
||||
dataType: "script",
|
||||
async: false,
|
||||
global: false,
|
||||
"throws": true
|
||||
});
|
||||
} );
|
||||
};
|
||||
|
||||
return jQuery._evalUrl;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
102
dashboard-ui/bower_components/jquery/src/manipulation/buildFragment.js
vendored
Normal file
102
dashboard-ui/bower_components/jquery/src/manipulation/buildFragment.js
vendored
Normal file
|
@ -0,0 +1,102 @@
|
|||
define( [
|
||||
"../core",
|
||||
"./var/rtagName",
|
||||
"./var/rscriptType",
|
||||
"./wrapMap",
|
||||
"./getAll",
|
||||
"./setGlobalEval"
|
||||
], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
|
||||
|
||||
var rhtml = /<|&#?\w+;/;
|
||||
|
||||
function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||
var elem, tmp, tag, wrap, contains, j,
|
||||
fragment = context.createDocumentFragment(),
|
||||
nodes = [],
|
||||
i = 0,
|
||||
l = elems.length;
|
||||
|
||||
for ( ; i < l; i++ ) {
|
||||
elem = elems[ i ];
|
||||
|
||||
if ( elem || elem === 0 ) {
|
||||
|
||||
// Add nodes directly
|
||||
if ( jQuery.type( elem ) === "object" ) {
|
||||
|
||||
// Support: Android<4.1, PhantomJS<2
|
||||
// push.apply(_, arraylike) throws on ancient WebKit
|
||||
jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
|
||||
|
||||
// Convert non-html into a text node
|
||||
} else if ( !rhtml.test( elem ) ) {
|
||||
nodes.push( context.createTextNode( elem ) );
|
||||
|
||||
// Convert html into DOM nodes
|
||||
} else {
|
||||
tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
|
||||
|
||||
// Deserialize a standard representation
|
||||
tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
|
||||
wrap = wrapMap[ tag ] || wrapMap._default;
|
||||
tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
|
||||
|
||||
// Descend through wrappers to the right content
|
||||
j = wrap[ 0 ];
|
||||
while ( j-- ) {
|
||||
tmp = tmp.lastChild;
|
||||
}
|
||||
|
||||
// Support: Android<4.1, PhantomJS<2
|
||||
// push.apply(_, arraylike) throws on ancient WebKit
|
||||
jQuery.merge( nodes, tmp.childNodes );
|
||||
|
||||
// Remember the top-level container
|
||||
tmp = fragment.firstChild;
|
||||
|
||||
// Ensure the created nodes are orphaned (#12392)
|
||||
tmp.textContent = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove wrapper from fragment
|
||||
fragment.textContent = "";
|
||||
|
||||
i = 0;
|
||||
while ( ( elem = nodes[ i++ ] ) ) {
|
||||
|
||||
// Skip elements already in the context collection (trac-4087)
|
||||
if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
|
||||
if ( ignored ) {
|
||||
ignored.push( elem );
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
contains = jQuery.contains( elem.ownerDocument, elem );
|
||||
|
||||
// Append to fragment
|
||||
tmp = getAll( fragment.appendChild( elem ), "script" );
|
||||
|
||||
// Preserve script evaluation history
|
||||
if ( contains ) {
|
||||
setGlobalEval( tmp );
|
||||
}
|
||||
|
||||
// Capture executables
|
||||
if ( scripts ) {
|
||||
j = 0;
|
||||
while ( ( elem = tmp[ j++ ] ) ) {
|
||||
if ( rscriptType.test( elem.type || "" ) ) {
|
||||
scripts.push( elem );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fragment;
|
||||
}
|
||||
|
||||
return buildFragment;
|
||||
} );
|
21
dashboard-ui/bower_components/jquery/src/manipulation/getAll.js
vendored
Normal file
21
dashboard-ui/bower_components/jquery/src/manipulation/getAll.js
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
define( [
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
|
||||
function getAll( context, tag ) {
|
||||
|
||||
// Support: IE9-11+
|
||||
// Use typeof to avoid zero-argument method invocation on host objects (#15151)
|
||||
var ret = typeof context.getElementsByTagName !== "undefined" ?
|
||||
context.getElementsByTagName( tag || "*" ) :
|
||||
typeof context.querySelectorAll !== "undefined" ?
|
||||
context.querySelectorAll( tag || "*" ) :
|
||||
[];
|
||||
|
||||
return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
|
||||
jQuery.merge( [ context ], ret ) :
|
||||
ret;
|
||||
}
|
||||
|
||||
return getAll;
|
||||
} );
|
20
dashboard-ui/bower_components/jquery/src/manipulation/setGlobalEval.js
vendored
Normal file
20
dashboard-ui/bower_components/jquery/src/manipulation/setGlobalEval.js
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
define( [
|
||||
"../data/var/dataPriv"
|
||||
], function( dataPriv ) {
|
||||
|
||||
// Mark scripts as having already been evaluated
|
||||
function setGlobalEval( elems, refElements ) {
|
||||
var i = 0,
|
||||
l = elems.length;
|
||||
|
||||
for ( ; i < l; i++ ) {
|
||||
dataPriv.set(
|
||||
elems[ i ],
|
||||
"globalEval",
|
||||
!refElements || dataPriv.get( refElements[ i ], "globalEval" )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return setGlobalEval;
|
||||
} );
|
|
@ -1,13 +1,14 @@
|
|||
define([
|
||||
define( [
|
||||
"../var/document",
|
||||
"../var/support"
|
||||
], function( support ) {
|
||||
], function( document, support ) {
|
||||
|
||||
(function() {
|
||||
( function() {
|
||||
var fragment = document.createDocumentFragment(),
|
||||
div = fragment.appendChild( document.createElement( "div" ) ),
|
||||
input = document.createElement( "input" );
|
||||
|
||||
// Support: Safari<=5.1
|
||||
// Support: Android 4.0-4.3, Safari<=5.1
|
||||
// Check state lost if the name is set (#11217)
|
||||
// Support: Windows Web Apps (WWA)
|
||||
// `name` and `type` must use .setAttribute for WWA (#14901)
|
||||
|
@ -25,8 +26,8 @@ define([
|
|||
// Make sure textarea (and checkbox) defaultValue is properly cloned
|
||||
div.innerHTML = "<textarea>x</textarea>";
|
||||
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
|
||||
})();
|
||||
} )();
|
||||
|
||||
return support;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
27
dashboard-ui/bower_components/jquery/src/manipulation/wrapMap.js
vendored
Normal file
27
dashboard-ui/bower_components/jquery/src/manipulation/wrapMap.js
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
define( function() {
|
||||
|
||||
// We have to close these tags to support XHTML (#13200)
|
||||
var wrapMap = {
|
||||
|
||||
// Support: IE9
|
||||
option: [ 1, "<select multiple='multiple'>", "</select>" ],
|
||||
|
||||
// XHTML parsers do not magically insert elements in the
|
||||
// same way that tag soup parsers do. So we cannot shorten
|
||||
// this by omitting <tbody> or other required elements.
|
||||
thead: [ 1, "<table>", "</table>" ],
|
||||
col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
|
||||
tr: [ 2, "<table><tbody>", "</tbody></table>" ],
|
||||
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
|
||||
|
||||
_default: [ 0, "", "" ]
|
||||
};
|
||||
|
||||
// Support: IE9
|
||||
wrapMap.optgroup = wrapMap.option;
|
||||
|
||||
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
|
||||
wrapMap.th = wrapMap.td;
|
||||
|
||||
return wrapMap;
|
||||
} );
|
|
@ -1,7 +1,8 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/strundefined",
|
||||
"./core/access",
|
||||
"./var/document",
|
||||
"./var/documentElement",
|
||||
"./css/var/rnumnonpx",
|
||||
"./css/curCSS",
|
||||
"./css/addGetHookIf",
|
||||
|
@ -10,9 +11,7 @@ define([
|
|||
"./core/init",
|
||||
"./css",
|
||||
"./selector" // contains
|
||||
], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) {
|
||||
|
||||
var docElem = window.document.documentElement;
|
||||
], function( jQuery, access, document, documentElement, rnumnonpx, curCSS, addGetHookIf, support ) {
|
||||
|
||||
/**
|
||||
* Gets a window from an element
|
||||
|
@ -37,7 +36,7 @@ jQuery.offset = {
|
|||
curCSSTop = jQuery.css( elem, "top" );
|
||||
curCSSLeft = jQuery.css( elem, "left" );
|
||||
calculatePosition = ( position === "absolute" || position === "fixed" ) &&
|
||||
( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
|
||||
( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
|
||||
|
||||
// Need to be able to calculate position if either
|
||||
// top or left is auto and position is either absolute or fixed
|
||||
|
@ -52,7 +51,9 @@ jQuery.offset = {
|
|||
}
|
||||
|
||||
if ( jQuery.isFunction( options ) ) {
|
||||
options = options.call( elem, i, curOffset );
|
||||
|
||||
// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
|
||||
options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
|
||||
}
|
||||
|
||||
if ( options.top != null ) {
|
||||
|
@ -71,14 +72,14 @@ jQuery.offset = {
|
|||
}
|
||||
};
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
offset: function( options ) {
|
||||
if ( arguments.length ) {
|
||||
return options === undefined ?
|
||||
this :
|
||||
this.each(function( i ) {
|
||||
this.each( function( i ) {
|
||||
jQuery.offset.setOffset( this, options, i );
|
||||
});
|
||||
} );
|
||||
}
|
||||
|
||||
var docElem, win,
|
||||
|
@ -97,11 +98,7 @@ jQuery.fn.extend({
|
|||
return box;
|
||||
}
|
||||
|
||||
// Support: BlackBerry 5, iOS 3 (original iPhone)
|
||||
// If we don't have gBCR, just use 0,0 rather than error
|
||||
if ( typeof elem.getBoundingClientRect !== strundefined ) {
|
||||
box = elem.getBoundingClientRect();
|
||||
}
|
||||
box = elem.getBoundingClientRect();
|
||||
win = getWindow( doc );
|
||||
return {
|
||||
top: box.top + win.pageYOffset - docElem.clientTop,
|
||||
|
@ -118,12 +115,15 @@ jQuery.fn.extend({
|
|||
elem = this[ 0 ],
|
||||
parentOffset = { top: 0, left: 0 };
|
||||
|
||||
// Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
|
||||
// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
|
||||
// because it is its only offset parent
|
||||
if ( jQuery.css( elem, "position" ) === "fixed" ) {
|
||||
|
||||
// Assume getBoundingClientRect is there when computed position is fixed
|
||||
offset = elem.getBoundingClientRect();
|
||||
|
||||
} else {
|
||||
|
||||
// Get *real* offsetParent
|
||||
offsetParent = this.offsetParent();
|
||||
|
||||
|
@ -134,8 +134,11 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
// Add offsetParent borders
|
||||
parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
|
||||
parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
|
||||
// Subtract offsetParent scroll positions
|
||||
parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ) -
|
||||
offsetParent.scrollTop();
|
||||
parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ) -
|
||||
offsetParent.scrollLeft();
|
||||
}
|
||||
|
||||
// Subtract parent offsets and element margins
|
||||
|
@ -145,18 +148,28 @@ jQuery.fn.extend({
|
|||
};
|
||||
},
|
||||
|
||||
// This method will return documentElement in the following cases:
|
||||
// 1) For the element inside the iframe without offsetParent, this method will return
|
||||
// documentElement of the parent window
|
||||
// 2) For the hidden or detached element
|
||||
// 3) For body or html element, i.e. in case of the html node - it will return itself
|
||||
//
|
||||
// but those exceptions were never presented as a real life use-cases
|
||||
// and might be considered as more preferable results.
|
||||
//
|
||||
// This logic, however, is not guaranteed and can change at any point in the future
|
||||
offsetParent: function() {
|
||||
return this.map(function() {
|
||||
var offsetParent = this.offsetParent || docElem;
|
||||
return this.map( function() {
|
||||
var offsetParent = this.offsetParent;
|
||||
|
||||
while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
|
||||
while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
|
||||
offsetParent = offsetParent.offsetParent;
|
||||
}
|
||||
|
||||
return offsetParent || docElem;
|
||||
});
|
||||
return offsetParent || documentElement;
|
||||
} );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
// Create scrollLeft and scrollTop methods
|
||||
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
|
||||
|
@ -172,18 +185,18 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
|
|||
|
||||
if ( win ) {
|
||||
win.scrollTo(
|
||||
!top ? val : window.pageXOffset,
|
||||
top ? val : window.pageYOffset
|
||||
!top ? val : win.pageXOffset,
|
||||
top ? val : win.pageYOffset
|
||||
);
|
||||
|
||||
} else {
|
||||
elem[ method ] = val;
|
||||
}
|
||||
}, method, val, arguments.length, null );
|
||||
}, method, val, arguments.length );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
// Support: Safari<7+, Chrome<37+
|
||||
// Support: Safari<7-8+, Chrome<37-44+
|
||||
// Add the top/left cssHooks using jQuery.fn.position
|
||||
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
|
||||
// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
|
||||
|
@ -194,6 +207,7 @@ jQuery.each( [ "top", "left" ], function( i, prop ) {
|
|||
function( elem, computed ) {
|
||||
if ( computed ) {
|
||||
computed = curCSS( elem, prop );
|
||||
|
||||
// If curCSS returns percentage, fallback to offset
|
||||
return rnumnonpx.test( computed ) ?
|
||||
jQuery( elem ).position()[ prop ] + "px" :
|
||||
|
@ -201,7 +215,7 @@ jQuery.each( [ "top", "left" ], function( i, prop ) {
|
|||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
return jQuery;
|
||||
}));
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./data/var/data_priv",
|
||||
"./data/var/dataPriv",
|
||||
"./deferred",
|
||||
"./callbacks"
|
||||
], function( jQuery, data_priv ) {
|
||||
], function( jQuery, dataPriv ) {
|
||||
|
||||
jQuery.extend({
|
||||
jQuery.extend( {
|
||||
queue: function( elem, type, data ) {
|
||||
var queue;
|
||||
|
||||
if ( elem ) {
|
||||
type = ( type || "fx" ) + "queue";
|
||||
queue = data_priv.get( elem, type );
|
||||
queue = dataPriv.get( elem, type );
|
||||
|
||||
// Speed up dequeue by getting out quickly if this is just a lookup
|
||||
if ( data ) {
|
||||
if ( !queue || jQuery.isArray( data ) ) {
|
||||
queue = data_priv.access( elem, type, jQuery.makeArray(data) );
|
||||
queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
|
||||
} else {
|
||||
queue.push( data );
|
||||
}
|
||||
|
@ -63,15 +63,15 @@ jQuery.extend({
|
|||
// Not public - generate a queueHooks object, or return the current one
|
||||
_queueHooks: function( elem, type ) {
|
||||
var key = type + "queueHooks";
|
||||
return data_priv.get( elem, key ) || data_priv.access( elem, key, {
|
||||
empty: jQuery.Callbacks("once memory").add(function() {
|
||||
data_priv.remove( elem, [ type + "queue", key ] );
|
||||
})
|
||||
});
|
||||
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({
|
||||
jQuery.fn.extend( {
|
||||
queue: function( type, data ) {
|
||||
var setter = 2;
|
||||
|
||||
|
@ -82,30 +82,31 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
if ( arguments.length < setter ) {
|
||||
return jQuery.queue( this[0], type );
|
||||
return jQuery.queue( this[ 0 ], type );
|
||||
}
|
||||
|
||||
return data === undefined ?
|
||||
this :
|
||||
this.each(function() {
|
||||
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" ) {
|
||||
if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
|
||||
jQuery.dequeue( this, type );
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
dequeue: function( type ) {
|
||||
return this.each(function() {
|
||||
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 ) {
|
||||
|
@ -127,7 +128,7 @@ jQuery.fn.extend({
|
|||
type = type || "fx";
|
||||
|
||||
while ( i-- ) {
|
||||
tmp = data_priv.get( elements[ i ], type + "queueHooks" );
|
||||
tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
|
||||
if ( tmp && tmp.empty ) {
|
||||
count++;
|
||||
tmp.empty.add( resolve );
|
||||
|
@ -136,7 +137,7 @@ jQuery.fn.extend({
|
|||
resolve();
|
||||
return defer.promise( obj );
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../queue",
|
||||
"../effects" // Delay is optional because of this dependency
|
||||
], function( jQuery ) {
|
||||
|
||||
// Based off of the plugin by Clint Helfers, with permission.
|
||||
// http://blindsignals.com/index.php/2009/07/jquery-delay/
|
||||
// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
|
||||
jQuery.fn.delay = function( time, type ) {
|
||||
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
|
||||
type = type || "fx";
|
||||
|
||||
return this.queue( type, function( next, hooks ) {
|
||||
var timeout = setTimeout( next, time );
|
||||
var timeout = window.setTimeout( next, time );
|
||||
hooks.stop = function() {
|
||||
clearTimeout( timeout );
|
||||
window.clearTimeout( timeout );
|
||||
};
|
||||
});
|
||||
} );
|
||||
};
|
||||
|
||||
return jQuery.fn.delay;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
define([
|
||||
"./core"
|
||||
], function( jQuery ) {
|
||||
define( [
|
||||
"./core",
|
||||
"./var/document",
|
||||
"./var/documentElement",
|
||||
"./var/hasOwn",
|
||||
"./var/indexOf"
|
||||
], function( jQuery, document, documentElement, hasOwn, indexOf ) {
|
||||
|
||||
/*
|
||||
* Optional (non-Sizzle) selector module for custom builds.
|
||||
|
@ -27,46 +31,86 @@ define([
|
|||
* customize this stub for the project's specific needs.
|
||||
*/
|
||||
|
||||
var docElem = window.document.documentElement,
|
||||
selector_hasDuplicate,
|
||||
matches = docElem.matches ||
|
||||
docElem.webkitMatchesSelector ||
|
||||
docElem.mozMatchesSelector ||
|
||||
docElem.oMatchesSelector ||
|
||||
docElem.msMatchesSelector,
|
||||
selector_sortOrder = function( a, b ) {
|
||||
// Flag for duplicate removal
|
||||
if ( a === b ) {
|
||||
selector_hasDuplicate = true;
|
||||
return 0;
|
||||
var hasDuplicate, sortInput,
|
||||
sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
|
||||
matches = documentElement.matches ||
|
||||
documentElement.webkitMatchesSelector ||
|
||||
documentElement.mozMatchesSelector ||
|
||||
documentElement.oMatchesSelector ||
|
||||
documentElement.msMatchesSelector;
|
||||
|
||||
function sortOrder( a, b ) {
|
||||
|
||||
// Flag for duplicate removal
|
||||
if ( a === b ) {
|
||||
hasDuplicate = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Sort on method existence if only one input has compareDocumentPosition
|
||||
var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
|
||||
if ( compare ) {
|
||||
return compare;
|
||||
}
|
||||
|
||||
// Calculate position if both inputs belong to the same document
|
||||
compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
|
||||
a.compareDocumentPosition( b ) :
|
||||
|
||||
// Otherwise we know they are disconnected
|
||||
1;
|
||||
|
||||
// Disconnected nodes
|
||||
if ( compare & 1 ) {
|
||||
|
||||
// Choose the first element that is related to our preferred document
|
||||
if ( a === document || a.ownerDocument === document &&
|
||||
jQuery.contains( document, a ) ) {
|
||||
return -1;
|
||||
}
|
||||
if ( b === document || b.ownerDocument === document &&
|
||||
jQuery.contains( document, b ) ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );
|
||||
// Maintain original order
|
||||
return sortInput ?
|
||||
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
|
||||
0;
|
||||
}
|
||||
|
||||
if ( compare ) {
|
||||
// Disconnected nodes
|
||||
if ( compare & 1 ) {
|
||||
return compare & 4 ? -1 : 1;
|
||||
}
|
||||
|
||||
// Choose the first element that is related to our document
|
||||
if ( a === document || jQuery.contains(document, a) ) {
|
||||
return -1;
|
||||
}
|
||||
if ( b === document || jQuery.contains(document, b) ) {
|
||||
return 1;
|
||||
}
|
||||
function uniqueSort( results ) {
|
||||
var elem,
|
||||
duplicates = [],
|
||||
j = 0,
|
||||
i = 0;
|
||||
|
||||
// Maintain original order
|
||||
return 0;
|
||||
hasDuplicate = false;
|
||||
sortInput = !sortStable && results.slice( 0 );
|
||||
results.sort( sortOrder );
|
||||
|
||||
if ( hasDuplicate ) {
|
||||
while ( ( elem = results[ i++ ] ) ) {
|
||||
if ( elem === results[ i ] ) {
|
||||
j = duplicates.push( i );
|
||||
}
|
||||
|
||||
return compare & 4 ? -1 : 1;
|
||||
}
|
||||
while ( j-- ) {
|
||||
results.splice( duplicates[ j ], 1 );
|
||||
}
|
||||
}
|
||||
|
||||
// Not directly comparable, sort on existence of method
|
||||
return a.compareDocumentPosition ? -1 : 1;
|
||||
};
|
||||
// Clear input after sorting to release objects
|
||||
// See https://github.com/jquery/sizzle/pull/225
|
||||
sortInput = null;
|
||||
|
||||
jQuery.extend({
|
||||
return results;
|
||||
}
|
||||
|
||||
jQuery.extend( {
|
||||
find: function( selector, context, results, seed ) {
|
||||
var elem, nodeType,
|
||||
i = 0;
|
||||
|
@ -80,44 +124,24 @@ jQuery.extend({
|
|||
}
|
||||
|
||||
// Early return if context is not an element or document
|
||||
if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
|
||||
if ( ( nodeType = context.nodeType ) !== 1 && nodeType !== 9 ) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if ( seed ) {
|
||||
while ( (elem = seed[i++]) ) {
|
||||
if ( jQuery.find.matchesSelector(elem, selector) ) {
|
||||
while ( ( elem = seed[ i++ ] ) ) {
|
||||
if ( jQuery.find.matchesSelector( elem, selector ) ) {
|
||||
results.push( elem );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
jQuery.merge( results, context.querySelectorAll(selector) );
|
||||
}
|
||||
|
||||
return results;
|
||||
},
|
||||
unique: function( results ) {
|
||||
var elem,
|
||||
duplicates = [],
|
||||
i = 0,
|
||||
j = 0;
|
||||
|
||||
selector_hasDuplicate = false;
|
||||
results.sort( selector_sortOrder );
|
||||
|
||||
if ( selector_hasDuplicate ) {
|
||||
while ( (elem = results[i++]) ) {
|
||||
if ( elem === results[ i ] ) {
|
||||
j = duplicates.push( i );
|
||||
}
|
||||
}
|
||||
while ( j-- ) {
|
||||
results.splice( duplicates[ j ], 1 );
|
||||
}
|
||||
jQuery.merge( results, context.querySelectorAll( selector ) );
|
||||
}
|
||||
|
||||
return results;
|
||||
},
|
||||
uniqueSort: uniqueSort,
|
||||
unique: uniqueSort,
|
||||
text: function( elem ) {
|
||||
var node,
|
||||
ret = "",
|
||||
|
@ -125,17 +149,21 @@ jQuery.extend({
|
|||
nodeType = elem.nodeType;
|
||||
|
||||
if ( !nodeType ) {
|
||||
|
||||
// If no nodeType, this is expected to be an array
|
||||
while ( (node = elem[i++]) ) {
|
||||
while ( ( node = elem[ i++ ] ) ) {
|
||||
|
||||
// Do not traverse comment nodes
|
||||
ret += jQuery.text( node );
|
||||
}
|
||||
} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
|
||||
|
||||
// Use textContent for elements
|
||||
return elem.textContent;
|
||||
} else if ( nodeType === 3 || nodeType === 4 ) {
|
||||
return elem.nodeValue;
|
||||
}
|
||||
|
||||
// Do not include comment or processing instruction nodes
|
||||
|
||||
return ret;
|
||||
|
@ -143,19 +171,24 @@ jQuery.extend({
|
|||
contains: function( a, b ) {
|
||||
var adown = a.nodeType === 9 ? a.documentElement : a,
|
||||
bup = b && b.parentNode;
|
||||
return a === bup || !!( bup && bup.nodeType === 1 && adown.contains(bup) );
|
||||
return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
|
||||
},
|
||||
isXMLDoc: function( elem ) {
|
||||
return (elem.ownerDocument || elem).documentElement.nodeName !== "HTML";
|
||||
|
||||
// documentElement is verified for cases where it doesn't yet exist
|
||||
// (such as loading iframes in IE - #4833)
|
||||
var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
|
||||
return documentElement ? documentElement.nodeName !== "HTML" : false;
|
||||
},
|
||||
expr: {
|
||||
attrHandle: {},
|
||||
match: {
|
||||
bool: /^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,
|
||||
bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer" +
|
||||
"|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ),
|
||||
needsContext: /^[\x20\t\r\n\f]*[>+~]/
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
jQuery.extend( jQuery.find, {
|
||||
matches: function( expr, elements ) {
|
||||
|
@ -165,8 +198,14 @@ jQuery.extend( jQuery.find, {
|
|||
return matches.call( elem, expr );
|
||||
},
|
||||
attr: function( elem, name ) {
|
||||
return elem.getAttribute( name );
|
||||
}
|
||||
});
|
||||
var fn = jQuery.expr.attrHandle[ name.toLowerCase() ],
|
||||
|
||||
});
|
||||
// Don't get fooled by Object.prototype properties (jQuery #13807)
|
||||
value = fn && hasOwn.call( jQuery.expr.attrHandle, name.toLowerCase() ) ?
|
||||
fn( elem, name, jQuery.isXMLDoc( elem ) ) :
|
||||
undefined;
|
||||
return value !== undefined ? value : elem.getAttribute( name );
|
||||
}
|
||||
} );
|
||||
|
||||
} );
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"sizzle"
|
||||
], function( jQuery, Sizzle ) {
|
||||
|
||||
jQuery.find = Sizzle;
|
||||
jQuery.expr = Sizzle.selectors;
|
||||
jQuery.expr[":"] = jQuery.expr.pseudos;
|
||||
jQuery.unique = Sizzle.uniqueSort;
|
||||
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
|
||||
jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
|
||||
jQuery.text = Sizzle.getText;
|
||||
jQuery.isXMLDoc = Sizzle.isXML;
|
||||
jQuery.contains = Sizzle.contains;
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1 +1 @@
|
|||
define([ "./selector-sizzle" ]);
|
||||
define( [ "./selector-sizzle" ], function() {} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./manipulation/var/rcheckableType",
|
||||
"./core/init",
|
||||
|
@ -16,25 +16,35 @@ function buildParams( prefix, obj, traditional, add ) {
|
|||
var name;
|
||||
|
||||
if ( jQuery.isArray( obj ) ) {
|
||||
|
||||
// Serialize array item.
|
||||
jQuery.each( obj, function( i, v ) {
|
||||
if ( traditional || rbracket.test( prefix ) ) {
|
||||
|
||||
// Treat each array item as a scalar.
|
||||
add( prefix, v );
|
||||
|
||||
} else {
|
||||
|
||||
// Item is non-scalar (array or object), encode its numeric index.
|
||||
buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
|
||||
buildParams(
|
||||
prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
|
||||
v,
|
||||
traditional,
|
||||
add
|
||||
);
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
} else if ( !traditional && jQuery.type( obj ) === "object" ) {
|
||||
|
||||
// Serialize object item.
|
||||
for ( name in obj ) {
|
||||
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// Serialize scalar item.
|
||||
add( prefix, obj );
|
||||
}
|
||||
|
@ -46,6 +56,7 @@ jQuery.param = function( a, traditional ) {
|
|||
var prefix,
|
||||
s = [],
|
||||
add = function( key, value ) {
|
||||
|
||||
// If value is a function, invoke it and return its value
|
||||
value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
|
||||
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
|
||||
|
@ -58,12 +69,14 @@ jQuery.param = function( a, traditional ) {
|
|||
|
||||
// If an array was passed in, assume that it is an array of form elements.
|
||||
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
|
||||
|
||||
// Serialize the form elements
|
||||
jQuery.each( a, function() {
|
||||
add( this.name, this.value );
|
||||
});
|
||||
} );
|
||||
|
||||
} else {
|
||||
|
||||
// If traditional, encode the "old" way (the way 1.3.2 or older
|
||||
// did it), otherwise encode params recursively.
|
||||
for ( prefix in a ) {
|
||||
|
@ -75,25 +88,26 @@ jQuery.param = function( a, traditional ) {
|
|||
return s.join( "&" ).replace( r20, "+" );
|
||||
};
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
serialize: function() {
|
||||
return jQuery.param( this.serializeArray() );
|
||||
},
|
||||
serializeArray: function() {
|
||||
return this.map(function() {
|
||||
return this.map( function() {
|
||||
|
||||
// Can add propHook for "elements" to filter or add form elements
|
||||
var elements = jQuery.prop( this, "elements" );
|
||||
return elements ? jQuery.makeArray( elements ) : this;
|
||||
})
|
||||
.filter(function() {
|
||||
} )
|
||||
.filter( function() {
|
||||
var type = this.type;
|
||||
|
||||
// Use .is( ":disabled" ) so that fieldset[disabled] works
|
||||
return this.name && !jQuery( this ).is( ":disabled" ) &&
|
||||
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
|
||||
( this.checked || !rcheckableType.test( type ) );
|
||||
})
|
||||
.map(function( i, elem ) {
|
||||
} )
|
||||
.map( function( i, elem ) {
|
||||
var val = jQuery( this ).val();
|
||||
|
||||
return val == null ?
|
||||
|
@ -101,11 +115,11 @@ jQuery.fn.extend({
|
|||
jQuery.isArray( val ) ?
|
||||
jQuery.map( val, function( val ) {
|
||||
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
|
||||
}) :
|
||||
} ) :
|
||||
{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
|
||||
}).get();
|
||||
} ).get();
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,13 +1,16 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./var/indexOf",
|
||||
"./traversing/var/dir",
|
||||
"./traversing/var/siblings",
|
||||
"./traversing/var/rneedsContext",
|
||||
"./core/init",
|
||||
"./traversing/findFilter",
|
||||
"./selector"
|
||||
], function( jQuery, indexOf, rneedsContext ) {
|
||||
], function( jQuery, indexOf, dir, siblings, rneedsContext ) {
|
||||
|
||||
var rparentsprev = /^(?:parents|prev(?:Until|All))/,
|
||||
|
||||
// Methods guaranteed to produce a unique set when starting from a unique set
|
||||
guaranteedUnique = {
|
||||
children: true,
|
||||
|
@ -16,48 +19,19 @@ var rparentsprev = /^(?:parents|prev(?:Until|All))/,
|
|||
prev: true
|
||||
};
|
||||
|
||||
jQuery.extend({
|
||||
dir: function( elem, dir, until ) {
|
||||
var matched = [],
|
||||
truncate = until !== undefined;
|
||||
|
||||
while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
|
||||
if ( elem.nodeType === 1 ) {
|
||||
if ( truncate && jQuery( elem ).is( until ) ) {
|
||||
break;
|
||||
}
|
||||
matched.push( elem );
|
||||
}
|
||||
}
|
||||
return matched;
|
||||
},
|
||||
|
||||
sibling: function( n, elem ) {
|
||||
var matched = [];
|
||||
|
||||
for ( ; n; n = n.nextSibling ) {
|
||||
if ( n.nodeType === 1 && n !== elem ) {
|
||||
matched.push( n );
|
||||
}
|
||||
}
|
||||
|
||||
return matched;
|
||||
}
|
||||
});
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
has: function( target ) {
|
||||
var targets = jQuery( target, this ),
|
||||
l = targets.length;
|
||||
|
||||
return this.filter(function() {
|
||||
return this.filter( function() {
|
||||
var i = 0;
|
||||
for ( ; i < l; i++ ) {
|
||||
if ( jQuery.contains( this, targets[i] ) ) {
|
||||
if ( jQuery.contains( this, targets[ i ] ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
closest: function( selectors, context ) {
|
||||
|
@ -70,14 +44,15 @@ jQuery.fn.extend({
|
|||
0;
|
||||
|
||||
for ( ; i < l; i++ ) {
|
||||
for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
|
||||
for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
|
||||
|
||||
// Always skip document fragments
|
||||
if ( cur.nodeType < 11 && (pos ?
|
||||
pos.index(cur) > -1 :
|
||||
if ( cur.nodeType < 11 && ( pos ?
|
||||
pos.index( cur ) > -1 :
|
||||
|
||||
// Don't pass non-elements to Sizzle
|
||||
cur.nodeType === 1 &&
|
||||
jQuery.find.matchesSelector(cur, selectors)) ) {
|
||||
jQuery.find.matchesSelector( cur, selectors ) ) ) {
|
||||
|
||||
matched.push( cur );
|
||||
break;
|
||||
|
@ -85,7 +60,7 @@ jQuery.fn.extend({
|
|||
}
|
||||
}
|
||||
|
||||
return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
|
||||
return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
|
||||
},
|
||||
|
||||
// Determine the position of an element within the set
|
||||
|
@ -111,7 +86,7 @@ jQuery.fn.extend({
|
|||
|
||||
add: function( selector, context ) {
|
||||
return this.pushStack(
|
||||
jQuery.unique(
|
||||
jQuery.uniqueSort(
|
||||
jQuery.merge( this.get(), jQuery( selector, context ) )
|
||||
)
|
||||
);
|
||||
|
@ -119,26 +94,26 @@ jQuery.fn.extend({
|
|||
|
||||
addBack: function( selector ) {
|
||||
return this.add( selector == null ?
|
||||
this.prevObject : this.prevObject.filter(selector)
|
||||
this.prevObject : this.prevObject.filter( selector )
|
||||
);
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
function sibling( cur, dir ) {
|
||||
while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
|
||||
while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
|
||||
return cur;
|
||||
}
|
||||
|
||||
jQuery.each({
|
||||
jQuery.each( {
|
||||
parent: function( elem ) {
|
||||
var parent = elem.parentNode;
|
||||
return parent && parent.nodeType !== 11 ? parent : null;
|
||||
},
|
||||
parents: function( elem ) {
|
||||
return jQuery.dir( elem, "parentNode" );
|
||||
return dir( elem, "parentNode" );
|
||||
},
|
||||
parentsUntil: function( elem, i, until ) {
|
||||
return jQuery.dir( elem, "parentNode", until );
|
||||
return dir( elem, "parentNode", until );
|
||||
},
|
||||
next: function( elem ) {
|
||||
return sibling( elem, "nextSibling" );
|
||||
|
@ -147,22 +122,22 @@ jQuery.each({
|
|||
return sibling( elem, "previousSibling" );
|
||||
},
|
||||
nextAll: function( elem ) {
|
||||
return jQuery.dir( elem, "nextSibling" );
|
||||
return dir( elem, "nextSibling" );
|
||||
},
|
||||
prevAll: function( elem ) {
|
||||
return jQuery.dir( elem, "previousSibling" );
|
||||
return dir( elem, "previousSibling" );
|
||||
},
|
||||
nextUntil: function( elem, i, until ) {
|
||||
return jQuery.dir( elem, "nextSibling", until );
|
||||
return dir( elem, "nextSibling", until );
|
||||
},
|
||||
prevUntil: function( elem, i, until ) {
|
||||
return jQuery.dir( elem, "previousSibling", until );
|
||||
return dir( elem, "previousSibling", until );
|
||||
},
|
||||
siblings: function( elem ) {
|
||||
return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
|
||||
return siblings( ( elem.parentNode || {} ).firstChild, elem );
|
||||
},
|
||||
children: function( elem ) {
|
||||
return jQuery.sibling( elem.firstChild );
|
||||
return siblings( elem.firstChild );
|
||||
},
|
||||
contents: function( elem ) {
|
||||
return elem.contentDocument || jQuery.merge( [], elem.childNodes );
|
||||
|
@ -180,9 +155,10 @@ jQuery.each({
|
|||
}
|
||||
|
||||
if ( this.length > 1 ) {
|
||||
|
||||
// Remove duplicates
|
||||
if ( !guaranteedUnique[ name ] ) {
|
||||
jQuery.unique( matched );
|
||||
jQuery.uniqueSort( matched );
|
||||
}
|
||||
|
||||
// Reverse order for parents* and prev-derivatives
|
||||
|
@ -193,7 +169,7 @@ jQuery.each({
|
|||
|
||||
return this.pushStack( matched );
|
||||
};
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define([
|
||||
define( [
|
||||
"../core",
|
||||
"../var/indexOf",
|
||||
"./var/rneedsContext",
|
||||
|
@ -13,14 +13,14 @@ function winnow( elements, qualifier, not ) {
|
|||
return jQuery.grep( elements, function( elem, i ) {
|
||||
/* jshint -W018 */
|
||||
return !!qualifier.call( elem, i, elem ) !== not;
|
||||
});
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
if ( qualifier.nodeType ) {
|
||||
return jQuery.grep( elements, function( elem ) {
|
||||
return ( elem === qualifier ) !== not;
|
||||
});
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
|
@ -33,8 +33,8 @@ function winnow( elements, qualifier, not ) {
|
|||
}
|
||||
|
||||
return jQuery.grep( elements, function( elem ) {
|
||||
return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
|
||||
});
|
||||
return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
|
||||
} );
|
||||
}
|
||||
|
||||
jQuery.filter = function( expr, elems, not ) {
|
||||
|
@ -48,10 +48,10 @@ jQuery.filter = function( expr, elems, not ) {
|
|||
jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
|
||||
jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
|
||||
return elem.nodeType === 1;
|
||||
}));
|
||||
} ) );
|
||||
};
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
find: function( selector ) {
|
||||
var i,
|
||||
len = this.length,
|
||||
|
@ -59,13 +59,13 @@ jQuery.fn.extend({
|
|||
self = this;
|
||||
|
||||
if ( typeof selector !== "string" ) {
|
||||
return this.pushStack( jQuery( selector ).filter(function() {
|
||||
return this.pushStack( jQuery( selector ).filter( function() {
|
||||
for ( i = 0; i < len; i++ ) {
|
||||
if ( jQuery.contains( self[ i ], this ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}) );
|
||||
} ) );
|
||||
}
|
||||
|
||||
for ( i = 0; i < len; i++ ) {
|
||||
|
@ -78,10 +78,10 @@ jQuery.fn.extend({
|
|||
return ret;
|
||||
},
|
||||
filter: function( selector ) {
|
||||
return this.pushStack( winnow(this, selector || [], false) );
|
||||
return this.pushStack( winnow( this, selector || [], false ) );
|
||||
},
|
||||
not: function( selector ) {
|
||||
return this.pushStack( winnow(this, selector || [], true) );
|
||||
return this.pushStack( winnow( this, selector || [], true ) );
|
||||
},
|
||||
is: function( selector ) {
|
||||
return !!winnow(
|
||||
|
@ -95,6 +95,6 @@ jQuery.fn.extend({
|
|||
false
|
||||
).length;
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
});
|
||||
} );
|
||||
|
|
38
dashboard-ui/bower_components/jquery/src/wrap.js
vendored
38
dashboard-ui/bower_components/jquery/src/wrap.js
vendored
|
@ -1,18 +1,18 @@
|
|||
define([
|
||||
define( [
|
||||
"./core",
|
||||
"./core/init",
|
||||
"./manipulation", // clone
|
||||
"./traversing" // parent, contents
|
||||
], function( jQuery ) {
|
||||
|
||||
jQuery.fn.extend({
|
||||
jQuery.fn.extend( {
|
||||
wrapAll: function( html ) {
|
||||
var wrap;
|
||||
|
||||
if ( jQuery.isFunction( html ) ) {
|
||||
return this.each(function( i ) {
|
||||
jQuery( this ).wrapAll( html.call(this, i) );
|
||||
});
|
||||
return this.each( function( i ) {
|
||||
jQuery( this ).wrapAll( html.call( this, i ) );
|
||||
} );
|
||||
}
|
||||
|
||||
if ( this[ 0 ] ) {
|
||||
|
@ -24,7 +24,7 @@ jQuery.fn.extend({
|
|||
wrap.insertBefore( this[ 0 ] );
|
||||
}
|
||||
|
||||
wrap.map(function() {
|
||||
wrap.map( function() {
|
||||
var elem = this;
|
||||
|
||||
while ( elem.firstElementChild ) {
|
||||
|
@ -32,7 +32,7 @@ jQuery.fn.extend({
|
|||
}
|
||||
|
||||
return elem;
|
||||
}).append( this );
|
||||
} ).append( this );
|
||||
}
|
||||
|
||||
return this;
|
||||
|
@ -40,12 +40,12 @@ jQuery.fn.extend({
|
|||
|
||||
wrapInner: function( html ) {
|
||||
if ( jQuery.isFunction( html ) ) {
|
||||
return this.each(function( i ) {
|
||||
jQuery( this ).wrapInner( html.call(this, i) );
|
||||
});
|
||||
return this.each( function( i ) {
|
||||
jQuery( this ).wrapInner( html.call( this, i ) );
|
||||
} );
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
return this.each( function() {
|
||||
var self = jQuery( this ),
|
||||
contents = self.contents();
|
||||
|
||||
|
@ -55,25 +55,25 @@ jQuery.fn.extend({
|
|||
} else {
|
||||
self.append( html );
|
||||
}
|
||||
});
|
||||
} );
|
||||
},
|
||||
|
||||
wrap: function( html ) {
|
||||
var isFunction = jQuery.isFunction( html );
|
||||
|
||||
return this.each(function( i ) {
|
||||
jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
|
||||
});
|
||||
return this.each( function( i ) {
|
||||
jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
|
||||
} );
|
||||
},
|
||||
|
||||
unwrap: function() {
|
||||
return this.parent().each(function() {
|
||||
return this.parent().each( function() {
|
||||
if ( !jQuery.nodeName( this, "body" ) ) {
|
||||
jQuery( this ).replaceWith( this.childNodes );
|
||||
}
|
||||
}).end();
|
||||
} ).end();
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
||||
return jQuery;
|
||||
});
|
||||
} );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue