/bower_components/jquery/src/core.js |
@@ -1,11 +1,5 @@ |
/* global Symbol */ |
// Defining this global in .eslintrc.json would create a danger of using the global |
// unguarded in another place, it seems safer to define global only for this module |
|
define( [ |
define([ |
"./var/arr", |
"./var/document", |
"./var/getProto", |
"./var/slice", |
"./var/concat", |
"./var/push", |
@@ -13,34 +7,29 @@ |
"./var/class2type", |
"./var/toString", |
"./var/hasOwn", |
"./var/fnToString", |
"./var/ObjectFunctionString", |
"./var/support", |
"./core/DOMEval" |
], function( arr, document, getProto, slice, concat, push, indexOf, |
class2type, toString, hasOwn, fnToString, ObjectFunctionString, |
support, DOMEval ) { |
"./var/support" |
], function( arr, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) { |
|
"use strict"; |
|
var |
version = "3.1.1", |
// 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 ); |
}, |
|
// Support: Android <=4.0 only |
// Support: Android<4.1 |
// Make sure we trim BOM and NBSP |
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, |
|
// Matches dashed string for camelizing |
rmsPrefix = /^-ms-/, |
rdashAlpha = /-([a-z])/g, |
rdashAlpha = /-([\da-z])/gi, |
|
// Used by jQuery.camelCase as callback to replace() |
fcamelCase = function( all, letter ) { |
@@ -48,12 +37,14 @@ |
}; |
|
jQuery.fn = jQuery.prototype = { |
|
// The current version of jQuery being used |
jquery: version, |
|
constructor: jQuery, |
|
// Start with an empty selector |
selector: "", |
|
// The default length of a jQuery object is 0 |
length: 0, |
|
@@ -64,14 +55,13 @@ |
// Get the Nth element in the matched element set OR |
// Get the whole matched element set as a clean array |
get: function( num ) { |
return num != null ? |
|
// Return all the elements in a clean array |
if ( num == null ) { |
return slice.call( this ); |
} |
// Return just the one element from the set |
( num < 0 ? this[ num + this.length ] : this[ num ] ) : |
|
// Return just the one element from the set |
return num < 0 ? this[ num + this.length ] : this[ num ]; |
// Return all the elements in a clean array |
slice.call( this ); |
}, |
|
// Take an array of elements and push it onto the stack |
@@ -83,6 +73,7 @@ |
|
// Add the old object onto the stack (as a reference) |
ret.prevObject = this; |
ret.context = this.context; |
|
// Return the newly-formed element set |
return ret; |
@@ -89,14 +80,16 @@ |
}, |
|
// Execute a callback for every element in the matched set. |
each: function( callback ) { |
return jQuery.each( this, callback ); |
// (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 ); |
}, |
|
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() { |
@@ -114,11 +107,11 @@ |
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(); |
return this.prevObject || this.constructor(null); |
}, |
|
// For internal use only. |
@@ -130,7 +123,7 @@ |
|
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; |
@@ -145,7 +138,7 @@ |
} |
|
// 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 = {}; |
} |
|
@@ -156,10 +149,8 @@ |
} |
|
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 ]; |
@@ -171,15 +162,13 @@ |
} |
|
// 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 |
@@ -197,8 +186,7 @@ |
return target; |
}; |
|
jQuery.extend( { |
|
jQuery.extend({ |
// Unique for each copy of jQuery on the page |
expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), |
|
@@ -212,7 +200,7 @@ |
noop: function() {}, |
|
isFunction: function( obj ) { |
return jQuery.type( obj ) === "function"; |
return jQuery.type(obj) === "function"; |
}, |
|
isArray: Array.isArray, |
@@ -222,46 +210,34 @@ |
}, |
|
isNumeric: function( obj ) { |
|
// As of jQuery 3.0, isNumeric is limited to |
// strings and numbers (primitives or objects) |
// that can be coerced to finite numbers (gh-2662) |
var type = jQuery.type( obj ); |
return ( type === "number" || type === "string" ) && |
|
// parseFloat NaNs numeric-cast false positives ("") |
// ...but misinterprets leading-number strings, particularly hex literals ("0x...") |
// subtraction forces infinities to NaN |
!isNaN( obj - parseFloat( 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; |
}, |
|
isPlainObject: function( obj ) { |
var proto, Ctor; |
|
// Detect obvious negatives |
// Use toString instead of jQuery.type to catch host objects |
if ( !obj || toString.call( obj ) !== "[object Object]" ) { |
// Not plain objects: |
// - Any object or value whose internal [[Class]] property is not "[object Object]" |
// - DOM nodes |
// - window |
if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { |
return false; |
} |
|
proto = getProto( obj ); |
|
// Objects with no prototype (e.g., `Object.create( null )`) are plain |
if ( !proto ) { |
return true; |
if ( obj.constructor && |
!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { |
return false; |
} |
|
// Objects with prototype are plain iff they were constructed by a global Object function |
Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; |
return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; |
// If the function hasn't returned already, we're confident that |
// |obj| is a plain object, created by {} or constructed with new Object |
return true; |
}, |
|
isEmptyObject: function( obj ) { |
|
/* eslint-disable no-unused-vars */ |
// See https://github.com/eslint/eslint/issues/6125 |
var name; |
|
for ( name in obj ) { |
return false; |
} |
@@ -272,20 +248,37 @@ |
if ( obj == null ) { |
return obj + ""; |
} |
|
// Support: Android <=2.3 only (functionish RegExp) |
// 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; |
}, |
|
// Evaluates a script in a global context |
globalEval: function( code ) { |
DOMEval( code ); |
var script, |
indirect = eval; |
|
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"); |
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 |
indirect( code ); |
} |
} |
}, |
|
// Convert dashed to camelCase; used by the css and data modules |
// Support: IE <=9 - 11, Edge 12 - 13 |
// Support: IE9-11+ |
// Microsoft forgot to hump their vendor prefix (#9572) |
camelCase: function( string ) { |
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); |
@@ -295,21 +288,50 @@ |
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); |
}, |
|
each: function( obj, callback ) { |
var length, i = 0; |
// args is for internal usage only |
each: function( obj, callback, args ) { |
var value, |
i = 0, |
length = obj.length, |
isArray = isArraylike( obj ); |
|
if ( isArrayLike( obj ) ) { |
length = obj.length; |
for ( ; i < length; i++ ) { |
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { |
break; |
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; |
} |
} |
} |
|
// A special, fast, case for the most common use of each |
} else { |
for ( i in obj ) { |
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { |
break; |
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; |
} |
} |
} |
} |
|
@@ -316,7 +338,7 @@ |
return obj; |
}, |
|
// Support: Android <=4.0 only |
// Support: Android<4.1 |
trim: function( text ) { |
return text == null ? |
"" : |
@@ -328,7 +350,7 @@ |
var ret = results || []; |
|
if ( arr != null ) { |
if ( isArrayLike( Object( arr ) ) ) { |
if ( isArraylike( Object(arr) ) ) { |
jQuery.merge( ret, |
typeof arr === "string" ? |
[ arr ] : arr |
@@ -345,8 +367,6 @@ |
return arr == null ? -1 : indexOf.call( arr, elem, i ); |
}, |
|
// Support: Android <=4.0 only, PhantomJS 1 only |
// push.apply(_, arraylike) throws on ancient WebKit |
merge: function( first, second ) { |
var len = +second.length, |
j = 0, |
@@ -382,13 +402,14 @@ |
|
// arg is for internal usage only |
map: function( elems, callback, arg ) { |
var length, value, |
var value, |
i = 0, |
length = elems.length, |
isArray = isArraylike( elems ), |
ret = []; |
|
// Go through the array, translating each of the items to their new values |
if ( isArrayLike( elems ) ) { |
length = elems.length; |
if ( isArray ) { |
for ( ; i < length; i++ ) { |
value = callback( elems[ i ], i, arg ); |
|
@@ -449,25 +470,20 @@ |
// jQuery.support is not used in Core but other projects attach their |
// properties to it so it needs to exist. |
support: support |
} ); |
}); |
|
if ( typeof Symbol === "function" ) { |
jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; |
} |
|
// Populate the class2type map |
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), |
function( i, name ) { |
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { |
class2type[ "[object " + name + "]" ] = name.toLowerCase(); |
} ); |
}); |
|
function isArrayLike( obj ) { |
function isArraylike( obj ) { |
|
// Support: real iOS 8.2 only (not reproducible in simulator) |
// 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 = !!obj && "length" in obj && obj.length, |
var length = "length" in obj && obj.length, |
type = jQuery.type( obj ); |
|
if ( type === "function" || jQuery.isWindow( obj ) ) { |
@@ -474,9 +490,13 @@ |
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; |
} ); |
}); |