* #355 Calculate distance button in add/edit Flight page * Styling * Move add/edit flight logic out of controller and into service layer * Styling * Formatting * Run styleci against modules dir * Styleci config * Style fixes in /modules
This commit is contained in:
@@ -118,12 +118,14 @@
|
||||
.select2-hidden-accessible {
|
||||
border: 0 !important;
|
||||
clip: rect(0 0 0 0) !important;
|
||||
-webkit-clip-path: inset(50%) !important;
|
||||
clip-path: inset(50%) !important;
|
||||
height: 1px !important;
|
||||
margin: -1px !important;
|
||||
overflow: hidden !important;
|
||||
padding: 0 !important;
|
||||
position: absolute !important;
|
||||
width: 1px !important; }
|
||||
width: 1px !important;
|
||||
white-space: nowrap !important; }
|
||||
|
||||
.select2-container--default .select2-selection--single {
|
||||
background-color: #fff;
|
||||
@@ -186,10 +188,6 @@
|
||||
width: 100%; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
|
||||
list-style: none; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
|
||||
color: #999;
|
||||
margin-top: 5px;
|
||||
float: left; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__clear {
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
@@ -214,7 +212,7 @@
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
||||
color: #333; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
||||
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
||||
float: right; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
||||
@@ -420,9 +418,7 @@
|
||||
color: #555; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
||||
float: right; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
||||
float: right;
|
||||
margin-left: 5px;
|
||||
margin-right: auto; }
|
||||
|
||||
@@ -510,6 +506,10 @@
|
||||
user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
/* Prevents IE11 from highlighting tiles in blue */
|
||||
.leaflet-tile::selection {
|
||||
background: transparent;
|
||||
}
|
||||
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
||||
.leaflet-safari .leaflet-tile {
|
||||
image-rendering: -webkit-optimize-contrast;
|
||||
@@ -530,7 +530,8 @@
|
||||
.leaflet-container .leaflet-marker-pane img,
|
||||
.leaflet-container .leaflet-shadow-pane img,
|
||||
.leaflet-container .leaflet-tile-pane img,
|
||||
.leaflet-container img.leaflet-image-layer {
|
||||
.leaflet-container img.leaflet-image-layer,
|
||||
.leaflet-container .leaflet-tile {
|
||||
max-width: none !important;
|
||||
max-height: none !important;
|
||||
}
|
||||
@@ -653,7 +654,6 @@
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
-o-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
||||
@@ -670,14 +670,12 @@
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-tile,
|
||||
.leaflet-pan-anim .leaflet-tile {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
-o-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
@@ -694,6 +692,7 @@
|
||||
.leaflet-grab {
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: grab;
|
||||
}
|
||||
.leaflet-crosshair,
|
||||
.leaflet-crosshair .leaflet-interactive {
|
||||
@@ -709,6 +708,7 @@
|
||||
cursor: move;
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
/* marker & overlays interactivity */
|
||||
@@ -722,7 +722,8 @@
|
||||
|
||||
.leaflet-marker-icon.leaflet-interactive,
|
||||
.leaflet-image-layer.leaflet-interactive,
|
||||
.leaflet-pane > svg path.leaflet-interactive {
|
||||
.leaflet-pane > svg path.leaflet-interactive,
|
||||
svg.leaflet-image-layer.leaflet-interactive path {
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
@@ -979,7 +980,6 @@
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.leaflet-popup-content-wrapper,
|
||||
@@ -2677,9 +2677,9 @@
|
||||
background-image: url(../flags/1x1/un.svg);
|
||||
}
|
||||
|
||||
.cc-window{opacity:1;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{transition:transform 1s ease}.cc-animate.cc-revoke.cc-top{transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-bottom,.cc-animate.cc-revoke.cc-active.cc-top,.cc-revoke:hover{transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;transition:max-height 1s}
|
||||
.cc-link,.cc-revoke:hover{text-decoration:underline}.cc-revoke,.cc-window{position:fixed;overflow:hidden;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
||||
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
||||
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
|
||||
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
||||
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em 2em 1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|
||||
.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s}
|
||||
.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
||||
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
||||
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
|
||||
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
||||
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|
||||
Vendored
+417
-183
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.3.1
|
||||
* jQuery JavaScript Library v3.4.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
@@ -9,7 +9,7 @@
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2018-01-20T17:24Z
|
||||
* Date: 2019-05-01T21:04Z
|
||||
*/
|
||||
( function( global, factory ) {
|
||||
|
||||
@@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
|
||||
var preservedScriptAttributes = {
|
||||
type: true,
|
||||
src: true,
|
||||
nonce: true,
|
||||
noModule: true
|
||||
};
|
||||
|
||||
function DOMEval( code, doc, node ) {
|
||||
function DOMEval( code, node, doc ) {
|
||||
doc = doc || document;
|
||||
|
||||
var i,
|
||||
var i, val,
|
||||
script = doc.createElement( "script" );
|
||||
|
||||
script.text = code;
|
||||
if ( node ) {
|
||||
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
|
||||
version = "3.3.1",
|
||||
version = "3.4.1",
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
@@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
|
||||
|
||||
// Extend the base object
|
||||
for ( name in options ) {
|
||||
src = target[ name ];
|
||||
copy = options[ name ];
|
||||
|
||||
// Prevent Object.prototype pollution
|
||||
// Prevent never-ending loop
|
||||
if ( target === copy ) {
|
||||
if ( name === "__proto__" || target === copy ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Recurse if we're merging plain objects or arrays
|
||||
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
|
||||
( copyIsArray = Array.isArray( copy ) ) ) ) {
|
||||
src = target[ name ];
|
||||
|
||||
if ( copyIsArray ) {
|
||||
copyIsArray = false;
|
||||
clone = src && Array.isArray( src ) ? src : [];
|
||||
|
||||
// Ensure proper type for the source value
|
||||
if ( copyIsArray && !Array.isArray( src ) ) {
|
||||
clone = [];
|
||||
} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
|
||||
clone = {};
|
||||
} else {
|
||||
clone = src && jQuery.isPlainObject( src ) ? src : {};
|
||||
clone = src;
|
||||
}
|
||||
copyIsArray = false;
|
||||
|
||||
// Never move original objects, clone them
|
||||
target[ name ] = jQuery.extend( deep, clone, copy );
|
||||
@@ -329,9 +345,6 @@ jQuery.extend( {
|
||||
},
|
||||
|
||||
isEmptyObject: function( obj ) {
|
||||
|
||||
/* eslint-disable no-unused-vars */
|
||||
// See https://github.com/eslint/eslint/issues/6125
|
||||
var name;
|
||||
|
||||
for ( name in obj ) {
|
||||
@@ -341,8 +354,8 @@ jQuery.extend( {
|
||||
},
|
||||
|
||||
// Evaluates a script in a global context
|
||||
globalEval: function( code ) {
|
||||
DOMEval( code );
|
||||
globalEval: function( code, options ) {
|
||||
DOMEval( code, { nonce: options && options.nonce } );
|
||||
},
|
||||
|
||||
each: function( obj, callback ) {
|
||||
@@ -498,14 +511,14 @@ function isArrayLike( obj ) {
|
||||
}
|
||||
var Sizzle =
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.3
|
||||
* Sizzle CSS Selector Engine v2.3.4
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* http://jquery.org/license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2016-08-08
|
||||
* Date: 2019-04-08
|
||||
*/
|
||||
(function( window ) {
|
||||
|
||||
@@ -539,6 +552,7 @@ var i,
|
||||
classCache = createCache(),
|
||||
tokenCache = createCache(),
|
||||
compilerCache = createCache(),
|
||||
nonnativeSelectorCache = createCache(),
|
||||
sortOrder = function( a, b ) {
|
||||
if ( a === b ) {
|
||||
hasDuplicate = true;
|
||||
@@ -600,8 +614,7 @@ var i,
|
||||
|
||||
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
|
||||
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
|
||||
|
||||
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
|
||||
rdescend = new RegExp( whitespace + "|>" ),
|
||||
|
||||
rpseudo = new RegExp( pseudos ),
|
||||
ridentifier = new RegExp( "^" + identifier + "$" ),
|
||||
@@ -622,6 +635,7 @@ var i,
|
||||
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
|
||||
},
|
||||
|
||||
rhtml = /HTML$/i,
|
||||
rinputs = /^(?:input|select|textarea|button)$/i,
|
||||
rheader = /^h\d$/i,
|
||||
|
||||
@@ -676,9 +690,9 @@ var i,
|
||||
setDocument();
|
||||
},
|
||||
|
||||
disabledAncestor = addCombinator(
|
||||
inDisabledFieldset = addCombinator(
|
||||
function( elem ) {
|
||||
return elem.disabled === true && ("form" in elem || "label" in elem);
|
||||
return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
|
||||
},
|
||||
{ dir: "parentNode", next: "legend" }
|
||||
);
|
||||
@@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
|
||||
|
||||
// Take advantage of querySelectorAll
|
||||
if ( support.qsa &&
|
||||
!compilerCache[ selector + " " ] &&
|
||||
(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
|
||||
!nonnativeSelectorCache[ selector + " " ] &&
|
||||
(!rbuggyQSA || !rbuggyQSA.test( selector )) &&
|
||||
|
||||
if ( nodeType !== 1 ) {
|
||||
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
|
||||
// Support: IE 8 only
|
||||
// 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
|
||||
if ( (nid = context.getAttribute( "id" )) ) {
|
||||
@@ -824,17 +842,16 @@ function Sizzle( selector, context, results, seed ) {
|
||||
context;
|
||||
}
|
||||
|
||||
if ( newSelector ) {
|
||||
try {
|
||||
push.apply( results,
|
||||
newContext.querySelectorAll( newSelector )
|
||||
);
|
||||
return results;
|
||||
} catch ( qsaError ) {
|
||||
} finally {
|
||||
if ( nid === expando ) {
|
||||
context.removeAttribute( "id" );
|
||||
}
|
||||
try {
|
||||
push.apply( results,
|
||||
newContext.querySelectorAll( newSelector )
|
||||
);
|
||||
return results;
|
||||
} catch ( qsaError ) {
|
||||
nonnativeSelectorCache( selector, true );
|
||||
} finally {
|
||||
if ( nid === expando ) {
|
||||
context.removeAttribute( "id" );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
|
||||
// Where there is no isDisabled, check manually
|
||||
/* jshint -W018 */
|
||||
elem.isDisabled !== !disabled &&
|
||||
disabledAncestor( elem ) === disabled;
|
||||
inDisabledFieldset( elem ) === disabled;
|
||||
}
|
||||
|
||||
return elem.disabled === disabled;
|
||||
@@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
|
||||
* @returns {Boolean} True iff elem is a non-HTML XML node
|
||||
*/
|
||||
isXML = Sizzle.isXML = function( elem ) {
|
||||
// documentElement is verified for cases where it doesn't yet exist
|
||||
// (such as loading iframes in IE - #4833)
|
||||
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
|
||||
return documentElement ? documentElement.nodeName !== "HTML" : false;
|
||||
var namespace = elem.namespaceURI,
|
||||
docElem = (elem.ownerDocument || elem).documentElement;
|
||||
|
||||
// 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 );
|
||||
}
|
||||
|
||||
// Make sure that attribute selectors are quoted
|
||||
expr = expr.replace( rattributeQuotes, "='$1']" );
|
||||
|
||||
if ( support.matchesSelector && documentIsHTML &&
|
||||
!compilerCache[ expr + " " ] &&
|
||||
!nonnativeSelectorCache[ expr + " " ] &&
|
||||
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
|
||||
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
|
||||
|
||||
@@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
|
||||
elem.document && elem.document.nodeType !== 11 ) {
|
||||
return ret;
|
||||
}
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
nonnativeSelectorCache( expr, true );
|
||||
}
|
||||
}
|
||||
|
||||
return Sizzle( expr, document, null, [ elem ] ).length > 0;
|
||||
@@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
|
||||
"contains": markFunction(function( text ) {
|
||||
text = text.replace( runescape, funescape );
|
||||
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 ) {
|
||||
var i = argument < 0 ? argument + length : argument;
|
||||
var i = argument < 0 ?
|
||||
argument + length :
|
||||
argument > length ?
|
||||
length :
|
||||
argument;
|
||||
for ( ; --i >= 0; ) {
|
||||
matchIndexes.push( i );
|
||||
}
|
||||
@@ -3146,18 +3169,18 @@ jQuery.each( {
|
||||
return siblings( elem.firstChild );
|
||||
},
|
||||
contents: function( elem ) {
|
||||
if ( nodeName( elem, "iframe" ) ) {
|
||||
return elem.contentDocument;
|
||||
}
|
||||
if ( typeof elem.contentDocument !== "undefined" ) {
|
||||
return elem.contentDocument;
|
||||
}
|
||||
|
||||
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
|
||||
// Treat the template element as a regular one in browsers that
|
||||
// don't support it.
|
||||
if ( nodeName( elem, "template" ) ) {
|
||||
elem = elem.content || elem;
|
||||
}
|
||||
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
|
||||
// Treat the template element as a regular one in browsers that
|
||||
// don't support it.
|
||||
if ( nodeName( elem, "template" ) ) {
|
||||
elem = elem.content || elem;
|
||||
}
|
||||
|
||||
return jQuery.merge( [], elem.childNodes );
|
||||
return jQuery.merge( [], elem.childNodes );
|
||||
}
|
||||
}, function( name, fn ) {
|
||||
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 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 ) {
|
||||
|
||||
// isHiddenWithinTree might be called from jQuery#filter function;
|
||||
@@ -4480,7 +4523,7 @@ var isHiddenWithinTree = function( elem, el ) {
|
||||
// Support: Firefox <=43 - 45
|
||||
// Disconnected elements can have computed display: none, so first confirm that elem is
|
||||
// in the document.
|
||||
jQuery.contains( elem.ownerDocument, elem ) &&
|
||||
isAttached( elem ) &&
|
||||
|
||||
jQuery.css( elem, "display" ) === "none";
|
||||
};
|
||||
@@ -4522,7 +4565,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
|
||||
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
|
||||
|
||||
// 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 ) );
|
||||
|
||||
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
|
||||
@@ -4669,7 +4713,7 @@ jQuery.fn.extend( {
|
||||
} );
|
||||
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 );
|
||||
|
||||
@@ -4741,7 +4785,7 @@ function setGlobalEval( elems, refElements ) {
|
||||
var rhtml = /<|&#?\w+;/;
|
||||
|
||||
function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||
var elem, tmp, tag, wrap, contains, j,
|
||||
var elem, tmp, tag, wrap, attached, j,
|
||||
fragment = context.createDocumentFragment(),
|
||||
nodes = [],
|
||||
i = 0,
|
||||
@@ -4805,13 +4849,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
contains = jQuery.contains( elem.ownerDocument, elem );
|
||||
attached = isAttached( elem );
|
||||
|
||||
// Append to fragment
|
||||
tmp = getAll( fragment.appendChild( elem ), "script" );
|
||||
|
||||
// Preserve script evaluation history
|
||||
if ( contains ) {
|
||||
if ( attached ) {
|
||||
setGlobalEval( tmp );
|
||||
}
|
||||
|
||||
@@ -4854,8 +4898,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||
div.innerHTML = "<textarea>x</textarea>";
|
||||
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
|
||||
} )();
|
||||
var documentElement = document.documentElement;
|
||||
|
||||
|
||||
|
||||
var
|
||||
@@ -4871,8 +4913,19 @@ function returnFalse() {
|
||||
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
|
||||
// See #13393 for more info
|
||||
// Accessing document.activeElement can throw unexpectedly
|
||||
// https://bugs.jquery.com/ticket/13393
|
||||
function safeActiveElement() {
|
||||
try {
|
||||
return document.activeElement;
|
||||
@@ -5172,9 +5225,10 @@ jQuery.event = {
|
||||
while ( ( handleObj = matched.handlers[ j++ ] ) &&
|
||||
!event.isImmediatePropagationStopped() ) {
|
||||
|
||||
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
|
||||
// a subset or equal to those in the bound event (both can have no namespace).
|
||||
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
|
||||
// If the event is namespaced, then each handler is only invoked if it is
|
||||
// specially universal or its namespaces are a superset of the event's.
|
||||
if ( !event.rnamespace || handleObj.namespace === false ||
|
||||
event.rnamespace.test( handleObj.namespace ) ) {
|
||||
|
||||
event.handleObj = handleObj;
|
||||
event.data = handleObj.data;
|
||||
@@ -5298,39 +5352,51 @@ jQuery.event = {
|
||||
// Prevent triggered image.load events from bubbling to window.load
|
||||
noBubble: true
|
||||
},
|
||||
focus: {
|
||||
|
||||
// Fire native event if possible so blur/focus sequence is correct
|
||||
trigger: function() {
|
||||
if ( this !== safeActiveElement() && this.focus ) {
|
||||
this.focus();
|
||||
return false;
|
||||
}
|
||||
},
|
||||
delegateType: "focusin"
|
||||
},
|
||||
blur: {
|
||||
trigger: function() {
|
||||
if ( this === safeActiveElement() && this.blur ) {
|
||||
this.blur();
|
||||
return false;
|
||||
}
|
||||
},
|
||||
delegateType: "focusout"
|
||||
},
|
||||
click: {
|
||||
|
||||
// For checkbox, fire native event so checked state will be right
|
||||
trigger: function() {
|
||||
if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
|
||||
this.click();
|
||||
return false;
|
||||
// Utilize native event to ensure correct state for checkable inputs
|
||||
setup: 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;
|
||||
|
||||
// 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 ) {
|
||||
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 ) {
|
||||
|
||||
// This "if" is needed for plain objects
|
||||
@@ -5459,6 +5612,7 @@ jQuery.each( {
|
||||
shiftKey: true,
|
||||
view: true,
|
||||
"char": true,
|
||||
code: true,
|
||||
charCode: true,
|
||||
key: true,
|
||||
keyCode: true,
|
||||
@@ -5505,6 +5659,33 @@ jQuery.each( {
|
||||
}
|
||||
}, 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
|
||||
// so that event delegation works in jQuery.
|
||||
// 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" ) {
|
||||
|
||||
// Optional AJAX dependency, but won't run scripts if not present
|
||||
if ( jQuery._evalUrl ) {
|
||||
jQuery._evalUrl( node.src );
|
||||
if ( jQuery._evalUrl && !node.noModule ) {
|
||||
jQuery._evalUrl( node.src, {
|
||||
nonce: node.nonce || node.getAttribute( "nonce" )
|
||||
} );
|
||||
}
|
||||
} 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 ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
|
||||
if ( keepData && isAttached( node ) ) {
|
||||
setGlobalEval( getAll( node, "script" ) );
|
||||
}
|
||||
node.parentNode.removeChild( node );
|
||||
@@ -5799,7 +5982,7 @@ jQuery.extend( {
|
||||
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
|
||||
var i, l, srcElements, destElements,
|
||||
clone = elem.cloneNode( true ),
|
||||
inPage = jQuery.contains( elem.ownerDocument, elem );
|
||||
inPage = isAttached( elem );
|
||||
|
||||
// Fix IE cloning issues
|
||||
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
|
||||
@@ -6095,8 +6278,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
||||
|
||||
// Support: IE 9 only
|
||||
// Detect overflow:scroll screwiness (gh-3699)
|
||||
// Support: Chrome <=64
|
||||
// Don't get tricked when zoom affects offsetWidth (gh-4029)
|
||||
div.style.position = "absolute";
|
||||
scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
|
||||
scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
|
||||
|
||||
documentElement.removeChild( container );
|
||||
|
||||
@@ -6167,7 +6352,7 @@ function curCSS( elem, name, computed ) {
|
||||
if ( computed ) {
|
||||
ret = computed.getPropertyValue( name ) || computed[ name ];
|
||||
|
||||
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
|
||||
if ( ret === "" && !isAttached( elem ) ) {
|
||||
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
|
||||
// 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
|
||||
// Return a vendor-prefixed property or undefined
|
||||
function vendorPropName( name ) {
|
||||
|
||||
// Shortcut for names that are not vendor prefixed
|
||||
if ( name in emptyStyle ) {
|
||||
return name;
|
||||
}
|
||||
|
||||
// Check for vendor prefixed names
|
||||
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
|
||||
i = cssPrefixes.length;
|
||||
@@ -6259,16 +6427,33 @@ function vendorPropName( name ) {
|
||||
}
|
||||
}
|
||||
|
||||
// Return a property mapped along what jQuery.cssProps suggests or to
|
||||
// a vendor prefixed property.
|
||||
// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
|
||||
function finalPropName( name ) {
|
||||
var ret = jQuery.cssProps[ name ];
|
||||
if ( !ret ) {
|
||||
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
|
||||
var final = jQuery.cssProps[ name ] || vendorProps[ 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 ) {
|
||||
|
||||
// Any relative (+/-) values have already been
|
||||
@@ -6340,7 +6525,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
|
||||
delta -
|
||||
extra -
|
||||
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;
|
||||
@@ -6350,9 +6538,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
|
||||
|
||||
// Start with computed style
|
||||
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 ),
|
||||
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
||||
valueIsBorderBox = isBorderBox;
|
||||
offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
|
||||
|
||||
// Support: Firefox <=54
|
||||
// Return a confounding non-pixel value or feign ignorance, as appropriate.
|
||||
@@ -6363,22 +6558,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
|
||||
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"
|
||||
// This happens for inline elements with no explicit setting (gh-3571)
|
||||
// Support: Android <=4.1 - 4.3 only
|
||||
// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
|
||||
if ( val === "auto" ||
|
||||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
|
||||
// Support: IE 9-11 only
|
||||
// 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
|
||||
valueIsBorderBox = true;
|
||||
// Where available, offsetWidth/offsetHeight approximate border box dimensions.
|
||||
// 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
|
||||
@@ -6424,6 +6626,13 @@ jQuery.extend( {
|
||||
"flexGrow": true,
|
||||
"flexShrink": true,
|
||||
"fontWeight": true,
|
||||
"gridArea": true,
|
||||
"gridColumn": true,
|
||||
"gridColumnEnd": true,
|
||||
"gridColumnStart": true,
|
||||
"gridRow": true,
|
||||
"gridRowEnd": true,
|
||||
"gridRowStart": true,
|
||||
"lineHeight": true,
|
||||
"opacity": true,
|
||||
"order": true,
|
||||
@@ -6479,7 +6688,9 @@ jQuery.extend( {
|
||||
}
|
||||
|
||||
// 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" );
|
||||
}
|
||||
|
||||
@@ -6579,18 +6790,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
|
||||
set: function( elem, value, extra ) {
|
||||
var matches,
|
||||
styles = getStyles( elem ),
|
||||
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
||||
subtract = extra && boxModelAdjustment(
|
||||
elem,
|
||||
dimension,
|
||||
extra,
|
||||
isBorderBox,
|
||||
styles
|
||||
);
|
||||
|
||||
// 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,
|
||||
dimension,
|
||||
extra,
|
||||
isBorderBox,
|
||||
styles
|
||||
) :
|
||||
0;
|
||||
|
||||
// Account for unreliable border-box dimensions by comparing offset* to computed and
|
||||
// faking a content-box to get border and padding (gh-3699)
|
||||
if ( isBorderBox && support.scrollboxSize() === styles.position ) {
|
||||
if ( isBorderBox && scrollboxSizeBuggy ) {
|
||||
subtract -= Math.ceil(
|
||||
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
|
||||
parseFloat( styles[ dimension ] ) -
|
||||
@@ -6758,9 +6980,9 @@ Tween.propHooks = {
|
||||
// Use .style if available and use plain properties where available.
|
||||
if ( jQuery.fx.step[ tween.prop ] ) {
|
||||
jQuery.fx.step[ tween.prop ]( tween );
|
||||
} else if ( tween.elem.nodeType === 1 &&
|
||||
( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
|
||||
jQuery.cssHooks[ tween.prop ] ) ) {
|
||||
} else if ( tween.elem.nodeType === 1 && (
|
||||
jQuery.cssHooks[ tween.prop ] ||
|
||||
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
|
||||
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
||||
} else {
|
||||
tween.elem[ tween.prop ] = tween.now;
|
||||
@@ -8467,6 +8689,10 @@ jQuery.param = function( a, traditional ) {
|
||||
encodeURIComponent( value == null ? "" : value );
|
||||
};
|
||||
|
||||
if ( a == null ) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// If an array was passed in, assume that it is an array of form elements.
|
||||
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
|
||||
|
||||
@@ -8969,12 +9195,14 @@ jQuery.extend( {
|
||||
if ( !responseHeaders ) {
|
||||
responseHeaders = {};
|
||||
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
|
||||
@@ -9363,7 +9591,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
|
||||
} );
|
||||
|
||||
|
||||
jQuery._evalUrl = function( url ) {
|
||||
jQuery._evalUrl = function( url, options ) {
|
||||
return jQuery.ajax( {
|
||||
url: url,
|
||||
|
||||
@@ -9373,7 +9601,16 @@ jQuery._evalUrl = function( url ) {
|
||||
cache: true,
|
||||
async: 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
|
||||
jQuery.ajaxTransport( "script", function( s ) {
|
||||
|
||||
// This transport only deals with cross domain requests
|
||||
if ( s.crossDomain ) {
|
||||
// This transport only deals with cross domain or forced-by-attrs requests
|
||||
if ( s.crossDomain || s.scriptAttrs ) {
|
||||
var script, callback;
|
||||
return {
|
||||
send: function( _, complete ) {
|
||||
script = jQuery( "<script>" ).prop( {
|
||||
charset: s.scriptCharset,
|
||||
src: s.url
|
||||
} ).on(
|
||||
"load error",
|
||||
callback = function( evt ) {
|
||||
script = jQuery( "<script>" )
|
||||
.attr( s.scriptAttrs || {} )
|
||||
.prop( { charset: s.scriptCharset, src: s.url } )
|
||||
.on( "load error", callback = function( evt ) {
|
||||
script.remove();
|
||||
callback = null;
|
||||
if ( evt ) {
|
||||
complete( evt.type === "error" ? 404 : 200, evt.type );
|
||||
}
|
||||
}
|
||||
);
|
||||
} );
|
||||
|
||||
// Use native DOM manipulation to avoid our domManip AJAX trickery
|
||||
document.head.appendChild( script[ 0 ] );
|
||||
|
||||
+782
-375
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user