administrate-bootstrap-theme 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +12 -10
- data/app/assets/javascripts/administrate-bootstrap-theme/bootstrap/bootstrap.bundle.js +806 -793
- data/app/assets/stylesheets/administrate-bootstrap-theme/_base.scss +2 -2
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_accordion.scss +4 -2
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_dropdown.scss +7 -13
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_list-group.scss +5 -5
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_mixins.scss +1 -0
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_modal.scss +2 -20
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_offcanvas.scss +11 -11
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_spinners.scss +2 -2
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_tables.scss +1 -0
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/_variables.scss +7 -7
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/bootstrap-grid.scss +1 -1
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/bootstrap-reboot.scss +1 -1
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/bootstrap-utilities.scss +1 -1
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/bootstrap.scss +1 -1
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/mixins/_color-scheme.scss +7 -0
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/mixins/_forms.scss +15 -5
- data/app/assets/stylesheets/administrate-bootstrap-theme/bootstrap/mixins/_grid.scss +8 -3
- data/app/assets/stylesheets/administrate-bootstrap-theme/flatpickr/{flatpickr.css → flatpickr.scss} +0 -0
- data/lib/administrate-bootstrap-theme/version.rb +1 -1
- data/package.json +11 -0
- metadata +6 -5
- data/Rakefile +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f5c9e7796dff0685744b42182407312126a508ea641a1160f751fbef5c1bf9f
|
4
|
+
data.tar.gz: d978d2e0541202ea70fc6f950eb9206e4f4bd91a4dcf95fed51d1e9f1f59e981
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a710260a02ce0c73a8be1dfc7c34feb095088b777d3f402b0e8882748d5c3e131cf2ac79b3ab7dec0e9254ca97bd26c3a3608e9b91d1eb0c849b9b907581e78
|
7
|
+
data.tar.gz: 695d8e6a10925f2567016f443135ac9ed3ebeb821419b63f148d5a63a9d28f3082d67f3ecb9e0ec6e2de76f3b78019b6554c29823e584a55d4353cafac15e93c
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# Administrate Bootstrap Theme [](https://badge.fury.io/rb/administrate-bootstrap-theme) [](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/specs.yml)
|
1
|
+
# Administrate Bootstrap Theme [](https://badge.fury.io/rb/administrate-bootstrap-theme) [](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/linters.yml) [](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/specs.yml)
|
2
2
|
|
3
|
-
A Bootstrap 5
|
3
|
+
A Bootstrap 5 theme for [Administrate](https://github.com/thoughtbot/administrate).
|
4
4
|
|
5
5
|
Features:
|
6
6
|
- easy to install, just include CSS/JS to apply the theme to a default Administrate structure;
|
@@ -10,6 +10,7 @@ Features:
|
|
10
10
|
See some [screenshots](#screenshots).
|
11
11
|
|
12
12
|
## Installation
|
13
|
+
|
13
14
|
- Add to *Gemfile* (of an Administrate project): `gem 'administrate-bootstrap-theme'` (and execute `bundle`)
|
14
15
|
- Add to *app/assets/config/manifest.js*:
|
15
16
|
|
@@ -34,6 +35,7 @@ See some [screenshots](#screenshots).
|
|
34
35
|
```
|
35
36
|
|
36
37
|
## Customizations
|
38
|
+
|
37
39
|
To change variables it's necessary to create a new *.scss* (or *.sass*) file like this one (ex. *admin.scss*):
|
38
40
|
|
39
41
|
```scss
|
@@ -51,22 +53,22 @@ And replace the link tag in the *application.html.erb* with: `<%= stylesheet_lin
|
|
51
53
|
For the complete list of options take a look [here](app/assets/stylesheets/administrate-bootstrap-theme/_variables.scss).
|
52
54
|
|
53
55
|
## Screenshots
|
54
|
-
|
55
|
-

|
56
|
-
- Show page:
|
57
|
-

|
60
|
-
- Index page with some customized colors:
|
61
|
-

|
56
|
+
|
57
|
+
- Index page: 
|
58
|
+
- Show page: 
|
59
|
+
- Form page: 
|
60
|
+
- Index page with some customized colors: 
|
62
61
|
|
63
62
|
## Do you like it? Star it!
|
63
|
+
|
64
64
|
If you use this component just star it. A developer is more motivated to improve a project when there is some interest.
|
65
65
|
|
66
66
|
Or consider offering me a coffee, it's a small thing but it is greatly appreciated: [about me](https://www.blocknot.es/about-me).
|
67
67
|
|
68
68
|
## Contributors
|
69
|
+
|
69
70
|
- [Mattia Roccoberton](https://blocknot.es/): author
|
70
71
|
|
71
72
|
## License
|
73
|
+
|
72
74
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap v5.0.
|
2
|
+
* Bootstrap v5.0.1 (https://getbootstrap.com/)
|
3
3
|
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
5
5
|
*/
|
@@ -11,10 +11,82 @@
|
|
11
11
|
|
12
12
|
/**
|
13
13
|
* --------------------------------------------------------------------------
|
14
|
-
* Bootstrap (v5.0.
|
14
|
+
* Bootstrap (v5.0.1): dom/selector-engine.js
|
15
15
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
16
16
|
* --------------------------------------------------------------------------
|
17
17
|
*/
|
18
|
+
|
19
|
+
/**
|
20
|
+
* ------------------------------------------------------------------------
|
21
|
+
* Constants
|
22
|
+
* ------------------------------------------------------------------------
|
23
|
+
*/
|
24
|
+
const NODE_TEXT = 3;
|
25
|
+
const SelectorEngine = {
|
26
|
+
find(selector, element = document.documentElement) {
|
27
|
+
return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
|
28
|
+
},
|
29
|
+
|
30
|
+
findOne(selector, element = document.documentElement) {
|
31
|
+
return Element.prototype.querySelector.call(element, selector);
|
32
|
+
},
|
33
|
+
|
34
|
+
children(element, selector) {
|
35
|
+
return [].concat(...element.children).filter(child => child.matches(selector));
|
36
|
+
},
|
37
|
+
|
38
|
+
parents(element, selector) {
|
39
|
+
const parents = [];
|
40
|
+
let ancestor = element.parentNode;
|
41
|
+
|
42
|
+
while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
|
43
|
+
if (ancestor.matches(selector)) {
|
44
|
+
parents.push(ancestor);
|
45
|
+
}
|
46
|
+
|
47
|
+
ancestor = ancestor.parentNode;
|
48
|
+
}
|
49
|
+
|
50
|
+
return parents;
|
51
|
+
},
|
52
|
+
|
53
|
+
prev(element, selector) {
|
54
|
+
let previous = element.previousElementSibling;
|
55
|
+
|
56
|
+
while (previous) {
|
57
|
+
if (previous.matches(selector)) {
|
58
|
+
return [previous];
|
59
|
+
}
|
60
|
+
|
61
|
+
previous = previous.previousElementSibling;
|
62
|
+
}
|
63
|
+
|
64
|
+
return [];
|
65
|
+
},
|
66
|
+
|
67
|
+
next(element, selector) {
|
68
|
+
let next = element.nextElementSibling;
|
69
|
+
|
70
|
+
while (next) {
|
71
|
+
if (next.matches(selector)) {
|
72
|
+
return [next];
|
73
|
+
}
|
74
|
+
|
75
|
+
next = next.nextElementSibling;
|
76
|
+
}
|
77
|
+
|
78
|
+
return [];
|
79
|
+
}
|
80
|
+
|
81
|
+
};
|
82
|
+
|
83
|
+
/**
|
84
|
+
* --------------------------------------------------------------------------
|
85
|
+
* Bootstrap (v5.0.1): util/index.js
|
86
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
87
|
+
* --------------------------------------------------------------------------
|
88
|
+
*/
|
89
|
+
|
18
90
|
const MAX_UID = 1000000;
|
19
91
|
const MILLISECONDS_MULTIPLIER = 1000;
|
20
92
|
const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
@@ -56,7 +128,7 @@
|
|
56
128
|
|
57
129
|
|
58
130
|
if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
|
59
|
-
hrefAttr =
|
131
|
+
hrefAttr = `#${hrefAttr.split('#')[1]}`;
|
60
132
|
}
|
61
133
|
|
62
134
|
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
@@ -107,7 +179,30 @@
|
|
107
179
|
element.dispatchEvent(new Event(TRANSITION_END));
|
108
180
|
};
|
109
181
|
|
110
|
-
const isElement$1 = obj =>
|
182
|
+
const isElement$1 = obj => {
|
183
|
+
if (!obj || typeof obj !== 'object') {
|
184
|
+
return false;
|
185
|
+
}
|
186
|
+
|
187
|
+
if (typeof obj.jquery !== 'undefined') {
|
188
|
+
obj = obj[0];
|
189
|
+
}
|
190
|
+
|
191
|
+
return typeof obj.nodeType !== 'undefined';
|
192
|
+
};
|
193
|
+
|
194
|
+
const getElement = obj => {
|
195
|
+
if (isElement$1(obj)) {
|
196
|
+
// it's a jQuery object or a node element
|
197
|
+
return obj.jquery ? obj[0] : obj;
|
198
|
+
}
|
199
|
+
|
200
|
+
if (typeof obj === 'string' && obj.length > 0) {
|
201
|
+
return SelectorEngine.findOne(obj);
|
202
|
+
}
|
203
|
+
|
204
|
+
return null;
|
205
|
+
};
|
111
206
|
|
112
207
|
const emulateTransitionEnd = (element, duration) => {
|
113
208
|
let called = false;
|
@@ -134,7 +229,7 @@
|
|
134
229
|
const valueType = value && isElement$1(value) ? 'element' : toType(value);
|
135
230
|
|
136
231
|
if (!new RegExp(expectedTypes).test(valueType)) {
|
137
|
-
throw new TypeError(`${componentName.toUpperCase()}:
|
232
|
+
throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
|
138
233
|
}
|
139
234
|
});
|
140
235
|
};
|
@@ -192,7 +287,7 @@
|
|
192
287
|
return findShadowRoot(element.parentNode);
|
193
288
|
};
|
194
289
|
|
195
|
-
const noop = () =>
|
290
|
+
const noop = () => {};
|
196
291
|
|
197
292
|
const reflow = element => element.offsetHeight;
|
198
293
|
|
@@ -218,12 +313,13 @@
|
|
218
313
|
|
219
314
|
const isRTL = () => document.documentElement.dir === 'rtl';
|
220
315
|
|
221
|
-
const defineJQueryPlugin =
|
316
|
+
const defineJQueryPlugin = plugin => {
|
222
317
|
onDOMContentLoaded(() => {
|
223
318
|
const $ = getjQuery();
|
224
319
|
/* istanbul ignore if */
|
225
320
|
|
226
321
|
if ($) {
|
322
|
+
const name = plugin.NAME;
|
227
323
|
const JQUERY_NO_CONFLICT = $.fn[name];
|
228
324
|
$.fn[name] = plugin.jQueryInterface;
|
229
325
|
$.fn[name].Constructor = plugin;
|
@@ -236,9 +332,15 @@
|
|
236
332
|
});
|
237
333
|
};
|
238
334
|
|
335
|
+
const execute = callback => {
|
336
|
+
if (typeof callback === 'function') {
|
337
|
+
callback();
|
338
|
+
}
|
339
|
+
};
|
340
|
+
|
239
341
|
/**
|
240
342
|
* --------------------------------------------------------------------------
|
241
|
-
* Bootstrap (v5.0.
|
343
|
+
* Bootstrap (v5.0.1): dom/data.js
|
242
344
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
243
345
|
* --------------------------------------------------------------------------
|
244
346
|
*/
|
@@ -292,7 +394,7 @@
|
|
292
394
|
|
293
395
|
/**
|
294
396
|
* --------------------------------------------------------------------------
|
295
|
-
* Bootstrap (v5.0.
|
397
|
+
* Bootstrap (v5.0.1): dom/event-handler.js
|
296
398
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
297
399
|
* --------------------------------------------------------------------------
|
298
400
|
*/
|
@@ -312,6 +414,7 @@
|
|
312
414
|
mouseenter: 'mouseover',
|
313
415
|
mouseleave: 'mouseout'
|
314
416
|
};
|
417
|
+
const customEventsRegex = /^(mouseenter|mouseleave)/i;
|
315
418
|
const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
|
316
419
|
/**
|
317
420
|
* ------------------------------------------------------------------------
|
@@ -355,7 +458,7 @@
|
|
355
458
|
|
356
459
|
if (handler.oneOff) {
|
357
460
|
// eslint-disable-next-line unicorn/consistent-destructuring
|
358
|
-
EventHandler.off(element, event.type, fn);
|
461
|
+
EventHandler.off(element, event.type, selector, fn);
|
359
462
|
}
|
360
463
|
|
361
464
|
return fn.apply(target, [event]);
|
@@ -384,15 +487,8 @@
|
|
384
487
|
|
385
488
|
function normalizeParams(originalTypeEvent, handler, delegationFn) {
|
386
489
|
const delegation = typeof handler === 'string';
|
387
|
-
const originalHandler = delegation ? delegationFn : handler;
|
388
|
-
|
389
|
-
let typeEvent = originalTypeEvent.replace(stripNameRegex, '');
|
390
|
-
const custom = customEvents[typeEvent];
|
391
|
-
|
392
|
-
if (custom) {
|
393
|
-
typeEvent = custom;
|
394
|
-
}
|
395
|
-
|
490
|
+
const originalHandler = delegation ? delegationFn : handler;
|
491
|
+
let typeEvent = getTypeEvent(originalTypeEvent);
|
396
492
|
const isNative = nativeEvents.has(typeEvent);
|
397
493
|
|
398
494
|
if (!isNative) {
|
@@ -410,6 +506,24 @@
|
|
410
506
|
if (!handler) {
|
411
507
|
handler = delegationFn;
|
412
508
|
delegationFn = null;
|
509
|
+
} // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
|
510
|
+
// this prevents the handler from being dispatched the same way as mouseover or mouseout does
|
511
|
+
|
512
|
+
|
513
|
+
if (customEventsRegex.test(originalTypeEvent)) {
|
514
|
+
const wrapFn = fn => {
|
515
|
+
return function (event) {
|
516
|
+
if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
|
517
|
+
return fn.call(this, event);
|
518
|
+
}
|
519
|
+
};
|
520
|
+
};
|
521
|
+
|
522
|
+
if (delegationFn) {
|
523
|
+
delegationFn = wrapFn(delegationFn);
|
524
|
+
} else {
|
525
|
+
handler = wrapFn(handler);
|
526
|
+
}
|
413
527
|
}
|
414
528
|
|
415
529
|
const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);
|
@@ -453,6 +567,12 @@
|
|
453
567
|
});
|
454
568
|
}
|
455
569
|
|
570
|
+
function getTypeEvent(event) {
|
571
|
+
// allow to get the native events from namespaced events ('click.bs.button' --> 'click')
|
572
|
+
event = event.replace(stripNameRegex, '');
|
573
|
+
return customEvents[event] || event;
|
574
|
+
}
|
575
|
+
|
456
576
|
const EventHandler = {
|
457
577
|
on(element, event, handler, delegationFn) {
|
458
578
|
addHandler(element, event, handler, delegationFn, false);
|
@@ -505,7 +625,7 @@
|
|
505
625
|
}
|
506
626
|
|
507
627
|
const $ = getjQuery();
|
508
|
-
const typeEvent = event
|
628
|
+
const typeEvent = getTypeEvent(event);
|
509
629
|
const inNamespace = event !== typeEvent;
|
510
630
|
const isNative = nativeEvents.has(typeEvent);
|
511
631
|
let jQueryEvent;
|
@@ -563,7 +683,7 @@
|
|
563
683
|
|
564
684
|
/**
|
565
685
|
* --------------------------------------------------------------------------
|
566
|
-
* Bootstrap (v5.0.
|
686
|
+
* Bootstrap (v5.0.1): base-component.js
|
567
687
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
568
688
|
* --------------------------------------------------------------------------
|
569
689
|
*/
|
@@ -573,11 +693,11 @@
|
|
573
693
|
* ------------------------------------------------------------------------
|
574
694
|
*/
|
575
695
|
|
576
|
-
const VERSION = '5.0.
|
696
|
+
const VERSION = '5.0.1';
|
577
697
|
|
578
698
|
class BaseComponent {
|
579
699
|
constructor(element) {
|
580
|
-
element =
|
700
|
+
element = getElement(element);
|
581
701
|
|
582
702
|
if (!element) {
|
583
703
|
return;
|
@@ -589,7 +709,21 @@
|
|
589
709
|
|
590
710
|
dispose() {
|
591
711
|
Data.remove(this._element, this.constructor.DATA_KEY);
|
592
|
-
this._element
|
712
|
+
EventHandler.off(this._element, this.constructor.EVENT_KEY);
|
713
|
+
Object.getOwnPropertyNames(this).forEach(propertyName => {
|
714
|
+
this[propertyName] = null;
|
715
|
+
});
|
716
|
+
}
|
717
|
+
|
718
|
+
_queueCallback(callback, element, isAnimated = true) {
|
719
|
+
if (!isAnimated) {
|
720
|
+
execute(callback);
|
721
|
+
return;
|
722
|
+
}
|
723
|
+
|
724
|
+
const transitionDuration = getTransitionDurationFromElement(element);
|
725
|
+
EventHandler.one(element, 'transitionend', () => execute(callback));
|
726
|
+
emulateTransitionEnd(element, transitionDuration);
|
593
727
|
}
|
594
728
|
/** Static */
|
595
729
|
|
@@ -602,11 +736,23 @@
|
|
602
736
|
return VERSION;
|
603
737
|
}
|
604
738
|
|
739
|
+
static get NAME() {
|
740
|
+
throw new Error('You have to implement the static method "NAME", for each component!');
|
741
|
+
}
|
742
|
+
|
743
|
+
static get DATA_KEY() {
|
744
|
+
return `bs.${this.NAME}`;
|
745
|
+
}
|
746
|
+
|
747
|
+
static get EVENT_KEY() {
|
748
|
+
return `.${this.DATA_KEY}`;
|
749
|
+
}
|
750
|
+
|
605
751
|
}
|
606
752
|
|
607
753
|
/**
|
608
754
|
* --------------------------------------------------------------------------
|
609
|
-
* Bootstrap (v5.0.
|
755
|
+
* Bootstrap (v5.0.1): alert.js
|
610
756
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
611
757
|
* --------------------------------------------------------------------------
|
612
758
|
*/
|
@@ -616,7 +762,7 @@
|
|
616
762
|
* ------------------------------------------------------------------------
|
617
763
|
*/
|
618
764
|
|
619
|
-
const NAME$
|
765
|
+
const NAME$c = 'alert';
|
620
766
|
const DATA_KEY$b = 'bs.alert';
|
621
767
|
const EVENT_KEY$b = `.${DATA_KEY$b}`;
|
622
768
|
const DATA_API_KEY$8 = '.data-api';
|
@@ -625,8 +771,8 @@
|
|
625
771
|
const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
|
626
772
|
const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$b}${DATA_API_KEY$8}`;
|
627
773
|
const CLASS_NAME_ALERT = 'alert';
|
628
|
-
const CLASS_NAME_FADE$
|
629
|
-
const CLASS_NAME_SHOW$
|
774
|
+
const CLASS_NAME_FADE$6 = 'fade';
|
775
|
+
const CLASS_NAME_SHOW$9 = 'show';
|
630
776
|
/**
|
631
777
|
* ------------------------------------------------------------------------
|
632
778
|
* Class Definition
|
@@ -635,8 +781,8 @@
|
|
635
781
|
|
636
782
|
class Alert extends BaseComponent {
|
637
783
|
// Getters
|
638
|
-
static get
|
639
|
-
return
|
784
|
+
static get NAME() {
|
785
|
+
return NAME$c;
|
640
786
|
} // Public
|
641
787
|
|
642
788
|
|
@@ -662,17 +808,10 @@
|
|
662
808
|
}
|
663
809
|
|
664
810
|
_removeElement(element) {
|
665
|
-
element.classList.remove(CLASS_NAME_SHOW$
|
666
|
-
|
667
|
-
if (!element.classList.contains(CLASS_NAME_FADE$5)) {
|
668
|
-
this._destroyElement(element);
|
669
|
-
|
670
|
-
return;
|
671
|
-
}
|
811
|
+
element.classList.remove(CLASS_NAME_SHOW$9);
|
812
|
+
const isAnimated = element.classList.contains(CLASS_NAME_FADE$6);
|
672
813
|
|
673
|
-
|
674
|
-
EventHandler.one(element, 'transitionend', () => this._destroyElement(element));
|
675
|
-
emulateTransitionEnd(element, transitionDuration);
|
814
|
+
this._queueCallback(() => this._destroyElement(element), element, isAnimated);
|
676
815
|
}
|
677
816
|
|
678
817
|
_destroyElement(element) {
|
@@ -724,11 +863,11 @@
|
|
724
863
|
* add .Alert to jQuery only if jQuery is present
|
725
864
|
*/
|
726
865
|
|
727
|
-
defineJQueryPlugin(
|
866
|
+
defineJQueryPlugin(Alert);
|
728
867
|
|
729
868
|
/**
|
730
869
|
* --------------------------------------------------------------------------
|
731
|
-
* Bootstrap (v5.0.
|
870
|
+
* Bootstrap (v5.0.1): button.js
|
732
871
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
733
872
|
* --------------------------------------------------------------------------
|
734
873
|
*/
|
@@ -738,7 +877,7 @@
|
|
738
877
|
* ------------------------------------------------------------------------
|
739
878
|
*/
|
740
879
|
|
741
|
-
const NAME$
|
880
|
+
const NAME$b = 'button';
|
742
881
|
const DATA_KEY$a = 'bs.button';
|
743
882
|
const EVENT_KEY$a = `.${DATA_KEY$a}`;
|
744
883
|
const DATA_API_KEY$7 = '.data-api';
|
@@ -753,8 +892,8 @@
|
|
753
892
|
|
754
893
|
class Button extends BaseComponent {
|
755
894
|
// Getters
|
756
|
-
static get
|
757
|
-
return
|
895
|
+
static get NAME() {
|
896
|
+
return NAME$b;
|
758
897
|
} // Public
|
759
898
|
|
760
899
|
|
@@ -804,11 +943,11 @@
|
|
804
943
|
* add .Button to jQuery only if jQuery is present
|
805
944
|
*/
|
806
945
|
|
807
|
-
defineJQueryPlugin(
|
946
|
+
defineJQueryPlugin(Button);
|
808
947
|
|
809
948
|
/**
|
810
949
|
* --------------------------------------------------------------------------
|
811
|
-
* Bootstrap (v5.0.
|
950
|
+
* Bootstrap (v5.0.1): dom/manipulator.js
|
812
951
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
813
952
|
* --------------------------------------------------------------------------
|
814
953
|
*/
|
@@ -882,78 +1021,7 @@
|
|
882
1021
|
|
883
1022
|
/**
|
884
1023
|
* --------------------------------------------------------------------------
|
885
|
-
* Bootstrap (v5.0.
|
886
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
887
|
-
* --------------------------------------------------------------------------
|
888
|
-
*/
|
889
|
-
|
890
|
-
/**
|
891
|
-
* ------------------------------------------------------------------------
|
892
|
-
* Constants
|
893
|
-
* ------------------------------------------------------------------------
|
894
|
-
*/
|
895
|
-
const NODE_TEXT = 3;
|
896
|
-
const SelectorEngine = {
|
897
|
-
find(selector, element = document.documentElement) {
|
898
|
-
return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
|
899
|
-
},
|
900
|
-
|
901
|
-
findOne(selector, element = document.documentElement) {
|
902
|
-
return Element.prototype.querySelector.call(element, selector);
|
903
|
-
},
|
904
|
-
|
905
|
-
children(element, selector) {
|
906
|
-
return [].concat(...element.children).filter(child => child.matches(selector));
|
907
|
-
},
|
908
|
-
|
909
|
-
parents(element, selector) {
|
910
|
-
const parents = [];
|
911
|
-
let ancestor = element.parentNode;
|
912
|
-
|
913
|
-
while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
|
914
|
-
if (ancestor.matches(selector)) {
|
915
|
-
parents.push(ancestor);
|
916
|
-
}
|
917
|
-
|
918
|
-
ancestor = ancestor.parentNode;
|
919
|
-
}
|
920
|
-
|
921
|
-
return parents;
|
922
|
-
},
|
923
|
-
|
924
|
-
prev(element, selector) {
|
925
|
-
let previous = element.previousElementSibling;
|
926
|
-
|
927
|
-
while (previous) {
|
928
|
-
if (previous.matches(selector)) {
|
929
|
-
return [previous];
|
930
|
-
}
|
931
|
-
|
932
|
-
previous = previous.previousElementSibling;
|
933
|
-
}
|
934
|
-
|
935
|
-
return [];
|
936
|
-
},
|
937
|
-
|
938
|
-
next(element, selector) {
|
939
|
-
let next = element.nextElementSibling;
|
940
|
-
|
941
|
-
while (next) {
|
942
|
-
if (next.matches(selector)) {
|
943
|
-
return [next];
|
944
|
-
}
|
945
|
-
|
946
|
-
next = next.nextElementSibling;
|
947
|
-
}
|
948
|
-
|
949
|
-
return [];
|
950
|
-
}
|
951
|
-
|
952
|
-
};
|
953
|
-
|
954
|
-
/**
|
955
|
-
* --------------------------------------------------------------------------
|
956
|
-
* Bootstrap (v5.0.0-beta3): carousel.js
|
1024
|
+
* Bootstrap (v5.0.1): carousel.js
|
957
1025
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
958
1026
|
* --------------------------------------------------------------------------
|
959
1027
|
*/
|
@@ -963,7 +1031,7 @@
|
|
963
1031
|
* ------------------------------------------------------------------------
|
964
1032
|
*/
|
965
1033
|
|
966
|
-
const NAME$
|
1034
|
+
const NAME$a = 'carousel';
|
967
1035
|
const DATA_KEY$9 = 'bs.carousel';
|
968
1036
|
const EVENT_KEY$9 = `.${DATA_KEY$9}`;
|
969
1037
|
const DATA_API_KEY$6 = '.data-api';
|
@@ -972,7 +1040,7 @@
|
|
972
1040
|
const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
|
973
1041
|
|
974
1042
|
const SWIPE_THRESHOLD = 40;
|
975
|
-
const Default$
|
1043
|
+
const Default$9 = {
|
976
1044
|
interval: 5000,
|
977
1045
|
keyboard: true,
|
978
1046
|
slide: false,
|
@@ -980,7 +1048,7 @@
|
|
980
1048
|
wrap: true,
|
981
1049
|
touch: true
|
982
1050
|
};
|
983
|
-
const DefaultType$
|
1051
|
+
const DefaultType$9 = {
|
984
1052
|
interval: '(number|boolean)',
|
985
1053
|
keyboard: 'boolean',
|
986
1054
|
slide: '(boolean|string)',
|
@@ -1051,11 +1119,11 @@
|
|
1051
1119
|
|
1052
1120
|
|
1053
1121
|
static get Default() {
|
1054
|
-
return Default$
|
1122
|
+
return Default$9;
|
1055
1123
|
}
|
1056
1124
|
|
1057
|
-
static get
|
1058
|
-
return
|
1125
|
+
static get NAME() {
|
1126
|
+
return NAME$a;
|
1059
1127
|
} // Public
|
1060
1128
|
|
1061
1129
|
|
@@ -1133,26 +1201,14 @@
|
|
1133
1201
|
const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
|
1134
1202
|
|
1135
1203
|
this._slide(order, this._items[index]);
|
1136
|
-
}
|
1137
|
-
|
1138
|
-
dispose() {
|
1139
|
-
EventHandler.off(this._element, EVENT_KEY$9);
|
1140
|
-
this._items = null;
|
1141
|
-
this._config = null;
|
1142
|
-
this._interval = null;
|
1143
|
-
this._isPaused = null;
|
1144
|
-
this._isSliding = null;
|
1145
|
-
this._activeElement = null;
|
1146
|
-
this._indicatorsElement = null;
|
1147
|
-
super.dispose();
|
1148
1204
|
} // Private
|
1149
1205
|
|
1150
1206
|
|
1151
1207
|
_getConfig(config) {
|
1152
|
-
config = { ...Default$
|
1208
|
+
config = { ...Default$9,
|
1153
1209
|
...config
|
1154
1210
|
};
|
1155
|
-
typeCheckConfig(NAME$
|
1211
|
+
typeCheckConfig(NAME$a, config, DefaultType$9);
|
1156
1212
|
return config;
|
1157
1213
|
}
|
1158
1214
|
|
@@ -1251,11 +1307,11 @@
|
|
1251
1307
|
if (event.key === ARROW_LEFT_KEY) {
|
1252
1308
|
event.preventDefault();
|
1253
1309
|
|
1254
|
-
this._slide(
|
1310
|
+
this._slide(DIRECTION_RIGHT);
|
1255
1311
|
} else if (event.key === ARROW_RIGHT_KEY) {
|
1256
1312
|
event.preventDefault();
|
1257
1313
|
|
1258
|
-
this._slide(
|
1314
|
+
this._slide(DIRECTION_LEFT);
|
1259
1315
|
}
|
1260
1316
|
}
|
1261
1317
|
|
@@ -1373,37 +1429,35 @@
|
|
1373
1429
|
|
1374
1430
|
this._activeElement = nextElement;
|
1375
1431
|
|
1432
|
+
const triggerSlidEvent = () => {
|
1433
|
+
EventHandler.trigger(this._element, EVENT_SLID, {
|
1434
|
+
relatedTarget: nextElement,
|
1435
|
+
direction: eventDirectionName,
|
1436
|
+
from: activeElementIndex,
|
1437
|
+
to: nextElementIndex
|
1438
|
+
});
|
1439
|
+
};
|
1440
|
+
|
1376
1441
|
if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
|
1377
1442
|
nextElement.classList.add(orderClassName);
|
1378
1443
|
reflow(nextElement);
|
1379
1444
|
activeElement.classList.add(directionalClassName);
|
1380
1445
|
nextElement.classList.add(directionalClassName);
|
1381
|
-
|
1382
|
-
|
1446
|
+
|
1447
|
+
const completeCallBack = () => {
|
1383
1448
|
nextElement.classList.remove(directionalClassName, orderClassName);
|
1384
1449
|
nextElement.classList.add(CLASS_NAME_ACTIVE$2);
|
1385
1450
|
activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
|
1386
1451
|
this._isSliding = false;
|
1387
|
-
setTimeout(
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
from: activeElementIndex,
|
1392
|
-
to: nextElementIndex
|
1393
|
-
});
|
1394
|
-
}, 0);
|
1395
|
-
});
|
1396
|
-
emulateTransitionEnd(activeElement, transitionDuration);
|
1452
|
+
setTimeout(triggerSlidEvent, 0);
|
1453
|
+
};
|
1454
|
+
|
1455
|
+
this._queueCallback(completeCallBack, activeElement, true);
|
1397
1456
|
} else {
|
1398
1457
|
activeElement.classList.remove(CLASS_NAME_ACTIVE$2);
|
1399
1458
|
nextElement.classList.add(CLASS_NAME_ACTIVE$2);
|
1400
1459
|
this._isSliding = false;
|
1401
|
-
|
1402
|
-
relatedTarget: nextElement,
|
1403
|
-
direction: eventDirectionName,
|
1404
|
-
from: activeElementIndex,
|
1405
|
-
to: nextElementIndex
|
1406
|
-
});
|
1460
|
+
triggerSlidEvent();
|
1407
1461
|
}
|
1408
1462
|
|
1409
1463
|
if (isCycling) {
|
@@ -1417,10 +1471,10 @@
|
|
1417
1471
|
}
|
1418
1472
|
|
1419
1473
|
if (isRTL()) {
|
1420
|
-
return direction ===
|
1474
|
+
return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
|
1421
1475
|
}
|
1422
1476
|
|
1423
|
-
return direction ===
|
1477
|
+
return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
|
1424
1478
|
}
|
1425
1479
|
|
1426
1480
|
_orderToDirection(order) {
|
@@ -1429,16 +1483,16 @@
|
|
1429
1483
|
}
|
1430
1484
|
|
1431
1485
|
if (isRTL()) {
|
1432
|
-
return order ===
|
1486
|
+
return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
|
1433
1487
|
}
|
1434
1488
|
|
1435
|
-
return order ===
|
1489
|
+
return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
|
1436
1490
|
} // Static
|
1437
1491
|
|
1438
1492
|
|
1439
1493
|
static carouselInterface(element, config) {
|
1440
1494
|
let data = Data.get(element, DATA_KEY$9);
|
1441
|
-
let _config = { ...Default$
|
1495
|
+
let _config = { ...Default$9,
|
1442
1496
|
...Manipulator.getDataAttributes(element)
|
1443
1497
|
};
|
1444
1498
|
|
@@ -1522,11 +1576,11 @@
|
|
1522
1576
|
* add .Carousel to jQuery only if jQuery is present
|
1523
1577
|
*/
|
1524
1578
|
|
1525
|
-
defineJQueryPlugin(
|
1579
|
+
defineJQueryPlugin(Carousel);
|
1526
1580
|
|
1527
1581
|
/**
|
1528
1582
|
* --------------------------------------------------------------------------
|
1529
|
-
* Bootstrap (v5.0.
|
1583
|
+
* Bootstrap (v5.0.1): collapse.js
|
1530
1584
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
1531
1585
|
* --------------------------------------------------------------------------
|
1532
1586
|
*/
|
@@ -1536,15 +1590,15 @@
|
|
1536
1590
|
* ------------------------------------------------------------------------
|
1537
1591
|
*/
|
1538
1592
|
|
1539
|
-
const NAME$
|
1593
|
+
const NAME$9 = 'collapse';
|
1540
1594
|
const DATA_KEY$8 = 'bs.collapse';
|
1541
1595
|
const EVENT_KEY$8 = `.${DATA_KEY$8}`;
|
1542
1596
|
const DATA_API_KEY$5 = '.data-api';
|
1543
|
-
const Default$
|
1597
|
+
const Default$8 = {
|
1544
1598
|
toggle: true,
|
1545
1599
|
parent: ''
|
1546
1600
|
};
|
1547
|
-
const DefaultType$
|
1601
|
+
const DefaultType$8 = {
|
1548
1602
|
toggle: 'boolean',
|
1549
1603
|
parent: '(string|element)'
|
1550
1604
|
};
|
@@ -1553,7 +1607,7 @@
|
|
1553
1607
|
const EVENT_HIDE$5 = `hide${EVENT_KEY$8}`;
|
1554
1608
|
const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$8}`;
|
1555
1609
|
const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
|
1556
|
-
const CLASS_NAME_SHOW$
|
1610
|
+
const CLASS_NAME_SHOW$8 = 'show';
|
1557
1611
|
const CLASS_NAME_COLLAPSE = 'collapse';
|
1558
1612
|
const CLASS_NAME_COLLAPSING = 'collapsing';
|
1559
1613
|
const CLASS_NAME_COLLAPSED = 'collapsed';
|
@@ -1600,16 +1654,16 @@
|
|
1600
1654
|
|
1601
1655
|
|
1602
1656
|
static get Default() {
|
1603
|
-
return Default$
|
1657
|
+
return Default$8;
|
1604
1658
|
}
|
1605
1659
|
|
1606
|
-
static get
|
1607
|
-
return
|
1660
|
+
static get NAME() {
|
1661
|
+
return NAME$9;
|
1608
1662
|
} // Public
|
1609
1663
|
|
1610
1664
|
|
1611
1665
|
toggle() {
|
1612
|
-
if (this._element.classList.contains(CLASS_NAME_SHOW$
|
1666
|
+
if (this._element.classList.contains(CLASS_NAME_SHOW$8)) {
|
1613
1667
|
this.hide();
|
1614
1668
|
} else {
|
1615
1669
|
this.show();
|
@@ -1617,7 +1671,7 @@
|
|
1617
1671
|
}
|
1618
1672
|
|
1619
1673
|
show() {
|
1620
|
-
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$
|
1674
|
+
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$8)) {
|
1621
1675
|
return;
|
1622
1676
|
}
|
1623
1677
|
|
@@ -1687,7 +1741,7 @@
|
|
1687
1741
|
const complete = () => {
|
1688
1742
|
this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
1689
1743
|
|
1690
|
-
this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$
|
1744
|
+
this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$8);
|
1691
1745
|
|
1692
1746
|
this._element.style[dimension] = '';
|
1693
1747
|
this.setTransitioning(false);
|
@@ -1696,14 +1750,14 @@
|
|
1696
1750
|
|
1697
1751
|
const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
1698
1752
|
const scrollSize = `scroll${capitalizedDimension}`;
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1753
|
+
|
1754
|
+
this._queueCallback(complete, this._element, true);
|
1755
|
+
|
1702
1756
|
this._element.style[dimension] = `${this._element[scrollSize]}px`;
|
1703
1757
|
}
|
1704
1758
|
|
1705
1759
|
hide() {
|
1706
|
-
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$
|
1760
|
+
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$8)) {
|
1707
1761
|
return;
|
1708
1762
|
}
|
1709
1763
|
|
@@ -1720,7 +1774,7 @@
|
|
1720
1774
|
|
1721
1775
|
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
1722
1776
|
|
1723
|
-
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$
|
1777
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$8);
|
1724
1778
|
|
1725
1779
|
const triggerArrayLength = this._triggerArray.length;
|
1726
1780
|
|
@@ -1729,7 +1783,7 @@
|
|
1729
1783
|
const trigger = this._triggerArray[i];
|
1730
1784
|
const elem = getElementFromSelector(trigger);
|
1731
1785
|
|
1732
|
-
if (elem && !elem.classList.contains(CLASS_NAME_SHOW$
|
1786
|
+
if (elem && !elem.classList.contains(CLASS_NAME_SHOW$8)) {
|
1733
1787
|
trigger.classList.add(CLASS_NAME_COLLAPSED);
|
1734
1788
|
trigger.setAttribute('aria-expanded', false);
|
1735
1789
|
}
|
@@ -1749,31 +1803,22 @@
|
|
1749
1803
|
};
|
1750
1804
|
|
1751
1805
|
this._element.style[dimension] = '';
|
1752
|
-
|
1753
|
-
|
1754
|
-
emulateTransitionEnd(this._element, transitionDuration);
|
1806
|
+
|
1807
|
+
this._queueCallback(complete, this._element, true);
|
1755
1808
|
}
|
1756
1809
|
|
1757
1810
|
setTransitioning(isTransitioning) {
|
1758
1811
|
this._isTransitioning = isTransitioning;
|
1759
|
-
}
|
1760
|
-
|
1761
|
-
dispose() {
|
1762
|
-
super.dispose();
|
1763
|
-
this._config = null;
|
1764
|
-
this._parent = null;
|
1765
|
-
this._triggerArray = null;
|
1766
|
-
this._isTransitioning = null;
|
1767
|
-
} // Private
|
1812
|
+
} // Private
|
1768
1813
|
|
1769
1814
|
|
1770
1815
|
_getConfig(config) {
|
1771
|
-
config = { ...Default$
|
1816
|
+
config = { ...Default$8,
|
1772
1817
|
...config
|
1773
1818
|
};
|
1774
1819
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
1775
1820
|
|
1776
|
-
typeCheckConfig(NAME$
|
1821
|
+
typeCheckConfig(NAME$9, config, DefaultType$8);
|
1777
1822
|
return config;
|
1778
1823
|
}
|
1779
1824
|
|
@@ -1785,16 +1830,7 @@
|
|
1785
1830
|
let {
|
1786
1831
|
parent
|
1787
1832
|
} = this._config;
|
1788
|
-
|
1789
|
-
if (isElement$1(parent)) {
|
1790
|
-
// it's a jQuery object
|
1791
|
-
if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
|
1792
|
-
parent = parent[0];
|
1793
|
-
}
|
1794
|
-
} else {
|
1795
|
-
parent = SelectorEngine.findOne(parent);
|
1796
|
-
}
|
1797
|
-
|
1833
|
+
parent = getElement(parent);
|
1798
1834
|
const selector = `${SELECTOR_DATA_TOGGLE$4}[data-bs-parent="${parent}"]`;
|
1799
1835
|
SelectorEngine.find(selector, parent).forEach(element => {
|
1800
1836
|
const selected = getElementFromSelector(element);
|
@@ -1809,7 +1845,7 @@
|
|
1809
1845
|
return;
|
1810
1846
|
}
|
1811
1847
|
|
1812
|
-
const isOpen = element.classList.contains(CLASS_NAME_SHOW$
|
1848
|
+
const isOpen = element.classList.contains(CLASS_NAME_SHOW$8);
|
1813
1849
|
triggerArray.forEach(elem => {
|
1814
1850
|
if (isOpen) {
|
1815
1851
|
elem.classList.remove(CLASS_NAME_COLLAPSED);
|
@@ -1824,7 +1860,7 @@
|
|
1824
1860
|
|
1825
1861
|
static collapseInterface(element, config) {
|
1826
1862
|
let data = Data.get(element, DATA_KEY$8);
|
1827
|
-
const _config = { ...Default$
|
1863
|
+
const _config = { ...Default$8,
|
1828
1864
|
...Manipulator.getDataAttributes(element),
|
1829
1865
|
...(typeof config === 'object' && config ? config : {})
|
1830
1866
|
};
|
@@ -1895,7 +1931,7 @@
|
|
1895
1931
|
* add .Collapse to jQuery only if jQuery is present
|
1896
1932
|
*/
|
1897
1933
|
|
1898
|
-
defineJQueryPlugin(
|
1934
|
+
defineJQueryPlugin(Collapse);
|
1899
1935
|
|
1900
1936
|
var top = 'top';
|
1901
1937
|
var bottom = 'bottom';
|
@@ -2159,6 +2195,17 @@
|
|
2159
2195
|
|
2160
2196
|
function getContainingBlock(element) {
|
2161
2197
|
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
|
2198
|
+
var isIE = navigator.userAgent.indexOf('Trident') !== -1;
|
2199
|
+
|
2200
|
+
if (isIE && isHTMLElement(element)) {
|
2201
|
+
// In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
|
2202
|
+
var elementCss = getComputedStyle$1(element);
|
2203
|
+
|
2204
|
+
if (elementCss.position === 'fixed') {
|
2205
|
+
return null;
|
2206
|
+
}
|
2207
|
+
}
|
2208
|
+
|
2162
2209
|
var currentNode = getParentNode(element);
|
2163
2210
|
|
2164
2211
|
while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
|
@@ -3642,7 +3689,7 @@
|
|
3642
3689
|
|
3643
3690
|
/**
|
3644
3691
|
* --------------------------------------------------------------------------
|
3645
|
-
* Bootstrap (v5.0.
|
3692
|
+
* Bootstrap (v5.0.1): dropdown.js
|
3646
3693
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
3647
3694
|
* --------------------------------------------------------------------------
|
3648
3695
|
*/
|
@@ -3652,7 +3699,7 @@
|
|
3652
3699
|
* ------------------------------------------------------------------------
|
3653
3700
|
*/
|
3654
3701
|
|
3655
|
-
const NAME$
|
3702
|
+
const NAME$8 = 'dropdown';
|
3656
3703
|
const DATA_KEY$7 = 'bs.dropdown';
|
3657
3704
|
const EVENT_KEY$7 = `.${DATA_KEY$7}`;
|
3658
3705
|
const DATA_API_KEY$4 = '.data-api';
|
@@ -3672,8 +3719,7 @@
|
|
3672
3719
|
const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
|
3673
3720
|
const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$7}${DATA_API_KEY$4}`;
|
3674
3721
|
const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$7}${DATA_API_KEY$4}`;
|
3675
|
-
const
|
3676
|
-
const CLASS_NAME_SHOW$6 = 'show';
|
3722
|
+
const CLASS_NAME_SHOW$7 = 'show';
|
3677
3723
|
const CLASS_NAME_DROPUP = 'dropup';
|
3678
3724
|
const CLASS_NAME_DROPEND = 'dropend';
|
3679
3725
|
const CLASS_NAME_DROPSTART = 'dropstart';
|
@@ -3688,19 +3734,21 @@
|
|
3688
3734
|
const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';
|
3689
3735
|
const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';
|
3690
3736
|
const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
|
3691
|
-
const Default$
|
3737
|
+
const Default$7 = {
|
3692
3738
|
offset: [0, 2],
|
3693
3739
|
boundary: 'clippingParents',
|
3694
3740
|
reference: 'toggle',
|
3695
3741
|
display: 'dynamic',
|
3696
|
-
popperConfig: null
|
3742
|
+
popperConfig: null,
|
3743
|
+
autoClose: true
|
3697
3744
|
};
|
3698
|
-
const DefaultType$
|
3745
|
+
const DefaultType$7 = {
|
3699
3746
|
offset: '(array|string|function)',
|
3700
3747
|
boundary: '(string|element)',
|
3701
3748
|
reference: '(string|element|object)',
|
3702
3749
|
display: 'string',
|
3703
|
-
popperConfig: '(null|object|function)'
|
3750
|
+
popperConfig: '(null|object|function)',
|
3751
|
+
autoClose: '(boolean|string)'
|
3704
3752
|
};
|
3705
3753
|
/**
|
3706
3754
|
* ------------------------------------------------------------------------
|
@@ -3721,28 +3769,27 @@
|
|
3721
3769
|
|
3722
3770
|
|
3723
3771
|
static get Default() {
|
3724
|
-
return Default$
|
3772
|
+
return Default$7;
|
3725
3773
|
}
|
3726
3774
|
|
3727
3775
|
static get DefaultType() {
|
3728
|
-
return DefaultType$
|
3776
|
+
return DefaultType$7;
|
3729
3777
|
}
|
3730
3778
|
|
3731
|
-
static get
|
3732
|
-
return
|
3779
|
+
static get NAME() {
|
3780
|
+
return NAME$8;
|
3733
3781
|
} // Public
|
3734
3782
|
|
3735
3783
|
|
3736
3784
|
toggle() {
|
3737
|
-
if (this._element
|
3785
|
+
if (isDisabled(this._element)) {
|
3738
3786
|
return;
|
3739
3787
|
}
|
3740
3788
|
|
3741
|
-
const isActive = this._element.classList.contains(CLASS_NAME_SHOW$
|
3742
|
-
|
3743
|
-
Dropdown.clearMenus();
|
3789
|
+
const isActive = this._element.classList.contains(CLASS_NAME_SHOW$7);
|
3744
3790
|
|
3745
3791
|
if (isActive) {
|
3792
|
+
this.hide();
|
3746
3793
|
return;
|
3747
3794
|
}
|
3748
3795
|
|
@@ -3750,7 +3797,7 @@
|
|
3750
3797
|
}
|
3751
3798
|
|
3752
3799
|
show() {
|
3753
|
-
if (this._element
|
3800
|
+
if (isDisabled(this._element) || this._menu.classList.contains(CLASS_NAME_SHOW$7)) {
|
3754
3801
|
return;
|
3755
3802
|
}
|
3756
3803
|
|
@@ -3777,11 +3824,7 @@
|
|
3777
3824
|
if (this._config.reference === 'parent') {
|
3778
3825
|
referenceElement = parent;
|
3779
3826
|
} else if (isElement$1(this._config.reference)) {
|
3780
|
-
referenceElement = this._config.reference;
|
3781
|
-
|
3782
|
-
if (typeof this._config.reference.jquery !== 'undefined') {
|
3783
|
-
referenceElement = this._config.reference[0];
|
3784
|
-
}
|
3827
|
+
referenceElement = getElement(this._config.reference);
|
3785
3828
|
} else if (typeof this._config.reference === 'object') {
|
3786
3829
|
referenceElement = this._config.reference;
|
3787
3830
|
}
|
@@ -3801,54 +3844,35 @@
|
|
3801
3844
|
|
3802
3845
|
|
3803
3846
|
if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
|
3804
|
-
[].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover',
|
3847
|
+
[].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', noop));
|
3805
3848
|
}
|
3806
3849
|
|
3807
3850
|
this._element.focus();
|
3808
3851
|
|
3809
3852
|
this._element.setAttribute('aria-expanded', true);
|
3810
3853
|
|
3811
|
-
this._menu.classList.toggle(CLASS_NAME_SHOW$
|
3854
|
+
this._menu.classList.toggle(CLASS_NAME_SHOW$7);
|
3812
3855
|
|
3813
|
-
this._element.classList.toggle(CLASS_NAME_SHOW$
|
3856
|
+
this._element.classList.toggle(CLASS_NAME_SHOW$7);
|
3814
3857
|
|
3815
3858
|
EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);
|
3816
3859
|
}
|
3817
3860
|
|
3818
3861
|
hide() {
|
3819
|
-
if (this._element
|
3862
|
+
if (isDisabled(this._element) || !this._menu.classList.contains(CLASS_NAME_SHOW$7)) {
|
3820
3863
|
return;
|
3821
3864
|
}
|
3822
3865
|
|
3823
3866
|
const relatedTarget = {
|
3824
3867
|
relatedTarget: this._element
|
3825
3868
|
};
|
3826
|
-
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);
|
3827
|
-
|
3828
|
-
if (hideEvent.defaultPrevented) {
|
3829
|
-
return;
|
3830
|
-
}
|
3831
|
-
|
3832
|
-
if (this._popper) {
|
3833
|
-
this._popper.destroy();
|
3834
|
-
}
|
3835
|
-
|
3836
|
-
this._menu.classList.toggle(CLASS_NAME_SHOW$6);
|
3837
3869
|
|
3838
|
-
this.
|
3839
|
-
|
3840
|
-
Manipulator.removeDataAttribute(this._menu, 'popper');
|
3841
|
-
EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);
|
3870
|
+
this._completeHide(relatedTarget);
|
3842
3871
|
}
|
3843
3872
|
|
3844
3873
|
dispose() {
|
3845
|
-
EventHandler.off(this._element, EVENT_KEY$7);
|
3846
|
-
this._menu = null;
|
3847
|
-
|
3848
3874
|
if (this._popper) {
|
3849
3875
|
this._popper.destroy();
|
3850
|
-
|
3851
|
-
this._popper = null;
|
3852
3876
|
}
|
3853
3877
|
|
3854
3878
|
super.dispose();
|
@@ -3870,16 +3894,43 @@
|
|
3870
3894
|
});
|
3871
3895
|
}
|
3872
3896
|
|
3897
|
+
_completeHide(relatedTarget) {
|
3898
|
+
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);
|
3899
|
+
|
3900
|
+
if (hideEvent.defaultPrevented) {
|
3901
|
+
return;
|
3902
|
+
} // If this is a touch-enabled device we remove the extra
|
3903
|
+
// empty mouseover listeners we added for iOS support
|
3904
|
+
|
3905
|
+
|
3906
|
+
if ('ontouchstart' in document.documentElement) {
|
3907
|
+
[].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', noop));
|
3908
|
+
}
|
3909
|
+
|
3910
|
+
if (this._popper) {
|
3911
|
+
this._popper.destroy();
|
3912
|
+
}
|
3913
|
+
|
3914
|
+
this._menu.classList.remove(CLASS_NAME_SHOW$7);
|
3915
|
+
|
3916
|
+
this._element.classList.remove(CLASS_NAME_SHOW$7);
|
3917
|
+
|
3918
|
+
this._element.setAttribute('aria-expanded', 'false');
|
3919
|
+
|
3920
|
+
Manipulator.removeDataAttribute(this._menu, 'popper');
|
3921
|
+
EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);
|
3922
|
+
}
|
3923
|
+
|
3873
3924
|
_getConfig(config) {
|
3874
3925
|
config = { ...this.constructor.Default,
|
3875
3926
|
...Manipulator.getDataAttributes(this._element),
|
3876
3927
|
...config
|
3877
3928
|
};
|
3878
|
-
typeCheckConfig(NAME$
|
3929
|
+
typeCheckConfig(NAME$8, config, this.constructor.DefaultType);
|
3879
3930
|
|
3880
3931
|
if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
|
3881
3932
|
// Popper virtual elements require a getBoundingClientRect method
|
3882
|
-
throw new TypeError(`${NAME$
|
3933
|
+
throw new TypeError(`${NAME$8.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
|
3883
3934
|
}
|
3884
3935
|
|
3885
3936
|
return config;
|
@@ -3956,6 +4007,29 @@
|
|
3956
4007
|
return { ...defaultBsPopperConfig,
|
3957
4008
|
...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)
|
3958
4009
|
};
|
4010
|
+
}
|
4011
|
+
|
4012
|
+
_selectMenuItem(event) {
|
4013
|
+
const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);
|
4014
|
+
|
4015
|
+
if (!items.length) {
|
4016
|
+
return;
|
4017
|
+
}
|
4018
|
+
|
4019
|
+
let index = items.indexOf(event.target); // Up
|
4020
|
+
|
4021
|
+
if (event.key === ARROW_UP_KEY && index > 0) {
|
4022
|
+
index--;
|
4023
|
+
} // Down
|
4024
|
+
|
4025
|
+
|
4026
|
+
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
|
4027
|
+
index++;
|
4028
|
+
} // index is -1 if the first keydown is an ArrowUp
|
4029
|
+
|
4030
|
+
|
4031
|
+
index = index === -1 ? 0 : index;
|
4032
|
+
items[index].focus();
|
3959
4033
|
} // Static
|
3960
4034
|
|
3961
4035
|
|
@@ -3984,72 +4058,46 @@
|
|
3984
4058
|
}
|
3985
4059
|
|
3986
4060
|
static clearMenus(event) {
|
3987
|
-
if (event) {
|
3988
|
-
|
3989
|
-
return;
|
3990
|
-
}
|
3991
|
-
|
3992
|
-
if (/input|select|textarea|form/i.test(event.target.tagName)) {
|
3993
|
-
return;
|
3994
|
-
}
|
4061
|
+
if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
|
4062
|
+
return;
|
3995
4063
|
}
|
3996
4064
|
|
3997
4065
|
const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);
|
3998
4066
|
|
3999
4067
|
for (let i = 0, len = toggles.length; i < len; i++) {
|
4000
4068
|
const context = Data.get(toggles[i], DATA_KEY$7);
|
4001
|
-
const relatedTarget = {
|
4002
|
-
relatedTarget: toggles[i]
|
4003
|
-
};
|
4004
4069
|
|
4005
|
-
if (
|
4006
|
-
relatedTarget.clickEvent = event;
|
4007
|
-
}
|
4008
|
-
|
4009
|
-
if (!context) {
|
4070
|
+
if (!context || context._config.autoClose === false) {
|
4010
4071
|
continue;
|
4011
4072
|
}
|
4012
4073
|
|
4013
|
-
|
4014
|
-
|
4015
|
-
if (!toggles[i].classList.contains(CLASS_NAME_SHOW$6)) {
|
4074
|
+
if (!context._element.classList.contains(CLASS_NAME_SHOW$7)) {
|
4016
4075
|
continue;
|
4017
4076
|
}
|
4018
4077
|
|
4078
|
+
const relatedTarget = {
|
4079
|
+
relatedTarget: context._element
|
4080
|
+
};
|
4081
|
+
|
4019
4082
|
if (event) {
|
4020
|
-
|
4021
|
-
|
4083
|
+
const composedPath = event.composedPath();
|
4084
|
+
const isMenuTarget = composedPath.includes(context._menu);
|
4085
|
+
|
4086
|
+
if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
|
4022
4087
|
continue;
|
4023
|
-
} // Tab navigation through the dropdown menu shouldn't close the menu
|
4088
|
+
} // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
|
4024
4089
|
|
4025
4090
|
|
4026
|
-
if (event.type === 'keyup' && event.key === TAB_KEY
|
4091
|
+
if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) {
|
4027
4092
|
continue;
|
4028
4093
|
}
|
4029
|
-
}
|
4030
|
-
|
4031
|
-
const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE$4, relatedTarget);
|
4032
|
-
|
4033
|
-
if (hideEvent.defaultPrevented) {
|
4034
|
-
continue;
|
4035
|
-
} // If this is a touch-enabled device we remove the extra
|
4036
|
-
// empty mouseover listeners we added for iOS support
|
4037
|
-
|
4038
|
-
|
4039
|
-
if ('ontouchstart' in document.documentElement) {
|
4040
|
-
[].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()));
|
4041
|
-
}
|
4042
|
-
|
4043
|
-
toggles[i].setAttribute('aria-expanded', 'false');
|
4044
4094
|
|
4045
|
-
|
4046
|
-
|
4095
|
+
if (event.type === 'click') {
|
4096
|
+
relatedTarget.clickEvent = event;
|
4097
|
+
}
|
4047
4098
|
}
|
4048
4099
|
|
4049
|
-
|
4050
|
-
toggles[i].classList.remove(CLASS_NAME_SHOW$6);
|
4051
|
-
Manipulator.removeDataAttribute(dropdownMenu, 'popper');
|
4052
|
-
EventHandler.trigger(toggles[i], EVENT_HIDDEN$4, relatedTarget);
|
4100
|
+
context._completeHide(relatedTarget);
|
4053
4101
|
}
|
4054
4102
|
}
|
4055
4103
|
|
@@ -4069,26 +4117,29 @@
|
|
4069
4117
|
return;
|
4070
4118
|
}
|
4071
4119
|
|
4120
|
+
const isActive = this.classList.contains(CLASS_NAME_SHOW$7);
|
4121
|
+
|
4122
|
+
if (!isActive && event.key === ESCAPE_KEY$2) {
|
4123
|
+
return;
|
4124
|
+
}
|
4125
|
+
|
4072
4126
|
event.preventDefault();
|
4073
4127
|
event.stopPropagation();
|
4074
4128
|
|
4075
|
-
if (this
|
4129
|
+
if (isDisabled(this)) {
|
4076
4130
|
return;
|
4077
4131
|
}
|
4078
4132
|
|
4079
|
-
const
|
4080
|
-
const isActive = this.classList.contains(CLASS_NAME_SHOW$6);
|
4133
|
+
const getToggleButton = () => this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];
|
4081
4134
|
|
4082
4135
|
if (event.key === ESCAPE_KEY$2) {
|
4083
|
-
|
4084
|
-
button.focus();
|
4136
|
+
getToggleButton().focus();
|
4085
4137
|
Dropdown.clearMenus();
|
4086
4138
|
return;
|
4087
4139
|
}
|
4088
4140
|
|
4089
4141
|
if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {
|
4090
|
-
|
4091
|
-
button.click();
|
4142
|
+
getToggleButton().click();
|
4092
4143
|
return;
|
4093
4144
|
}
|
4094
4145
|
|
@@ -4097,26 +4148,7 @@
|
|
4097
4148
|
return;
|
4098
4149
|
}
|
4099
4150
|
|
4100
|
-
|
4101
|
-
|
4102
|
-
if (!items.length) {
|
4103
|
-
return;
|
4104
|
-
}
|
4105
|
-
|
4106
|
-
let index = items.indexOf(event.target); // Up
|
4107
|
-
|
4108
|
-
if (event.key === ARROW_UP_KEY && index > 0) {
|
4109
|
-
index--;
|
4110
|
-
} // Down
|
4111
|
-
|
4112
|
-
|
4113
|
-
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
|
4114
|
-
index++;
|
4115
|
-
} // index is -1 if the first keydown is an ArrowUp
|
4116
|
-
|
4117
|
-
|
4118
|
-
index = index === -1 ? 0 : index;
|
4119
|
-
items[index].focus();
|
4151
|
+
Dropdown.getInstance(getToggleButton())._selectMenuItem(event);
|
4120
4152
|
}
|
4121
4153
|
|
4122
4154
|
}
|
@@ -4142,11 +4174,214 @@
|
|
4142
4174
|
* add .Dropdown to jQuery only if jQuery is present
|
4143
4175
|
*/
|
4144
4176
|
|
4145
|
-
defineJQueryPlugin(
|
4177
|
+
defineJQueryPlugin(Dropdown);
|
4146
4178
|
|
4147
4179
|
/**
|
4148
4180
|
* --------------------------------------------------------------------------
|
4149
|
-
* Bootstrap (v5.0.
|
4181
|
+
* Bootstrap (v5.0.1): util/scrollBar.js
|
4182
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
4183
|
+
* --------------------------------------------------------------------------
|
4184
|
+
*/
|
4185
|
+
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
|
4186
|
+
const SELECTOR_STICKY_CONTENT = '.sticky-top';
|
4187
|
+
|
4188
|
+
const getWidth = () => {
|
4189
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
|
4190
|
+
const documentWidth = document.documentElement.clientWidth;
|
4191
|
+
return Math.abs(window.innerWidth - documentWidth);
|
4192
|
+
};
|
4193
|
+
|
4194
|
+
const hide = (width = getWidth()) => {
|
4195
|
+
_disableOverFlow(); // give padding to element to balances the hidden scrollbar width
|
4196
|
+
|
4197
|
+
|
4198
|
+
_setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements, to keep shown fullwidth
|
4199
|
+
|
4200
|
+
|
4201
|
+
_setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);
|
4202
|
+
|
4203
|
+
_setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);
|
4204
|
+
};
|
4205
|
+
|
4206
|
+
const _disableOverFlow = () => {
|
4207
|
+
const actualValue = document.body.style.overflow;
|
4208
|
+
|
4209
|
+
if (actualValue) {
|
4210
|
+
Manipulator.setDataAttribute(document.body, 'overflow', actualValue);
|
4211
|
+
}
|
4212
|
+
|
4213
|
+
document.body.style.overflow = 'hidden';
|
4214
|
+
};
|
4215
|
+
|
4216
|
+
const _setElementAttributes = (selector, styleProp, callback) => {
|
4217
|
+
const scrollbarWidth = getWidth();
|
4218
|
+
SelectorEngine.find(selector).forEach(element => {
|
4219
|
+
if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {
|
4220
|
+
return;
|
4221
|
+
}
|
4222
|
+
|
4223
|
+
const actualValue = element.style[styleProp];
|
4224
|
+
const calculatedValue = window.getComputedStyle(element)[styleProp];
|
4225
|
+
Manipulator.setDataAttribute(element, styleProp, actualValue);
|
4226
|
+
element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;
|
4227
|
+
});
|
4228
|
+
};
|
4229
|
+
|
4230
|
+
const reset = () => {
|
4231
|
+
_resetElementAttributes('body', 'overflow');
|
4232
|
+
|
4233
|
+
_resetElementAttributes('body', 'paddingRight');
|
4234
|
+
|
4235
|
+
_resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
|
4236
|
+
|
4237
|
+
_resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
|
4238
|
+
};
|
4239
|
+
|
4240
|
+
const _resetElementAttributes = (selector, styleProp) => {
|
4241
|
+
SelectorEngine.find(selector).forEach(element => {
|
4242
|
+
const value = Manipulator.getDataAttribute(element, styleProp);
|
4243
|
+
|
4244
|
+
if (typeof value === 'undefined') {
|
4245
|
+
element.style.removeProperty(styleProp);
|
4246
|
+
} else {
|
4247
|
+
Manipulator.removeDataAttribute(element, styleProp);
|
4248
|
+
element.style[styleProp] = value;
|
4249
|
+
}
|
4250
|
+
});
|
4251
|
+
};
|
4252
|
+
|
4253
|
+
/**
|
4254
|
+
* --------------------------------------------------------------------------
|
4255
|
+
* Bootstrap (v5.0.1): util/backdrop.js
|
4256
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
4257
|
+
* --------------------------------------------------------------------------
|
4258
|
+
*/
|
4259
|
+
const Default$6 = {
|
4260
|
+
isVisible: true,
|
4261
|
+
// if false, we use the backdrop helper without adding any element to the dom
|
4262
|
+
isAnimated: false,
|
4263
|
+
rootElement: document.body,
|
4264
|
+
// give the choice to place backdrop under different elements
|
4265
|
+
clickCallback: null
|
4266
|
+
};
|
4267
|
+
const DefaultType$6 = {
|
4268
|
+
isVisible: 'boolean',
|
4269
|
+
isAnimated: 'boolean',
|
4270
|
+
rootElement: 'element',
|
4271
|
+
clickCallback: '(function|null)'
|
4272
|
+
};
|
4273
|
+
const NAME$7 = 'backdrop';
|
4274
|
+
const CLASS_NAME_BACKDROP = 'modal-backdrop';
|
4275
|
+
const CLASS_NAME_FADE$5 = 'fade';
|
4276
|
+
const CLASS_NAME_SHOW$6 = 'show';
|
4277
|
+
const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$7}`;
|
4278
|
+
|
4279
|
+
class Backdrop {
|
4280
|
+
constructor(config) {
|
4281
|
+
this._config = this._getConfig(config);
|
4282
|
+
this._isAppended = false;
|
4283
|
+
this._element = null;
|
4284
|
+
}
|
4285
|
+
|
4286
|
+
show(callback) {
|
4287
|
+
if (!this._config.isVisible) {
|
4288
|
+
execute(callback);
|
4289
|
+
return;
|
4290
|
+
}
|
4291
|
+
|
4292
|
+
this._append();
|
4293
|
+
|
4294
|
+
if (this._config.isAnimated) {
|
4295
|
+
reflow(this._getElement());
|
4296
|
+
}
|
4297
|
+
|
4298
|
+
this._getElement().classList.add(CLASS_NAME_SHOW$6);
|
4299
|
+
|
4300
|
+
this._emulateAnimation(() => {
|
4301
|
+
execute(callback);
|
4302
|
+
});
|
4303
|
+
}
|
4304
|
+
|
4305
|
+
hide(callback) {
|
4306
|
+
if (!this._config.isVisible) {
|
4307
|
+
execute(callback);
|
4308
|
+
return;
|
4309
|
+
}
|
4310
|
+
|
4311
|
+
this._getElement().classList.remove(CLASS_NAME_SHOW$6);
|
4312
|
+
|
4313
|
+
this._emulateAnimation(() => {
|
4314
|
+
this.dispose();
|
4315
|
+
execute(callback);
|
4316
|
+
});
|
4317
|
+
} // Private
|
4318
|
+
|
4319
|
+
|
4320
|
+
_getElement() {
|
4321
|
+
if (!this._element) {
|
4322
|
+
const backdrop = document.createElement('div');
|
4323
|
+
backdrop.className = CLASS_NAME_BACKDROP;
|
4324
|
+
|
4325
|
+
if (this._config.isAnimated) {
|
4326
|
+
backdrop.classList.add(CLASS_NAME_FADE$5);
|
4327
|
+
}
|
4328
|
+
|
4329
|
+
this._element = backdrop;
|
4330
|
+
}
|
4331
|
+
|
4332
|
+
return this._element;
|
4333
|
+
}
|
4334
|
+
|
4335
|
+
_getConfig(config) {
|
4336
|
+
config = { ...Default$6,
|
4337
|
+
...(typeof config === 'object' ? config : {})
|
4338
|
+
};
|
4339
|
+
config.rootElement = config.rootElement || document.body;
|
4340
|
+
typeCheckConfig(NAME$7, config, DefaultType$6);
|
4341
|
+
return config;
|
4342
|
+
}
|
4343
|
+
|
4344
|
+
_append() {
|
4345
|
+
if (this._isAppended) {
|
4346
|
+
return;
|
4347
|
+
}
|
4348
|
+
|
4349
|
+
this._config.rootElement.appendChild(this._getElement());
|
4350
|
+
|
4351
|
+
EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {
|
4352
|
+
execute(this._config.clickCallback);
|
4353
|
+
});
|
4354
|
+
this._isAppended = true;
|
4355
|
+
}
|
4356
|
+
|
4357
|
+
dispose() {
|
4358
|
+
if (!this._isAppended) {
|
4359
|
+
return;
|
4360
|
+
}
|
4361
|
+
|
4362
|
+
EventHandler.off(this._element, EVENT_MOUSEDOWN);
|
4363
|
+
|
4364
|
+
this._getElement().parentNode.removeChild(this._element);
|
4365
|
+
|
4366
|
+
this._isAppended = false;
|
4367
|
+
}
|
4368
|
+
|
4369
|
+
_emulateAnimation(callback) {
|
4370
|
+
if (!this._config.isAnimated) {
|
4371
|
+
execute(callback);
|
4372
|
+
return;
|
4373
|
+
}
|
4374
|
+
|
4375
|
+
const backdropTransitionDuration = getTransitionDurationFromElement(this._getElement());
|
4376
|
+
EventHandler.one(this._getElement(), 'transitionend', () => execute(callback));
|
4377
|
+
emulateTransitionEnd(this._getElement(), backdropTransitionDuration);
|
4378
|
+
}
|
4379
|
+
|
4380
|
+
}
|
4381
|
+
|
4382
|
+
/**
|
4383
|
+
* --------------------------------------------------------------------------
|
4384
|
+
* Bootstrap (v5.0.1): modal.js
|
4150
4385
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
4151
4386
|
* --------------------------------------------------------------------------
|
4152
4387
|
*/
|
@@ -4176,15 +4411,13 @@
|
|
4176
4411
|
const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`;
|
4177
4412
|
const EVENT_SHOW$3 = `show${EVENT_KEY$6}`;
|
4178
4413
|
const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`;
|
4179
|
-
const EVENT_FOCUSIN$
|
4414
|
+
const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$6}`;
|
4180
4415
|
const EVENT_RESIZE = `resize${EVENT_KEY$6}`;
|
4181
4416
|
const EVENT_CLICK_DISMISS$2 = `click.dismiss${EVENT_KEY$6}`;
|
4182
|
-
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$6}`;
|
4417
|
+
const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`;
|
4183
4418
|
const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`;
|
4184
4419
|
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`;
|
4185
4420
|
const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
|
4186
|
-
const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
|
4187
|
-
const CLASS_NAME_BACKDROP = 'modal-backdrop';
|
4188
4421
|
const CLASS_NAME_OPEN = 'modal-open';
|
4189
4422
|
const CLASS_NAME_FADE$4 = 'fade';
|
4190
4423
|
const CLASS_NAME_SHOW$5 = 'show';
|
@@ -4193,8 +4426,6 @@
|
|
4193
4426
|
const SELECTOR_MODAL_BODY = '.modal-body';
|
4194
4427
|
const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
|
4195
4428
|
const SELECTOR_DATA_DISMISS$2 = '[data-bs-dismiss="modal"]';
|
4196
|
-
const SELECTOR_FIXED_CONTENT$1 = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
|
4197
|
-
const SELECTOR_STICKY_CONTENT$1 = '.sticky-top';
|
4198
4429
|
/**
|
4199
4430
|
* ------------------------------------------------------------------------
|
4200
4431
|
* Class Definition
|
@@ -4206,12 +4437,10 @@
|
|
4206
4437
|
super(element);
|
4207
4438
|
this._config = this._getConfig(config);
|
4208
4439
|
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
|
4209
|
-
this._backdrop =
|
4440
|
+
this._backdrop = this._initializeBackDrop();
|
4210
4441
|
this._isShown = false;
|
4211
|
-
this._isBodyOverflowing = false;
|
4212
4442
|
this._ignoreBackdropClick = false;
|
4213
4443
|
this._isTransitioning = false;
|
4214
|
-
this._scrollbarWidth = 0;
|
4215
4444
|
} // Getters
|
4216
4445
|
|
4217
4446
|
|
@@ -4219,8 +4448,8 @@
|
|
4219
4448
|
return Default$5;
|
4220
4449
|
}
|
4221
4450
|
|
4222
|
-
static get
|
4223
|
-
return
|
4451
|
+
static get NAME() {
|
4452
|
+
return NAME$6;
|
4224
4453
|
} // Public
|
4225
4454
|
|
4226
4455
|
|
@@ -4246,10 +4475,8 @@
|
|
4246
4475
|
}
|
4247
4476
|
|
4248
4477
|
this._isShown = true;
|
4249
|
-
|
4250
|
-
|
4251
|
-
|
4252
|
-
this._setScrollbar();
|
4478
|
+
hide();
|
4479
|
+
document.body.classList.add(CLASS_NAME_OPEN);
|
4253
4480
|
|
4254
4481
|
this._adjustDialog();
|
4255
4482
|
|
@@ -4296,24 +4523,21 @@
|
|
4296
4523
|
|
4297
4524
|
this._setResizeEvent();
|
4298
4525
|
|
4299
|
-
EventHandler.off(document, EVENT_FOCUSIN$
|
4526
|
+
EventHandler.off(document, EVENT_FOCUSIN$2);
|
4300
4527
|
|
4301
4528
|
this._element.classList.remove(CLASS_NAME_SHOW$5);
|
4302
4529
|
|
4303
4530
|
EventHandler.off(this._element, EVENT_CLICK_DISMISS$2);
|
4304
4531
|
EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
|
4305
4532
|
|
4306
|
-
|
4307
|
-
const transitionDuration = getTransitionDurationFromElement(this._element);
|
4308
|
-
EventHandler.one(this._element, 'transitionend', event => this._hideModal(event));
|
4309
|
-
emulateTransitionEnd(this._element, transitionDuration);
|
4310
|
-
} else {
|
4311
|
-
this._hideModal();
|
4312
|
-
}
|
4533
|
+
this._queueCallback(() => this._hideModal(), this._element, isAnimated);
|
4313
4534
|
}
|
4314
4535
|
|
4315
4536
|
dispose() {
|
4316
|
-
[window, this.
|
4537
|
+
[window, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6));
|
4538
|
+
|
4539
|
+
this._backdrop.dispose();
|
4540
|
+
|
4317
4541
|
super.dispose();
|
4318
4542
|
/**
|
4319
4543
|
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
|
@@ -4321,15 +4545,7 @@
|
|
4321
4545
|
* It will remove `EVENT_CLICK_DATA_API` event that should remain
|
4322
4546
|
*/
|
4323
4547
|
|
4324
|
-
EventHandler.off(document, EVENT_FOCUSIN$
|
4325
|
-
this._config = null;
|
4326
|
-
this._dialog = null;
|
4327
|
-
this._backdrop = null;
|
4328
|
-
this._isShown = null;
|
4329
|
-
this._isBodyOverflowing = null;
|
4330
|
-
this._ignoreBackdropClick = null;
|
4331
|
-
this._isTransitioning = null;
|
4332
|
-
this._scrollbarWidth = null;
|
4548
|
+
EventHandler.off(document, EVENT_FOCUSIN$2);
|
4333
4549
|
}
|
4334
4550
|
|
4335
4551
|
handleUpdate() {
|
@@ -4337,8 +4553,17 @@
|
|
4337
4553
|
} // Private
|
4338
4554
|
|
4339
4555
|
|
4556
|
+
_initializeBackDrop() {
|
4557
|
+
return new Backdrop({
|
4558
|
+
isVisible: Boolean(this._config.backdrop),
|
4559
|
+
// 'static' option will be translated to true, and booleans will keep their value
|
4560
|
+
isAnimated: this._isAnimated()
|
4561
|
+
});
|
4562
|
+
}
|
4563
|
+
|
4340
4564
|
_getConfig(config) {
|
4341
4565
|
config = { ...Default$5,
|
4566
|
+
...Manipulator.getDataAttributes(this._element),
|
4342
4567
|
...config
|
4343
4568
|
};
|
4344
4569
|
typeCheckConfig(NAME$6, config, DefaultType$5);
|
@@ -4390,19 +4615,13 @@
|
|
4390
4615
|
});
|
4391
4616
|
};
|
4392
4617
|
|
4393
|
-
|
4394
|
-
const transitionDuration = getTransitionDurationFromElement(this._dialog);
|
4395
|
-
EventHandler.one(this._dialog, 'transitionend', transitionComplete);
|
4396
|
-
emulateTransitionEnd(this._dialog, transitionDuration);
|
4397
|
-
} else {
|
4398
|
-
transitionComplete();
|
4399
|
-
}
|
4618
|
+
this._queueCallback(transitionComplete, this._dialog, isAnimated);
|
4400
4619
|
}
|
4401
4620
|
|
4402
4621
|
_enforceFocus() {
|
4403
|
-
EventHandler.off(document, EVENT_FOCUSIN$
|
4622
|
+
EventHandler.off(document, EVENT_FOCUSIN$2); // guard against infinite focus loop
|
4404
4623
|
|
4405
|
-
EventHandler.on(document, EVENT_FOCUSIN$
|
4624
|
+
EventHandler.on(document, EVENT_FOCUSIN$2, event => {
|
4406
4625
|
if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) {
|
4407
4626
|
this._element.focus();
|
4408
4627
|
}
|
@@ -4411,7 +4630,7 @@
|
|
4411
4630
|
|
4412
4631
|
_setEscapeEvent() {
|
4413
4632
|
if (this._isShown) {
|
4414
|
-
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
4633
|
+
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {
|
4415
4634
|
if (this._config.keyboard && event.key === ESCAPE_KEY$1) {
|
4416
4635
|
event.preventDefault();
|
4417
4636
|
this.hide();
|
@@ -4420,7 +4639,7 @@
|
|
4420
4639
|
}
|
4421
4640
|
});
|
4422
4641
|
} else {
|
4423
|
-
EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);
|
4642
|
+
EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);
|
4424
4643
|
}
|
4425
4644
|
}
|
4426
4645
|
|
@@ -4443,85 +4662,35 @@
|
|
4443
4662
|
|
4444
4663
|
this._isTransitioning = false;
|
4445
4664
|
|
4446
|
-
this.
|
4665
|
+
this._backdrop.hide(() => {
|
4447
4666
|
document.body.classList.remove(CLASS_NAME_OPEN);
|
4448
4667
|
|
4449
4668
|
this._resetAdjustments();
|
4450
4669
|
|
4451
|
-
|
4452
|
-
|
4670
|
+
reset();
|
4453
4671
|
EventHandler.trigger(this._element, EVENT_HIDDEN$3);
|
4454
4672
|
});
|
4455
4673
|
}
|
4456
4674
|
|
4457
|
-
_removeBackdrop() {
|
4458
|
-
this._backdrop.parentNode.removeChild(this._backdrop);
|
4459
|
-
|
4460
|
-
this._backdrop = null;
|
4461
|
-
}
|
4462
|
-
|
4463
4675
|
_showBackdrop(callback) {
|
4464
|
-
|
4465
|
-
|
4466
|
-
|
4467
|
-
|
4468
|
-
this._backdrop.className = CLASS_NAME_BACKDROP;
|
4469
|
-
|
4470
|
-
if (isAnimated) {
|
4471
|
-
this._backdrop.classList.add(CLASS_NAME_FADE$4);
|
4472
|
-
}
|
4473
|
-
|
4474
|
-
document.body.appendChild(this._backdrop);
|
4475
|
-
EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => {
|
4476
|
-
if (this._ignoreBackdropClick) {
|
4477
|
-
this._ignoreBackdropClick = false;
|
4478
|
-
return;
|
4479
|
-
}
|
4480
|
-
|
4481
|
-
if (event.target !== event.currentTarget) {
|
4482
|
-
return;
|
4483
|
-
}
|
4484
|
-
|
4485
|
-
if (this._config.backdrop === 'static') {
|
4486
|
-
this._triggerBackdropTransition();
|
4487
|
-
} else {
|
4488
|
-
this.hide();
|
4489
|
-
}
|
4490
|
-
});
|
4491
|
-
|
4492
|
-
if (isAnimated) {
|
4493
|
-
reflow(this._backdrop);
|
4676
|
+
EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => {
|
4677
|
+
if (this._ignoreBackdropClick) {
|
4678
|
+
this._ignoreBackdropClick = false;
|
4679
|
+
return;
|
4494
4680
|
}
|
4495
4681
|
|
4496
|
-
|
4497
|
-
|
4498
|
-
if (!isAnimated) {
|
4499
|
-
callback();
|
4682
|
+
if (event.target !== event.currentTarget) {
|
4500
4683
|
return;
|
4501
4684
|
}
|
4502
4685
|
|
4503
|
-
|
4504
|
-
|
4505
|
-
|
4506
|
-
|
4507
|
-
|
4508
|
-
|
4509
|
-
|
4510
|
-
|
4511
|
-
|
4512
|
-
callback();
|
4513
|
-
};
|
4514
|
-
|
4515
|
-
if (isAnimated) {
|
4516
|
-
const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
|
4517
|
-
EventHandler.one(this._backdrop, 'transitionend', callbackRemove);
|
4518
|
-
emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
|
4519
|
-
} else {
|
4520
|
-
callbackRemove();
|
4521
|
-
}
|
4522
|
-
} else {
|
4523
|
-
callback();
|
4524
|
-
}
|
4686
|
+
if (this._config.backdrop === true) {
|
4687
|
+
this.hide();
|
4688
|
+
} else if (this._config.backdrop === 'static') {
|
4689
|
+
this._triggerBackdropTransition();
|
4690
|
+
}
|
4691
|
+
});
|
4692
|
+
|
4693
|
+
this._backdrop.show(callback);
|
4525
4694
|
}
|
4526
4695
|
|
4527
4696
|
_isAnimated() {
|
@@ -4565,103 +4734,37 @@
|
|
4565
4734
|
|
4566
4735
|
_adjustDialog() {
|
4567
4736
|
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
4737
|
+
const scrollbarWidth = getWidth();
|
4738
|
+
const isBodyOverflowing = scrollbarWidth > 0;
|
4568
4739
|
|
4569
|
-
if (!
|
4570
|
-
this._element.style.paddingLeft = `${
|
4740
|
+
if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {
|
4741
|
+
this._element.style.paddingLeft = `${scrollbarWidth}px`;
|
4571
4742
|
}
|
4572
4743
|
|
4573
|
-
if (
|
4574
|
-
this._element.style.paddingRight = `${
|
4744
|
+
if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {
|
4745
|
+
this._element.style.paddingRight = `${scrollbarWidth}px`;
|
4575
4746
|
}
|
4576
4747
|
}
|
4577
4748
|
|
4578
4749
|
_resetAdjustments() {
|
4579
4750
|
this._element.style.paddingLeft = '';
|
4580
4751
|
this._element.style.paddingRight = '';
|
4581
|
-
}
|
4582
|
-
|
4583
|
-
_checkScrollbar() {
|
4584
|
-
const rect = document.body.getBoundingClientRect();
|
4585
|
-
this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
|
4586
|
-
this._scrollbarWidth = this._getScrollbarWidth();
|
4587
|
-
}
|
4588
|
-
|
4589
|
-
_setScrollbar() {
|
4590
|
-
if (this._isBodyOverflowing) {
|
4591
|
-
this._setElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth);
|
4592
|
-
|
4593
|
-
this._setElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth);
|
4594
|
-
|
4595
|
-
this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth);
|
4596
|
-
}
|
4597
|
-
|
4598
|
-
document.body.classList.add(CLASS_NAME_OPEN);
|
4599
|
-
}
|
4600
|
-
|
4601
|
-
_setElementAttributes(selector, styleProp, callback) {
|
4602
|
-
SelectorEngine.find(selector).forEach(element => {
|
4603
|
-
if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {
|
4604
|
-
return;
|
4605
|
-
}
|
4606
|
-
|
4607
|
-
const actualValue = element.style[styleProp];
|
4608
|
-
const calculatedValue = window.getComputedStyle(element)[styleProp];
|
4609
|
-
Manipulator.setDataAttribute(element, styleProp, actualValue);
|
4610
|
-
element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
|
4611
|
-
});
|
4612
|
-
}
|
4613
|
-
|
4614
|
-
_resetScrollbar() {
|
4615
|
-
this._resetElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight');
|
4616
|
-
|
4617
|
-
this._resetElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight');
|
4618
|
-
|
4619
|
-
this._resetElementAttributes('body', 'paddingRight');
|
4620
|
-
}
|
4621
|
-
|
4622
|
-
_resetElementAttributes(selector, styleProp) {
|
4623
|
-
SelectorEngine.find(selector).forEach(element => {
|
4624
|
-
const value = Manipulator.getDataAttribute(element, styleProp);
|
4625
|
-
|
4626
|
-
if (typeof value === 'undefined' && element === document.body) {
|
4627
|
-
element.style[styleProp] = '';
|
4628
|
-
} else {
|
4629
|
-
Manipulator.removeDataAttribute(element, styleProp);
|
4630
|
-
element.style[styleProp] = value;
|
4631
|
-
}
|
4632
|
-
});
|
4633
|
-
}
|
4634
|
-
|
4635
|
-
_getScrollbarWidth() {
|
4636
|
-
// thx d.walsh
|
4637
|
-
const scrollDiv = document.createElement('div');
|
4638
|
-
scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
|
4639
|
-
document.body.appendChild(scrollDiv);
|
4640
|
-
const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
4641
|
-
document.body.removeChild(scrollDiv);
|
4642
|
-
return scrollbarWidth;
|
4643
4752
|
} // Static
|
4644
4753
|
|
4645
4754
|
|
4646
4755
|
static jQueryInterface(config, relatedTarget) {
|
4647
4756
|
return this.each(function () {
|
4648
|
-
|
4649
|
-
const _config = { ...Default$5,
|
4650
|
-
...Manipulator.getDataAttributes(this),
|
4651
|
-
...(typeof config === 'object' && config ? config : {})
|
4652
|
-
};
|
4757
|
+
const data = Modal.getInstance(this) || new Modal(this, typeof config === 'object' ? config : {});
|
4653
4758
|
|
4654
|
-
if (
|
4655
|
-
|
4759
|
+
if (typeof config !== 'string') {
|
4760
|
+
return;
|
4656
4761
|
}
|
4657
4762
|
|
4658
|
-
if (typeof config === '
|
4659
|
-
|
4660
|
-
throw new TypeError(`No method named "${config}"`);
|
4661
|
-
}
|
4662
|
-
|
4663
|
-
data[config](relatedTarget);
|
4763
|
+
if (typeof data[config] === 'undefined') {
|
4764
|
+
throw new TypeError(`No method named "${config}"`);
|
4664
4765
|
}
|
4766
|
+
|
4767
|
+
data[config](relatedTarget);
|
4665
4768
|
});
|
4666
4769
|
}
|
4667
4770
|
|
@@ -4676,7 +4779,7 @@
|
|
4676
4779
|
EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
|
4677
4780
|
const target = getElementFromSelector(this);
|
4678
4781
|
|
4679
|
-
if (
|
4782
|
+
if (['A', 'AREA'].includes(this.tagName)) {
|
4680
4783
|
event.preventDefault();
|
4681
4784
|
}
|
4682
4785
|
|
@@ -4692,15 +4795,7 @@
|
|
4692
4795
|
}
|
4693
4796
|
});
|
4694
4797
|
});
|
4695
|
-
|
4696
|
-
|
4697
|
-
if (!data) {
|
4698
|
-
const config = { ...Manipulator.getDataAttributes(target),
|
4699
|
-
...Manipulator.getDataAttributes(this)
|
4700
|
-
};
|
4701
|
-
data = new Modal(target, config);
|
4702
|
-
}
|
4703
|
-
|
4798
|
+
const data = Modal.getInstance(target) || new Modal(target);
|
4704
4799
|
data.toggle(this);
|
4705
4800
|
});
|
4706
4801
|
/**
|
@@ -4710,73 +4805,11 @@
|
|
4710
4805
|
* add .Modal to jQuery only if jQuery is present
|
4711
4806
|
*/
|
4712
4807
|
|
4713
|
-
defineJQueryPlugin(
|
4714
|
-
|
4715
|
-
/**
|
4716
|
-
* --------------------------------------------------------------------------
|
4717
|
-
* Bootstrap (v5.0.0-beta3): util/scrollBar.js
|
4718
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
4719
|
-
* --------------------------------------------------------------------------
|
4720
|
-
*/
|
4721
|
-
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed';
|
4722
|
-
const SELECTOR_STICKY_CONTENT = '.sticky-top';
|
4723
|
-
|
4724
|
-
const getWidth = () => {
|
4725
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
|
4726
|
-
const documentWidth = document.documentElement.clientWidth;
|
4727
|
-
return Math.abs(window.innerWidth - documentWidth);
|
4728
|
-
};
|
4729
|
-
|
4730
|
-
const hide = (width = getWidth()) => {
|
4731
|
-
document.body.style.overflow = 'hidden';
|
4732
|
-
|
4733
|
-
_setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);
|
4734
|
-
|
4735
|
-
_setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);
|
4736
|
-
|
4737
|
-
_setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width);
|
4738
|
-
};
|
4739
|
-
|
4740
|
-
const _setElementAttributes = (selector, styleProp, callback) => {
|
4741
|
-
const scrollbarWidth = getWidth();
|
4742
|
-
SelectorEngine.find(selector).forEach(element => {
|
4743
|
-
if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {
|
4744
|
-
return;
|
4745
|
-
}
|
4746
|
-
|
4747
|
-
const actualValue = element.style[styleProp];
|
4748
|
-
const calculatedValue = window.getComputedStyle(element)[styleProp];
|
4749
|
-
Manipulator.setDataAttribute(element, styleProp, actualValue);
|
4750
|
-
element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
|
4751
|
-
});
|
4752
|
-
};
|
4753
|
-
|
4754
|
-
const reset = () => {
|
4755
|
-
document.body.style.overflow = 'auto';
|
4756
|
-
|
4757
|
-
_resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
|
4758
|
-
|
4759
|
-
_resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
|
4760
|
-
|
4761
|
-
_resetElementAttributes('body', 'paddingRight');
|
4762
|
-
};
|
4763
|
-
|
4764
|
-
const _resetElementAttributes = (selector, styleProp) => {
|
4765
|
-
SelectorEngine.find(selector).forEach(element => {
|
4766
|
-
const value = Manipulator.getDataAttribute(element, styleProp);
|
4767
|
-
|
4768
|
-
if (typeof value === 'undefined' && element === document.body) {
|
4769
|
-
element.style.removeProperty(styleProp);
|
4770
|
-
} else {
|
4771
|
-
Manipulator.removeDataAttribute(element, styleProp);
|
4772
|
-
element.style[styleProp] = value;
|
4773
|
-
}
|
4774
|
-
});
|
4775
|
-
};
|
4808
|
+
defineJQueryPlugin(Modal);
|
4776
4809
|
|
4777
4810
|
/**
|
4778
4811
|
* --------------------------------------------------------------------------
|
4779
|
-
* Bootstrap (v5.0.
|
4812
|
+
* Bootstrap (v5.0.1): offcanvas.js
|
4780
4813
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
4781
4814
|
* --------------------------------------------------------------------------
|
4782
4815
|
*/
|
@@ -4802,18 +4835,16 @@
|
|
4802
4835
|
keyboard: 'boolean',
|
4803
4836
|
scroll: 'boolean'
|
4804
4837
|
};
|
4805
|
-
const CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop';
|
4806
4838
|
const CLASS_NAME_SHOW$4 = 'show';
|
4807
|
-
const CLASS_NAME_TOGGLING = 'offcanvas-toggling';
|
4808
4839
|
const OPEN_SELECTOR = '.offcanvas.show';
|
4809
|
-
const ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`;
|
4810
4840
|
const EVENT_SHOW$2 = `show${EVENT_KEY$5}`;
|
4811
4841
|
const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`;
|
4812
4842
|
const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`;
|
4813
4843
|
const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`;
|
4814
|
-
const EVENT_FOCUSIN = `focusin${EVENT_KEY$5}`;
|
4844
|
+
const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$5}`;
|
4815
4845
|
const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`;
|
4816
4846
|
const EVENT_CLICK_DISMISS$1 = `click.dismiss${EVENT_KEY$5}`;
|
4847
|
+
const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`;
|
4817
4848
|
const SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="offcanvas"]';
|
4818
4849
|
const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
|
4819
4850
|
/**
|
@@ -4827,17 +4858,18 @@
|
|
4827
4858
|
super(element);
|
4828
4859
|
this._config = this._getConfig(config);
|
4829
4860
|
this._isShown = false;
|
4861
|
+
this._backdrop = this._initializeBackDrop();
|
4830
4862
|
|
4831
4863
|
this._addEventListeners();
|
4832
4864
|
} // Getters
|
4833
4865
|
|
4834
4866
|
|
4835
|
-
static get
|
4836
|
-
return
|
4867
|
+
static get NAME() {
|
4868
|
+
return NAME$5;
|
4837
4869
|
}
|
4838
4870
|
|
4839
|
-
static get
|
4840
|
-
return
|
4871
|
+
static get Default() {
|
4872
|
+
return Default$4;
|
4841
4873
|
} // Public
|
4842
4874
|
|
4843
4875
|
|
@@ -4861,15 +4893,13 @@
|
|
4861
4893
|
this._isShown = true;
|
4862
4894
|
this._element.style.visibility = 'visible';
|
4863
4895
|
|
4864
|
-
|
4865
|
-
document.body.classList.add(CLASS_NAME_BACKDROP_BODY);
|
4866
|
-
}
|
4896
|
+
this._backdrop.show();
|
4867
4897
|
|
4868
4898
|
if (!this._config.scroll) {
|
4869
4899
|
hide();
|
4870
|
-
}
|
4871
4900
|
|
4872
|
-
|
4901
|
+
this._enforceFocusOnElement(this._element);
|
4902
|
+
}
|
4873
4903
|
|
4874
4904
|
this._element.removeAttribute('aria-hidden');
|
4875
4905
|
|
@@ -4880,16 +4910,12 @@
|
|
4880
4910
|
this._element.classList.add(CLASS_NAME_SHOW$4);
|
4881
4911
|
|
4882
4912
|
const completeCallBack = () => {
|
4883
|
-
this._element.classList.remove(CLASS_NAME_TOGGLING);
|
4884
|
-
|
4885
4913
|
EventHandler.trigger(this._element, EVENT_SHOWN$2, {
|
4886
4914
|
relatedTarget
|
4887
4915
|
});
|
4888
|
-
|
4889
|
-
this._enforceFocusOnElement(this._element);
|
4890
4916
|
};
|
4891
4917
|
|
4892
|
-
|
4918
|
+
this._queueCallback(completeCallBack, this._element, true);
|
4893
4919
|
}
|
4894
4920
|
|
4895
4921
|
hide() {
|
@@ -4903,9 +4929,7 @@
|
|
4903
4929
|
return;
|
4904
4930
|
}
|
4905
4931
|
|
4906
|
-
|
4907
|
-
|
4908
|
-
EventHandler.off(document, EVENT_FOCUSIN);
|
4932
|
+
EventHandler.off(document, EVENT_FOCUSIN$1);
|
4909
4933
|
|
4910
4934
|
this._element.blur();
|
4911
4935
|
|
@@ -4913,6 +4937,8 @@
|
|
4913
4937
|
|
4914
4938
|
this._element.classList.remove(CLASS_NAME_SHOW$4);
|
4915
4939
|
|
4940
|
+
this._backdrop.hide();
|
4941
|
+
|
4916
4942
|
const completeCallback = () => {
|
4917
4943
|
this._element.setAttribute('aria-hidden', true);
|
4918
4944
|
|
@@ -4922,20 +4948,21 @@
|
|
4922
4948
|
|
4923
4949
|
this._element.style.visibility = 'hidden';
|
4924
4950
|
|
4925
|
-
if (this._config.backdrop) {
|
4926
|
-
document.body.classList.remove(CLASS_NAME_BACKDROP_BODY);
|
4927
|
-
}
|
4928
|
-
|
4929
4951
|
if (!this._config.scroll) {
|
4930
4952
|
reset();
|
4931
4953
|
}
|
4932
4954
|
|
4933
4955
|
EventHandler.trigger(this._element, EVENT_HIDDEN$2);
|
4934
|
-
|
4935
|
-
this._element.classList.remove(CLASS_NAME_TOGGLING);
|
4936
4956
|
};
|
4937
4957
|
|
4938
|
-
|
4958
|
+
this._queueCallback(completeCallback, this._element, true);
|
4959
|
+
}
|
4960
|
+
|
4961
|
+
dispose() {
|
4962
|
+
this._backdrop.dispose();
|
4963
|
+
|
4964
|
+
super.dispose();
|
4965
|
+
EventHandler.off(document, EVENT_FOCUSIN$1);
|
4939
4966
|
} // Private
|
4940
4967
|
|
4941
4968
|
|
@@ -4948,10 +4975,19 @@
|
|
4948
4975
|
return config;
|
4949
4976
|
}
|
4950
4977
|
|
4978
|
+
_initializeBackDrop() {
|
4979
|
+
return new Backdrop({
|
4980
|
+
isVisible: this._config.backdrop,
|
4981
|
+
isAnimated: true,
|
4982
|
+
rootElement: this._element.parentNode,
|
4983
|
+
clickCallback: () => this.hide()
|
4984
|
+
});
|
4985
|
+
}
|
4986
|
+
|
4951
4987
|
_enforceFocusOnElement(element) {
|
4952
|
-
EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop
|
4988
|
+
EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop
|
4953
4989
|
|
4954
|
-
EventHandler.on(document, EVENT_FOCUSIN, event => {
|
4990
|
+
EventHandler.on(document, EVENT_FOCUSIN$1, event => {
|
4955
4991
|
if (document !== event.target && element !== event.target && !element.contains(event.target)) {
|
4956
4992
|
element.focus();
|
4957
4993
|
}
|
@@ -4961,18 +4997,11 @@
|
|
4961
4997
|
|
4962
4998
|
_addEventListeners() {
|
4963
4999
|
EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, () => this.hide());
|
4964
|
-
EventHandler.on(
|
5000
|
+
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
4965
5001
|
if (this._config.keyboard && event.key === ESCAPE_KEY) {
|
4966
5002
|
this.hide();
|
4967
5003
|
}
|
4968
5004
|
});
|
4969
|
-
EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => {
|
4970
|
-
const target = SelectorEngine.findOne(getSelectorFromElement(event.target));
|
4971
|
-
|
4972
|
-
if (!this._element.contains(event.target) && target !== this._element) {
|
4973
|
-
this.hide();
|
4974
|
-
}
|
4975
|
-
});
|
4976
5005
|
} // Static
|
4977
5006
|
|
4978
5007
|
|
@@ -5018,10 +5047,10 @@
|
|
5018
5047
|
}
|
5019
5048
|
}); // avoid conflict when clicking a toggler of an offcanvas, while another is open
|
5020
5049
|
|
5021
|
-
const allReadyOpen = SelectorEngine.findOne(
|
5050
|
+
const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
|
5022
5051
|
|
5023
5052
|
if (allReadyOpen && allReadyOpen !== target) {
|
5024
|
-
|
5053
|
+
Offcanvas.getInstance(allReadyOpen).hide();
|
5025
5054
|
}
|
5026
5055
|
|
5027
5056
|
const data = Data.get(target, DATA_KEY$5) || new Offcanvas(target);
|
@@ -5036,11 +5065,11 @@
|
|
5036
5065
|
* ------------------------------------------------------------------------
|
5037
5066
|
*/
|
5038
5067
|
|
5039
|
-
defineJQueryPlugin(
|
5068
|
+
defineJQueryPlugin(Offcanvas);
|
5040
5069
|
|
5041
5070
|
/**
|
5042
5071
|
* --------------------------------------------------------------------------
|
5043
|
-
* Bootstrap (v5.0.
|
5072
|
+
* Bootstrap (v5.0.1): util/sanitizer.js
|
5044
5073
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
5045
5074
|
* --------------------------------------------------------------------------
|
5046
5075
|
*/
|
@@ -5153,7 +5182,7 @@
|
|
5153
5182
|
|
5154
5183
|
/**
|
5155
5184
|
* --------------------------------------------------------------------------
|
5156
|
-
* Bootstrap (v5.0.
|
5185
|
+
* Bootstrap (v5.0.1): tooltip.js
|
5157
5186
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
5158
5187
|
* --------------------------------------------------------------------------
|
5159
5188
|
*/
|
@@ -5256,7 +5285,7 @@
|
|
5256
5285
|
this._activeTrigger = {};
|
5257
5286
|
this._popper = null; // Protected
|
5258
5287
|
|
5259
|
-
this.
|
5288
|
+
this._config = this._getConfig(config);
|
5260
5289
|
this.tip = null;
|
5261
5290
|
|
5262
5291
|
this._setListeners();
|
@@ -5271,18 +5300,10 @@
|
|
5271
5300
|
return NAME$4;
|
5272
5301
|
}
|
5273
5302
|
|
5274
|
-
static get DATA_KEY() {
|
5275
|
-
return DATA_KEY$4;
|
5276
|
-
}
|
5277
|
-
|
5278
5303
|
static get Event() {
|
5279
5304
|
return Event$2;
|
5280
5305
|
}
|
5281
5306
|
|
5282
|
-
static get EVENT_KEY() {
|
5283
|
-
return EVENT_KEY$4;
|
5284
|
-
}
|
5285
|
-
|
5286
5307
|
static get DefaultType() {
|
5287
5308
|
return DefaultType$3;
|
5288
5309
|
} // Public
|
@@ -5328,25 +5349,16 @@
|
|
5328
5349
|
|
5329
5350
|
dispose() {
|
5330
5351
|
clearTimeout(this._timeout);
|
5331
|
-
EventHandler.off(this._element, this.constructor.EVENT_KEY);
|
5332
5352
|
EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
|
5333
5353
|
|
5334
5354
|
if (this.tip && this.tip.parentNode) {
|
5335
5355
|
this.tip.parentNode.removeChild(this.tip);
|
5336
5356
|
}
|
5337
5357
|
|
5338
|
-
this._isEnabled = null;
|
5339
|
-
this._timeout = null;
|
5340
|
-
this._hoverState = null;
|
5341
|
-
this._activeTrigger = null;
|
5342
|
-
|
5343
5358
|
if (this._popper) {
|
5344
5359
|
this._popper.destroy();
|
5345
5360
|
}
|
5346
5361
|
|
5347
|
-
this._popper = null;
|
5348
|
-
this.config = null;
|
5349
|
-
this.tip = null;
|
5350
5362
|
super.dispose();
|
5351
5363
|
}
|
5352
5364
|
|
@@ -5375,18 +5387,19 @@
|
|
5375
5387
|
|
5376
5388
|
this.setContent();
|
5377
5389
|
|
5378
|
-
if (this.
|
5390
|
+
if (this._config.animation) {
|
5379
5391
|
tip.classList.add(CLASS_NAME_FADE$3);
|
5380
5392
|
}
|
5381
5393
|
|
5382
|
-
const placement = typeof this.
|
5394
|
+
const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;
|
5383
5395
|
|
5384
5396
|
const attachment = this._getAttachment(placement);
|
5385
5397
|
|
5386
5398
|
this._addAttachmentClass(attachment);
|
5387
5399
|
|
5388
|
-
const
|
5389
|
-
|
5400
|
+
const {
|
5401
|
+
container
|
5402
|
+
} = this._config;
|
5390
5403
|
Data.set(tip, this.constructor.DATA_KEY, this);
|
5391
5404
|
|
5392
5405
|
if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
|
@@ -5401,7 +5414,7 @@
|
|
5401
5414
|
}
|
5402
5415
|
|
5403
5416
|
tip.classList.add(CLASS_NAME_SHOW$3);
|
5404
|
-
const customClass = typeof this.
|
5417
|
+
const customClass = typeof this._config.customClass === 'function' ? this._config.customClass() : this._config.customClass;
|
5405
5418
|
|
5406
5419
|
if (customClass) {
|
5407
5420
|
tip.classList.add(...customClass.split(' '));
|
@@ -5413,7 +5426,7 @@
|
|
5413
5426
|
|
5414
5427
|
if ('ontouchstart' in document.documentElement) {
|
5415
5428
|
[].concat(...document.body.children).forEach(element => {
|
5416
|
-
EventHandler.on(element, 'mouseover', noop
|
5429
|
+
EventHandler.on(element, 'mouseover', noop);
|
5417
5430
|
});
|
5418
5431
|
}
|
5419
5432
|
|
@@ -5427,13 +5440,9 @@
|
|
5427
5440
|
}
|
5428
5441
|
};
|
5429
5442
|
|
5430
|
-
|
5431
|
-
|
5432
|
-
|
5433
|
-
emulateTransitionEnd(this.tip, transitionDuration);
|
5434
|
-
} else {
|
5435
|
-
complete();
|
5436
|
-
}
|
5443
|
+
const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$3);
|
5444
|
+
|
5445
|
+
this._queueCallback(complete, this.tip, isAnimated);
|
5437
5446
|
}
|
5438
5447
|
|
5439
5448
|
hide() {
|
@@ -5481,14 +5490,9 @@
|
|
5481
5490
|
this._activeTrigger[TRIGGER_CLICK] = false;
|
5482
5491
|
this._activeTrigger[TRIGGER_FOCUS] = false;
|
5483
5492
|
this._activeTrigger[TRIGGER_HOVER] = false;
|
5493
|
+
const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$3);
|
5484
5494
|
|
5485
|
-
|
5486
|
-
const transitionDuration = getTransitionDurationFromElement(tip);
|
5487
|
-
EventHandler.one(tip, 'transitionend', complete);
|
5488
|
-
emulateTransitionEnd(tip, transitionDuration);
|
5489
|
-
} else {
|
5490
|
-
complete();
|
5491
|
-
}
|
5495
|
+
this._queueCallback(complete, this.tip, isAnimated);
|
5492
5496
|
|
5493
5497
|
this._hoverState = '';
|
5494
5498
|
}
|
@@ -5510,7 +5514,7 @@
|
|
5510
5514
|
}
|
5511
5515
|
|
5512
5516
|
const element = document.createElement('div');
|
5513
|
-
element.innerHTML = this.
|
5517
|
+
element.innerHTML = this._config.template;
|
5514
5518
|
this.tip = element.children[0];
|
5515
5519
|
return this.tip;
|
5516
5520
|
}
|
@@ -5526,13 +5530,10 @@
|
|
5526
5530
|
return;
|
5527
5531
|
}
|
5528
5532
|
|
5529
|
-
if (
|
5530
|
-
|
5531
|
-
content = content[0];
|
5532
|
-
} // content is a DOM node or a jQuery
|
5533
|
+
if (isElement$1(content)) {
|
5534
|
+
content = getElement(content); // content is a DOM node or a jQuery
|
5533
5535
|
|
5534
|
-
|
5535
|
-
if (this.config.html) {
|
5536
|
+
if (this._config.html) {
|
5536
5537
|
if (content.parentNode !== element) {
|
5537
5538
|
element.innerHTML = '';
|
5538
5539
|
element.appendChild(content);
|
@@ -5544,9 +5545,9 @@
|
|
5544
5545
|
return;
|
5545
5546
|
}
|
5546
5547
|
|
5547
|
-
if (this.
|
5548
|
-
if (this.
|
5549
|
-
content = sanitizeHtml(content, this.
|
5548
|
+
if (this._config.html) {
|
5549
|
+
if (this._config.sanitize) {
|
5550
|
+
content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);
|
5550
5551
|
}
|
5551
5552
|
|
5552
5553
|
element.innerHTML = content;
|
@@ -5559,7 +5560,7 @@
|
|
5559
5560
|
let title = this._element.getAttribute('data-bs-original-title');
|
5560
5561
|
|
5561
5562
|
if (!title) {
|
5562
|
-
title = typeof this.
|
5563
|
+
title = typeof this._config.title === 'function' ? this._config.title.call(this._element) : this._config.title;
|
5563
5564
|
}
|
5564
5565
|
|
5565
5566
|
return title;
|
@@ -5593,7 +5594,7 @@
|
|
5593
5594
|
_getOffset() {
|
5594
5595
|
const {
|
5595
5596
|
offset
|
5596
|
-
} = this.
|
5597
|
+
} = this._config;
|
5597
5598
|
|
5598
5599
|
if (typeof offset === 'string') {
|
5599
5600
|
return offset.split(',').map(val => Number.parseInt(val, 10));
|
@@ -5612,8 +5613,7 @@
|
|
5612
5613
|
modifiers: [{
|
5613
5614
|
name: 'flip',
|
5614
5615
|
options: {
|
5615
|
-
|
5616
|
-
fallbackPlacements: this.config.fallbackPlacements
|
5616
|
+
fallbackPlacements: this._config.fallbackPlacements
|
5617
5617
|
}
|
5618
5618
|
}, {
|
5619
5619
|
name: 'offset',
|
@@ -5623,7 +5623,7 @@
|
|
5623
5623
|
}, {
|
5624
5624
|
name: 'preventOverflow',
|
5625
5625
|
options: {
|
5626
|
-
boundary: this.
|
5626
|
+
boundary: this._config.boundary
|
5627
5627
|
}
|
5628
5628
|
}, {
|
5629
5629
|
name: 'arrow',
|
@@ -5643,7 +5643,7 @@
|
|
5643
5643
|
}
|
5644
5644
|
};
|
5645
5645
|
return { ...defaultBsPopperConfig,
|
5646
|
-
...(typeof this.
|
5646
|
+
...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)
|
5647
5647
|
};
|
5648
5648
|
}
|
5649
5649
|
|
@@ -5651,32 +5651,21 @@
|
|
5651
5651
|
this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${this.updateAttachment(attachment)}`);
|
5652
5652
|
}
|
5653
5653
|
|
5654
|
-
_getContainer() {
|
5655
|
-
if (this.config.container === false) {
|
5656
|
-
return document.body;
|
5657
|
-
}
|
5658
|
-
|
5659
|
-
if (isElement$1(this.config.container)) {
|
5660
|
-
return this.config.container;
|
5661
|
-
}
|
5662
|
-
|
5663
|
-
return SelectorEngine.findOne(this.config.container);
|
5664
|
-
}
|
5665
|
-
|
5666
5654
|
_getAttachment(placement) {
|
5667
5655
|
return AttachmentMap[placement.toUpperCase()];
|
5668
5656
|
}
|
5669
5657
|
|
5670
5658
|
_setListeners() {
|
5671
|
-
const triggers = this.
|
5659
|
+
const triggers = this._config.trigger.split(' ');
|
5660
|
+
|
5672
5661
|
triggers.forEach(trigger => {
|
5673
5662
|
if (trigger === 'click') {
|
5674
|
-
EventHandler.on(this._element, this.constructor.Event.CLICK, this.
|
5663
|
+
EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event));
|
5675
5664
|
} else if (trigger !== TRIGGER_MANUAL) {
|
5676
5665
|
const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN;
|
5677
5666
|
const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;
|
5678
|
-
EventHandler.on(this._element, eventIn, this.
|
5679
|
-
EventHandler.on(this._element, eventOut, this.
|
5667
|
+
EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event));
|
5668
|
+
EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event));
|
5680
5669
|
}
|
5681
5670
|
});
|
5682
5671
|
|
@@ -5688,8 +5677,8 @@
|
|
5688
5677
|
|
5689
5678
|
EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
|
5690
5679
|
|
5691
|
-
if (this.
|
5692
|
-
this.
|
5680
|
+
if (this._config.selector) {
|
5681
|
+
this._config = { ...this._config,
|
5693
5682
|
trigger: 'manual',
|
5694
5683
|
selector: ''
|
5695
5684
|
};
|
@@ -5729,7 +5718,7 @@
|
|
5729
5718
|
clearTimeout(context._timeout);
|
5730
5719
|
context._hoverState = HOVER_STATE_SHOW;
|
5731
5720
|
|
5732
|
-
if (!context.
|
5721
|
+
if (!context._config.delay || !context._config.delay.show) {
|
5733
5722
|
context.show();
|
5734
5723
|
return;
|
5735
5724
|
}
|
@@ -5738,7 +5727,7 @@
|
|
5738
5727
|
if (context._hoverState === HOVER_STATE_SHOW) {
|
5739
5728
|
context.show();
|
5740
5729
|
}
|
5741
|
-
}, context.
|
5730
|
+
}, context._config.delay.show);
|
5742
5731
|
}
|
5743
5732
|
|
5744
5733
|
_leave(event, context) {
|
@@ -5755,7 +5744,7 @@
|
|
5755
5744
|
clearTimeout(context._timeout);
|
5756
5745
|
context._hoverState = HOVER_STATE_OUT;
|
5757
5746
|
|
5758
|
-
if (!context.
|
5747
|
+
if (!context._config.delay || !context._config.delay.hide) {
|
5759
5748
|
context.hide();
|
5760
5749
|
return;
|
5761
5750
|
}
|
@@ -5764,7 +5753,7 @@
|
|
5764
5753
|
if (context._hoverState === HOVER_STATE_OUT) {
|
5765
5754
|
context.hide();
|
5766
5755
|
}
|
5767
|
-
}, context.
|
5756
|
+
}, context._config.delay.hide);
|
5768
5757
|
}
|
5769
5758
|
|
5770
5759
|
_isWithActiveTrigger() {
|
@@ -5784,15 +5773,11 @@
|
|
5784
5773
|
delete dataAttributes[dataAttr];
|
5785
5774
|
}
|
5786
5775
|
});
|
5787
|
-
|
5788
|
-
if (config && typeof config.container === 'object' && config.container.jquery) {
|
5789
|
-
config.container = config.container[0];
|
5790
|
-
}
|
5791
|
-
|
5792
5776
|
config = { ...this.constructor.Default,
|
5793
5777
|
...dataAttributes,
|
5794
5778
|
...(typeof config === 'object' && config ? config : {})
|
5795
5779
|
};
|
5780
|
+
config.container = config.container === false ? document.body : getElement(config.container);
|
5796
5781
|
|
5797
5782
|
if (typeof config.delay === 'number') {
|
5798
5783
|
config.delay = {
|
@@ -5821,10 +5806,10 @@
|
|
5821
5806
|
_getDelegateConfig() {
|
5822
5807
|
const config = {};
|
5823
5808
|
|
5824
|
-
if (this.
|
5825
|
-
for (const key in this.
|
5826
|
-
if (this.constructor.Default[key] !== this.
|
5827
|
-
config[key] = this.
|
5809
|
+
if (this._config) {
|
5810
|
+
for (const key in this._config) {
|
5811
|
+
if (this.constructor.Default[key] !== this._config[key]) {
|
5812
|
+
config[key] = this._config[key];
|
5828
5813
|
}
|
5829
5814
|
}
|
5830
5815
|
}
|
@@ -5891,11 +5876,11 @@
|
|
5891
5876
|
*/
|
5892
5877
|
|
5893
5878
|
|
5894
|
-
defineJQueryPlugin(
|
5879
|
+
defineJQueryPlugin(Tooltip);
|
5895
5880
|
|
5896
5881
|
/**
|
5897
5882
|
* --------------------------------------------------------------------------
|
5898
|
-
* Bootstrap (v5.0.
|
5883
|
+
* Bootstrap (v5.0.1): popover.js
|
5899
5884
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
5900
5885
|
* --------------------------------------------------------------------------
|
5901
5886
|
*/
|
@@ -5952,18 +5937,10 @@
|
|
5952
5937
|
return NAME$3;
|
5953
5938
|
}
|
5954
5939
|
|
5955
|
-
static get DATA_KEY() {
|
5956
|
-
return DATA_KEY$3;
|
5957
|
-
}
|
5958
|
-
|
5959
5940
|
static get Event() {
|
5960
5941
|
return Event$1;
|
5961
5942
|
}
|
5962
5943
|
|
5963
|
-
static get EVENT_KEY() {
|
5964
|
-
return EVENT_KEY$3;
|
5965
|
-
}
|
5966
|
-
|
5967
5944
|
static get DefaultType() {
|
5968
5945
|
return DefaultType$2;
|
5969
5946
|
} // Overrides
|
@@ -5994,7 +5971,7 @@
|
|
5994
5971
|
}
|
5995
5972
|
|
5996
5973
|
_getContent() {
|
5997
|
-
return this._element.getAttribute('data-bs-content') || this.
|
5974
|
+
return this._element.getAttribute('data-bs-content') || this._config.content;
|
5998
5975
|
}
|
5999
5976
|
|
6000
5977
|
_cleanTipClass() {
|
@@ -6041,11 +6018,11 @@
|
|
6041
6018
|
*/
|
6042
6019
|
|
6043
6020
|
|
6044
|
-
defineJQueryPlugin(
|
6021
|
+
defineJQueryPlugin(Popover);
|
6045
6022
|
|
6046
6023
|
/**
|
6047
6024
|
* --------------------------------------------------------------------------
|
6048
|
-
* Bootstrap (v5.0.
|
6025
|
+
* Bootstrap (v5.0.1): scrollspy.js
|
6049
6026
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
6050
6027
|
* --------------------------------------------------------------------------
|
6051
6028
|
*/
|
@@ -6110,8 +6087,8 @@
|
|
6110
6087
|
return Default$1;
|
6111
6088
|
}
|
6112
6089
|
|
6113
|
-
static get
|
6114
|
-
return
|
6090
|
+
static get NAME() {
|
6091
|
+
return NAME$2;
|
6115
6092
|
} // Public
|
6116
6093
|
|
6117
6094
|
|
@@ -6144,20 +6121,14 @@
|
|
6144
6121
|
}
|
6145
6122
|
|
6146
6123
|
dispose() {
|
6147
|
-
super.dispose();
|
6148
6124
|
EventHandler.off(this._scrollElement, EVENT_KEY$2);
|
6149
|
-
|
6150
|
-
this._config = null;
|
6151
|
-
this._selector = null;
|
6152
|
-
this._offsets = null;
|
6153
|
-
this._targets = null;
|
6154
|
-
this._activeTarget = null;
|
6155
|
-
this._scrollHeight = null;
|
6125
|
+
super.dispose();
|
6156
6126
|
} // Private
|
6157
6127
|
|
6158
6128
|
|
6159
6129
|
_getConfig(config) {
|
6160
6130
|
config = { ...Default$1,
|
6131
|
+
...Manipulator.getDataAttributes(this._element),
|
6161
6132
|
...(typeof config === 'object' && config ? config : {})
|
6162
6133
|
};
|
6163
6134
|
|
@@ -6266,21 +6237,17 @@
|
|
6266
6237
|
|
6267
6238
|
static jQueryInterface(config) {
|
6268
6239
|
return this.each(function () {
|
6269
|
-
|
6270
|
-
|
6271
|
-
const _config = typeof config === 'object' && config;
|
6240
|
+
const data = ScrollSpy.getInstance(this) || new ScrollSpy(this, typeof config === 'object' ? config : {});
|
6272
6241
|
|
6273
|
-
if (
|
6274
|
-
|
6242
|
+
if (typeof config !== 'string') {
|
6243
|
+
return;
|
6275
6244
|
}
|
6276
6245
|
|
6277
|
-
if (typeof config === '
|
6278
|
-
|
6279
|
-
throw new TypeError(`No method named "${config}"`);
|
6280
|
-
}
|
6281
|
-
|
6282
|
-
data[config]();
|
6246
|
+
if (typeof data[config] === 'undefined') {
|
6247
|
+
throw new TypeError(`No method named "${config}"`);
|
6283
6248
|
}
|
6249
|
+
|
6250
|
+
data[config]();
|
6284
6251
|
});
|
6285
6252
|
}
|
6286
6253
|
|
@@ -6293,7 +6260,7 @@
|
|
6293
6260
|
|
6294
6261
|
|
6295
6262
|
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
|
6296
|
-
SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy
|
6263
|
+
SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy));
|
6297
6264
|
});
|
6298
6265
|
/**
|
6299
6266
|
* ------------------------------------------------------------------------
|
@@ -6302,11 +6269,11 @@
|
|
6302
6269
|
* add .ScrollSpy to jQuery only if jQuery is present
|
6303
6270
|
*/
|
6304
6271
|
|
6305
|
-
defineJQueryPlugin(
|
6272
|
+
defineJQueryPlugin(ScrollSpy);
|
6306
6273
|
|
6307
6274
|
/**
|
6308
6275
|
* --------------------------------------------------------------------------
|
6309
|
-
* Bootstrap (v5.0.
|
6276
|
+
* Bootstrap (v5.0.1): tab.js
|
6310
6277
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
6311
6278
|
* --------------------------------------------------------------------------
|
6312
6279
|
*/
|
@@ -6344,13 +6311,13 @@
|
|
6344
6311
|
|
6345
6312
|
class Tab extends BaseComponent {
|
6346
6313
|
// Getters
|
6347
|
-
static get
|
6348
|
-
return
|
6314
|
+
static get NAME() {
|
6315
|
+
return NAME$1;
|
6349
6316
|
} // Public
|
6350
6317
|
|
6351
6318
|
|
6352
6319
|
show() {
|
6353
|
-
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)
|
6320
|
+
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
|
6354
6321
|
return;
|
6355
6322
|
}
|
6356
6323
|
|
@@ -6403,10 +6370,9 @@
|
|
6403
6370
|
const complete = () => this._transitionComplete(element, active, callback);
|
6404
6371
|
|
6405
6372
|
if (active && isTransitioning) {
|
6406
|
-
const transitionDuration = getTransitionDurationFromElement(active);
|
6407
6373
|
active.classList.remove(CLASS_NAME_SHOW$1);
|
6408
|
-
|
6409
|
-
|
6374
|
+
|
6375
|
+
this._queueCallback(complete, element, true);
|
6410
6376
|
} else {
|
6411
6377
|
complete();
|
6412
6378
|
}
|
@@ -6438,11 +6404,17 @@
|
|
6438
6404
|
element.classList.add(CLASS_NAME_SHOW$1);
|
6439
6405
|
}
|
6440
6406
|
|
6441
|
-
|
6407
|
+
let parent = element.parentNode;
|
6408
|
+
|
6409
|
+
if (parent && parent.nodeName === 'LI') {
|
6410
|
+
parent = parent.parentNode;
|
6411
|
+
}
|
6412
|
+
|
6413
|
+
if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
|
6442
6414
|
const dropdownElement = element.closest(SELECTOR_DROPDOWN);
|
6443
6415
|
|
6444
6416
|
if (dropdownElement) {
|
6445
|
-
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
|
6417
|
+
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
|
6446
6418
|
}
|
6447
6419
|
|
6448
6420
|
element.setAttribute('aria-expanded', true);
|
@@ -6477,7 +6449,14 @@
|
|
6477
6449
|
|
6478
6450
|
|
6479
6451
|
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
6480
|
-
|
6452
|
+
if (['A', 'AREA'].includes(this.tagName)) {
|
6453
|
+
event.preventDefault();
|
6454
|
+
}
|
6455
|
+
|
6456
|
+
if (isDisabled(this)) {
|
6457
|
+
return;
|
6458
|
+
}
|
6459
|
+
|
6481
6460
|
const data = Data.get(this, DATA_KEY$1) || new Tab(this);
|
6482
6461
|
data.show();
|
6483
6462
|
});
|
@@ -6488,11 +6467,11 @@
|
|
6488
6467
|
* add .Tab to jQuery only if jQuery is present
|
6489
6468
|
*/
|
6490
6469
|
|
6491
|
-
defineJQueryPlugin(
|
6470
|
+
defineJQueryPlugin(Tab);
|
6492
6471
|
|
6493
6472
|
/**
|
6494
6473
|
* --------------------------------------------------------------------------
|
6495
|
-
* Bootstrap (v5.0.
|
6474
|
+
* Bootstrap (v5.0.1): toast.js
|
6496
6475
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
6497
6476
|
* --------------------------------------------------------------------------
|
6498
6477
|
*/
|
@@ -6506,6 +6485,10 @@
|
|
6506
6485
|
const DATA_KEY = 'bs.toast';
|
6507
6486
|
const EVENT_KEY = `.${DATA_KEY}`;
|
6508
6487
|
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;
|
6488
|
+
const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
|
6489
|
+
const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
|
6490
|
+
const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
|
6491
|
+
const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
|
6509
6492
|
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
6510
6493
|
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
6511
6494
|
const EVENT_SHOW = `show${EVENT_KEY}`;
|
@@ -6536,6 +6519,8 @@
|
|
6536
6519
|
super(element);
|
6537
6520
|
this._config = this._getConfig(config);
|
6538
6521
|
this._timeout = null;
|
6522
|
+
this._hasMouseInteraction = false;
|
6523
|
+
this._hasKeyboardInteraction = false;
|
6539
6524
|
|
6540
6525
|
this._setListeners();
|
6541
6526
|
} // Getters
|
@@ -6549,8 +6534,8 @@
|
|
6549
6534
|
return Default;
|
6550
6535
|
}
|
6551
6536
|
|
6552
|
-
static get
|
6553
|
-
return
|
6537
|
+
static get NAME() {
|
6538
|
+
return NAME;
|
6554
6539
|
} // Public
|
6555
6540
|
|
6556
6541
|
|
@@ -6574,11 +6559,7 @@
|
|
6574
6559
|
|
6575
6560
|
EventHandler.trigger(this._element, EVENT_SHOWN);
|
6576
6561
|
|
6577
|
-
|
6578
|
-
this._timeout = setTimeout(() => {
|
6579
|
-
this.hide();
|
6580
|
-
}, this._config.delay);
|
6581
|
-
}
|
6562
|
+
this._maybeScheduleHide();
|
6582
6563
|
};
|
6583
6564
|
|
6584
6565
|
this._element.classList.remove(CLASS_NAME_HIDE);
|
@@ -6587,13 +6568,7 @@
|
|
6587
6568
|
|
6588
6569
|
this._element.classList.add(CLASS_NAME_SHOWING);
|
6589
6570
|
|
6590
|
-
|
6591
|
-
const transitionDuration = getTransitionDurationFromElement(this._element);
|
6592
|
-
EventHandler.one(this._element, 'transitionend', complete);
|
6593
|
-
emulateTransitionEnd(this._element, transitionDuration);
|
6594
|
-
} else {
|
6595
|
-
complete();
|
6596
|
-
}
|
6571
|
+
this._queueCallback(complete, this._element, this._config.animation);
|
6597
6572
|
}
|
6598
6573
|
|
6599
6574
|
hide() {
|
@@ -6615,13 +6590,7 @@
|
|
6615
6590
|
|
6616
6591
|
this._element.classList.remove(CLASS_NAME_SHOW);
|
6617
6592
|
|
6618
|
-
|
6619
|
-
const transitionDuration = getTransitionDurationFromElement(this._element);
|
6620
|
-
EventHandler.one(this._element, 'transitionend', complete);
|
6621
|
-
emulateTransitionEnd(this._element, transitionDuration);
|
6622
|
-
} else {
|
6623
|
-
complete();
|
6624
|
-
}
|
6593
|
+
this._queueCallback(complete, this._element, this._config.animation);
|
6625
6594
|
}
|
6626
6595
|
|
6627
6596
|
dispose() {
|
@@ -6631,9 +6600,7 @@
|
|
6631
6600
|
this._element.classList.remove(CLASS_NAME_SHOW);
|
6632
6601
|
}
|
6633
6602
|
|
6634
|
-
EventHandler.off(this._element, EVENT_CLICK_DISMISS);
|
6635
6603
|
super.dispose();
|
6636
|
-
this._config = null;
|
6637
6604
|
} // Private
|
6638
6605
|
|
6639
6606
|
|
@@ -6646,8 +6613,54 @@
|
|
6646
6613
|
return config;
|
6647
6614
|
}
|
6648
6615
|
|
6616
|
+
_maybeScheduleHide() {
|
6617
|
+
if (!this._config.autohide) {
|
6618
|
+
return;
|
6619
|
+
}
|
6620
|
+
|
6621
|
+
if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
|
6622
|
+
return;
|
6623
|
+
}
|
6624
|
+
|
6625
|
+
this._timeout = setTimeout(() => {
|
6626
|
+
this.hide();
|
6627
|
+
}, this._config.delay);
|
6628
|
+
}
|
6629
|
+
|
6630
|
+
_onInteraction(event, isInteracting) {
|
6631
|
+
switch (event.type) {
|
6632
|
+
case 'mouseover':
|
6633
|
+
case 'mouseout':
|
6634
|
+
this._hasMouseInteraction = isInteracting;
|
6635
|
+
break;
|
6636
|
+
|
6637
|
+
case 'focusin':
|
6638
|
+
case 'focusout':
|
6639
|
+
this._hasKeyboardInteraction = isInteracting;
|
6640
|
+
break;
|
6641
|
+
}
|
6642
|
+
|
6643
|
+
if (isInteracting) {
|
6644
|
+
this._clearTimeout();
|
6645
|
+
|
6646
|
+
return;
|
6647
|
+
}
|
6648
|
+
|
6649
|
+
const nextElement = event.relatedTarget;
|
6650
|
+
|
6651
|
+
if (this._element === nextElement || this._element.contains(nextElement)) {
|
6652
|
+
return;
|
6653
|
+
}
|
6654
|
+
|
6655
|
+
this._maybeScheduleHide();
|
6656
|
+
}
|
6657
|
+
|
6649
6658
|
_setListeners() {
|
6650
6659
|
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide());
|
6660
|
+
EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
|
6661
|
+
EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
|
6662
|
+
EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
|
6663
|
+
EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
|
6651
6664
|
}
|
6652
6665
|
|
6653
6666
|
_clearTimeout() {
|
@@ -6685,11 +6698,11 @@
|
|
6685
6698
|
*/
|
6686
6699
|
|
6687
6700
|
|
6688
|
-
defineJQueryPlugin(
|
6701
|
+
defineJQueryPlugin(Toast);
|
6689
6702
|
|
6690
6703
|
/**
|
6691
6704
|
* --------------------------------------------------------------------------
|
6692
|
-
* Bootstrap (v5.0.
|
6705
|
+
* Bootstrap (v5.0.1): index.umd.js
|
6693
6706
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
6694
6707
|
* --------------------------------------------------------------------------
|
6695
6708
|
*/
|