parent
31cb045a61
commit
93d29be369
5 changed files with 422 additions and 190 deletions
2
assets/js/main.min.js
vendored
2
assets/js/main.min.js
vendored
File diff suppressed because one or more lines are too long
2
assets/js/vendor/jquery/jquery-3.3.1.min.js
vendored
2
assets/js/vendor/jquery/jquery-3.3.1.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
||||||
/*!
|
/*!
|
||||||
* jQuery JavaScript Library v3.3.1
|
* jQuery JavaScript Library v3.4.1
|
||||||
* https://jquery.com/
|
* https://jquery.com/
|
||||||
*
|
*
|
||||||
* Includes Sizzle.js
|
* Includes Sizzle.js
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
* Released under the MIT license
|
* Released under the MIT license
|
||||||
* https://jquery.org/license
|
* https://jquery.org/license
|
||||||
*
|
*
|
||||||
* Date: 2018-01-20T17:24Z
|
* Date: 2019-05-01T21:04Z
|
||||||
*/
|
*/
|
||||||
( function( global, factory ) {
|
( function( global, factory ) {
|
||||||
|
|
||||||
|
@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
|
||||||
var preservedScriptAttributes = {
|
var preservedScriptAttributes = {
|
||||||
type: true,
|
type: true,
|
||||||
src: true,
|
src: true,
|
||||||
|
nonce: true,
|
||||||
noModule: true
|
noModule: true
|
||||||
};
|
};
|
||||||
|
|
||||||
function DOMEval( code, doc, node ) {
|
function DOMEval( code, node, doc ) {
|
||||||
doc = doc || document;
|
doc = doc || document;
|
||||||
|
|
||||||
var i,
|
var i, val,
|
||||||
script = doc.createElement( "script" );
|
script = doc.createElement( "script" );
|
||||||
|
|
||||||
script.text = code;
|
script.text = code;
|
||||||
if ( node ) {
|
if ( node ) {
|
||||||
for ( i in preservedScriptAttributes ) {
|
for ( i in preservedScriptAttributes ) {
|
||||||
if ( node[ i ] ) {
|
|
||||||
script[ i ] = node[ i ];
|
// Support: Firefox 64+, Edge 18+
|
||||||
|
// Some browsers don't support the "nonce" property on scripts.
|
||||||
|
// On the other hand, just using `getAttribute` is not enough as
|
||||||
|
// the `nonce` attribute is reset to an empty string whenever it
|
||||||
|
// becomes browsing-context connected.
|
||||||
|
// See https://github.com/whatwg/html/issues/2369
|
||||||
|
// See https://html.spec.whatwg.org/#nonce-attributes
|
||||||
|
// The `node.getAttribute` check was added for the sake of
|
||||||
|
// `jQuery.globalEval` so that it can fake a nonce-containing node
|
||||||
|
// via an object.
|
||||||
|
val = node[ i ] || node.getAttribute && node.getAttribute( i );
|
||||||
|
if ( val ) {
|
||||||
|
script.setAttribute( i, val );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,7 +142,7 @@ function toType( obj ) {
|
||||||
|
|
||||||
|
|
||||||
var
|
var
|
||||||
version = "3.3.1",
|
version = "3.4.1",
|
||||||
|
|
||||||
// Define a local copy of jQuery
|
// Define a local copy of jQuery
|
||||||
jQuery = function( selector, context ) {
|
jQuery = function( selector, context ) {
|
||||||
|
@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
|
||||||
|
|
||||||
// Extend the base object
|
// Extend the base object
|
||||||
for ( name in options ) {
|
for ( name in options ) {
|
||||||
src = target[ name ];
|
|
||||||
copy = options[ name ];
|
copy = options[ name ];
|
||||||
|
|
||||||
|
// Prevent Object.prototype pollution
|
||||||
// Prevent never-ending loop
|
// Prevent never-ending loop
|
||||||
if ( target === copy ) {
|
if ( name === "__proto__" || target === copy ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recurse if we're merging plain objects or arrays
|
// Recurse if we're merging plain objects or arrays
|
||||||
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
|
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
|
||||||
( copyIsArray = Array.isArray( copy ) ) ) ) {
|
( copyIsArray = Array.isArray( copy ) ) ) ) {
|
||||||
|
src = target[ name ];
|
||||||
|
|
||||||
if ( copyIsArray ) {
|
// Ensure proper type for the source value
|
||||||
copyIsArray = false;
|
if ( copyIsArray && !Array.isArray( src ) ) {
|
||||||
clone = src && Array.isArray( src ) ? src : [];
|
clone = [];
|
||||||
|
} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
|
||||||
|
clone = {};
|
||||||
} else {
|
} else {
|
||||||
clone = src && jQuery.isPlainObject( src ) ? src : {};
|
clone = src;
|
||||||
}
|
}
|
||||||
|
copyIsArray = false;
|
||||||
|
|
||||||
// Never move original objects, clone them
|
// Never move original objects, clone them
|
||||||
target[ name ] = jQuery.extend( deep, clone, copy );
|
target[ name ] = jQuery.extend( deep, clone, copy );
|
||||||
|
@ -329,9 +345,6 @@ jQuery.extend( {
|
||||||
},
|
},
|
||||||
|
|
||||||
isEmptyObject: function( obj ) {
|
isEmptyObject: function( obj ) {
|
||||||
|
|
||||||
/* eslint-disable no-unused-vars */
|
|
||||||
// See https://github.com/eslint/eslint/issues/6125
|
|
||||||
var name;
|
var name;
|
||||||
|
|
||||||
for ( name in obj ) {
|
for ( name in obj ) {
|
||||||
|
@ -341,8 +354,8 @@ jQuery.extend( {
|
||||||
},
|
},
|
||||||
|
|
||||||
// Evaluates a script in a global context
|
// Evaluates a script in a global context
|
||||||
globalEval: function( code ) {
|
globalEval: function( code, options ) {
|
||||||
DOMEval( code );
|
DOMEval( code, { nonce: options && options.nonce } );
|
||||||
},
|
},
|
||||||
|
|
||||||
each: function( obj, callback ) {
|
each: function( obj, callback ) {
|
||||||
|
@ -498,14 +511,14 @@ function isArrayLike( obj ) {
|
||||||
}
|
}
|
||||||
var Sizzle =
|
var Sizzle =
|
||||||
/*!
|
/*!
|
||||||
* Sizzle CSS Selector Engine v2.3.3
|
* Sizzle CSS Selector Engine v2.3.4
|
||||||
* https://sizzlejs.com/
|
* https://sizzlejs.com/
|
||||||
*
|
*
|
||||||
* Copyright jQuery Foundation and other contributors
|
* Copyright JS Foundation and other contributors
|
||||||
* Released under the MIT license
|
* Released under the MIT license
|
||||||
* http://jquery.org/license
|
* https://js.foundation/
|
||||||
*
|
*
|
||||||
* Date: 2016-08-08
|
* Date: 2019-04-08
|
||||||
*/
|
*/
|
||||||
(function( window ) {
|
(function( window ) {
|
||||||
|
|
||||||
|
@ -539,6 +552,7 @@ var i,
|
||||||
classCache = createCache(),
|
classCache = createCache(),
|
||||||
tokenCache = createCache(),
|
tokenCache = createCache(),
|
||||||
compilerCache = createCache(),
|
compilerCache = createCache(),
|
||||||
|
nonnativeSelectorCache = createCache(),
|
||||||
sortOrder = function( a, b ) {
|
sortOrder = function( a, b ) {
|
||||||
if ( a === b ) {
|
if ( a === b ) {
|
||||||
hasDuplicate = true;
|
hasDuplicate = true;
|
||||||
|
@ -600,8 +614,7 @@ var i,
|
||||||
|
|
||||||
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
|
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
|
||||||
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
|
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
|
||||||
|
rdescend = new RegExp( whitespace + "|>" ),
|
||||||
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
|
|
||||||
|
|
||||||
rpseudo = new RegExp( pseudos ),
|
rpseudo = new RegExp( pseudos ),
|
||||||
ridentifier = new RegExp( "^" + identifier + "$" ),
|
ridentifier = new RegExp( "^" + identifier + "$" ),
|
||||||
|
@ -622,6 +635,7 @@ var i,
|
||||||
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
|
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
|
||||||
},
|
},
|
||||||
|
|
||||||
|
rhtml = /HTML$/i,
|
||||||
rinputs = /^(?:input|select|textarea|button)$/i,
|
rinputs = /^(?:input|select|textarea|button)$/i,
|
||||||
rheader = /^h\d$/i,
|
rheader = /^h\d$/i,
|
||||||
|
|
||||||
|
@ -676,9 +690,9 @@ var i,
|
||||||
setDocument();
|
setDocument();
|
||||||
},
|
},
|
||||||
|
|
||||||
disabledAncestor = addCombinator(
|
inDisabledFieldset = addCombinator(
|
||||||
function( elem ) {
|
function( elem ) {
|
||||||
return elem.disabled === true && ("form" in elem || "label" in elem);
|
return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
|
||||||
},
|
},
|
||||||
{ dir: "parentNode", next: "legend" }
|
{ dir: "parentNode", next: "legend" }
|
||||||
);
|
);
|
||||||
|
@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
|
||||||
|
|
||||||
// Take advantage of querySelectorAll
|
// Take advantage of querySelectorAll
|
||||||
if ( support.qsa &&
|
if ( support.qsa &&
|
||||||
!compilerCache[ selector + " " ] &&
|
!nonnativeSelectorCache[ selector + " " ] &&
|
||||||
(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
|
(!rbuggyQSA || !rbuggyQSA.test( selector )) &&
|
||||||
|
|
||||||
if ( nodeType !== 1 ) {
|
// Support: IE 8 only
|
||||||
newContext = context;
|
|
||||||
newSelector = selector;
|
|
||||||
|
|
||||||
// qSA looks outside Element context, which is not what we want
|
|
||||||
// Thanks to Andrew Dupont for this workaround technique
|
|
||||||
// Support: IE <=8
|
|
||||||
// Exclude object elements
|
// Exclude object elements
|
||||||
} else if ( context.nodeName.toLowerCase() !== "object" ) {
|
(nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
|
||||||
|
|
||||||
|
newSelector = selector;
|
||||||
|
newContext = context;
|
||||||
|
|
||||||
|
// qSA considers elements outside a scoping root when evaluating child or
|
||||||
|
// descendant combinators, which is not what we want.
|
||||||
|
// In such cases, we work around the behavior by prefixing every selector in the
|
||||||
|
// list with an ID selector referencing the scope context.
|
||||||
|
// Thanks to Andrew Dupont for this technique.
|
||||||
|
if ( nodeType === 1 && rdescend.test( selector ) ) {
|
||||||
|
|
||||||
// Capture the context ID, setting it first if necessary
|
// Capture the context ID, setting it first if necessary
|
||||||
if ( (nid = context.getAttribute( "id" )) ) {
|
if ( (nid = context.getAttribute( "id" )) ) {
|
||||||
|
@ -824,13 +842,13 @@ function Sizzle( selector, context, results, seed ) {
|
||||||
context;
|
context;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( newSelector ) {
|
|
||||||
try {
|
try {
|
||||||
push.apply( results,
|
push.apply( results,
|
||||||
newContext.querySelectorAll( newSelector )
|
newContext.querySelectorAll( newSelector )
|
||||||
);
|
);
|
||||||
return results;
|
return results;
|
||||||
} catch ( qsaError ) {
|
} catch ( qsaError ) {
|
||||||
|
nonnativeSelectorCache( selector, true );
|
||||||
} finally {
|
} finally {
|
||||||
if ( nid === expando ) {
|
if ( nid === expando ) {
|
||||||
context.removeAttribute( "id" );
|
context.removeAttribute( "id" );
|
||||||
|
@ -839,7 +857,6 @@ function Sizzle( selector, context, results, seed ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// All others
|
// All others
|
||||||
return select( selector.replace( rtrim, "$1" ), context, results, seed );
|
return select( selector.replace( rtrim, "$1" ), context, results, seed );
|
||||||
|
@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
|
||||||
// Where there is no isDisabled, check manually
|
// Where there is no isDisabled, check manually
|
||||||
/* jshint -W018 */
|
/* jshint -W018 */
|
||||||
elem.isDisabled !== !disabled &&
|
elem.isDisabled !== !disabled &&
|
||||||
disabledAncestor( elem ) === disabled;
|
inDisabledFieldset( elem ) === disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
return elem.disabled === disabled;
|
return elem.disabled === disabled;
|
||||||
|
@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
|
||||||
* @returns {Boolean} True iff elem is a non-HTML XML node
|
* @returns {Boolean} True iff elem is a non-HTML XML node
|
||||||
*/
|
*/
|
||||||
isXML = Sizzle.isXML = function( elem ) {
|
isXML = Sizzle.isXML = function( elem ) {
|
||||||
// documentElement is verified for cases where it doesn't yet exist
|
var namespace = elem.namespaceURI,
|
||||||
// (such as loading iframes in IE - #4833)
|
docElem = (elem.ownerDocument || elem).documentElement;
|
||||||
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
|
|
||||||
return documentElement ? documentElement.nodeName !== "HTML" : false;
|
// Support: IE <=8
|
||||||
|
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
|
||||||
|
// https://bugs.jquery.com/ticket/4833
|
||||||
|
return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1480,11 +1500,8 @@ Sizzle.matchesSelector = function( elem, expr ) {
|
||||||
setDocument( elem );
|
setDocument( elem );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure that attribute selectors are quoted
|
|
||||||
expr = expr.replace( rattributeQuotes, "='$1']" );
|
|
||||||
|
|
||||||
if ( support.matchesSelector && documentIsHTML &&
|
if ( support.matchesSelector && documentIsHTML &&
|
||||||
!compilerCache[ expr + " " ] &&
|
!nonnativeSelectorCache[ expr + " " ] &&
|
||||||
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
|
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
|
||||||
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
|
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
|
||||||
|
|
||||||
|
@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
|
||||||
elem.document && elem.document.nodeType !== 11 ) {
|
elem.document && elem.document.nodeType !== 11 ) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
} catch (e) {}
|
} catch (e) {
|
||||||
|
nonnativeSelectorCache( expr, true );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Sizzle( expr, document, null, [ elem ] ).length > 0;
|
return Sizzle( expr, document, null, [ elem ] ).length > 0;
|
||||||
|
@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
|
||||||
"contains": markFunction(function( text ) {
|
"contains": markFunction(function( text ) {
|
||||||
text = text.replace( runescape, funescape );
|
text = text.replace( runescape, funescape );
|
||||||
return function( elem ) {
|
return function( elem ) {
|
||||||
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
|
return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
@ -2096,7 +2115,11 @@ Expr = Sizzle.selectors = {
|
||||||
}),
|
}),
|
||||||
|
|
||||||
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
||||||
var i = argument < 0 ? argument + length : argument;
|
var i = argument < 0 ?
|
||||||
|
argument + length :
|
||||||
|
argument > length ?
|
||||||
|
length :
|
||||||
|
argument;
|
||||||
for ( ; --i >= 0; ) {
|
for ( ; --i >= 0; ) {
|
||||||
matchIndexes.push( i );
|
matchIndexes.push( i );
|
||||||
}
|
}
|
||||||
|
@ -3146,7 +3169,7 @@ jQuery.each( {
|
||||||
return siblings( elem.firstChild );
|
return siblings( elem.firstChild );
|
||||||
},
|
},
|
||||||
contents: function( elem ) {
|
contents: function( elem ) {
|
||||||
if ( nodeName( elem, "iframe" ) ) {
|
if ( typeof elem.contentDocument !== "undefined" ) {
|
||||||
return elem.contentDocument;
|
return elem.contentDocument;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4466,6 +4489,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
|
||||||
|
|
||||||
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
|
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
|
||||||
|
|
||||||
|
var documentElement = document.documentElement;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var isAttached = function( elem ) {
|
||||||
|
return jQuery.contains( elem.ownerDocument, elem );
|
||||||
|
},
|
||||||
|
composed = { composed: true };
|
||||||
|
|
||||||
|
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
|
||||||
|
// Check attachment across shadow DOM boundaries when possible (gh-3504)
|
||||||
|
// Support: iOS 10.0-10.2 only
|
||||||
|
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
|
||||||
|
// leading to errors. We need to check for `getRootNode`.
|
||||||
|
if ( documentElement.getRootNode ) {
|
||||||
|
isAttached = function( elem ) {
|
||||||
|
return jQuery.contains( elem.ownerDocument, elem ) ||
|
||||||
|
elem.getRootNode( composed ) === elem.ownerDocument;
|
||||||
|
};
|
||||||
|
}
|
||||||
var isHiddenWithinTree = function( elem, el ) {
|
var isHiddenWithinTree = function( elem, el ) {
|
||||||
|
|
||||||
// isHiddenWithinTree might be called from jQuery#filter function;
|
// isHiddenWithinTree might be called from jQuery#filter function;
|
||||||
|
@ -4480,7 +4523,7 @@ var isHiddenWithinTree = function( elem, el ) {
|
||||||
// Support: Firefox <=43 - 45
|
// Support: Firefox <=43 - 45
|
||||||
// Disconnected elements can have computed display: none, so first confirm that elem is
|
// Disconnected elements can have computed display: none, so first confirm that elem is
|
||||||
// in the document.
|
// in the document.
|
||||||
jQuery.contains( elem.ownerDocument, elem ) &&
|
isAttached( elem ) &&
|
||||||
|
|
||||||
jQuery.css( elem, "display" ) === "none";
|
jQuery.css( elem, "display" ) === "none";
|
||||||
};
|
};
|
||||||
|
@ -4522,7 +4565,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
|
||||||
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
|
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
|
||||||
|
|
||||||
// Starting value computation is required for potential unit mismatches
|
// Starting value computation is required for potential unit mismatches
|
||||||
initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
|
initialInUnit = elem.nodeType &&
|
||||||
|
( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
|
||||||
rcssNum.exec( jQuery.css( elem, prop ) );
|
rcssNum.exec( jQuery.css( elem, prop ) );
|
||||||
|
|
||||||
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
|
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
|
||||||
|
@ -4669,7 +4713,7 @@ jQuery.fn.extend( {
|
||||||
} );
|
} );
|
||||||
var rcheckableType = ( /^(?:checkbox|radio)$/i );
|
var rcheckableType = ( /^(?:checkbox|radio)$/i );
|
||||||
|
|
||||||
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
|
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
|
||||||
|
|
||||||
var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
|
var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
|
||||||
|
|
||||||
|
@ -4741,7 +4785,7 @@ function setGlobalEval( elems, refElements ) {
|
||||||
var rhtml = /<|&#?\w+;/;
|
var rhtml = /<|&#?\w+;/;
|
||||||
|
|
||||||
function buildFragment( elems, context, scripts, selection, ignored ) {
|
function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||||
var elem, tmp, tag, wrap, contains, j,
|
var elem, tmp, tag, wrap, attached, j,
|
||||||
fragment = context.createDocumentFragment(),
|
fragment = context.createDocumentFragment(),
|
||||||
nodes = [],
|
nodes = [],
|
||||||
i = 0,
|
i = 0,
|
||||||
|
@ -4805,13 +4849,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
contains = jQuery.contains( elem.ownerDocument, elem );
|
attached = isAttached( elem );
|
||||||
|
|
||||||
// Append to fragment
|
// Append to fragment
|
||||||
tmp = getAll( fragment.appendChild( elem ), "script" );
|
tmp = getAll( fragment.appendChild( elem ), "script" );
|
||||||
|
|
||||||
// Preserve script evaluation history
|
// Preserve script evaluation history
|
||||||
if ( contains ) {
|
if ( attached ) {
|
||||||
setGlobalEval( tmp );
|
setGlobalEval( tmp );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4854,8 +4898,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||||
div.innerHTML = "<textarea>x</textarea>";
|
div.innerHTML = "<textarea>x</textarea>";
|
||||||
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
|
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
|
||||||
} )();
|
} )();
|
||||||
var documentElement = document.documentElement;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -4871,8 +4913,19 @@ function returnFalse() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Support: IE <=9 - 11+
|
||||||
|
// focus() and blur() are asynchronous, except when they are no-op.
|
||||||
|
// So expect focus to be synchronous when the element is already active,
|
||||||
|
// and blur to be synchronous when the element is not already active.
|
||||||
|
// (focus and blur are always synchronous in other supported browsers,
|
||||||
|
// this just defines when we can count on it).
|
||||||
|
function expectSync( elem, type ) {
|
||||||
|
return ( elem === safeActiveElement() ) === ( type === "focus" );
|
||||||
|
}
|
||||||
|
|
||||||
// Support: IE <=9 only
|
// Support: IE <=9 only
|
||||||
// See #13393 for more info
|
// Accessing document.activeElement can throw unexpectedly
|
||||||
|
// https://bugs.jquery.com/ticket/13393
|
||||||
function safeActiveElement() {
|
function safeActiveElement() {
|
||||||
try {
|
try {
|
||||||
return document.activeElement;
|
return document.activeElement;
|
||||||
|
@ -5172,9 +5225,10 @@ jQuery.event = {
|
||||||
while ( ( handleObj = matched.handlers[ j++ ] ) &&
|
while ( ( handleObj = matched.handlers[ j++ ] ) &&
|
||||||
!event.isImmediatePropagationStopped() ) {
|
!event.isImmediatePropagationStopped() ) {
|
||||||
|
|
||||||
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
|
// If the event is namespaced, then each handler is only invoked if it is
|
||||||
// a subset or equal to those in the bound event (both can have no namespace).
|
// specially universal or its namespaces are a superset of the event's.
|
||||||
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
|
if ( !event.rnamespace || handleObj.namespace === false ||
|
||||||
|
event.rnamespace.test( handleObj.namespace ) ) {
|
||||||
|
|
||||||
event.handleObj = handleObj;
|
event.handleObj = handleObj;
|
||||||
event.data = handleObj.data;
|
event.data = handleObj.data;
|
||||||
|
@ -5298,39 +5352,51 @@ jQuery.event = {
|
||||||
// Prevent triggered image.load events from bubbling to window.load
|
// Prevent triggered image.load events from bubbling to window.load
|
||||||
noBubble: true
|
noBubble: true
|
||||||
},
|
},
|
||||||
focus: {
|
|
||||||
|
|
||||||
// Fire native event if possible so blur/focus sequence is correct
|
|
||||||
trigger: function() {
|
|
||||||
if ( this !== safeActiveElement() && this.focus ) {
|
|
||||||
this.focus();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
delegateType: "focusin"
|
|
||||||
},
|
|
||||||
blur: {
|
|
||||||
trigger: function() {
|
|
||||||
if ( this === safeActiveElement() && this.blur ) {
|
|
||||||
this.blur();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
delegateType: "focusout"
|
|
||||||
},
|
|
||||||
click: {
|
click: {
|
||||||
|
|
||||||
// For checkbox, fire native event so checked state will be right
|
// Utilize native event to ensure correct state for checkable inputs
|
||||||
trigger: function() {
|
setup: function( data ) {
|
||||||
if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
|
|
||||||
this.click();
|
// For mutual compressibility with _default, replace `this` access with a local var.
|
||||||
return false;
|
// `|| data` is dead code meant only to preserve the variable through minification.
|
||||||
|
var el = this || data;
|
||||||
|
|
||||||
|
// Claim the first handler
|
||||||
|
if ( rcheckableType.test( el.type ) &&
|
||||||
|
el.click && nodeName( el, "input" ) ) {
|
||||||
|
|
||||||
|
// dataPriv.set( el, "click", ... )
|
||||||
|
leverageNative( el, "click", returnTrue );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Return false to allow normal processing in the caller
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
trigger: function( data ) {
|
||||||
|
|
||||||
|
// For mutual compressibility with _default, replace `this` access with a local var.
|
||||||
|
// `|| data` is dead code meant only to preserve the variable through minification.
|
||||||
|
var el = this || data;
|
||||||
|
|
||||||
|
// Force setup before triggering a click
|
||||||
|
if ( rcheckableType.test( el.type ) &&
|
||||||
|
el.click && nodeName( el, "input" ) ) {
|
||||||
|
|
||||||
|
leverageNative( el, "click" );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return non-false to allow normal event-path propagation
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
// For cross-browser consistency, don't fire native .click() on links
|
// For cross-browser consistency, suppress native .click() on links
|
||||||
|
// Also prevent it if we're currently inside a leveraged native-event stack
|
||||||
_default: function( event ) {
|
_default: function( event ) {
|
||||||
return nodeName( event.target, "a" );
|
var target = event.target;
|
||||||
|
return rcheckableType.test( target.type ) &&
|
||||||
|
target.click && nodeName( target, "input" ) &&
|
||||||
|
dataPriv.get( target, "click" ) ||
|
||||||
|
nodeName( target, "a" );
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -5347,6 +5413,93 @@ jQuery.event = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Ensure the presence of an event listener that handles manually-triggered
|
||||||
|
// synthetic events by interrupting progress until reinvoked in response to
|
||||||
|
// *native* events that it fires directly, ensuring that state changes have
|
||||||
|
// already occurred before other listeners are invoked.
|
||||||
|
function leverageNative( el, type, expectSync ) {
|
||||||
|
|
||||||
|
// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
|
||||||
|
if ( !expectSync ) {
|
||||||
|
if ( dataPriv.get( el, type ) === undefined ) {
|
||||||
|
jQuery.event.add( el, type, returnTrue );
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Register the controller as a special universal handler for all event namespaces
|
||||||
|
dataPriv.set( el, type, false );
|
||||||
|
jQuery.event.add( el, type, {
|
||||||
|
namespace: false,
|
||||||
|
handler: function( event ) {
|
||||||
|
var notAsync, result,
|
||||||
|
saved = dataPriv.get( this, type );
|
||||||
|
|
||||||
|
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
|
||||||
|
|
||||||
|
// Interrupt processing of the outer synthetic .trigger()ed event
|
||||||
|
// Saved data should be false in such cases, but might be a leftover capture object
|
||||||
|
// from an async native handler (gh-4350)
|
||||||
|
if ( !saved.length ) {
|
||||||
|
|
||||||
|
// Store arguments for use when handling the inner native event
|
||||||
|
// There will always be at least one argument (an event object), so this array
|
||||||
|
// will not be confused with a leftover capture object.
|
||||||
|
saved = slice.call( arguments );
|
||||||
|
dataPriv.set( this, type, saved );
|
||||||
|
|
||||||
|
// Trigger the native event and capture its result
|
||||||
|
// Support: IE <=9 - 11+
|
||||||
|
// focus() and blur() are asynchronous
|
||||||
|
notAsync = expectSync( this, type );
|
||||||
|
this[ type ]();
|
||||||
|
result = dataPriv.get( this, type );
|
||||||
|
if ( saved !== result || notAsync ) {
|
||||||
|
dataPriv.set( this, type, false );
|
||||||
|
} else {
|
||||||
|
result = {};
|
||||||
|
}
|
||||||
|
if ( saved !== result ) {
|
||||||
|
|
||||||
|
// Cancel the outer synthetic event
|
||||||
|
event.stopImmediatePropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
return result.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If this is an inner synthetic event for an event with a bubbling surrogate
|
||||||
|
// (focus or blur), assume that the surrogate already propagated from triggering the
|
||||||
|
// native event and prevent that from happening again here.
|
||||||
|
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
|
||||||
|
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
|
||||||
|
// less bad than duplication.
|
||||||
|
} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
|
||||||
|
event.stopPropagation();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If this is a native event triggered above, everything is now in order
|
||||||
|
// Fire an inner synthetic event with the original arguments
|
||||||
|
} else if ( saved.length ) {
|
||||||
|
|
||||||
|
// ...and capture the result
|
||||||
|
dataPriv.set( this, type, {
|
||||||
|
value: jQuery.event.trigger(
|
||||||
|
|
||||||
|
// Support: IE <=9 - 11+
|
||||||
|
// Extend with the prototype to reset the above stopImmediatePropagation()
|
||||||
|
jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
|
||||||
|
saved.slice( 1 ),
|
||||||
|
this
|
||||||
|
)
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Abort handling of the native event
|
||||||
|
event.stopImmediatePropagation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
jQuery.removeEvent = function( elem, type, handle ) {
|
jQuery.removeEvent = function( elem, type, handle ) {
|
||||||
|
|
||||||
// This "if" is needed for plain objects
|
// This "if" is needed for plain objects
|
||||||
|
@ -5459,6 +5612,7 @@ jQuery.each( {
|
||||||
shiftKey: true,
|
shiftKey: true,
|
||||||
view: true,
|
view: true,
|
||||||
"char": true,
|
"char": true,
|
||||||
|
code: true,
|
||||||
charCode: true,
|
charCode: true,
|
||||||
key: true,
|
key: true,
|
||||||
keyCode: true,
|
keyCode: true,
|
||||||
|
@ -5505,6 +5659,33 @@ jQuery.each( {
|
||||||
}
|
}
|
||||||
}, jQuery.event.addProp );
|
}, jQuery.event.addProp );
|
||||||
|
|
||||||
|
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
|
||||||
|
jQuery.event.special[ type ] = {
|
||||||
|
|
||||||
|
// Utilize native event if possible so blur/focus sequence is correct
|
||||||
|
setup: function() {
|
||||||
|
|
||||||
|
// Claim the first handler
|
||||||
|
// dataPriv.set( this, "focus", ... )
|
||||||
|
// dataPriv.set( this, "blur", ... )
|
||||||
|
leverageNative( this, type, expectSync );
|
||||||
|
|
||||||
|
// Return false to allow normal processing in the caller
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
trigger: function() {
|
||||||
|
|
||||||
|
// Force setup before trigger
|
||||||
|
leverageNative( this, type );
|
||||||
|
|
||||||
|
// Return non-false to allow normal event-path propagation
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
delegateType: delegateType
|
||||||
|
};
|
||||||
|
} );
|
||||||
|
|
||||||
// Create mouseenter/leave events using mouseover/out and event-time checks
|
// Create mouseenter/leave events using mouseover/out and event-time checks
|
||||||
// so that event delegation works in jQuery.
|
// so that event delegation works in jQuery.
|
||||||
// Do the same for pointerenter/pointerleave and pointerover/pointerout
|
// Do the same for pointerenter/pointerleave and pointerover/pointerout
|
||||||
|
@ -5755,11 +5936,13 @@ function domManip( collection, args, callback, ignored ) {
|
||||||
if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
|
if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
|
||||||
|
|
||||||
// Optional AJAX dependency, but won't run scripts if not present
|
// Optional AJAX dependency, but won't run scripts if not present
|
||||||
if ( jQuery._evalUrl ) {
|
if ( jQuery._evalUrl && !node.noModule ) {
|
||||||
jQuery._evalUrl( node.src );
|
jQuery._evalUrl( node.src, {
|
||||||
|
nonce: node.nonce || node.getAttribute( "nonce" )
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
|
DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5781,7 +5964,7 @@ function remove( elem, selector, keepData ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( node.parentNode ) {
|
if ( node.parentNode ) {
|
||||||
if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
|
if ( keepData && isAttached( node ) ) {
|
||||||
setGlobalEval( getAll( node, "script" ) );
|
setGlobalEval( getAll( node, "script" ) );
|
||||||
}
|
}
|
||||||
node.parentNode.removeChild( node );
|
node.parentNode.removeChild( node );
|
||||||
|
@ -5799,7 +5982,7 @@ jQuery.extend( {
|
||||||
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
|
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
|
||||||
var i, l, srcElements, destElements,
|
var i, l, srcElements, destElements,
|
||||||
clone = elem.cloneNode( true ),
|
clone = elem.cloneNode( true ),
|
||||||
inPage = jQuery.contains( elem.ownerDocument, elem );
|
inPage = isAttached( elem );
|
||||||
|
|
||||||
// Fix IE cloning issues
|
// Fix IE cloning issues
|
||||||
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
|
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
|
||||||
|
@ -6095,8 +6278,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
||||||
|
|
||||||
// Support: IE 9 only
|
// Support: IE 9 only
|
||||||
// Detect overflow:scroll screwiness (gh-3699)
|
// Detect overflow:scroll screwiness (gh-3699)
|
||||||
|
// Support: Chrome <=64
|
||||||
|
// Don't get tricked when zoom affects offsetWidth (gh-4029)
|
||||||
div.style.position = "absolute";
|
div.style.position = "absolute";
|
||||||
scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
|
scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
|
||||||
|
|
||||||
documentElement.removeChild( container );
|
documentElement.removeChild( container );
|
||||||
|
|
||||||
|
@ -6167,7 +6352,7 @@ function curCSS( elem, name, computed ) {
|
||||||
if ( computed ) {
|
if ( computed ) {
|
||||||
ret = computed.getPropertyValue( name ) || computed[ name ];
|
ret = computed.getPropertyValue( name ) || computed[ name ];
|
||||||
|
|
||||||
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
|
if ( ret === "" && !isAttached( elem ) ) {
|
||||||
ret = jQuery.style( elem, name );
|
ret = jQuery.style( elem, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6223,30 +6408,13 @@ function addGetHookIf( conditionFn, hookFn ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var
|
var cssPrefixes = [ "Webkit", "Moz", "ms" ],
|
||||||
|
emptyStyle = document.createElement( "div" ).style,
|
||||||
|
vendorProps = {};
|
||||||
|
|
||||||
// Swappable if display is none or starts with table
|
// Return a vendor-prefixed property or undefined
|
||||||
// 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]).+)/,
|
|
||||||
rcustomProp = /^--/,
|
|
||||||
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
|
||||||
cssNormalTransform = {
|
|
||||||
letterSpacing: "0",
|
|
||||||
fontWeight: "400"
|
|
||||||
},
|
|
||||||
|
|
||||||
cssPrefixes = [ "Webkit", "Moz", "ms" ],
|
|
||||||
emptyStyle = document.createElement( "div" ).style;
|
|
||||||
|
|
||||||
// Return a css property mapped to a potentially vendor prefixed property
|
|
||||||
function vendorPropName( name ) {
|
function vendorPropName( name ) {
|
||||||
|
|
||||||
// Shortcut for names that are not vendor prefixed
|
|
||||||
if ( name in emptyStyle ) {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for vendor prefixed names
|
// Check for vendor prefixed names
|
||||||
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
|
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
|
||||||
i = cssPrefixes.length;
|
i = cssPrefixes.length;
|
||||||
|
@ -6259,16 +6427,33 @@ function vendorPropName( name ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return a property mapped along what jQuery.cssProps suggests or to
|
// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
|
||||||
// a vendor prefixed property.
|
|
||||||
function finalPropName( name ) {
|
function finalPropName( name ) {
|
||||||
var ret = jQuery.cssProps[ name ];
|
var final = jQuery.cssProps[ name ] || vendorProps[ name ];
|
||||||
if ( !ret ) {
|
|
||||||
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
|
if ( final ) {
|
||||||
|
return final;
|
||||||
}
|
}
|
||||||
return ret;
|
if ( name in emptyStyle ) {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return vendorProps[ name ] = vendorPropName( name ) || name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var
|
||||||
|
|
||||||
|
// 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]).+)/,
|
||||||
|
rcustomProp = /^--/,
|
||||||
|
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
||||||
|
cssNormalTransform = {
|
||||||
|
letterSpacing: "0",
|
||||||
|
fontWeight: "400"
|
||||||
|
};
|
||||||
|
|
||||||
function setPositiveNumber( elem, value, subtract ) {
|
function setPositiveNumber( elem, value, subtract ) {
|
||||||
|
|
||||||
// Any relative (+/-) values have already been
|
// Any relative (+/-) values have already been
|
||||||
|
@ -6340,7 +6525,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
|
||||||
delta -
|
delta -
|
||||||
extra -
|
extra -
|
||||||
0.5
|
0.5
|
||||||
) );
|
|
||||||
|
// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
|
||||||
|
// Use an explicit zero to avoid NaN (gh-3964)
|
||||||
|
) ) || 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return delta;
|
return delta;
|
||||||
|
@ -6350,9 +6538,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
|
||||||
|
|
||||||
// Start with computed style
|
// Start with computed style
|
||||||
var styles = getStyles( elem ),
|
var styles = getStyles( elem ),
|
||||||
|
|
||||||
|
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
|
||||||
|
// Fake content-box until we know it's needed to know the true value.
|
||||||
|
boxSizingNeeded = !support.boxSizingReliable() || extra,
|
||||||
|
isBorderBox = boxSizingNeeded &&
|
||||||
|
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
||||||
|
valueIsBorderBox = isBorderBox,
|
||||||
|
|
||||||
val = curCSS( elem, dimension, styles ),
|
val = curCSS( elem, dimension, styles ),
|
||||||
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
|
||||||
valueIsBorderBox = isBorderBox;
|
|
||||||
|
|
||||||
// Support: Firefox <=54
|
// Support: Firefox <=54
|
||||||
// Return a confounding non-pixel value or feign ignorance, as appropriate.
|
// Return a confounding non-pixel value or feign ignorance, as appropriate.
|
||||||
|
@ -6363,22 +6558,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
|
||||||
val = "auto";
|
val = "auto";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for style in case a browser which returns unreliable values
|
|
||||||
// for getComputedStyle silently falls back to the reliable elem.style
|
|
||||||
valueIsBorderBox = valueIsBorderBox &&
|
|
||||||
( support.boxSizingReliable() || val === elem.style[ dimension ] );
|
|
||||||
|
|
||||||
// Fall back to offsetWidth/offsetHeight when value is "auto"
|
// Fall back to offsetWidth/offsetHeight when value is "auto"
|
||||||
// This happens for inline elements with no explicit setting (gh-3571)
|
// This happens for inline elements with no explicit setting (gh-3571)
|
||||||
// Support: Android <=4.1 - 4.3 only
|
// Support: Android <=4.1 - 4.3 only
|
||||||
// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
|
// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
|
||||||
if ( val === "auto" ||
|
// Support: IE 9-11 only
|
||||||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
|
// Also use offsetWidth/offsetHeight for when box sizing is unreliable
|
||||||
|
// We use getClientRects() to check for hidden/disconnected.
|
||||||
|
// In those cases, the computed value can be trusted to be border-box
|
||||||
|
if ( ( !support.boxSizingReliable() && isBorderBox ||
|
||||||
|
val === "auto" ||
|
||||||
|
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
|
||||||
|
elem.getClientRects().length ) {
|
||||||
|
|
||||||
val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
|
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
|
||||||
|
|
||||||
// offsetWidth/offsetHeight provide border-box values
|
// Where available, offsetWidth/offsetHeight approximate border box dimensions.
|
||||||
valueIsBorderBox = true;
|
// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
|
||||||
|
// retrieved value as a content box dimension.
|
||||||
|
valueIsBorderBox = offsetProp in elem;
|
||||||
|
if ( valueIsBorderBox ) {
|
||||||
|
val = elem[ offsetProp ];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Normalize "" and auto
|
// Normalize "" and auto
|
||||||
|
@ -6424,6 +6626,13 @@ jQuery.extend( {
|
||||||
"flexGrow": true,
|
"flexGrow": true,
|
||||||
"flexShrink": true,
|
"flexShrink": true,
|
||||||
"fontWeight": true,
|
"fontWeight": true,
|
||||||
|
"gridArea": true,
|
||||||
|
"gridColumn": true,
|
||||||
|
"gridColumnEnd": true,
|
||||||
|
"gridColumnStart": true,
|
||||||
|
"gridRow": true,
|
||||||
|
"gridRowEnd": true,
|
||||||
|
"gridRowStart": true,
|
||||||
"lineHeight": true,
|
"lineHeight": true,
|
||||||
"opacity": true,
|
"opacity": true,
|
||||||
"order": true,
|
"order": true,
|
||||||
|
@ -6479,7 +6688,9 @@ jQuery.extend( {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a number was passed in, add the unit (except for certain CSS properties)
|
// If a number was passed in, add the unit (except for certain CSS properties)
|
||||||
if ( type === "number" ) {
|
// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
|
||||||
|
// "px" to a few hardcoded values.
|
||||||
|
if ( type === "number" && !isCustomProp ) {
|
||||||
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
|
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6579,18 +6790,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
|
||||||
set: function( elem, value, extra ) {
|
set: function( elem, value, extra ) {
|
||||||
var matches,
|
var matches,
|
||||||
styles = getStyles( elem ),
|
styles = getStyles( elem ),
|
||||||
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
|
||||||
subtract = extra && boxModelAdjustment(
|
// Only read styles.position if the test has a chance to fail
|
||||||
|
// to avoid forcing a reflow.
|
||||||
|
scrollboxSizeBuggy = !support.scrollboxSize() &&
|
||||||
|
styles.position === "absolute",
|
||||||
|
|
||||||
|
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
|
||||||
|
boxSizingNeeded = scrollboxSizeBuggy || extra,
|
||||||
|
isBorderBox = boxSizingNeeded &&
|
||||||
|
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
||||||
|
subtract = extra ?
|
||||||
|
boxModelAdjustment(
|
||||||
elem,
|
elem,
|
||||||
dimension,
|
dimension,
|
||||||
extra,
|
extra,
|
||||||
isBorderBox,
|
isBorderBox,
|
||||||
styles
|
styles
|
||||||
);
|
) :
|
||||||
|
0;
|
||||||
|
|
||||||
// Account for unreliable border-box dimensions by comparing offset* to computed and
|
// Account for unreliable border-box dimensions by comparing offset* to computed and
|
||||||
// faking a content-box to get border and padding (gh-3699)
|
// faking a content-box to get border and padding (gh-3699)
|
||||||
if ( isBorderBox && support.scrollboxSize() === styles.position ) {
|
if ( isBorderBox && scrollboxSizeBuggy ) {
|
||||||
subtract -= Math.ceil(
|
subtract -= Math.ceil(
|
||||||
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
|
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
|
||||||
parseFloat( styles[ dimension ] ) -
|
parseFloat( styles[ dimension ] ) -
|
||||||
|
@ -6758,9 +6980,9 @@ Tween.propHooks = {
|
||||||
// Use .style if available and use plain properties where available.
|
// Use .style if available and use plain properties where available.
|
||||||
if ( jQuery.fx.step[ tween.prop ] ) {
|
if ( jQuery.fx.step[ tween.prop ] ) {
|
||||||
jQuery.fx.step[ tween.prop ]( tween );
|
jQuery.fx.step[ tween.prop ]( tween );
|
||||||
} else if ( tween.elem.nodeType === 1 &&
|
} else if ( tween.elem.nodeType === 1 && (
|
||||||
( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
|
jQuery.cssHooks[ tween.prop ] ||
|
||||||
jQuery.cssHooks[ tween.prop ] ) ) {
|
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
|
||||||
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
||||||
} else {
|
} else {
|
||||||
tween.elem[ tween.prop ] = tween.now;
|
tween.elem[ tween.prop ] = tween.now;
|
||||||
|
@ -8467,6 +8689,10 @@ jQuery.param = function( a, traditional ) {
|
||||||
encodeURIComponent( value == null ? "" : value );
|
encodeURIComponent( value == null ? "" : value );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if ( a == null ) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
// If an array was passed in, assume that it is an array of form elements.
|
// If an array was passed in, assume that it is an array of form elements.
|
||||||
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
|
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
|
||||||
|
|
||||||
|
@ -8969,12 +9195,14 @@ jQuery.extend( {
|
||||||
if ( !responseHeaders ) {
|
if ( !responseHeaders ) {
|
||||||
responseHeaders = {};
|
responseHeaders = {};
|
||||||
while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
|
while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
|
||||||
responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
|
responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
|
||||||
|
( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
|
||||||
|
.concat( match[ 2 ] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
match = responseHeaders[ key.toLowerCase() ];
|
match = responseHeaders[ key.toLowerCase() + " " ];
|
||||||
}
|
}
|
||||||
return match == null ? null : match;
|
return match == null ? null : match.join( ", " );
|
||||||
},
|
},
|
||||||
|
|
||||||
// Raw string
|
// Raw string
|
||||||
|
@ -9363,7 +9591,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
|
||||||
jQuery._evalUrl = function( url ) {
|
jQuery._evalUrl = function( url, options ) {
|
||||||
return jQuery.ajax( {
|
return jQuery.ajax( {
|
||||||
url: url,
|
url: url,
|
||||||
|
|
||||||
|
@ -9373,7 +9601,16 @@ jQuery._evalUrl = function( url ) {
|
||||||
cache: true,
|
cache: true,
|
||||||
async: false,
|
async: false,
|
||||||
global: false,
|
global: false,
|
||||||
"throws": true
|
|
||||||
|
// Only evaluate the response if it is successful (gh-4126)
|
||||||
|
// dataFilter is not invoked for failure responses, so using it instead
|
||||||
|
// of the default converter is kludgy but it works.
|
||||||
|
converters: {
|
||||||
|
"text script": function() {}
|
||||||
|
},
|
||||||
|
dataFilter: function( response ) {
|
||||||
|
jQuery.globalEval( response, options );
|
||||||
|
}
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -9656,24 +9893,21 @@ jQuery.ajaxPrefilter( "script", function( s ) {
|
||||||
// Bind script tag hack transport
|
// Bind script tag hack transport
|
||||||
jQuery.ajaxTransport( "script", function( s ) {
|
jQuery.ajaxTransport( "script", function( s ) {
|
||||||
|
|
||||||
// This transport only deals with cross domain requests
|
// This transport only deals with cross domain or forced-by-attrs requests
|
||||||
if ( s.crossDomain ) {
|
if ( s.crossDomain || s.scriptAttrs ) {
|
||||||
var script, callback;
|
var script, callback;
|
||||||
return {
|
return {
|
||||||
send: function( _, complete ) {
|
send: function( _, complete ) {
|
||||||
script = jQuery( "<script>" ).prop( {
|
script = jQuery( "<script>" )
|
||||||
charset: s.scriptCharset,
|
.attr( s.scriptAttrs || {} )
|
||||||
src: s.url
|
.prop( { charset: s.scriptCharset, src: s.url } )
|
||||||
} ).on(
|
.on( "load error", callback = function( evt ) {
|
||||||
"load error",
|
|
||||||
callback = function( evt ) {
|
|
||||||
script.remove();
|
script.remove();
|
||||||
callback = null;
|
callback = null;
|
||||||
if ( evt ) {
|
if ( evt ) {
|
||||||
complete( evt.type === "error" ? 404 : 200, evt.type );
|
complete( evt.type === "error" ? 404 : 200, evt.type );
|
||||||
}
|
}
|
||||||
}
|
} );
|
||||||
);
|
|
||||||
|
|
||||||
// Use native DOM manipulation to avoid our domManip AJAX trickery
|
// Use native DOM manipulation to avoid our domManip AJAX trickery
|
||||||
document.head.appendChild( script[ 0 ] );
|
document.head.appendChild( script[ 0 ] );
|
|
@ -18,9 +18,9 @@ minimal mistakes
|
||||||
| | | └── jquery.smooth-scroll.min.js # make same-page links scroll smoothly
|
| | | └── jquery.smooth-scroll.min.js # make same-page links scroll smoothly
|
||||||
| | ├── vendor
|
| | ├── vendor
|
||||||
| | | └── jquery
|
| | | └── jquery
|
||||||
| | | └── jquery-3.3.1.min.js
|
| | | └── jquery-3.4.1.js
|
||||||
| | ├── _main.js # jQuery plugin settings and other scripts
|
| | ├── _main.js # jQuery plugin settings and other scripts
|
||||||
| | └── main.min.js # concatenated and minified scripts
|
| | └── main.min.js # concatenated and minified theme script
|
||||||
```
|
```
|
||||||
|
|
||||||
## Customizing
|
## Customizing
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
"uglify-js": "^3.4.9"
|
"uglify-js": "^3.4.9"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"uglify": "uglifyjs assets/js/vendor/jquery/jquery-3.3.1.js assets/js/plugins/jquery.fitvids.js assets/js/plugins/jquery.greedy-navigation.js assets/js/plugins/jquery.magnific-popup.js assets/js/plugins/jquery.ba-throttle-debounce.js assets/js/plugins/smooth-scroll.js assets/js/plugins/gumshoe.js assets/js/_main.js -c -m -o assets/js/main.min.js",
|
"uglify": "uglifyjs assets/js/vendor/jquery/jquery-3.4.1.js assets/js/plugins/jquery.fitvids.js assets/js/plugins/jquery.greedy-navigation.js assets/js/plugins/jquery.magnific-popup.js assets/js/plugins/jquery.ba-throttle-debounce.js assets/js/plugins/smooth-scroll.js assets/js/plugins/gumshoe.js assets/js/_main.js -c -m -o assets/js/main.min.js",
|
||||||
"add-banner": "node banner.js",
|
"add-banner": "node banner.js",
|
||||||
"watch:js": "onchange \"assets/js/**/*.js\" -e \"assets/js/main.min.js\" -- npm run build:js",
|
"watch:js": "onchange \"assets/js/**/*.js\" -e \"assets/js/main.min.js\" -- npm run build:js",
|
||||||
"build:js": "npm run uglify && npm run add-banner"
|
"build:js": "npm run uglify && npm run add-banner"
|
||||||
|
|
Loading…
Reference in a new issue