mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	minor fixes and upgrades
This commit is contained in:
		
							parent
							
								
									f9a79fa00f
								
							
						
					
					
						commit
						b778985b5e
					
				
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										600
									
								
								libraries/jquery.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										600
									
								
								libraries/jquery.js
									
									
									
									
										vendored
									
									
								
							@ -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,17 +842,16 @@ 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" );
 | 
				
			||||||
						}
 | 
					 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@ -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,18 +3169,18 @@ 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;
 | 
				
			||||||
        }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
 | 
							// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
 | 
				
			||||||
        // Treat the template element as a regular one in browsers that
 | 
							// Treat the template element as a regular one in browsers that
 | 
				
			||||||
        // don't support it.
 | 
							// don't support it.
 | 
				
			||||||
        if ( nodeName( elem, "template" ) ) {
 | 
							if ( nodeName( elem, "template" ) ) {
 | 
				
			||||||
            elem = elem.content || elem;
 | 
								elem = elem.content || elem;
 | 
				
			||||||
        }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return jQuery.merge( [], elem.childNodes );
 | 
							return jQuery.merge( [], elem.childNodes );
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}, function( name, fn ) {
 | 
					}, function( name, fn ) {
 | 
				
			||||||
	jQuery.fn[ name ] = function( until, selector ) {
 | 
						jQuery.fn[ name ] = function( until, selector ) {
 | 
				
			||||||
@ -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
 | 
				
			||||||
					elem,
 | 
									// to avoid forcing a reflow.
 | 
				
			||||||
					dimension,
 | 
									scrollboxSizeBuggy = !support.scrollboxSize() &&
 | 
				
			||||||
					extra,
 | 
										styles.position === "absolute",
 | 
				
			||||||
					isBorderBox,
 | 
					
 | 
				
			||||||
					styles
 | 
									// 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,
 | 
				
			||||||
 | 
											dimension,
 | 
				
			||||||
 | 
											extra,
 | 
				
			||||||
 | 
											isBorderBox,
 | 
				
			||||||
 | 
											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 ] );
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								libraries/jquery.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/jquery.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										63
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										63
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -2639,9 +2639,9 @@
 | 
				
			|||||||
      "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA=="
 | 
					      "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "electron": {
 | 
					    "electron": {
 | 
				
			||||||
      "version": "9.0.0-beta.9",
 | 
					      "version": "9.0.0-beta.10",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.0-beta.9.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.0-beta.10.tgz",
 | 
				
			||||||
      "integrity": "sha512-jVt+UL22S+uRiHkt2piAoVduL/n7UCTRKbp0c42kq1+Q36BVDu4j2HrePGX1Zilmnk91j8a6AqQ/x0dv6LkDnA==",
 | 
					      "integrity": "sha512-HTGLrC/BuRfKvWsS5ymOP1VUqnXCg2vbnVjViQ9f7WneWpDJ1D0CT2voP6Vi0ivHCQrKP8OQf7ZPphNkp+GUyA==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@electron/get": "^1.0.1",
 | 
					        "@electron/get": "^1.0.1",
 | 
				
			||||||
@ -3595,15 +3595,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "extract-zip": {
 | 
					    "extract-zip": {
 | 
				
			||||||
      "version": "1.6.7",
 | 
					      "version": "1.7.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
 | 
					      "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "concat-stream": "1.6.2",
 | 
					        "concat-stream": "^1.6.2",
 | 
				
			||||||
        "debug": "2.6.9",
 | 
					        "debug": "^2.6.9",
 | 
				
			||||||
        "mkdirp": "0.5.1",
 | 
					        "mkdirp": "^0.5.4",
 | 
				
			||||||
        "yauzl": "2.4.1"
 | 
					        "yauzl": "^2.10.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "debug": {
 | 
					        "debug": {
 | 
				
			||||||
@ -3615,22 +3615,19 @@
 | 
				
			|||||||
            "ms": "2.0.0"
 | 
					            "ms": "2.0.0"
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "fd-slicer": {
 | 
					        "minimist": {
 | 
				
			||||||
          "version": "1.0.1",
 | 
					          "version": "1.2.5",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
 | 
					          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
 | 
				
			||||||
          "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
 | 
					          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
 | 
				
			||||||
          "dev": true,
 | 
					          "dev": true
 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "pend": "~1.2.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "yauzl": {
 | 
					        "mkdirp": {
 | 
				
			||||||
          "version": "2.4.1",
 | 
					          "version": "0.5.4",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
 | 
					          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz",
 | 
				
			||||||
          "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
 | 
					          "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==",
 | 
				
			||||||
          "dev": true,
 | 
					          "dev": true,
 | 
				
			||||||
          "requires": {
 | 
					          "requires": {
 | 
				
			||||||
            "fd-slicer": "~1.0.1"
 | 
					            "minimist": "^1.2.5"
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -4632,9 +4629,9 @@
 | 
				
			|||||||
      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
 | 
					      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "helmet": {
 | 
					    "helmet": {
 | 
				
			||||||
      "version": "3.21.3",
 | 
					      "version": "3.22.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.22.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-8OjGNdpG3WQhPO71fSy2fT4X3FSNutU1LDeAf+YS+Vil6r+fE7w8per5mNed6egGYbZl3QhKXgFzMYSwys+YQw==",
 | 
					      "integrity": "sha512-Xrqicn2nm1ZIUxP3YGuTBmbDL04neKsIT583Sjh0FkiwKDXYCMUqGqC88w3NUvVXtA75JyR2Jn6jw6ZEMOD+ZA==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "depd": "2.0.0",
 | 
					        "depd": "2.0.0",
 | 
				
			||||||
        "dns-prefetch-control": "0.2.0",
 | 
					        "dns-prefetch-control": "0.2.0",
 | 
				
			||||||
@ -4643,7 +4640,7 @@
 | 
				
			|||||||
        "feature-policy": "0.3.0",
 | 
					        "feature-policy": "0.3.0",
 | 
				
			||||||
        "frameguard": "3.1.0",
 | 
					        "frameguard": "3.1.0",
 | 
				
			||||||
        "helmet-crossdomain": "0.4.0",
 | 
					        "helmet-crossdomain": "0.4.0",
 | 
				
			||||||
        "helmet-csp": "2.9.5",
 | 
					        "helmet-csp": "2.10.0",
 | 
				
			||||||
        "hide-powered-by": "1.1.0",
 | 
					        "hide-powered-by": "1.1.0",
 | 
				
			||||||
        "hpkp": "2.0.0",
 | 
					        "hpkp": "2.0.0",
 | 
				
			||||||
        "hsts": "2.2.0",
 | 
					        "hsts": "2.2.0",
 | 
				
			||||||
@ -4666,9 +4663,9 @@
 | 
				
			|||||||
      "integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA=="
 | 
					      "integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "helmet-csp": {
 | 
					    "helmet-csp": {
 | 
				
			||||||
      "version": "2.9.5",
 | 
					      "version": "2.10.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.9.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.10.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-w9nps5adqFQwgktVPDbXkARmZot/nr8aegzQas9AXdBSwBFBBefPpDSTV0wtgHlAUdDwY6MZo7qAl9yts3ppJg==",
 | 
					      "integrity": "sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "bowser": "2.9.0",
 | 
					        "bowser": "2.9.0",
 | 
				
			||||||
        "camelize": "1.0.0",
 | 
					        "camelize": "1.0.0",
 | 
				
			||||||
@ -8316,9 +8313,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "rand-token": {
 | 
					    "rand-token": {
 | 
				
			||||||
      "version": "0.4.0",
 | 
					      "version": "1.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/rand-token/-/rand-token-0.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/rand-token/-/rand-token-1.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-FLNNsir2R+XY8LKsZ+8u/w0qZ4sGit7cpNdznsI77cAVob6UlVPueDKRyjJ3W1Q6FJLgAVH98JvlqqpSaL7NEQ=="
 | 
					      "integrity": "sha512-Zri5SfJmEzBJ3IexFdigvPSCamslJ7UjLkUn0tlgH7COJvaUr5V7FyUYgKifEMTw7gFO8ZLcWjcU+kq8akipzg=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "random-bytes": {
 | 
					    "random-bytes": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@
 | 
				
			|||||||
    "express-session": "1.17.0",
 | 
					    "express-session": "1.17.0",
 | 
				
			||||||
    "file-type": "14.1.4",
 | 
					    "file-type": "14.1.4",
 | 
				
			||||||
    "fs-extra": "9.0.0",
 | 
					    "fs-extra": "9.0.0",
 | 
				
			||||||
    "helmet": "3.21.3",
 | 
					    "helmet": "3.22.0",
 | 
				
			||||||
    "html": "1.0.0",
 | 
					    "html": "1.0.0",
 | 
				
			||||||
    "html2plaintext": "2.1.2",
 | 
					    "html2plaintext": "2.1.2",
 | 
				
			||||||
    "http-proxy-agent": "4.0.1",
 | 
					    "http-proxy-agent": "4.0.1",
 | 
				
			||||||
@ -56,7 +56,7 @@
 | 
				
			|||||||
    "node-abi": "2.15.0",
 | 
					    "node-abi": "2.15.0",
 | 
				
			||||||
    "open": "7.0.3",
 | 
					    "open": "7.0.3",
 | 
				
			||||||
    "portscanner": "2.2.0",
 | 
					    "portscanner": "2.2.0",
 | 
				
			||||||
    "rand-token": "0.4.0",
 | 
					    "rand-token": "1.0.1",
 | 
				
			||||||
    "rcedit": "2.1.1",
 | 
					    "rcedit": "2.1.1",
 | 
				
			||||||
    "rimraf": "3.0.2",
 | 
					    "rimraf": "3.0.2",
 | 
				
			||||||
    "sanitize-filename": "1.6.3",
 | 
					    "sanitize-filename": "1.6.3",
 | 
				
			||||||
@ -77,7 +77,7 @@
 | 
				
			|||||||
    "yazl": "^2.5.1"
 | 
					    "yazl": "^2.5.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "electron": "9.0.0-beta.9",
 | 
					    "electron": "9.0.0-beta.10",
 | 
				
			||||||
    "electron-builder": "22.4.1",
 | 
					    "electron-builder": "22.4.1",
 | 
				
			||||||
    "electron-packager": "14.2.1",
 | 
					    "electron-packager": "14.2.1",
 | 
				
			||||||
    "electron-rebuild": "1.10.1",
 | 
					    "electron-rebuild": "1.10.1",
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,8 @@ import treeCache from './tree_cache.js';
 | 
				
			|||||||
async function ScriptContext(startNoteId, allNoteIds, originEntity = null, $container = null) {
 | 
					async function ScriptContext(startNoteId, allNoteIds, originEntity = null, $container = null) {
 | 
				
			||||||
    const modules = {};
 | 
					    const modules = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    await treeCache.initializedPromise;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const startNote = await treeCache.getNote(startNoteId);
 | 
					    const startNote = await treeCache.getNote(startNoteId);
 | 
				
			||||||
    const allNotes = await treeCache.getNotes(allNoteIds);
 | 
					    const allNotes = await treeCache.getNotes(allNoteIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user