utopia-project 0.20.3 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/bake/utopia/project/readme/update.rb +50 -0
- data/bake/utopia/project/readme/usage.trenni +5 -0
- data/lib/utopia/project/base.rb +1 -1
- data/lib/utopia/project/document.rb +3 -2
- data/lib/utopia/project/guide.rb +2 -2
- data/lib/utopia/project/linkify.rb +1 -1
- data/lib/utopia/project/version.rb +1 -1
- data/lib/utopia/project.rb +1 -1
- data/license.md +1 -1
- data/pages/guides/controller.rb +1 -1
- data/public/_components/jquery/jquery.js +209 -97
- data/public/_components/jquery/jquery.min.js +2 -2
- data/public/_components/jquery/jquery.min.map +1 -1
- data/public/_components/jquery/jquery.slim.js +197 -85
- data/public/_components/jquery/jquery.slim.min.js +2 -2
- data/public/_components/jquery/jquery.slim.min.map +1 -1
- data/public/_components/mermaid/mermaid.min.js +1589 -3
- data/public/_components/mermaid/mermaid.min.js.map +1 -0
- data/readme.md +24 -34
- data/template/preload.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +7 -23
- metadata.gz.sig +0 -0
- data/public/.DS_Store +0 -0
- data/public/_components/.DS_Store +0 -0
- data/public/_components/jquery-syntax/.DS_Store +0 -0
- data/public/_components/mermaid/.DS_Store +0 -0
- data/public/_components/mermaid/mermaid.min.js.LICENSE.txt +0 -32
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* jQuery JavaScript Library v3.6.
|
2
|
+
* jQuery JavaScript Library v3.6.3 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector
|
3
3
|
* https://jquery.com/
|
4
4
|
*
|
5
5
|
* Includes Sizzle.js
|
@@ -9,7 +9,7 @@
|
|
9
9
|
* Released under the MIT license
|
10
10
|
* https://jquery.org/license
|
11
11
|
*
|
12
|
-
* Date:
|
12
|
+
* Date: 2022-12-20T21:28Z
|
13
13
|
*/
|
14
14
|
( function( global, factory ) {
|
15
15
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
// (such as Node.js), expose a factory as module.exports.
|
24
24
|
// This accentuates the need for the creation of a real `window`.
|
25
25
|
// e.g. var jQuery = require("jquery")(window);
|
26
|
-
// See ticket
|
26
|
+
// See ticket trac-14549 for more info.
|
27
27
|
module.exports = global.document ?
|
28
28
|
factory( global, true ) :
|
29
29
|
function( w ) {
|
@@ -151,7 +151,7 @@ function toType( obj ) {
|
|
151
151
|
|
152
152
|
|
153
153
|
var
|
154
|
-
version = "3.6.
|
154
|
+
version = "3.6.3 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/Tween,-effects/animatedSelector",
|
155
155
|
|
156
156
|
// Define a local copy of jQuery
|
157
157
|
jQuery = function( selector, context ) {
|
@@ -522,14 +522,14 @@ function isArrayLike( obj ) {
|
|
522
522
|
}
|
523
523
|
var Sizzle =
|
524
524
|
/*!
|
525
|
-
* Sizzle CSS Selector Engine v2.3.
|
525
|
+
* Sizzle CSS Selector Engine v2.3.9
|
526
526
|
* https://sizzlejs.com/
|
527
527
|
*
|
528
528
|
* Copyright JS Foundation and other contributors
|
529
529
|
* Released under the MIT license
|
530
530
|
* https://js.foundation/
|
531
531
|
*
|
532
|
-
* Date:
|
532
|
+
* Date: 2022-12-19
|
533
533
|
*/
|
534
534
|
( function( window ) {
|
535
535
|
var i,
|
@@ -879,6 +879,27 @@ function Sizzle( selector, context, results, seed ) {
|
|
879
879
|
}
|
880
880
|
|
881
881
|
try {
|
882
|
+
|
883
|
+
// `qSA` may not throw for unrecognized parts using forgiving parsing:
|
884
|
+
// https://drafts.csswg.org/selectors/#forgiving-selector
|
885
|
+
// like the `:has()` pseudo-class:
|
886
|
+
// https://drafts.csswg.org/selectors/#relational
|
887
|
+
// `CSS.supports` is still expected to return `false` then:
|
888
|
+
// https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn
|
889
|
+
// https://drafts.csswg.org/css-conditional-4/#dfn-support-selector
|
890
|
+
if ( support.cssSupportsSelector &&
|
891
|
+
|
892
|
+
// eslint-disable-next-line no-undef
|
893
|
+
!CSS.supports( "selector(:is(" + newSelector + "))" ) ) {
|
894
|
+
|
895
|
+
// Support: IE 11+
|
896
|
+
// Throw to get to the same code path as an error directly in qSA.
|
897
|
+
// Note: once we only support browser supporting
|
898
|
+
// `CSS.supports('selector(...)')`, we can most likely drop
|
899
|
+
// the `try-catch`. IE doesn't implement the API.
|
900
|
+
throw new Error();
|
901
|
+
}
|
902
|
+
|
882
903
|
push.apply( results,
|
883
904
|
newContext.querySelectorAll( newSelector )
|
884
905
|
);
|
@@ -1174,6 +1195,31 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
1174
1195
|
!el.querySelectorAll( ":scope fieldset div" ).length;
|
1175
1196
|
} );
|
1176
1197
|
|
1198
|
+
// Support: Chrome 105+, Firefox 104+, Safari 15.4+
|
1199
|
+
// Make sure forgiving mode is not used in `CSS.supports( "selector(...)" )`.
|
1200
|
+
//
|
1201
|
+
// `:is()` uses a forgiving selector list as an argument and is widely
|
1202
|
+
// implemented, so it's a good one to test against.
|
1203
|
+
support.cssSupportsSelector = assert( function() {
|
1204
|
+
/* eslint-disable no-undef */
|
1205
|
+
|
1206
|
+
return CSS.supports( "selector(*)" ) &&
|
1207
|
+
|
1208
|
+
// Support: Firefox 78-81 only
|
1209
|
+
// In old Firefox, `:is()` didn't use forgiving parsing. In that case,
|
1210
|
+
// fail this test as there's no selector to test against that.
|
1211
|
+
// `CSS.supports` uses unforgiving parsing
|
1212
|
+
document.querySelectorAll( ":is(:jqfake)" ) &&
|
1213
|
+
|
1214
|
+
// `*` is needed as Safari & newer Chrome implemented something in between
|
1215
|
+
// for `:has()` - it throws in `qSA` if it only contains an unsupported
|
1216
|
+
// argument but multiple ones, one of which is supported, are fine.
|
1217
|
+
// We want to play safe in case `:is()` gets the same treatment.
|
1218
|
+
!CSS.supports( "selector(:is(*,:jqfake))" );
|
1219
|
+
|
1220
|
+
/* eslint-enable */
|
1221
|
+
} );
|
1222
|
+
|
1177
1223
|
/* Attributes
|
1178
1224
|
---------------------------------------------------------------------- */
|
1179
1225
|
|
@@ -1440,6 +1486,17 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
1440
1486
|
} );
|
1441
1487
|
}
|
1442
1488
|
|
1489
|
+
if ( !support.cssSupportsSelector ) {
|
1490
|
+
|
1491
|
+
// Support: Chrome 105+, Safari 15.4+
|
1492
|
+
// `:has()` uses a forgiving selector list as an argument so our regular
|
1493
|
+
// `try-catch` mechanism fails to catch `:has()` with arguments not supported
|
1494
|
+
// natively like `:has(:contains("Foo"))`. Where supported & spec-compliant,
|
1495
|
+
// we now use `CSS.supports("selector(:is(SELECTOR_TO_BE_TESTED))")`, but
|
1496
|
+
// outside that we mark `:has` as buggy.
|
1497
|
+
rbuggyQSA.push( ":has" );
|
1498
|
+
}
|
1499
|
+
|
1443
1500
|
rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
|
1444
1501
|
rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
|
1445
1502
|
|
@@ -1452,7 +1509,14 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
1452
1509
|
// As in, an element does not contain itself
|
1453
1510
|
contains = hasCompare || rnative.test( docElem.contains ) ?
|
1454
1511
|
function( a, b ) {
|
1455
|
-
|
1512
|
+
|
1513
|
+
// Support: IE <9 only
|
1514
|
+
// IE doesn't have `contains` on `document` so we need to check for
|
1515
|
+
// `documentElement` presence.
|
1516
|
+
// We need to fall back to `a` when `documentElement` is missing
|
1517
|
+
// as `ownerDocument` of elements within `<template/>` may have
|
1518
|
+
// a null one - a default behavior of all modern browsers.
|
1519
|
+
var adown = a.nodeType === 9 && a.documentElement || a,
|
1456
1520
|
bup = b && b.parentNode;
|
1457
1521
|
return a === bup || !!( bup && bup.nodeType === 1 && (
|
1458
1522
|
adown.contains ?
|
@@ -2242,7 +2306,7 @@ Expr = Sizzle.selectors = {
|
|
2242
2306
|
return elem.nodeName.toLowerCase() === "input" &&
|
2243
2307
|
elem.type === "text" &&
|
2244
2308
|
|
2245
|
-
// Support: IE<
|
2309
|
+
// Support: IE <10 only
|
2246
2310
|
// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
|
2247
2311
|
( ( attr = elem.getAttribute( "type" ) ) == null ||
|
2248
2312
|
attr.toLowerCase() === "text" );
|
@@ -3129,8 +3193,8 @@ jQuery.fn.extend( {
|
|
3129
3193
|
var rootjQuery,
|
3130
3194
|
|
3131
3195
|
// A simple way to check for HTML strings
|
3132
|
-
// Prioritize #id over <tag> to avoid XSS via location.hash (
|
3133
|
-
// Strict HTML recognition (
|
3196
|
+
// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)
|
3197
|
+
// Strict HTML recognition (trac-11290: must start with <)
|
3134
3198
|
// Shortcut simple #id case for speed
|
3135
3199
|
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
|
3136
3200
|
|
@@ -4087,7 +4151,7 @@ jQuery.extend( {
|
|
4087
4151
|
isReady: false,
|
4088
4152
|
|
4089
4153
|
// A counter to track how many items to wait for before
|
4090
|
-
// the ready event fires. See
|
4154
|
+
// the ready event fires. See trac-6781
|
4091
4155
|
readyWait: 1,
|
4092
4156
|
|
4093
4157
|
// Handle when the DOM is ready
|
@@ -4215,7 +4279,7 @@ function fcamelCase( _all, letter ) {
|
|
4215
4279
|
|
4216
4280
|
// Convert dashed to camelCase; used by the css and data modules
|
4217
4281
|
// Support: IE <=9 - 11, Edge 12 - 15
|
4218
|
-
// Microsoft forgot to hump their vendor prefix (
|
4282
|
+
// Microsoft forgot to hump their vendor prefix (trac-9572)
|
4219
4283
|
function camelCase( string ) {
|
4220
4284
|
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
|
4221
4285
|
}
|
@@ -4251,7 +4315,7 @@ Data.prototype = {
|
|
4251
4315
|
value = {};
|
4252
4316
|
|
4253
4317
|
// We can accept data for non-element nodes in modern browsers,
|
4254
|
-
// but we should not, see
|
4318
|
+
// but we should not, see trac-8335.
|
4255
4319
|
// Always return an empty object.
|
4256
4320
|
if ( acceptData( owner ) ) {
|
4257
4321
|
|
@@ -4490,7 +4554,7 @@ jQuery.fn.extend( {
|
|
4490
4554
|
while ( i-- ) {
|
4491
4555
|
|
4492
4556
|
// Support: IE 11 only
|
4493
|
-
// The attrs elements can be null (
|
4557
|
+
// The attrs elements can be null (trac-14894)
|
4494
4558
|
if ( attrs[ i ] ) {
|
4495
4559
|
name = attrs[ i ].name;
|
4496
4560
|
if ( name.indexOf( "data-" ) === 0 ) {
|
@@ -4913,9 +4977,9 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
|
|
4913
4977
|
input = document.createElement( "input" );
|
4914
4978
|
|
4915
4979
|
// Support: Android 4.0 - 4.3 only
|
4916
|
-
// Check state lost if the name is set (
|
4980
|
+
// Check state lost if the name is set (trac-11217)
|
4917
4981
|
// Support: Windows Web Apps (WWA)
|
4918
|
-
// `name` and `type` must use .setAttribute for WWA (
|
4982
|
+
// `name` and `type` must use .setAttribute for WWA (trac-14901)
|
4919
4983
|
input.setAttribute( "type", "radio" );
|
4920
4984
|
input.setAttribute( "checked", "checked" );
|
4921
4985
|
input.setAttribute( "name", "t" );
|
@@ -4939,7 +5003,7 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
|
|
4939
5003
|
} )();
|
4940
5004
|
|
4941
5005
|
|
4942
|
-
// We have to close these tags to support XHTML (
|
5006
|
+
// We have to close these tags to support XHTML (trac-13200)
|
4943
5007
|
var wrapMap = {
|
4944
5008
|
|
4945
5009
|
// XHTML parsers do not magically insert elements in the
|
@@ -4965,7 +5029,7 @@ if ( !support.option ) {
|
|
4965
5029
|
function getAll( context, tag ) {
|
4966
5030
|
|
4967
5031
|
// Support: IE <=9 - 11 only
|
4968
|
-
// Use typeof to avoid zero-argument method invocation on host objects (
|
5032
|
+
// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)
|
4969
5033
|
var ret;
|
4970
5034
|
|
4971
5035
|
if ( typeof context.getElementsByTagName !== "undefined" ) {
|
@@ -5048,7 +5112,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
|
5048
5112
|
// Remember the top-level container
|
5049
5113
|
tmp = fragment.firstChild;
|
5050
5114
|
|
5051
|
-
// Ensure the created nodes are orphaned (
|
5115
|
+
// Ensure the created nodes are orphaned (trac-12392)
|
5052
5116
|
tmp.textContent = "";
|
5053
5117
|
}
|
5054
5118
|
}
|
@@ -5469,15 +5533,15 @@ jQuery.event = {
|
|
5469
5533
|
|
5470
5534
|
for ( ; cur !== this; cur = cur.parentNode || this ) {
|
5471
5535
|
|
5472
|
-
// Don't check non-elements (
|
5473
|
-
// Don't process clicks on disabled elements (
|
5536
|
+
// Don't check non-elements (trac-13208)
|
5537
|
+
// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)
|
5474
5538
|
if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
|
5475
5539
|
matchedHandlers = [];
|
5476
5540
|
matchedSelectors = {};
|
5477
5541
|
for ( i = 0; i < delegateCount; i++ ) {
|
5478
5542
|
handleObj = handlers[ i ];
|
5479
5543
|
|
5480
|
-
// Don't conflict with Object.prototype properties (
|
5544
|
+
// Don't conflict with Object.prototype properties (trac-13203)
|
5481
5545
|
sel = handleObj.selector + " ";
|
5482
5546
|
|
5483
5547
|
if ( matchedSelectors[ sel ] === undefined ) {
|
@@ -5731,7 +5795,7 @@ jQuery.Event = function( src, props ) {
|
|
5731
5795
|
|
5732
5796
|
// Create target properties
|
5733
5797
|
// Support: Safari <=6 - 7 only
|
5734
|
-
// Target should not be a text node (
|
5798
|
+
// Target should not be a text node (trac-504, trac-13143)
|
5735
5799
|
this.target = ( src.target && src.target.nodeType === 3 ) ?
|
5736
5800
|
src.target.parentNode :
|
5737
5801
|
src.target;
|
@@ -5854,10 +5918,10 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
|
|
5854
5918
|
return true;
|
5855
5919
|
},
|
5856
5920
|
|
5857
|
-
// Suppress native focus or blur
|
5858
|
-
//
|
5859
|
-
_default: function() {
|
5860
|
-
return
|
5921
|
+
// Suppress native focus or blur if we're currently inside
|
5922
|
+
// a leveraged native-event stack
|
5923
|
+
_default: function( event ) {
|
5924
|
+
return dataPriv.get( event.target, type );
|
5861
5925
|
},
|
5862
5926
|
|
5863
5927
|
delegateType: delegateType
|
@@ -5956,7 +6020,8 @@ var
|
|
5956
6020
|
|
5957
6021
|
// checked="checked" or checked
|
5958
6022
|
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
5959
|
-
|
6023
|
+
|
6024
|
+
rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
|
5960
6025
|
|
5961
6026
|
// Prefer a tbody over its parent table for containing new rows
|
5962
6027
|
function manipulationTarget( elem, content ) {
|
@@ -6070,7 +6135,7 @@ function domManip( collection, args, callback, ignored ) {
|
|
6070
6135
|
|
6071
6136
|
// Use the original fragment for the last item
|
6072
6137
|
// instead of the first because it can end up
|
6073
|
-
// being emptied incorrectly in certain situations (
|
6138
|
+
// being emptied incorrectly in certain situations (trac-8070).
|
6074
6139
|
for ( ; i < l; i++ ) {
|
6075
6140
|
node = fragment;
|
6076
6141
|
|
@@ -6111,6 +6176,12 @@ function domManip( collection, args, callback, ignored ) {
|
|
6111
6176
|
}, doc );
|
6112
6177
|
}
|
6113
6178
|
} else {
|
6179
|
+
|
6180
|
+
// Unwrap a CDATA section containing script contents. This shouldn't be
|
6181
|
+
// needed as in XML documents they're already not visible when
|
6182
|
+
// inspecting element contents and in HTML documents they have no
|
6183
|
+
// meaning but we're preserving that logic for backwards compatibility.
|
6184
|
+
// This will be removed completely in 4.0. See gh-4904.
|
6114
6185
|
DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
|
6115
6186
|
}
|
6116
6187
|
}
|
@@ -6393,9 +6464,12 @@ jQuery.each( {
|
|
6393
6464
|
} );
|
6394
6465
|
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
|
6395
6466
|
|
6467
|
+
var rcustomProp = /^--/;
|
6468
|
+
|
6469
|
+
|
6396
6470
|
var getStyles = function( elem ) {
|
6397
6471
|
|
6398
|
-
// Support: IE <=11 only, Firefox <=30 (
|
6472
|
+
// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)
|
6399
6473
|
// IE throws on elements created in popups
|
6400
6474
|
// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
|
6401
6475
|
var view = elem.ownerDocument.defaultView;
|
@@ -6430,6 +6504,15 @@ var swap = function( elem, options, callback ) {
|
|
6430
6504
|
|
6431
6505
|
var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
6432
6506
|
|
6507
|
+
var whitespace = "[\\x20\\t\\r\\n\\f]";
|
6508
|
+
|
6509
|
+
|
6510
|
+
var rtrimCSS = new RegExp(
|
6511
|
+
"^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
|
6512
|
+
"g"
|
6513
|
+
);
|
6514
|
+
|
6515
|
+
|
6433
6516
|
|
6434
6517
|
|
6435
6518
|
( function() {
|
@@ -6495,7 +6578,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
|
6495
6578
|
}
|
6496
6579
|
|
6497
6580
|
// Support: IE <=9 - 11 only
|
6498
|
-
// Style of cloned element affects source element cloned (
|
6581
|
+
// Style of cloned element affects source element cloned (trac-8908)
|
6499
6582
|
div.style.backgroundClip = "content-box";
|
6500
6583
|
div.cloneNode( true ).style.backgroundClip = "";
|
6501
6584
|
support.clearCloneStyle = div.style.backgroundClip === "content-box";
|
@@ -6575,6 +6658,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
|
6575
6658
|
|
6576
6659
|
function curCSS( elem, name, computed ) {
|
6577
6660
|
var width, minWidth, maxWidth, ret,
|
6661
|
+
isCustomProp = rcustomProp.test( name ),
|
6578
6662
|
|
6579
6663
|
// Support: Firefox 51+
|
6580
6664
|
// Retrieving style before computed somehow
|
@@ -6585,11 +6669,42 @@ function curCSS( elem, name, computed ) {
|
|
6585
6669
|
computed = computed || getStyles( elem );
|
6586
6670
|
|
6587
6671
|
// getPropertyValue is needed for:
|
6588
|
-
// .css('filter') (IE 9 only,
|
6589
|
-
// .css('--customProperty) (
|
6672
|
+
// .css('filter') (IE 9 only, trac-12537)
|
6673
|
+
// .css('--customProperty) (gh-3144)
|
6590
6674
|
if ( computed ) {
|
6675
|
+
|
6676
|
+
// Support: IE <=9 - 11+
|
6677
|
+
// IE only supports `"float"` in `getPropertyValue`; in computed styles
|
6678
|
+
// it's only available as `"cssFloat"`. We no longer modify properties
|
6679
|
+
// sent to `.css()` apart from camelCasing, so we need to check both.
|
6680
|
+
// Normally, this would create difference in behavior: if
|
6681
|
+
// `getPropertyValue` returns an empty string, the value returned
|
6682
|
+
// by `.css()` would be `undefined`. This is usually the case for
|
6683
|
+
// disconnected elements. However, in IE even disconnected elements
|
6684
|
+
// with no styles return `"none"` for `getPropertyValue( "float" )`
|
6591
6685
|
ret = computed.getPropertyValue( name ) || computed[ name ];
|
6592
6686
|
|
6687
|
+
if ( isCustomProp && ret ) {
|
6688
|
+
|
6689
|
+
// Support: Firefox 105+, Chrome <=105+
|
6690
|
+
// Spec requires trimming whitespace for custom properties (gh-4926).
|
6691
|
+
// Firefox only trims leading whitespace. Chrome just collapses
|
6692
|
+
// both leading & trailing whitespace to a single space.
|
6693
|
+
//
|
6694
|
+
// Fall back to `undefined` if empty string returned.
|
6695
|
+
// This collapses a missing definition with property defined
|
6696
|
+
// and set to an empty string but there's no standard API
|
6697
|
+
// allowing us to differentiate them without a performance penalty
|
6698
|
+
// and returning `undefined` aligns with older jQuery.
|
6699
|
+
//
|
6700
|
+
// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED
|
6701
|
+
// as whitespace while CSS does not, but this is not a problem
|
6702
|
+
// because CSS preprocessing replaces them with U+000A LINE FEED
|
6703
|
+
// (which *is* CSS whitespace)
|
6704
|
+
// https://www.w3.org/TR/css-syntax-3/#input-preprocessing
|
6705
|
+
ret = ret.replace( rtrimCSS, "$1" ) || undefined;
|
6706
|
+
}
|
6707
|
+
|
6593
6708
|
if ( ret === "" && !isAttached( elem ) ) {
|
6594
6709
|
ret = jQuery.style( elem, name );
|
6595
6710
|
}
|
@@ -6685,7 +6800,6 @@ var
|
|
6685
6800
|
// except "table", "table-cell", or "table-caption"
|
6686
6801
|
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
|
6687
6802
|
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
|
6688
|
-
rcustomProp = /^--/,
|
6689
6803
|
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
6690
6804
|
cssNormalTransform = {
|
6691
6805
|
letterSpacing: "0",
|
@@ -6921,15 +7035,15 @@ jQuery.extend( {
|
|
6921
7035
|
if ( value !== undefined ) {
|
6922
7036
|
type = typeof value;
|
6923
7037
|
|
6924
|
-
// Convert "+=" or "-=" to relative numbers (
|
7038
|
+
// Convert "+=" or "-=" to relative numbers (trac-7345)
|
6925
7039
|
if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
|
6926
7040
|
value = adjustCSS( elem, name, ret );
|
6927
7041
|
|
6928
|
-
// Fixes bug
|
7042
|
+
// Fixes bug trac-9237
|
6929
7043
|
type = "number";
|
6930
7044
|
}
|
6931
7045
|
|
6932
|
-
// Make sure that null and NaN values aren't set (
|
7046
|
+
// Make sure that null and NaN values aren't set (trac-7116)
|
6933
7047
|
if ( value == null || value !== value ) {
|
6934
7048
|
return;
|
6935
7049
|
}
|
@@ -7149,7 +7263,6 @@ jQuery.fn.extend( {
|
|
7149
7263
|
|
7150
7264
|
|
7151
7265
|
// Based off of the plugin by Clint Helfers, with permission.
|
7152
|
-
// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
|
7153
7266
|
jQuery.fn.delay = function( time, type ) {
|
7154
7267
|
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
|
7155
7268
|
type = type || "fx";
|
@@ -7374,8 +7487,7 @@ jQuery.extend( {
|
|
7374
7487
|
// Support: IE <=9 - 11 only
|
7375
7488
|
// elem.tabIndex doesn't always return the
|
7376
7489
|
// correct value when it hasn't been explicitly set
|
7377
|
-
//
|
7378
|
-
// Use proper attribute retrieval(#12072)
|
7490
|
+
// Use proper attribute retrieval (trac-12072)
|
7379
7491
|
var tabindex = jQuery.find.attr( elem, "tabindex" );
|
7380
7492
|
|
7381
7493
|
if ( tabindex ) {
|
@@ -7479,8 +7591,7 @@ function classesToArray( value ) {
|
|
7479
7591
|
|
7480
7592
|
jQuery.fn.extend( {
|
7481
7593
|
addClass: function( value ) {
|
7482
|
-
var
|
7483
|
-
i = 0;
|
7594
|
+
var classNames, cur, curValue, className, i, finalValue;
|
7484
7595
|
|
7485
7596
|
if ( isFunction( value ) ) {
|
7486
7597
|
return this.each( function( j ) {
|
@@ -7488,36 +7599,35 @@ jQuery.fn.extend( {
|
|
7488
7599
|
} );
|
7489
7600
|
}
|
7490
7601
|
|
7491
|
-
|
7602
|
+
classNames = classesToArray( value );
|
7492
7603
|
|
7493
|
-
if (
|
7494
|
-
|
7495
|
-
curValue = getClass(
|
7496
|
-
cur =
|
7604
|
+
if ( classNames.length ) {
|
7605
|
+
return this.each( function() {
|
7606
|
+
curValue = getClass( this );
|
7607
|
+
cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
|
7497
7608
|
|
7498
7609
|
if ( cur ) {
|
7499
|
-
|
7500
|
-
|
7501
|
-
if ( cur.indexOf( " " +
|
7502
|
-
cur +=
|
7610
|
+
for ( i = 0; i < classNames.length; i++ ) {
|
7611
|
+
className = classNames[ i ];
|
7612
|
+
if ( cur.indexOf( " " + className + " " ) < 0 ) {
|
7613
|
+
cur += className + " ";
|
7503
7614
|
}
|
7504
7615
|
}
|
7505
7616
|
|
7506
7617
|
// Only assign if different to avoid unneeded rendering.
|
7507
7618
|
finalValue = stripAndCollapse( cur );
|
7508
7619
|
if ( curValue !== finalValue ) {
|
7509
|
-
|
7620
|
+
this.setAttribute( "class", finalValue );
|
7510
7621
|
}
|
7511
7622
|
}
|
7512
|
-
}
|
7623
|
+
} );
|
7513
7624
|
}
|
7514
7625
|
|
7515
7626
|
return this;
|
7516
7627
|
},
|
7517
7628
|
|
7518
7629
|
removeClass: function( value ) {
|
7519
|
-
var
|
7520
|
-
i = 0;
|
7630
|
+
var classNames, cur, curValue, className, i, finalValue;
|
7521
7631
|
|
7522
7632
|
if ( isFunction( value ) ) {
|
7523
7633
|
return this.each( function( j ) {
|
@@ -7529,45 +7639,42 @@ jQuery.fn.extend( {
|
|
7529
7639
|
return this.attr( "class", "" );
|
7530
7640
|
}
|
7531
7641
|
|
7532
|
-
|
7642
|
+
classNames = classesToArray( value );
|
7533
7643
|
|
7534
|
-
if (
|
7535
|
-
|
7536
|
-
curValue = getClass(
|
7644
|
+
if ( classNames.length ) {
|
7645
|
+
return this.each( function() {
|
7646
|
+
curValue = getClass( this );
|
7537
7647
|
|
7538
7648
|
// This expression is here for better compressibility (see addClass)
|
7539
|
-
cur =
|
7649
|
+
cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
|
7540
7650
|
|
7541
7651
|
if ( cur ) {
|
7542
|
-
|
7543
|
-
|
7652
|
+
for ( i = 0; i < classNames.length; i++ ) {
|
7653
|
+
className = classNames[ i ];
|
7544
7654
|
|
7545
7655
|
// Remove *all* instances
|
7546
|
-
while ( cur.indexOf( " " +
|
7547
|
-
cur = cur.replace( " " +
|
7656
|
+
while ( cur.indexOf( " " + className + " " ) > -1 ) {
|
7657
|
+
cur = cur.replace( " " + className + " ", " " );
|
7548
7658
|
}
|
7549
7659
|
}
|
7550
7660
|
|
7551
7661
|
// Only assign if different to avoid unneeded rendering.
|
7552
7662
|
finalValue = stripAndCollapse( cur );
|
7553
7663
|
if ( curValue !== finalValue ) {
|
7554
|
-
|
7664
|
+
this.setAttribute( "class", finalValue );
|
7555
7665
|
}
|
7556
7666
|
}
|
7557
|
-
}
|
7667
|
+
} );
|
7558
7668
|
}
|
7559
7669
|
|
7560
7670
|
return this;
|
7561
7671
|
},
|
7562
7672
|
|
7563
7673
|
toggleClass: function( value, stateVal ) {
|
7564
|
-
var
|
7674
|
+
var classNames, className, i, self,
|
7675
|
+
type = typeof value,
|
7565
7676
|
isValidValue = type === "string" || Array.isArray( value );
|
7566
7677
|
|
7567
|
-
if ( typeof stateVal === "boolean" && isValidValue ) {
|
7568
|
-
return stateVal ? this.addClass( value ) : this.removeClass( value );
|
7569
|
-
}
|
7570
|
-
|
7571
7678
|
if ( isFunction( value ) ) {
|
7572
7679
|
return this.each( function( i ) {
|
7573
7680
|
jQuery( this ).toggleClass(
|
@@ -7577,17 +7684,20 @@ jQuery.fn.extend( {
|
|
7577
7684
|
} );
|
7578
7685
|
}
|
7579
7686
|
|
7580
|
-
|
7581
|
-
|
7687
|
+
if ( typeof stateVal === "boolean" && isValidValue ) {
|
7688
|
+
return stateVal ? this.addClass( value ) : this.removeClass( value );
|
7689
|
+
}
|
7690
|
+
|
7691
|
+
classNames = classesToArray( value );
|
7582
7692
|
|
7693
|
+
return this.each( function() {
|
7583
7694
|
if ( isValidValue ) {
|
7584
7695
|
|
7585
7696
|
// Toggle individual class names
|
7586
|
-
i = 0;
|
7587
7697
|
self = jQuery( this );
|
7588
|
-
classNames = classesToArray( value );
|
7589
7698
|
|
7590
|
-
|
7699
|
+
for ( i = 0; i < classNames.length; i++ ) {
|
7700
|
+
className = classNames[ i ];
|
7591
7701
|
|
7592
7702
|
// Check each className given, space separated list
|
7593
7703
|
if ( self.hasClass( className ) ) {
|
@@ -7721,7 +7831,7 @@ jQuery.extend( {
|
|
7721
7831
|
val :
|
7722
7832
|
|
7723
7833
|
// Support: IE <=10 - 11 only
|
7724
|
-
// option.text throws exceptions (
|
7834
|
+
// option.text throws exceptions (trac-14686, trac-14858)
|
7725
7835
|
// Strip and collapse whitespace
|
7726
7836
|
// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
|
7727
7837
|
stripAndCollapse( jQuery.text( elem ) );
|
@@ -7748,7 +7858,7 @@ jQuery.extend( {
|
|
7748
7858
|
option = options[ i ];
|
7749
7859
|
|
7750
7860
|
// Support: IE <=9 only
|
7751
|
-
// IE8-9 doesn't update selected after form reset (
|
7861
|
+
// IE8-9 doesn't update selected after form reset (trac-2551)
|
7752
7862
|
if ( ( option.selected || i === index ) &&
|
7753
7863
|
|
7754
7864
|
// Don't return options that are disabled or in a disabled optgroup
|
@@ -7891,8 +8001,8 @@ jQuery.extend( jQuery.event, {
|
|
7891
8001
|
return;
|
7892
8002
|
}
|
7893
8003
|
|
7894
|
-
// Determine event propagation path in advance, per W3C events spec (
|
7895
|
-
// Bubble up to document, then to window; watch for a global ownerDocument var (
|
8004
|
+
// Determine event propagation path in advance, per W3C events spec (trac-9951)
|
8005
|
+
// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)
|
7896
8006
|
if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
|
7897
8007
|
|
7898
8008
|
bubbleType = special.delegateType || type;
|
@@ -7944,7 +8054,7 @@ jQuery.extend( jQuery.event, {
|
|
7944
8054
|
acceptData( elem ) ) {
|
7945
8055
|
|
7946
8056
|
// Call a native DOM method on the target with the same name as the event.
|
7947
|
-
// Don't do default actions on window, that's where global variables be (
|
8057
|
+
// Don't do default actions on window, that's where global variables be (trac-6170)
|
7948
8058
|
if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
|
7949
8059
|
|
7950
8060
|
// Don't re-trigger an onFOO event when we call its FOO() method
|
@@ -8654,7 +8764,9 @@ jQuery.each(
|
|
8654
8764
|
|
8655
8765
|
// Support: Android <=4.0 only
|
8656
8766
|
// Make sure we trim BOM and NBSP
|
8657
|
-
|
8767
|
+
// Require that the "whitespace run" starts from a non-whitespace
|
8768
|
+
// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
|
8769
|
+
var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
|
8658
8770
|
|
8659
8771
|
// Bind a function to a context, optionally partially applying any
|
8660
8772
|
// arguments.
|
@@ -8721,7 +8833,7 @@ jQuery.isNumeric = function( obj ) {
|
|
8721
8833
|
jQuery.trim = function( text ) {
|
8722
8834
|
return text == null ?
|
8723
8835
|
"" :
|
8724
|
-
( text + "" ).replace( rtrim, "" );
|
8836
|
+
( text + "" ).replace( rtrim, "$1" );
|
8725
8837
|
};
|
8726
8838
|
|
8727
8839
|
|
@@ -8769,8 +8881,8 @@ jQuery.noConflict = function( deep ) {
|
|
8769
8881
|
};
|
8770
8882
|
|
8771
8883
|
// Expose jQuery and $ identifiers, even in AMD
|
8772
|
-
// (
|
8773
|
-
// and CommonJS for browser emulators (
|
8884
|
+
// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)
|
8885
|
+
// and CommonJS for browser emulators (trac-13566)
|
8774
8886
|
if ( typeof noGlobal === "undefined" ) {
|
8775
8887
|
window.jQuery = window.$ = jQuery;
|
8776
8888
|
}
|