mumuki-styles 3.0.2.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -10220,7 +10220,7 @@ return jQuery;
10220
10220
  } );
10221
10221
 
10222
10222
  /**
10223
- * @popperjs/core v2.9.2 - MIT License
10223
+ * @popperjs/core v2.9.1 - MIT License
10224
10224
  */
10225
10225
 
10226
10226
  (function (global, factory) {
@@ -10473,17 +10473,6 @@ return jQuery;
10473
10473
 
10474
10474
  function getContainingBlock(element) {
10475
10475
  var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
10476
- var isIE = navigator.userAgent.indexOf('Trident') !== -1;
10477
-
10478
- if (isIE && isHTMLElement(element)) {
10479
- // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
10480
- var elementCss = getComputedStyle(element);
10481
-
10482
- if (elementCss.position === 'fixed') {
10483
- return null;
10484
- }
10485
- }
10486
-
10487
10476
  var currentNode = getParentNode(element);
10488
10477
 
10489
10478
  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
@@ -12132,7 +12121,7 @@ return jQuery;
12132
12121
  //# sourceMappingURL=popper.js.map
12133
12122
 
12134
12123
  /*!
12135
- * Bootstrap v5.0.1 (https://getbootstrap.com/)
12124
+ * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/)
12136
12125
  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
12137
12126
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12138
12127
  */
@@ -12166,82 +12155,10 @@ return jQuery;
12166
12155
 
12167
12156
  /**
12168
12157
  * --------------------------------------------------------------------------
12169
- * Bootstrap (v5.0.1): dom/selector-engine.js
12170
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12171
- * --------------------------------------------------------------------------
12172
- */
12173
-
12174
- /**
12175
- * ------------------------------------------------------------------------
12176
- * Constants
12177
- * ------------------------------------------------------------------------
12178
- */
12179
- const NODE_TEXT = 3;
12180
- const SelectorEngine = {
12181
- find(selector, element = document.documentElement) {
12182
- return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
12183
- },
12184
-
12185
- findOne(selector, element = document.documentElement) {
12186
- return Element.prototype.querySelector.call(element, selector);
12187
- },
12188
-
12189
- children(element, selector) {
12190
- return [].concat(...element.children).filter(child => child.matches(selector));
12191
- },
12192
-
12193
- parents(element, selector) {
12194
- const parents = [];
12195
- let ancestor = element.parentNode;
12196
-
12197
- while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
12198
- if (ancestor.matches(selector)) {
12199
- parents.push(ancestor);
12200
- }
12201
-
12202
- ancestor = ancestor.parentNode;
12203
- }
12204
-
12205
- return parents;
12206
- },
12207
-
12208
- prev(element, selector) {
12209
- let previous = element.previousElementSibling;
12210
-
12211
- while (previous) {
12212
- if (previous.matches(selector)) {
12213
- return [previous];
12214
- }
12215
-
12216
- previous = previous.previousElementSibling;
12217
- }
12218
-
12219
- return [];
12220
- },
12221
-
12222
- next(element, selector) {
12223
- let next = element.nextElementSibling;
12224
-
12225
- while (next) {
12226
- if (next.matches(selector)) {
12227
- return [next];
12228
- }
12229
-
12230
- next = next.nextElementSibling;
12231
- }
12232
-
12233
- return [];
12234
- }
12235
-
12236
- };
12237
-
12238
- /**
12239
- * --------------------------------------------------------------------------
12240
- * Bootstrap (v5.0.1): util/index.js
12158
+ * Bootstrap (v5.0.0-beta3): util/index.js
12241
12159
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12242
12160
  * --------------------------------------------------------------------------
12243
12161
  */
12244
-
12245
12162
  const MAX_UID = 1000000;
12246
12163
  const MILLISECONDS_MULTIPLIER = 1000;
12247
12164
  const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
@@ -12283,7 +12200,7 @@ return jQuery;
12283
12200
 
12284
12201
 
12285
12202
  if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
12286
- hrefAttr = `#${hrefAttr.split('#')[1]}`;
12203
+ hrefAttr = '#' + hrefAttr.split('#')[1];
12287
12204
  }
12288
12205
 
12289
12206
  selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
@@ -12334,30 +12251,7 @@ return jQuery;
12334
12251
  element.dispatchEvent(new Event(TRANSITION_END));
12335
12252
  };
12336
12253
 
12337
- const isElement = obj => {
12338
- if (!obj || typeof obj !== 'object') {
12339
- return false;
12340
- }
12341
-
12342
- if (typeof obj.jquery !== 'undefined') {
12343
- obj = obj[0];
12344
- }
12345
-
12346
- return typeof obj.nodeType !== 'undefined';
12347
- };
12348
-
12349
- const getElement = obj => {
12350
- if (isElement(obj)) {
12351
- // it's a jQuery object or a node element
12352
- return obj.jquery ? obj[0] : obj;
12353
- }
12354
-
12355
- if (typeof obj === 'string' && obj.length > 0) {
12356
- return SelectorEngine.findOne(obj);
12357
- }
12358
-
12359
- return null;
12360
- };
12254
+ const isElement = obj => (obj[0] || obj).nodeType;
12361
12255
 
12362
12256
  const emulateTransitionEnd = (element, duration) => {
12363
12257
  let called = false;
@@ -12384,7 +12278,7 @@ return jQuery;
12384
12278
  const valueType = value && isElement(value) ? 'element' : toType(value);
12385
12279
 
12386
12280
  if (!new RegExp(expectedTypes).test(valueType)) {
12387
- throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
12281
+ throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
12388
12282
  }
12389
12283
  });
12390
12284
  };
@@ -12442,7 +12336,7 @@ return jQuery;
12442
12336
  return findShadowRoot(element.parentNode);
12443
12337
  };
12444
12338
 
12445
- const noop = () => {};
12339
+ const noop = () => function () {};
12446
12340
 
12447
12341
  const reflow = element => element.offsetHeight;
12448
12342
 
@@ -12468,13 +12362,12 @@ return jQuery;
12468
12362
 
12469
12363
  const isRTL = () => document.documentElement.dir === 'rtl';
12470
12364
 
12471
- const defineJQueryPlugin = plugin => {
12365
+ const defineJQueryPlugin = (name, plugin) => {
12472
12366
  onDOMContentLoaded(() => {
12473
12367
  const $ = getjQuery();
12474
12368
  /* istanbul ignore if */
12475
12369
 
12476
12370
  if ($) {
12477
- const name = plugin.NAME;
12478
12371
  const JQUERY_NO_CONFLICT = $.fn[name];
12479
12372
  $.fn[name] = plugin.jQueryInterface;
12480
12373
  $.fn[name].Constructor = plugin;
@@ -12487,15 +12380,9 @@ return jQuery;
12487
12380
  });
12488
12381
  };
12489
12382
 
12490
- const execute = callback => {
12491
- if (typeof callback === 'function') {
12492
- callback();
12493
- }
12494
- };
12495
-
12496
12383
  /**
12497
12384
  * --------------------------------------------------------------------------
12498
- * Bootstrap (v5.0.1): dom/data.js
12385
+ * Bootstrap (v5.0.0-beta3): dom/data.js
12499
12386
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12500
12387
  * --------------------------------------------------------------------------
12501
12388
  */
@@ -12549,7 +12436,7 @@ return jQuery;
12549
12436
 
12550
12437
  /**
12551
12438
  * --------------------------------------------------------------------------
12552
- * Bootstrap (v5.0.1): dom/event-handler.js
12439
+ * Bootstrap (v5.0.0-beta3): dom/event-handler.js
12553
12440
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12554
12441
  * --------------------------------------------------------------------------
12555
12442
  */
@@ -12569,7 +12456,6 @@ return jQuery;
12569
12456
  mouseenter: 'mouseover',
12570
12457
  mouseleave: 'mouseout'
12571
12458
  };
12572
- const customEventsRegex = /^(mouseenter|mouseleave)/i;
12573
12459
  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']);
12574
12460
  /**
12575
12461
  * ------------------------------------------------------------------------
@@ -12613,7 +12499,7 @@ return jQuery;
12613
12499
 
12614
12500
  if (handler.oneOff) {
12615
12501
  // eslint-disable-next-line unicorn/consistent-destructuring
12616
- EventHandler.off(element, event.type, selector, fn);
12502
+ EventHandler.off(element, event.type, fn);
12617
12503
  }
12618
12504
 
12619
12505
  return fn.apply(target, [event]);
@@ -12642,8 +12528,15 @@ return jQuery;
12642
12528
 
12643
12529
  function normalizeParams(originalTypeEvent, handler, delegationFn) {
12644
12530
  const delegation = typeof handler === 'string';
12645
- const originalHandler = delegation ? delegationFn : handler;
12646
- let typeEvent = getTypeEvent(originalTypeEvent);
12531
+ const originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
12532
+
12533
+ let typeEvent = originalTypeEvent.replace(stripNameRegex, '');
12534
+ const custom = customEvents[typeEvent];
12535
+
12536
+ if (custom) {
12537
+ typeEvent = custom;
12538
+ }
12539
+
12647
12540
  const isNative = nativeEvents.has(typeEvent);
12648
12541
 
12649
12542
  if (!isNative) {
@@ -12661,24 +12554,6 @@ return jQuery;
12661
12554
  if (!handler) {
12662
12555
  handler = delegationFn;
12663
12556
  delegationFn = null;
12664
- } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
12665
- // this prevents the handler from being dispatched the same way as mouseover or mouseout does
12666
-
12667
-
12668
- if (customEventsRegex.test(originalTypeEvent)) {
12669
- const wrapFn = fn => {
12670
- return function (event) {
12671
- if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
12672
- return fn.call(this, event);
12673
- }
12674
- };
12675
- };
12676
-
12677
- if (delegationFn) {
12678
- delegationFn = wrapFn(delegationFn);
12679
- } else {
12680
- handler = wrapFn(handler);
12681
- }
12682
12557
  }
12683
12558
 
12684
12559
  const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);
@@ -12722,12 +12597,6 @@ return jQuery;
12722
12597
  });
12723
12598
  }
12724
12599
 
12725
- function getTypeEvent(event) {
12726
- // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
12727
- event = event.replace(stripNameRegex, '');
12728
- return customEvents[event] || event;
12729
- }
12730
-
12731
12600
  const EventHandler = {
12732
12601
  on(element, event, handler, delegationFn) {
12733
12602
  addHandler(element, event, handler, delegationFn, false);
@@ -12780,7 +12649,7 @@ return jQuery;
12780
12649
  }
12781
12650
 
12782
12651
  const $ = getjQuery();
12783
- const typeEvent = getTypeEvent(event);
12652
+ const typeEvent = event.replace(stripNameRegex, '');
12784
12653
  const inNamespace = event !== typeEvent;
12785
12654
  const isNative = nativeEvents.has(typeEvent);
12786
12655
  let jQueryEvent;
@@ -12838,7 +12707,7 @@ return jQuery;
12838
12707
 
12839
12708
  /**
12840
12709
  * --------------------------------------------------------------------------
12841
- * Bootstrap (v5.0.1): base-component.js
12710
+ * Bootstrap (v5.0.0-beta3): base-component.js
12842
12711
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12843
12712
  * --------------------------------------------------------------------------
12844
12713
  */
@@ -12848,11 +12717,11 @@ return jQuery;
12848
12717
  * ------------------------------------------------------------------------
12849
12718
  */
12850
12719
 
12851
- const VERSION = '5.0.1';
12720
+ const VERSION = '5.0.0-beta3';
12852
12721
 
12853
12722
  class BaseComponent {
12854
12723
  constructor(element) {
12855
- element = getElement(element);
12724
+ element = typeof element === 'string' ? document.querySelector(element) : element;
12856
12725
 
12857
12726
  if (!element) {
12858
12727
  return;
@@ -12864,21 +12733,7 @@ return jQuery;
12864
12733
 
12865
12734
  dispose() {
12866
12735
  Data.remove(this._element, this.constructor.DATA_KEY);
12867
- EventHandler.off(this._element, this.constructor.EVENT_KEY);
12868
- Object.getOwnPropertyNames(this).forEach(propertyName => {
12869
- this[propertyName] = null;
12870
- });
12871
- }
12872
-
12873
- _queueCallback(callback, element, isAnimated = true) {
12874
- if (!isAnimated) {
12875
- execute(callback);
12876
- return;
12877
- }
12878
-
12879
- const transitionDuration = getTransitionDurationFromElement(element);
12880
- EventHandler.one(element, 'transitionend', () => execute(callback));
12881
- emulateTransitionEnd(element, transitionDuration);
12736
+ this._element = null;
12882
12737
  }
12883
12738
  /** Static */
12884
12739
 
@@ -12891,23 +12746,11 @@ return jQuery;
12891
12746
  return VERSION;
12892
12747
  }
12893
12748
 
12894
- static get NAME() {
12895
- throw new Error('You have to implement the static method "NAME", for each component!');
12896
- }
12897
-
12898
- static get DATA_KEY() {
12899
- return `bs.${this.NAME}`;
12900
- }
12901
-
12902
- static get EVENT_KEY() {
12903
- return `.${this.DATA_KEY}`;
12904
- }
12905
-
12906
12749
  }
12907
12750
 
12908
12751
  /**
12909
12752
  * --------------------------------------------------------------------------
12910
- * Bootstrap (v5.0.1): alert.js
12753
+ * Bootstrap (v5.0.0-beta3): alert.js
12911
12754
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12912
12755
  * --------------------------------------------------------------------------
12913
12756
  */
@@ -12917,7 +12760,7 @@ return jQuery;
12917
12760
  * ------------------------------------------------------------------------
12918
12761
  */
12919
12762
 
12920
- const NAME$c = 'alert';
12763
+ const NAME$b = 'alert';
12921
12764
  const DATA_KEY$b = 'bs.alert';
12922
12765
  const EVENT_KEY$b = `.${DATA_KEY$b}`;
12923
12766
  const DATA_API_KEY$8 = '.data-api';
@@ -12926,8 +12769,8 @@ return jQuery;
12926
12769
  const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
12927
12770
  const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$b}${DATA_API_KEY$8}`;
12928
12771
  const CLASS_NAME_ALERT = 'alert';
12929
- const CLASS_NAME_FADE$6 = 'fade';
12930
- const CLASS_NAME_SHOW$9 = 'show';
12772
+ const CLASS_NAME_FADE$5 = 'fade';
12773
+ const CLASS_NAME_SHOW$8 = 'show';
12931
12774
  /**
12932
12775
  * ------------------------------------------------------------------------
12933
12776
  * Class Definition
@@ -12936,8 +12779,8 @@ return jQuery;
12936
12779
 
12937
12780
  class Alert extends BaseComponent {
12938
12781
  // Getters
12939
- static get NAME() {
12940
- return NAME$c;
12782
+ static get DATA_KEY() {
12783
+ return DATA_KEY$b;
12941
12784
  } // Public
12942
12785
 
12943
12786
 
@@ -12963,10 +12806,17 @@ return jQuery;
12963
12806
  }
12964
12807
 
12965
12808
  _removeElement(element) {
12966
- element.classList.remove(CLASS_NAME_SHOW$9);
12967
- const isAnimated = element.classList.contains(CLASS_NAME_FADE$6);
12809
+ element.classList.remove(CLASS_NAME_SHOW$8);
12810
+
12811
+ if (!element.classList.contains(CLASS_NAME_FADE$5)) {
12812
+ this._destroyElement(element);
12968
12813
 
12969
- this._queueCallback(() => this._destroyElement(element), element, isAnimated);
12814
+ return;
12815
+ }
12816
+
12817
+ const transitionDuration = getTransitionDurationFromElement(element);
12818
+ EventHandler.one(element, 'transitionend', () => this._destroyElement(element));
12819
+ emulateTransitionEnd(element, transitionDuration);
12970
12820
  }
12971
12821
 
12972
12822
  _destroyElement(element) {
@@ -13018,11 +12868,11 @@ return jQuery;
13018
12868
  * add .Alert to jQuery only if jQuery is present
13019
12869
  */
13020
12870
 
13021
- defineJQueryPlugin(Alert);
12871
+ defineJQueryPlugin(NAME$b, Alert);
13022
12872
 
13023
12873
  /**
13024
12874
  * --------------------------------------------------------------------------
13025
- * Bootstrap (v5.0.1): button.js
12875
+ * Bootstrap (v5.0.0-beta3): button.js
13026
12876
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
13027
12877
  * --------------------------------------------------------------------------
13028
12878
  */
@@ -13032,7 +12882,7 @@ return jQuery;
13032
12882
  * ------------------------------------------------------------------------
13033
12883
  */
13034
12884
 
13035
- const NAME$b = 'button';
12885
+ const NAME$a = 'button';
13036
12886
  const DATA_KEY$a = 'bs.button';
13037
12887
  const EVENT_KEY$a = `.${DATA_KEY$a}`;
13038
12888
  const DATA_API_KEY$7 = '.data-api';
@@ -13047,8 +12897,8 @@ return jQuery;
13047
12897
 
13048
12898
  class Button extends BaseComponent {
13049
12899
  // Getters
13050
- static get NAME() {
13051
- return NAME$b;
12900
+ static get DATA_KEY() {
12901
+ return DATA_KEY$a;
13052
12902
  } // Public
13053
12903
 
13054
12904
 
@@ -13098,11 +12948,11 @@ return jQuery;
13098
12948
  * add .Button to jQuery only if jQuery is present
13099
12949
  */
13100
12950
 
13101
- defineJQueryPlugin(Button);
12951
+ defineJQueryPlugin(NAME$a, Button);
13102
12952
 
13103
12953
  /**
13104
12954
  * --------------------------------------------------------------------------
13105
- * Bootstrap (v5.0.1): dom/manipulator.js
12955
+ * Bootstrap (v5.0.0-beta3): dom/manipulator.js
13106
12956
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
13107
12957
  * --------------------------------------------------------------------------
13108
12958
  */
@@ -13176,7 +13026,78 @@ return jQuery;
13176
13026
 
13177
13027
  /**
13178
13028
  * --------------------------------------------------------------------------
13179
- * Bootstrap (v5.0.1): carousel.js
13029
+ * Bootstrap (v5.0.0-beta3): dom/selector-engine.js
13030
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
13031
+ * --------------------------------------------------------------------------
13032
+ */
13033
+
13034
+ /**
13035
+ * ------------------------------------------------------------------------
13036
+ * Constants
13037
+ * ------------------------------------------------------------------------
13038
+ */
13039
+ const NODE_TEXT = 3;
13040
+ const SelectorEngine = {
13041
+ find(selector, element = document.documentElement) {
13042
+ return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
13043
+ },
13044
+
13045
+ findOne(selector, element = document.documentElement) {
13046
+ return Element.prototype.querySelector.call(element, selector);
13047
+ },
13048
+
13049
+ children(element, selector) {
13050
+ return [].concat(...element.children).filter(child => child.matches(selector));
13051
+ },
13052
+
13053
+ parents(element, selector) {
13054
+ const parents = [];
13055
+ let ancestor = element.parentNode;
13056
+
13057
+ while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
13058
+ if (ancestor.matches(selector)) {
13059
+ parents.push(ancestor);
13060
+ }
13061
+
13062
+ ancestor = ancestor.parentNode;
13063
+ }
13064
+
13065
+ return parents;
13066
+ },
13067
+
13068
+ prev(element, selector) {
13069
+ let previous = element.previousElementSibling;
13070
+
13071
+ while (previous) {
13072
+ if (previous.matches(selector)) {
13073
+ return [previous];
13074
+ }
13075
+
13076
+ previous = previous.previousElementSibling;
13077
+ }
13078
+
13079
+ return [];
13080
+ },
13081
+
13082
+ next(element, selector) {
13083
+ let next = element.nextElementSibling;
13084
+
13085
+ while (next) {
13086
+ if (next.matches(selector)) {
13087
+ return [next];
13088
+ }
13089
+
13090
+ next = next.nextElementSibling;
13091
+ }
13092
+
13093
+ return [];
13094
+ }
13095
+
13096
+ };
13097
+
13098
+ /**
13099
+ * --------------------------------------------------------------------------
13100
+ * Bootstrap (v5.0.0-beta3): carousel.js
13180
13101
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
13181
13102
  * --------------------------------------------------------------------------
13182
13103
  */
@@ -13186,7 +13107,7 @@ return jQuery;
13186
13107
  * ------------------------------------------------------------------------
13187
13108
  */
13188
13109
 
13189
- const NAME$a = 'carousel';
13110
+ const NAME$9 = 'carousel';
13190
13111
  const DATA_KEY$9 = 'bs.carousel';
13191
13112
  const EVENT_KEY$9 = `.${DATA_KEY$9}`;
13192
13113
  const DATA_API_KEY$6 = '.data-api';
@@ -13195,7 +13116,7 @@ return jQuery;
13195
13116
  const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
13196
13117
 
13197
13118
  const SWIPE_THRESHOLD = 40;
13198
- const Default$9 = {
13119
+ const Default$8 = {
13199
13120
  interval: 5000,
13200
13121
  keyboard: true,
13201
13122
  slide: false,
@@ -13203,7 +13124,7 @@ return jQuery;
13203
13124
  wrap: true,
13204
13125
  touch: true
13205
13126
  };
13206
- const DefaultType$9 = {
13127
+ const DefaultType$8 = {
13207
13128
  interval: '(number|boolean)',
13208
13129
  keyboard: 'boolean',
13209
13130
  slide: '(boolean|string)',
@@ -13274,11 +13195,11 @@ return jQuery;
13274
13195
 
13275
13196
 
13276
13197
  static get Default() {
13277
- return Default$9;
13198
+ return Default$8;
13278
13199
  }
13279
13200
 
13280
- static get NAME() {
13281
- return NAME$a;
13201
+ static get DATA_KEY() {
13202
+ return DATA_KEY$9;
13282
13203
  } // Public
13283
13204
 
13284
13205
 
@@ -13356,14 +13277,26 @@ return jQuery;
13356
13277
  const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
13357
13278
 
13358
13279
  this._slide(order, this._items[index]);
13280
+ }
13281
+
13282
+ dispose() {
13283
+ EventHandler.off(this._element, EVENT_KEY$9);
13284
+ this._items = null;
13285
+ this._config = null;
13286
+ this._interval = null;
13287
+ this._isPaused = null;
13288
+ this._isSliding = null;
13289
+ this._activeElement = null;
13290
+ this._indicatorsElement = null;
13291
+ super.dispose();
13359
13292
  } // Private
13360
13293
 
13361
13294
 
13362
13295
  _getConfig(config) {
13363
- config = { ...Default$9,
13296
+ config = { ...Default$8,
13364
13297
  ...config
13365
13298
  };
13366
- typeCheckConfig(NAME$a, config, DefaultType$9);
13299
+ typeCheckConfig(NAME$9, config, DefaultType$8);
13367
13300
  return config;
13368
13301
  }
13369
13302
 
@@ -13462,11 +13395,11 @@ return jQuery;
13462
13395
  if (event.key === ARROW_LEFT_KEY) {
13463
13396
  event.preventDefault();
13464
13397
 
13465
- this._slide(DIRECTION_RIGHT);
13398
+ this._slide(DIRECTION_LEFT);
13466
13399
  } else if (event.key === ARROW_RIGHT_KEY) {
13467
13400
  event.preventDefault();
13468
13401
 
13469
- this._slide(DIRECTION_LEFT);
13402
+ this._slide(DIRECTION_RIGHT);
13470
13403
  }
13471
13404
  }
13472
13405
 
@@ -13584,35 +13517,37 @@ return jQuery;
13584
13517
 
13585
13518
  this._activeElement = nextElement;
13586
13519
 
13587
- const triggerSlidEvent = () => {
13588
- EventHandler.trigger(this._element, EVENT_SLID, {
13589
- relatedTarget: nextElement,
13590
- direction: eventDirectionName,
13591
- from: activeElementIndex,
13592
- to: nextElementIndex
13593
- });
13594
- };
13595
-
13596
13520
  if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
13597
13521
  nextElement.classList.add(orderClassName);
13598
13522
  reflow(nextElement);
13599
13523
  activeElement.classList.add(directionalClassName);
13600
13524
  nextElement.classList.add(directionalClassName);
13601
-
13602
- const completeCallBack = () => {
13525
+ const transitionDuration = getTransitionDurationFromElement(activeElement);
13526
+ EventHandler.one(activeElement, 'transitionend', () => {
13603
13527
  nextElement.classList.remove(directionalClassName, orderClassName);
13604
13528
  nextElement.classList.add(CLASS_NAME_ACTIVE$2);
13605
13529
  activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
13606
13530
  this._isSliding = false;
13607
- setTimeout(triggerSlidEvent, 0);
13608
- };
13609
-
13610
- this._queueCallback(completeCallBack, activeElement, true);
13531
+ setTimeout(() => {
13532
+ EventHandler.trigger(this._element, EVENT_SLID, {
13533
+ relatedTarget: nextElement,
13534
+ direction: eventDirectionName,
13535
+ from: activeElementIndex,
13536
+ to: nextElementIndex
13537
+ });
13538
+ }, 0);
13539
+ });
13540
+ emulateTransitionEnd(activeElement, transitionDuration);
13611
13541
  } else {
13612
13542
  activeElement.classList.remove(CLASS_NAME_ACTIVE$2);
13613
13543
  nextElement.classList.add(CLASS_NAME_ACTIVE$2);
13614
13544
  this._isSliding = false;
13615
- triggerSlidEvent();
13545
+ EventHandler.trigger(this._element, EVENT_SLID, {
13546
+ relatedTarget: nextElement,
13547
+ direction: eventDirectionName,
13548
+ from: activeElementIndex,
13549
+ to: nextElementIndex
13550
+ });
13616
13551
  }
13617
13552
 
13618
13553
  if (isCycling) {
@@ -13626,10 +13561,10 @@ return jQuery;
13626
13561
  }
13627
13562
 
13628
13563
  if (isRTL()) {
13629
- return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
13564
+ return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT;
13630
13565
  }
13631
13566
 
13632
- return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
13567
+ return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV;
13633
13568
  }
13634
13569
 
13635
13570
  _orderToDirection(order) {
@@ -13638,16 +13573,16 @@ return jQuery;
13638
13573
  }
13639
13574
 
13640
13575
  if (isRTL()) {
13641
- return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
13576
+ return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;
13642
13577
  }
13643
13578
 
13644
- return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
13579
+ return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT;
13645
13580
  } // Static
13646
13581
 
13647
13582
 
13648
13583
  static carouselInterface(element, config) {
13649
13584
  let data = Data.get(element, DATA_KEY$9);
13650
- let _config = { ...Default$9,
13585
+ let _config = { ...Default$8,
13651
13586
  ...Manipulator.getDataAttributes(element)
13652
13587
  };
13653
13588
 
@@ -13731,11 +13666,11 @@ return jQuery;
13731
13666
  * add .Carousel to jQuery only if jQuery is present
13732
13667
  */
13733
13668
 
13734
- defineJQueryPlugin(Carousel);
13669
+ defineJQueryPlugin(NAME$9, Carousel);
13735
13670
 
13736
13671
  /**
13737
13672
  * --------------------------------------------------------------------------
13738
- * Bootstrap (v5.0.1): collapse.js
13673
+ * Bootstrap (v5.0.0-beta3): collapse.js
13739
13674
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
13740
13675
  * --------------------------------------------------------------------------
13741
13676
  */
@@ -13745,15 +13680,15 @@ return jQuery;
13745
13680
  * ------------------------------------------------------------------------
13746
13681
  */
13747
13682
 
13748
- const NAME$9 = 'collapse';
13683
+ const NAME$8 = 'collapse';
13749
13684
  const DATA_KEY$8 = 'bs.collapse';
13750
13685
  const EVENT_KEY$8 = `.${DATA_KEY$8}`;
13751
13686
  const DATA_API_KEY$5 = '.data-api';
13752
- const Default$8 = {
13687
+ const Default$7 = {
13753
13688
  toggle: true,
13754
13689
  parent: ''
13755
13690
  };
13756
- const DefaultType$8 = {
13691
+ const DefaultType$7 = {
13757
13692
  toggle: 'boolean',
13758
13693
  parent: '(string|element)'
13759
13694
  };
@@ -13762,7 +13697,7 @@ return jQuery;
13762
13697
  const EVENT_HIDE$5 = `hide${EVENT_KEY$8}`;
13763
13698
  const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$8}`;
13764
13699
  const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
13765
- const CLASS_NAME_SHOW$8 = 'show';
13700
+ const CLASS_NAME_SHOW$7 = 'show';
13766
13701
  const CLASS_NAME_COLLAPSE = 'collapse';
13767
13702
  const CLASS_NAME_COLLAPSING = 'collapsing';
13768
13703
  const CLASS_NAME_COLLAPSED = 'collapsed';
@@ -13809,16 +13744,16 @@ return jQuery;
13809
13744
 
13810
13745
 
13811
13746
  static get Default() {
13812
- return Default$8;
13747
+ return Default$7;
13813
13748
  }
13814
13749
 
13815
- static get NAME() {
13816
- return NAME$9;
13750
+ static get DATA_KEY() {
13751
+ return DATA_KEY$8;
13817
13752
  } // Public
13818
13753
 
13819
13754
 
13820
13755
  toggle() {
13821
- if (this._element.classList.contains(CLASS_NAME_SHOW$8)) {
13756
+ if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {
13822
13757
  this.hide();
13823
13758
  } else {
13824
13759
  this.show();
@@ -13826,7 +13761,7 @@ return jQuery;
13826
13761
  }
13827
13762
 
13828
13763
  show() {
13829
- if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$8)) {
13764
+ if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW$7)) {
13830
13765
  return;
13831
13766
  }
13832
13767
 
@@ -13896,7 +13831,7 @@ return jQuery;
13896
13831
  const complete = () => {
13897
13832
  this._element.classList.remove(CLASS_NAME_COLLAPSING);
13898
13833
 
13899
- this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$8);
13834
+ this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
13900
13835
 
13901
13836
  this._element.style[dimension] = '';
13902
13837
  this.setTransitioning(false);
@@ -13905,14 +13840,14 @@ return jQuery;
13905
13840
 
13906
13841
  const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
13907
13842
  const scrollSize = `scroll${capitalizedDimension}`;
13908
-
13909
- this._queueCallback(complete, this._element, true);
13910
-
13843
+ const transitionDuration = getTransitionDurationFromElement(this._element);
13844
+ EventHandler.one(this._element, 'transitionend', complete);
13845
+ emulateTransitionEnd(this._element, transitionDuration);
13911
13846
  this._element.style[dimension] = `${this._element[scrollSize]}px`;
13912
13847
  }
13913
13848
 
13914
13849
  hide() {
13915
- if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$8)) {
13850
+ if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW$7)) {
13916
13851
  return;
13917
13852
  }
13918
13853
 
@@ -13929,7 +13864,7 @@ return jQuery;
13929
13864
 
13930
13865
  this._element.classList.add(CLASS_NAME_COLLAPSING);
13931
13866
 
13932
- this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$8);
13867
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
13933
13868
 
13934
13869
  const triggerArrayLength = this._triggerArray.length;
13935
13870
 
@@ -13938,7 +13873,7 @@ return jQuery;
13938
13873
  const trigger = this._triggerArray[i];
13939
13874
  const elem = getElementFromSelector(trigger);
13940
13875
 
13941
- if (elem && !elem.classList.contains(CLASS_NAME_SHOW$8)) {
13876
+ if (elem && !elem.classList.contains(CLASS_NAME_SHOW$7)) {
13942
13877
  trigger.classList.add(CLASS_NAME_COLLAPSED);
13943
13878
  trigger.setAttribute('aria-expanded', false);
13944
13879
  }
@@ -13958,22 +13893,31 @@ return jQuery;
13958
13893
  };
13959
13894
 
13960
13895
  this._element.style[dimension] = '';
13961
-
13962
- this._queueCallback(complete, this._element, true);
13896
+ const transitionDuration = getTransitionDurationFromElement(this._element);
13897
+ EventHandler.one(this._element, 'transitionend', complete);
13898
+ emulateTransitionEnd(this._element, transitionDuration);
13963
13899
  }
13964
13900
 
13965
13901
  setTransitioning(isTransitioning) {
13966
13902
  this._isTransitioning = isTransitioning;
13903
+ }
13904
+
13905
+ dispose() {
13906
+ super.dispose();
13907
+ this._config = null;
13908
+ this._parent = null;
13909
+ this._triggerArray = null;
13910
+ this._isTransitioning = null;
13967
13911
  } // Private
13968
13912
 
13969
13913
 
13970
13914
  _getConfig(config) {
13971
- config = { ...Default$8,
13915
+ config = { ...Default$7,
13972
13916
  ...config
13973
13917
  };
13974
13918
  config.toggle = Boolean(config.toggle); // Coerce string values
13975
13919
 
13976
- typeCheckConfig(NAME$9, config, DefaultType$8);
13920
+ typeCheckConfig(NAME$8, config, DefaultType$7);
13977
13921
  return config;
13978
13922
  }
13979
13923
 
@@ -13985,7 +13929,16 @@ return jQuery;
13985
13929
  let {
13986
13930
  parent
13987
13931
  } = this._config;
13988
- parent = getElement(parent);
13932
+
13933
+ if (isElement(parent)) {
13934
+ // it's a jQuery object
13935
+ if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
13936
+ parent = parent[0];
13937
+ }
13938
+ } else {
13939
+ parent = SelectorEngine.findOne(parent);
13940
+ }
13941
+
13989
13942
  const selector = `${SELECTOR_DATA_TOGGLE$4}[data-bs-parent="${parent}"]`;
13990
13943
  SelectorEngine.find(selector, parent).forEach(element => {
13991
13944
  const selected = getElementFromSelector(element);
@@ -14000,7 +13953,7 @@ return jQuery;
14000
13953
  return;
14001
13954
  }
14002
13955
 
14003
- const isOpen = element.classList.contains(CLASS_NAME_SHOW$8);
13956
+ const isOpen = element.classList.contains(CLASS_NAME_SHOW$7);
14004
13957
  triggerArray.forEach(elem => {
14005
13958
  if (isOpen) {
14006
13959
  elem.classList.remove(CLASS_NAME_COLLAPSED);
@@ -14015,7 +13968,7 @@ return jQuery;
14015
13968
 
14016
13969
  static collapseInterface(element, config) {
14017
13970
  let data = Data.get(element, DATA_KEY$8);
14018
- const _config = { ...Default$8,
13971
+ const _config = { ...Default$7,
14019
13972
  ...Manipulator.getDataAttributes(element),
14020
13973
  ...(typeof config === 'object' && config ? config : {})
14021
13974
  };
@@ -14086,11 +14039,11 @@ return jQuery;
14086
14039
  * add .Collapse to jQuery only if jQuery is present
14087
14040
  */
14088
14041
 
14089
- defineJQueryPlugin(Collapse);
14042
+ defineJQueryPlugin(NAME$8, Collapse);
14090
14043
 
14091
14044
  /**
14092
14045
  * --------------------------------------------------------------------------
14093
- * Bootstrap (v5.0.1): dropdown.js
14046
+ * Bootstrap (v5.0.0-beta3): dropdown.js
14094
14047
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
14095
14048
  * --------------------------------------------------------------------------
14096
14049
  */
@@ -14100,7 +14053,7 @@ return jQuery;
14100
14053
  * ------------------------------------------------------------------------
14101
14054
  */
14102
14055
 
14103
- const NAME$8 = 'dropdown';
14056
+ const NAME$7 = 'dropdown';
14104
14057
  const DATA_KEY$7 = 'bs.dropdown';
14105
14058
  const EVENT_KEY$7 = `.${DATA_KEY$7}`;
14106
14059
  const DATA_API_KEY$4 = '.data-api';
@@ -14120,7 +14073,8 @@ return jQuery;
14120
14073
  const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
14121
14074
  const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$7}${DATA_API_KEY$4}`;
14122
14075
  const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$7}${DATA_API_KEY$4}`;
14123
- const CLASS_NAME_SHOW$7 = 'show';
14076
+ const CLASS_NAME_DISABLED = 'disabled';
14077
+ const CLASS_NAME_SHOW$6 = 'show';
14124
14078
  const CLASS_NAME_DROPUP = 'dropup';
14125
14079
  const CLASS_NAME_DROPEND = 'dropend';
14126
14080
  const CLASS_NAME_DROPSTART = 'dropstart';
@@ -14135,21 +14089,19 @@ return jQuery;
14135
14089
  const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';
14136
14090
  const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';
14137
14091
  const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
14138
- const Default$7 = {
14092
+ const Default$6 = {
14139
14093
  offset: [0, 2],
14140
14094
  boundary: 'clippingParents',
14141
14095
  reference: 'toggle',
14142
14096
  display: 'dynamic',
14143
- popperConfig: null,
14144
- autoClose: true
14097
+ popperConfig: null
14145
14098
  };
14146
- const DefaultType$7 = {
14099
+ const DefaultType$6 = {
14147
14100
  offset: '(array|string|function)',
14148
14101
  boundary: '(string|element)',
14149
14102
  reference: '(string|element|object)',
14150
14103
  display: 'string',
14151
- popperConfig: '(null|object|function)',
14152
- autoClose: '(boolean|string)'
14104
+ popperConfig: '(null|object|function)'
14153
14105
  };
14154
14106
  /**
14155
14107
  * ------------------------------------------------------------------------
@@ -14170,27 +14122,28 @@ return jQuery;
14170
14122
 
14171
14123
 
14172
14124
  static get Default() {
14173
- return Default$7;
14125
+ return Default$6;
14174
14126
  }
14175
14127
 
14176
14128
  static get DefaultType() {
14177
- return DefaultType$7;
14129
+ return DefaultType$6;
14178
14130
  }
14179
14131
 
14180
- static get NAME() {
14181
- return NAME$8;
14132
+ static get DATA_KEY() {
14133
+ return DATA_KEY$7;
14182
14134
  } // Public
14183
14135
 
14184
14136
 
14185
14137
  toggle() {
14186
- if (isDisabled(this._element)) {
14138
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {
14187
14139
  return;
14188
14140
  }
14189
14141
 
14190
- const isActive = this._element.classList.contains(CLASS_NAME_SHOW$7);
14142
+ const isActive = this._element.classList.contains(CLASS_NAME_SHOW$6);
14143
+
14144
+ Dropdown.clearMenus();
14191
14145
 
14192
14146
  if (isActive) {
14193
- this.hide();
14194
14147
  return;
14195
14148
  }
14196
14149
 
@@ -14198,7 +14151,7 @@ return jQuery;
14198
14151
  }
14199
14152
 
14200
14153
  show() {
14201
- if (isDisabled(this._element) || this._menu.classList.contains(CLASS_NAME_SHOW$7)) {
14154
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW$6)) {
14202
14155
  return;
14203
14156
  }
14204
14157
 
@@ -14225,7 +14178,11 @@ return jQuery;
14225
14178
  if (this._config.reference === 'parent') {
14226
14179
  referenceElement = parent;
14227
14180
  } else if (isElement(this._config.reference)) {
14228
- referenceElement = getElement(this._config.reference);
14181
+ referenceElement = this._config.reference; // Check if it's jQuery element
14182
+
14183
+ if (typeof this._config.reference.jquery !== 'undefined') {
14184
+ referenceElement = this._config.reference[0];
14185
+ }
14229
14186
  } else if (typeof this._config.reference === 'object') {
14230
14187
  referenceElement = this._config.reference;
14231
14188
  }
@@ -14245,35 +14202,54 @@ return jQuery;
14245
14202
 
14246
14203
 
14247
14204
  if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
14248
- [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', noop));
14205
+ [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()));
14249
14206
  }
14250
14207
 
14251
14208
  this._element.focus();
14252
14209
 
14253
14210
  this._element.setAttribute('aria-expanded', true);
14254
14211
 
14255
- this._menu.classList.toggle(CLASS_NAME_SHOW$7);
14212
+ this._menu.classList.toggle(CLASS_NAME_SHOW$6);
14256
14213
 
14257
- this._element.classList.toggle(CLASS_NAME_SHOW$7);
14214
+ this._element.classList.toggle(CLASS_NAME_SHOW$6);
14258
14215
 
14259
14216
  EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);
14260
14217
  }
14261
14218
 
14262
14219
  hide() {
14263
- if (isDisabled(this._element) || !this._menu.classList.contains(CLASS_NAME_SHOW$7)) {
14220
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW$6)) {
14264
14221
  return;
14265
14222
  }
14266
14223
 
14267
14224
  const relatedTarget = {
14268
14225
  relatedTarget: this._element
14269
14226
  };
14227
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);
14228
+
14229
+ if (hideEvent.defaultPrevented) {
14230
+ return;
14231
+ }
14232
+
14233
+ if (this._popper) {
14234
+ this._popper.destroy();
14235
+ }
14236
+
14237
+ this._menu.classList.toggle(CLASS_NAME_SHOW$6);
14270
14238
 
14271
- this._completeHide(relatedTarget);
14239
+ this._element.classList.toggle(CLASS_NAME_SHOW$6);
14240
+
14241
+ Manipulator.removeDataAttribute(this._menu, 'popper');
14242
+ EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);
14272
14243
  }
14273
14244
 
14274
14245
  dispose() {
14246
+ EventHandler.off(this._element, EVENT_KEY$7);
14247
+ this._menu = null;
14248
+
14275
14249
  if (this._popper) {
14276
14250
  this._popper.destroy();
14251
+
14252
+ this._popper = null;
14277
14253
  }
14278
14254
 
14279
14255
  super.dispose();
@@ -14295,43 +14271,16 @@ return jQuery;
14295
14271
  });
14296
14272
  }
14297
14273
 
14298
- _completeHide(relatedTarget) {
14299
- const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);
14300
-
14301
- if (hideEvent.defaultPrevented) {
14302
- return;
14303
- } // If this is a touch-enabled device we remove the extra
14304
- // empty mouseover listeners we added for iOS support
14305
-
14306
-
14307
- if ('ontouchstart' in document.documentElement) {
14308
- [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', noop));
14309
- }
14310
-
14311
- if (this._popper) {
14312
- this._popper.destroy();
14313
- }
14314
-
14315
- this._menu.classList.remove(CLASS_NAME_SHOW$7);
14316
-
14317
- this._element.classList.remove(CLASS_NAME_SHOW$7);
14318
-
14319
- this._element.setAttribute('aria-expanded', 'false');
14320
-
14321
- Manipulator.removeDataAttribute(this._menu, 'popper');
14322
- EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);
14323
- }
14324
-
14325
14274
  _getConfig(config) {
14326
14275
  config = { ...this.constructor.Default,
14327
14276
  ...Manipulator.getDataAttributes(this._element),
14328
14277
  ...config
14329
14278
  };
14330
- typeCheckConfig(NAME$8, config, this.constructor.DefaultType);
14279
+ typeCheckConfig(NAME$7, config, this.constructor.DefaultType);
14331
14280
 
14332
14281
  if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
14333
14282
  // Popper virtual elements require a getBoundingClientRect method
14334
- throw new TypeError(`${NAME$8.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
14283
+ throw new TypeError(`${NAME$7.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
14335
14284
  }
14336
14285
 
14337
14286
  return config;
@@ -14408,29 +14357,6 @@ return jQuery;
14408
14357
  return { ...defaultBsPopperConfig,
14409
14358
  ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)
14410
14359
  };
14411
- }
14412
-
14413
- _selectMenuItem(event) {
14414
- const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);
14415
-
14416
- if (!items.length) {
14417
- return;
14418
- }
14419
-
14420
- let index = items.indexOf(event.target); // Up
14421
-
14422
- if (event.key === ARROW_UP_KEY && index > 0) {
14423
- index--;
14424
- } // Down
14425
-
14426
-
14427
- if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
14428
- index++;
14429
- } // index is -1 if the first keydown is an ArrowUp
14430
-
14431
-
14432
- index = index === -1 ? 0 : index;
14433
- items[index].focus();
14434
14360
  } // Static
14435
14361
 
14436
14362
 
@@ -14459,46 +14385,72 @@ return jQuery;
14459
14385
  }
14460
14386
 
14461
14387
  static clearMenus(event) {
14462
- if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
14463
- return;
14388
+ if (event) {
14389
+ if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY) {
14390
+ return;
14391
+ }
14392
+
14393
+ if (/input|select|textarea|form/i.test(event.target.tagName)) {
14394
+ return;
14395
+ }
14464
14396
  }
14465
14397
 
14466
14398
  const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);
14467
14399
 
14468
14400
  for (let i = 0, len = toggles.length; i < len; i++) {
14469
14401
  const context = Data.get(toggles[i], DATA_KEY$7);
14402
+ const relatedTarget = {
14403
+ relatedTarget: toggles[i]
14404
+ };
14470
14405
 
14471
- if (!context || context._config.autoClose === false) {
14472
- continue;
14406
+ if (event && event.type === 'click') {
14407
+ relatedTarget.clickEvent = event;
14473
14408
  }
14474
14409
 
14475
- if (!context._element.classList.contains(CLASS_NAME_SHOW$7)) {
14410
+ if (!context) {
14476
14411
  continue;
14477
14412
  }
14478
14413
 
14479
- const relatedTarget = {
14480
- relatedTarget: context._element
14481
- };
14414
+ const dropdownMenu = context._menu;
14482
14415
 
14483
- if (event) {
14484
- const composedPath = event.composedPath();
14485
- const isMenuTarget = composedPath.includes(context._menu);
14416
+ if (!toggles[i].classList.contains(CLASS_NAME_SHOW$6)) {
14417
+ continue;
14418
+ }
14486
14419
 
14487
- if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
14420
+ if (event) {
14421
+ // Don't close the menu if the clicked element or one of its parents is the dropdown button
14422
+ if ([context._element].some(element => event.composedPath().includes(element))) {
14488
14423
  continue;
14489
- } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
14424
+ } // Tab navigation through the dropdown menu shouldn't close the menu
14490
14425
 
14491
14426
 
14492
- if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) {
14427
+ if (event.type === 'keyup' && event.key === TAB_KEY && dropdownMenu.contains(event.target)) {
14493
14428
  continue;
14494
14429
  }
14430
+ }
14495
14431
 
14496
- if (event.type === 'click') {
14497
- relatedTarget.clickEvent = event;
14498
- }
14432
+ const hideEvent = EventHandler.trigger(toggles[i], EVENT_HIDE$4, relatedTarget);
14433
+
14434
+ if (hideEvent.defaultPrevented) {
14435
+ continue;
14436
+ } // If this is a touch-enabled device we remove the extra
14437
+ // empty mouseover listeners we added for iOS support
14438
+
14439
+
14440
+ if ('ontouchstart' in document.documentElement) {
14441
+ [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()));
14442
+ }
14443
+
14444
+ toggles[i].setAttribute('aria-expanded', 'false');
14445
+
14446
+ if (context._popper) {
14447
+ context._popper.destroy();
14499
14448
  }
14500
14449
 
14501
- context._completeHide(relatedTarget);
14450
+ dropdownMenu.classList.remove(CLASS_NAME_SHOW$6);
14451
+ toggles[i].classList.remove(CLASS_NAME_SHOW$6);
14452
+ Manipulator.removeDataAttribute(dropdownMenu, 'popper');
14453
+ EventHandler.trigger(toggles[i], EVENT_HIDDEN$4, relatedTarget);
14502
14454
  }
14503
14455
  }
14504
14456
 
@@ -14518,29 +14470,26 @@ return jQuery;
14518
14470
  return;
14519
14471
  }
14520
14472
 
14521
- const isActive = this.classList.contains(CLASS_NAME_SHOW$7);
14522
-
14523
- if (!isActive && event.key === ESCAPE_KEY$2) {
14524
- return;
14525
- }
14526
-
14527
14473
  event.preventDefault();
14528
14474
  event.stopPropagation();
14529
14475
 
14530
- if (isDisabled(this)) {
14476
+ if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {
14531
14477
  return;
14532
14478
  }
14533
14479
 
14534
- const getToggleButton = () => this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];
14480
+ const parent = Dropdown.getParentFromElement(this);
14481
+ const isActive = this.classList.contains(CLASS_NAME_SHOW$6);
14535
14482
 
14536
14483
  if (event.key === ESCAPE_KEY$2) {
14537
- getToggleButton().focus();
14484
+ const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];
14485
+ button.focus();
14538
14486
  Dropdown.clearMenus();
14539
14487
  return;
14540
14488
  }
14541
14489
 
14542
14490
  if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {
14543
- getToggleButton().click();
14491
+ const button = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];
14492
+ button.click();
14544
14493
  return;
14545
14494
  }
14546
14495
 
@@ -14549,7 +14498,26 @@ return jQuery;
14549
14498
  return;
14550
14499
  }
14551
14500
 
14552
- Dropdown.getInstance(getToggleButton())._selectMenuItem(event);
14501
+ const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
14502
+
14503
+ if (!items.length) {
14504
+ return;
14505
+ }
14506
+
14507
+ let index = items.indexOf(event.target); // Up
14508
+
14509
+ if (event.key === ARROW_UP_KEY && index > 0) {
14510
+ index--;
14511
+ } // Down
14512
+
14513
+
14514
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
14515
+ index++;
14516
+ } // index is -1 if the first keydown is an ArrowUp
14517
+
14518
+
14519
+ index = index === -1 ? 0 : index;
14520
+ items[index].focus();
14553
14521
  }
14554
14522
 
14555
14523
  }
@@ -14575,214 +14543,11 @@ return jQuery;
14575
14543
  * add .Dropdown to jQuery only if jQuery is present
14576
14544
  */
14577
14545
 
14578
- defineJQueryPlugin(Dropdown);
14546
+ defineJQueryPlugin(NAME$7, Dropdown);
14579
14547
 
14580
14548
  /**
14581
14549
  * --------------------------------------------------------------------------
14582
- * Bootstrap (v5.0.1): util/scrollBar.js
14583
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
14584
- * --------------------------------------------------------------------------
14585
- */
14586
- const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
14587
- const SELECTOR_STICKY_CONTENT = '.sticky-top';
14588
-
14589
- const getWidth = () => {
14590
- // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
14591
- const documentWidth = document.documentElement.clientWidth;
14592
- return Math.abs(window.innerWidth - documentWidth);
14593
- };
14594
-
14595
- const hide = (width = getWidth()) => {
14596
- _disableOverFlow(); // give padding to element to balances the hidden scrollbar width
14597
-
14598
-
14599
- _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements, to keep shown fullwidth
14600
-
14601
-
14602
- _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);
14603
-
14604
- _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);
14605
- };
14606
-
14607
- const _disableOverFlow = () => {
14608
- const actualValue = document.body.style.overflow;
14609
-
14610
- if (actualValue) {
14611
- Manipulator.setDataAttribute(document.body, 'overflow', actualValue);
14612
- }
14613
-
14614
- document.body.style.overflow = 'hidden';
14615
- };
14616
-
14617
- const _setElementAttributes = (selector, styleProp, callback) => {
14618
- const scrollbarWidth = getWidth();
14619
- SelectorEngine.find(selector).forEach(element => {
14620
- if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {
14621
- return;
14622
- }
14623
-
14624
- const actualValue = element.style[styleProp];
14625
- const calculatedValue = window.getComputedStyle(element)[styleProp];
14626
- Manipulator.setDataAttribute(element, styleProp, actualValue);
14627
- element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;
14628
- });
14629
- };
14630
-
14631
- const reset = () => {
14632
- _resetElementAttributes('body', 'overflow');
14633
-
14634
- _resetElementAttributes('body', 'paddingRight');
14635
-
14636
- _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
14637
-
14638
- _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
14639
- };
14640
-
14641
- const _resetElementAttributes = (selector, styleProp) => {
14642
- SelectorEngine.find(selector).forEach(element => {
14643
- const value = Manipulator.getDataAttribute(element, styleProp);
14644
-
14645
- if (typeof value === 'undefined') {
14646
- element.style.removeProperty(styleProp);
14647
- } else {
14648
- Manipulator.removeDataAttribute(element, styleProp);
14649
- element.style[styleProp] = value;
14650
- }
14651
- });
14652
- };
14653
-
14654
- /**
14655
- * --------------------------------------------------------------------------
14656
- * Bootstrap (v5.0.1): util/backdrop.js
14657
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
14658
- * --------------------------------------------------------------------------
14659
- */
14660
- const Default$6 = {
14661
- isVisible: true,
14662
- // if false, we use the backdrop helper without adding any element to the dom
14663
- isAnimated: false,
14664
- rootElement: document.body,
14665
- // give the choice to place backdrop under different elements
14666
- clickCallback: null
14667
- };
14668
- const DefaultType$6 = {
14669
- isVisible: 'boolean',
14670
- isAnimated: 'boolean',
14671
- rootElement: 'element',
14672
- clickCallback: '(function|null)'
14673
- };
14674
- const NAME$7 = 'backdrop';
14675
- const CLASS_NAME_BACKDROP = 'modal-backdrop';
14676
- const CLASS_NAME_FADE$5 = 'fade';
14677
- const CLASS_NAME_SHOW$6 = 'show';
14678
- const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$7}`;
14679
-
14680
- class Backdrop {
14681
- constructor(config) {
14682
- this._config = this._getConfig(config);
14683
- this._isAppended = false;
14684
- this._element = null;
14685
- }
14686
-
14687
- show(callback) {
14688
- if (!this._config.isVisible) {
14689
- execute(callback);
14690
- return;
14691
- }
14692
-
14693
- this._append();
14694
-
14695
- if (this._config.isAnimated) {
14696
- reflow(this._getElement());
14697
- }
14698
-
14699
- this._getElement().classList.add(CLASS_NAME_SHOW$6);
14700
-
14701
- this._emulateAnimation(() => {
14702
- execute(callback);
14703
- });
14704
- }
14705
-
14706
- hide(callback) {
14707
- if (!this._config.isVisible) {
14708
- execute(callback);
14709
- return;
14710
- }
14711
-
14712
- this._getElement().classList.remove(CLASS_NAME_SHOW$6);
14713
-
14714
- this._emulateAnimation(() => {
14715
- this.dispose();
14716
- execute(callback);
14717
- });
14718
- } // Private
14719
-
14720
-
14721
- _getElement() {
14722
- if (!this._element) {
14723
- const backdrop = document.createElement('div');
14724
- backdrop.className = CLASS_NAME_BACKDROP;
14725
-
14726
- if (this._config.isAnimated) {
14727
- backdrop.classList.add(CLASS_NAME_FADE$5);
14728
- }
14729
-
14730
- this._element = backdrop;
14731
- }
14732
-
14733
- return this._element;
14734
- }
14735
-
14736
- _getConfig(config) {
14737
- config = { ...Default$6,
14738
- ...(typeof config === 'object' ? config : {})
14739
- };
14740
- config.rootElement = config.rootElement || document.body;
14741
- typeCheckConfig(NAME$7, config, DefaultType$6);
14742
- return config;
14743
- }
14744
-
14745
- _append() {
14746
- if (this._isAppended) {
14747
- return;
14748
- }
14749
-
14750
- this._config.rootElement.appendChild(this._getElement());
14751
-
14752
- EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {
14753
- execute(this._config.clickCallback);
14754
- });
14755
- this._isAppended = true;
14756
- }
14757
-
14758
- dispose() {
14759
- if (!this._isAppended) {
14760
- return;
14761
- }
14762
-
14763
- EventHandler.off(this._element, EVENT_MOUSEDOWN);
14764
-
14765
- this._getElement().parentNode.removeChild(this._element);
14766
-
14767
- this._isAppended = false;
14768
- }
14769
-
14770
- _emulateAnimation(callback) {
14771
- if (!this._config.isAnimated) {
14772
- execute(callback);
14773
- return;
14774
- }
14775
-
14776
- const backdropTransitionDuration = getTransitionDurationFromElement(this._getElement());
14777
- EventHandler.one(this._getElement(), 'transitionend', () => execute(callback));
14778
- emulateTransitionEnd(this._getElement(), backdropTransitionDuration);
14779
- }
14780
-
14781
- }
14782
-
14783
- /**
14784
- * --------------------------------------------------------------------------
14785
- * Bootstrap (v5.0.1): modal.js
14550
+ * Bootstrap (v5.0.0-beta3): modal.js
14786
14551
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
14787
14552
  * --------------------------------------------------------------------------
14788
14553
  */
@@ -14812,13 +14577,15 @@ return jQuery;
14812
14577
  const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`;
14813
14578
  const EVENT_SHOW$3 = `show${EVENT_KEY$6}`;
14814
14579
  const EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`;
14815
- const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$6}`;
14580
+ const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$6}`;
14816
14581
  const EVENT_RESIZE = `resize${EVENT_KEY$6}`;
14817
14582
  const EVENT_CLICK_DISMISS$2 = `click.dismiss${EVENT_KEY$6}`;
14818
- const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`;
14583
+ const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$6}`;
14819
14584
  const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`;
14820
14585
  const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`;
14821
14586
  const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
14587
+ const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
14588
+ const CLASS_NAME_BACKDROP = 'modal-backdrop';
14822
14589
  const CLASS_NAME_OPEN = 'modal-open';
14823
14590
  const CLASS_NAME_FADE$4 = 'fade';
14824
14591
  const CLASS_NAME_SHOW$5 = 'show';
@@ -14827,6 +14594,8 @@ return jQuery;
14827
14594
  const SELECTOR_MODAL_BODY = '.modal-body';
14828
14595
  const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
14829
14596
  const SELECTOR_DATA_DISMISS$2 = '[data-bs-dismiss="modal"]';
14597
+ const SELECTOR_FIXED_CONTENT$1 = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
14598
+ const SELECTOR_STICKY_CONTENT$1 = '.sticky-top';
14830
14599
  /**
14831
14600
  * ------------------------------------------------------------------------
14832
14601
  * Class Definition
@@ -14838,10 +14607,12 @@ return jQuery;
14838
14607
  super(element);
14839
14608
  this._config = this._getConfig(config);
14840
14609
  this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
14841
- this._backdrop = this._initializeBackDrop();
14610
+ this._backdrop = null;
14842
14611
  this._isShown = false;
14612
+ this._isBodyOverflowing = false;
14843
14613
  this._ignoreBackdropClick = false;
14844
14614
  this._isTransitioning = false;
14615
+ this._scrollbarWidth = 0;
14845
14616
  } // Getters
14846
14617
 
14847
14618
 
@@ -14849,8 +14620,8 @@ return jQuery;
14849
14620
  return Default$5;
14850
14621
  }
14851
14622
 
14852
- static get NAME() {
14853
- return NAME$6;
14623
+ static get DATA_KEY() {
14624
+ return DATA_KEY$6;
14854
14625
  } // Public
14855
14626
 
14856
14627
 
@@ -14876,8 +14647,10 @@ return jQuery;
14876
14647
  }
14877
14648
 
14878
14649
  this._isShown = true;
14879
- hide();
14880
- document.body.classList.add(CLASS_NAME_OPEN);
14650
+
14651
+ this._checkScrollbar();
14652
+
14653
+ this._setScrollbar();
14881
14654
 
14882
14655
  this._adjustDialog();
14883
14656
 
@@ -14924,21 +14697,24 @@ return jQuery;
14924
14697
 
14925
14698
  this._setResizeEvent();
14926
14699
 
14927
- EventHandler.off(document, EVENT_FOCUSIN$2);
14700
+ EventHandler.off(document, EVENT_FOCUSIN$1);
14928
14701
 
14929
14702
  this._element.classList.remove(CLASS_NAME_SHOW$5);
14930
14703
 
14931
14704
  EventHandler.off(this._element, EVENT_CLICK_DISMISS$2);
14932
14705
  EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
14933
14706
 
14934
- this._queueCallback(() => this._hideModal(), this._element, isAnimated);
14707
+ if (isAnimated) {
14708
+ const transitionDuration = getTransitionDurationFromElement(this._element);
14709
+ EventHandler.one(this._element, 'transitionend', event => this._hideModal(event));
14710
+ emulateTransitionEnd(this._element, transitionDuration);
14711
+ } else {
14712
+ this._hideModal();
14713
+ }
14935
14714
  }
14936
14715
 
14937
14716
  dispose() {
14938
- [window, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6));
14939
-
14940
- this._backdrop.dispose();
14941
-
14717
+ [window, this._element, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6));
14942
14718
  super.dispose();
14943
14719
  /**
14944
14720
  * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
@@ -14946,7 +14722,15 @@ return jQuery;
14946
14722
  * It will remove `EVENT_CLICK_DATA_API` event that should remain
14947
14723
  */
14948
14724
 
14949
- EventHandler.off(document, EVENT_FOCUSIN$2);
14725
+ EventHandler.off(document, EVENT_FOCUSIN$1);
14726
+ this._config = null;
14727
+ this._dialog = null;
14728
+ this._backdrop = null;
14729
+ this._isShown = null;
14730
+ this._isBodyOverflowing = null;
14731
+ this._ignoreBackdropClick = null;
14732
+ this._isTransitioning = null;
14733
+ this._scrollbarWidth = null;
14950
14734
  }
14951
14735
 
14952
14736
  handleUpdate() {
@@ -14954,17 +14738,8 @@ return jQuery;
14954
14738
  } // Private
14955
14739
 
14956
14740
 
14957
- _initializeBackDrop() {
14958
- return new Backdrop({
14959
- isVisible: Boolean(this._config.backdrop),
14960
- // 'static' option will be translated to true, and booleans will keep their value
14961
- isAnimated: this._isAnimated()
14962
- });
14963
- }
14964
-
14965
14741
  _getConfig(config) {
14966
14742
  config = { ...Default$5,
14967
- ...Manipulator.getDataAttributes(this._element),
14968
14743
  ...config
14969
14744
  };
14970
14745
  typeCheckConfig(NAME$6, config, DefaultType$5);
@@ -15016,13 +14791,19 @@ return jQuery;
15016
14791
  });
15017
14792
  };
15018
14793
 
15019
- this._queueCallback(transitionComplete, this._dialog, isAnimated);
14794
+ if (isAnimated) {
14795
+ const transitionDuration = getTransitionDurationFromElement(this._dialog);
14796
+ EventHandler.one(this._dialog, 'transitionend', transitionComplete);
14797
+ emulateTransitionEnd(this._dialog, transitionDuration);
14798
+ } else {
14799
+ transitionComplete();
14800
+ }
15020
14801
  }
15021
14802
 
15022
14803
  _enforceFocus() {
15023
- EventHandler.off(document, EVENT_FOCUSIN$2); // guard against infinite focus loop
14804
+ EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop
15024
14805
 
15025
- EventHandler.on(document, EVENT_FOCUSIN$2, event => {
14806
+ EventHandler.on(document, EVENT_FOCUSIN$1, event => {
15026
14807
  if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) {
15027
14808
  this._element.focus();
15028
14809
  }
@@ -15031,7 +14812,7 @@ return jQuery;
15031
14812
 
15032
14813
  _setEscapeEvent() {
15033
14814
  if (this._isShown) {
15034
- EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {
14815
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
15035
14816
  if (this._config.keyboard && event.key === ESCAPE_KEY$1) {
15036
14817
  event.preventDefault();
15037
14818
  this.hide();
@@ -15040,7 +14821,7 @@ return jQuery;
15040
14821
  }
15041
14822
  });
15042
14823
  } else {
15043
- EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);
14824
+ EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);
15044
14825
  }
15045
14826
  }
15046
14827
 
@@ -15063,35 +14844,85 @@ return jQuery;
15063
14844
 
15064
14845
  this._isTransitioning = false;
15065
14846
 
15066
- this._backdrop.hide(() => {
14847
+ this._showBackdrop(() => {
15067
14848
  document.body.classList.remove(CLASS_NAME_OPEN);
15068
14849
 
15069
14850
  this._resetAdjustments();
15070
14851
 
15071
- reset();
14852
+ this._resetScrollbar();
14853
+
15072
14854
  EventHandler.trigger(this._element, EVENT_HIDDEN$3);
15073
14855
  });
15074
14856
  }
15075
14857
 
14858
+ _removeBackdrop() {
14859
+ this._backdrop.parentNode.removeChild(this._backdrop);
14860
+
14861
+ this._backdrop = null;
14862
+ }
14863
+
15076
14864
  _showBackdrop(callback) {
15077
- EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => {
15078
- if (this._ignoreBackdropClick) {
15079
- this._ignoreBackdropClick = false;
15080
- return;
14865
+ const isAnimated = this._isAnimated();
14866
+
14867
+ if (this._isShown && this._config.backdrop) {
14868
+ this._backdrop = document.createElement('div');
14869
+ this._backdrop.className = CLASS_NAME_BACKDROP;
14870
+
14871
+ if (isAnimated) {
14872
+ this._backdrop.classList.add(CLASS_NAME_FADE$4);
15081
14873
  }
15082
14874
 
15083
- if (event.target !== event.currentTarget) {
15084
- return;
14875
+ document.body.appendChild(this._backdrop);
14876
+ EventHandler.on(this._element, EVENT_CLICK_DISMISS$2, event => {
14877
+ if (this._ignoreBackdropClick) {
14878
+ this._ignoreBackdropClick = false;
14879
+ return;
14880
+ }
14881
+
14882
+ if (event.target !== event.currentTarget) {
14883
+ return;
14884
+ }
14885
+
14886
+ if (this._config.backdrop === 'static') {
14887
+ this._triggerBackdropTransition();
14888
+ } else {
14889
+ this.hide();
14890
+ }
14891
+ });
14892
+
14893
+ if (isAnimated) {
14894
+ reflow(this._backdrop);
15085
14895
  }
15086
14896
 
15087
- if (this._config.backdrop === true) {
15088
- this.hide();
15089
- } else if (this._config.backdrop === 'static') {
15090
- this._triggerBackdropTransition();
14897
+ this._backdrop.classList.add(CLASS_NAME_SHOW$5);
14898
+
14899
+ if (!isAnimated) {
14900
+ callback();
14901
+ return;
15091
14902
  }
15092
- });
15093
14903
 
15094
- this._backdrop.show(callback);
14904
+ const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
14905
+ EventHandler.one(this._backdrop, 'transitionend', callback);
14906
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
14907
+ } else if (!this._isShown && this._backdrop) {
14908
+ this._backdrop.classList.remove(CLASS_NAME_SHOW$5);
14909
+
14910
+ const callbackRemove = () => {
14911
+ this._removeBackdrop();
14912
+
14913
+ callback();
14914
+ };
14915
+
14916
+ if (isAnimated) {
14917
+ const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
14918
+ EventHandler.one(this._backdrop, 'transitionend', callbackRemove);
14919
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
14920
+ } else {
14921
+ callbackRemove();
14922
+ }
14923
+ } else {
14924
+ callback();
14925
+ }
15095
14926
  }
15096
14927
 
15097
14928
  _isAnimated() {
@@ -15135,37 +14966,103 @@ return jQuery;
15135
14966
 
15136
14967
  _adjustDialog() {
15137
14968
  const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
15138
- const scrollbarWidth = getWidth();
15139
- const isBodyOverflowing = scrollbarWidth > 0;
15140
14969
 
15141
- if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {
15142
- this._element.style.paddingLeft = `${scrollbarWidth}px`;
14970
+ if (!this._isBodyOverflowing && isModalOverflowing && !isRTL() || this._isBodyOverflowing && !isModalOverflowing && isRTL()) {
14971
+ this._element.style.paddingLeft = `${this._scrollbarWidth}px`;
15143
14972
  }
15144
14973
 
15145
- if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {
15146
- this._element.style.paddingRight = `${scrollbarWidth}px`;
14974
+ if (this._isBodyOverflowing && !isModalOverflowing && !isRTL() || !this._isBodyOverflowing && isModalOverflowing && isRTL()) {
14975
+ this._element.style.paddingRight = `${this._scrollbarWidth}px`;
15147
14976
  }
15148
14977
  }
15149
14978
 
15150
14979
  _resetAdjustments() {
15151
14980
  this._element.style.paddingLeft = '';
15152
14981
  this._element.style.paddingRight = '';
14982
+ }
14983
+
14984
+ _checkScrollbar() {
14985
+ const rect = document.body.getBoundingClientRect();
14986
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
14987
+ this._scrollbarWidth = this._getScrollbarWidth();
14988
+ }
14989
+
14990
+ _setScrollbar() {
14991
+ if (this._isBodyOverflowing) {
14992
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth);
14993
+
14994
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth);
14995
+
14996
+ this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth);
14997
+ }
14998
+
14999
+ document.body.classList.add(CLASS_NAME_OPEN);
15000
+ }
15001
+
15002
+ _setElementAttributes(selector, styleProp, callback) {
15003
+ SelectorEngine.find(selector).forEach(element => {
15004
+ if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {
15005
+ return;
15006
+ }
15007
+
15008
+ const actualValue = element.style[styleProp];
15009
+ const calculatedValue = window.getComputedStyle(element)[styleProp];
15010
+ Manipulator.setDataAttribute(element, styleProp, actualValue);
15011
+ element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
15012
+ });
15013
+ }
15014
+
15015
+ _resetScrollbar() {
15016
+ this._resetElementAttributes(SELECTOR_FIXED_CONTENT$1, 'paddingRight');
15017
+
15018
+ this._resetElementAttributes(SELECTOR_STICKY_CONTENT$1, 'marginRight');
15019
+
15020
+ this._resetElementAttributes('body', 'paddingRight');
15021
+ }
15022
+
15023
+ _resetElementAttributes(selector, styleProp) {
15024
+ SelectorEngine.find(selector).forEach(element => {
15025
+ const value = Manipulator.getDataAttribute(element, styleProp);
15026
+
15027
+ if (typeof value === 'undefined' && element === document.body) {
15028
+ element.style[styleProp] = '';
15029
+ } else {
15030
+ Manipulator.removeDataAttribute(element, styleProp);
15031
+ element.style[styleProp] = value;
15032
+ }
15033
+ });
15034
+ }
15035
+
15036
+ _getScrollbarWidth() {
15037
+ // thx d.walsh
15038
+ const scrollDiv = document.createElement('div');
15039
+ scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
15040
+ document.body.appendChild(scrollDiv);
15041
+ const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
15042
+ document.body.removeChild(scrollDiv);
15043
+ return scrollbarWidth;
15153
15044
  } // Static
15154
15045
 
15155
15046
 
15156
15047
  static jQueryInterface(config, relatedTarget) {
15157
15048
  return this.each(function () {
15158
- const data = Modal.getInstance(this) || new Modal(this, typeof config === 'object' ? config : {});
15049
+ let data = Data.get(this, DATA_KEY$6);
15050
+ const _config = { ...Default$5,
15051
+ ...Manipulator.getDataAttributes(this),
15052
+ ...(typeof config === 'object' && config ? config : {})
15053
+ };
15159
15054
 
15160
- if (typeof config !== 'string') {
15161
- return;
15055
+ if (!data) {
15056
+ data = new Modal(this, _config);
15162
15057
  }
15163
15058
 
15164
- if (typeof data[config] === 'undefined') {
15165
- throw new TypeError(`No method named "${config}"`);
15166
- }
15059
+ if (typeof config === 'string') {
15060
+ if (typeof data[config] === 'undefined') {
15061
+ throw new TypeError(`No method named "${config}"`);
15062
+ }
15167
15063
 
15168
- data[config](relatedTarget);
15064
+ data[config](relatedTarget);
15065
+ }
15169
15066
  });
15170
15067
  }
15171
15068
 
@@ -15180,7 +15077,7 @@ return jQuery;
15180
15077
  EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
15181
15078
  const target = getElementFromSelector(this);
15182
15079
 
15183
- if (['A', 'AREA'].includes(this.tagName)) {
15080
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
15184
15081
  event.preventDefault();
15185
15082
  }
15186
15083
 
@@ -15196,7 +15093,15 @@ return jQuery;
15196
15093
  }
15197
15094
  });
15198
15095
  });
15199
- const data = Modal.getInstance(target) || new Modal(target);
15096
+ let data = Data.get(target, DATA_KEY$6);
15097
+
15098
+ if (!data) {
15099
+ const config = { ...Manipulator.getDataAttributes(target),
15100
+ ...Manipulator.getDataAttributes(this)
15101
+ };
15102
+ data = new Modal(target, config);
15103
+ }
15104
+
15200
15105
  data.toggle(this);
15201
15106
  });
15202
15107
  /**
@@ -15206,11 +15111,73 @@ return jQuery;
15206
15111
  * add .Modal to jQuery only if jQuery is present
15207
15112
  */
15208
15113
 
15209
- defineJQueryPlugin(Modal);
15114
+ defineJQueryPlugin(NAME$6, Modal);
15115
+
15116
+ /**
15117
+ * --------------------------------------------------------------------------
15118
+ * Bootstrap (v5.0.0-beta3): util/scrollBar.js
15119
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
15120
+ * --------------------------------------------------------------------------
15121
+ */
15122
+ const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed';
15123
+ const SELECTOR_STICKY_CONTENT = '.sticky-top';
15124
+
15125
+ const getWidth = () => {
15126
+ // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
15127
+ const documentWidth = document.documentElement.clientWidth;
15128
+ return Math.abs(window.innerWidth - documentWidth);
15129
+ };
15130
+
15131
+ const hide = (width = getWidth()) => {
15132
+ document.body.style.overflow = 'hidden';
15133
+
15134
+ _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);
15135
+
15136
+ _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);
15137
+
15138
+ _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width);
15139
+ };
15140
+
15141
+ const _setElementAttributes = (selector, styleProp, callback) => {
15142
+ const scrollbarWidth = getWidth();
15143
+ SelectorEngine.find(selector).forEach(element => {
15144
+ if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {
15145
+ return;
15146
+ }
15147
+
15148
+ const actualValue = element.style[styleProp];
15149
+ const calculatedValue = window.getComputedStyle(element)[styleProp];
15150
+ Manipulator.setDataAttribute(element, styleProp, actualValue);
15151
+ element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
15152
+ });
15153
+ };
15154
+
15155
+ const reset = () => {
15156
+ document.body.style.overflow = 'auto';
15157
+
15158
+ _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
15159
+
15160
+ _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
15161
+
15162
+ _resetElementAttributes('body', 'paddingRight');
15163
+ };
15164
+
15165
+ const _resetElementAttributes = (selector, styleProp) => {
15166
+ SelectorEngine.find(selector).forEach(element => {
15167
+ const value = Manipulator.getDataAttribute(element, styleProp);
15168
+
15169
+ if (typeof value === 'undefined' && element === document.body) {
15170
+ element.style.removeProperty(styleProp);
15171
+ } else {
15172
+ Manipulator.removeDataAttribute(element, styleProp);
15173
+ element.style[styleProp] = value;
15174
+ }
15175
+ });
15176
+ };
15210
15177
 
15211
15178
  /**
15212
15179
  * --------------------------------------------------------------------------
15213
- * Bootstrap (v5.0.1): offcanvas.js
15180
+ * Bootstrap (v5.0.0-beta3): offcanvas.js
15214
15181
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
15215
15182
  * --------------------------------------------------------------------------
15216
15183
  */
@@ -15236,16 +15203,18 @@ return jQuery;
15236
15203
  keyboard: 'boolean',
15237
15204
  scroll: 'boolean'
15238
15205
  };
15206
+ const CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop';
15239
15207
  const CLASS_NAME_SHOW$4 = 'show';
15208
+ const CLASS_NAME_TOGGLING = 'offcanvas-toggling';
15240
15209
  const OPEN_SELECTOR = '.offcanvas.show';
15210
+ const ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`;
15241
15211
  const EVENT_SHOW$2 = `show${EVENT_KEY$5}`;
15242
15212
  const EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`;
15243
15213
  const EVENT_HIDE$2 = `hide${EVENT_KEY$5}`;
15244
15214
  const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`;
15245
- const EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$5}`;
15215
+ const EVENT_FOCUSIN = `focusin${EVENT_KEY$5}`;
15246
15216
  const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`;
15247
15217
  const EVENT_CLICK_DISMISS$1 = `click.dismiss${EVENT_KEY$5}`;
15248
- const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`;
15249
15218
  const SELECTOR_DATA_DISMISS$1 = '[data-bs-dismiss="offcanvas"]';
15250
15219
  const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
15251
15220
  /**
@@ -15259,18 +15228,17 @@ return jQuery;
15259
15228
  super(element);
15260
15229
  this._config = this._getConfig(config);
15261
15230
  this._isShown = false;
15262
- this._backdrop = this._initializeBackDrop();
15263
15231
 
15264
15232
  this._addEventListeners();
15265
15233
  } // Getters
15266
15234
 
15267
15235
 
15268
- static get NAME() {
15269
- return NAME$5;
15270
- }
15271
-
15272
15236
  static get Default() {
15273
15237
  return Default$4;
15238
+ }
15239
+
15240
+ static get DATA_KEY() {
15241
+ return DATA_KEY$5;
15274
15242
  } // Public
15275
15243
 
15276
15244
 
@@ -15294,14 +15262,16 @@ return jQuery;
15294
15262
  this._isShown = true;
15295
15263
  this._element.style.visibility = 'visible';
15296
15264
 
15297
- this._backdrop.show();
15265
+ if (this._config.backdrop) {
15266
+ document.body.classList.add(CLASS_NAME_BACKDROP_BODY);
15267
+ }
15298
15268
 
15299
15269
  if (!this._config.scroll) {
15300
15270
  hide();
15301
-
15302
- this._enforceFocusOnElement(this._element);
15303
15271
  }
15304
15272
 
15273
+ this._element.classList.add(CLASS_NAME_TOGGLING);
15274
+
15305
15275
  this._element.removeAttribute('aria-hidden');
15306
15276
 
15307
15277
  this._element.setAttribute('aria-modal', true);
@@ -15311,12 +15281,16 @@ return jQuery;
15311
15281
  this._element.classList.add(CLASS_NAME_SHOW$4);
15312
15282
 
15313
15283
  const completeCallBack = () => {
15284
+ this._element.classList.remove(CLASS_NAME_TOGGLING);
15285
+
15314
15286
  EventHandler.trigger(this._element, EVENT_SHOWN$2, {
15315
15287
  relatedTarget
15316
15288
  });
15289
+
15290
+ this._enforceFocusOnElement(this._element);
15317
15291
  };
15318
15292
 
15319
- this._queueCallback(completeCallBack, this._element, true);
15293
+ setTimeout(completeCallBack, getTransitionDurationFromElement(this._element));
15320
15294
  }
15321
15295
 
15322
15296
  hide() {
@@ -15330,7 +15304,9 @@ return jQuery;
15330
15304
  return;
15331
15305
  }
15332
15306
 
15333
- EventHandler.off(document, EVENT_FOCUSIN$1);
15307
+ this._element.classList.add(CLASS_NAME_TOGGLING);
15308
+
15309
+ EventHandler.off(document, EVENT_FOCUSIN);
15334
15310
 
15335
15311
  this._element.blur();
15336
15312
 
@@ -15338,8 +15314,6 @@ return jQuery;
15338
15314
 
15339
15315
  this._element.classList.remove(CLASS_NAME_SHOW$4);
15340
15316
 
15341
- this._backdrop.hide();
15342
-
15343
15317
  const completeCallback = () => {
15344
15318
  this._element.setAttribute('aria-hidden', true);
15345
15319
 
@@ -15349,21 +15323,20 @@ return jQuery;
15349
15323
 
15350
15324
  this._element.style.visibility = 'hidden';
15351
15325
 
15326
+ if (this._config.backdrop) {
15327
+ document.body.classList.remove(CLASS_NAME_BACKDROP_BODY);
15328
+ }
15329
+
15352
15330
  if (!this._config.scroll) {
15353
15331
  reset();
15354
15332
  }
15355
15333
 
15356
15334
  EventHandler.trigger(this._element, EVENT_HIDDEN$2);
15357
- };
15358
15335
 
15359
- this._queueCallback(completeCallback, this._element, true);
15360
- }
15361
-
15362
- dispose() {
15363
- this._backdrop.dispose();
15336
+ this._element.classList.remove(CLASS_NAME_TOGGLING);
15337
+ };
15364
15338
 
15365
- super.dispose();
15366
- EventHandler.off(document, EVENT_FOCUSIN$1);
15339
+ setTimeout(completeCallback, getTransitionDurationFromElement(this._element));
15367
15340
  } // Private
15368
15341
 
15369
15342
 
@@ -15376,19 +15349,10 @@ return jQuery;
15376
15349
  return config;
15377
15350
  }
15378
15351
 
15379
- _initializeBackDrop() {
15380
- return new Backdrop({
15381
- isVisible: this._config.backdrop,
15382
- isAnimated: true,
15383
- rootElement: this._element.parentNode,
15384
- clickCallback: () => this.hide()
15385
- });
15386
- }
15387
-
15388
15352
  _enforceFocusOnElement(element) {
15389
- EventHandler.off(document, EVENT_FOCUSIN$1); // guard against infinite focus loop
15353
+ EventHandler.off(document, EVENT_FOCUSIN); // guard against infinite focus loop
15390
15354
 
15391
- EventHandler.on(document, EVENT_FOCUSIN$1, event => {
15355
+ EventHandler.on(document, EVENT_FOCUSIN, event => {
15392
15356
  if (document !== event.target && element !== event.target && !element.contains(event.target)) {
15393
15357
  element.focus();
15394
15358
  }
@@ -15398,11 +15362,18 @@ return jQuery;
15398
15362
 
15399
15363
  _addEventListeners() {
15400
15364
  EventHandler.on(this._element, EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, () => this.hide());
15401
- EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
15365
+ EventHandler.on(document, 'keydown', event => {
15402
15366
  if (this._config.keyboard && event.key === ESCAPE_KEY) {
15403
15367
  this.hide();
15404
15368
  }
15405
15369
  });
15370
+ EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => {
15371
+ const target = SelectorEngine.findOne(getSelectorFromElement(event.target));
15372
+
15373
+ if (!this._element.contains(event.target) && target !== this._element) {
15374
+ this.hide();
15375
+ }
15376
+ });
15406
15377
  } // Static
15407
15378
 
15408
15379
 
@@ -15448,10 +15419,10 @@ return jQuery;
15448
15419
  }
15449
15420
  }); // avoid conflict when clicking a toggler of an offcanvas, while another is open
15450
15421
 
15451
- const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
15422
+ const allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR);
15452
15423
 
15453
15424
  if (allReadyOpen && allReadyOpen !== target) {
15454
- Offcanvas.getInstance(allReadyOpen).hide();
15425
+ return;
15455
15426
  }
15456
15427
 
15457
15428
  const data = Data.get(target, DATA_KEY$5) || new Offcanvas(target);
@@ -15466,11 +15437,11 @@ return jQuery;
15466
15437
  * ------------------------------------------------------------------------
15467
15438
  */
15468
15439
 
15469
- defineJQueryPlugin(Offcanvas);
15440
+ defineJQueryPlugin(NAME$5, Offcanvas);
15470
15441
 
15471
15442
  /**
15472
15443
  * --------------------------------------------------------------------------
15473
- * Bootstrap (v5.0.1): util/sanitizer.js
15444
+ * Bootstrap (v5.0.0-beta3): util/sanitizer.js
15474
15445
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
15475
15446
  * --------------------------------------------------------------------------
15476
15447
  */
@@ -15583,7 +15554,7 @@ return jQuery;
15583
15554
 
15584
15555
  /**
15585
15556
  * --------------------------------------------------------------------------
15586
- * Bootstrap (v5.0.1): tooltip.js
15557
+ * Bootstrap (v5.0.0-beta3): tooltip.js
15587
15558
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
15588
15559
  * --------------------------------------------------------------------------
15589
15560
  */
@@ -15686,7 +15657,7 @@ return jQuery;
15686
15657
  this._activeTrigger = {};
15687
15658
  this._popper = null; // Protected
15688
15659
 
15689
- this._config = this._getConfig(config);
15660
+ this.config = this._getConfig(config);
15690
15661
  this.tip = null;
15691
15662
 
15692
15663
  this._setListeners();
@@ -15701,10 +15672,18 @@ return jQuery;
15701
15672
  return NAME$4;
15702
15673
  }
15703
15674
 
15675
+ static get DATA_KEY() {
15676
+ return DATA_KEY$4;
15677
+ }
15678
+
15704
15679
  static get Event() {
15705
15680
  return Event$2;
15706
15681
  }
15707
15682
 
15683
+ static get EVENT_KEY() {
15684
+ return EVENT_KEY$4;
15685
+ }
15686
+
15708
15687
  static get DefaultType() {
15709
15688
  return DefaultType$3;
15710
15689
  } // Public
@@ -15750,16 +15729,25 @@ return jQuery;
15750
15729
 
15751
15730
  dispose() {
15752
15731
  clearTimeout(this._timeout);
15732
+ EventHandler.off(this._element, this.constructor.EVENT_KEY);
15753
15733
  EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
15754
15734
 
15755
15735
  if (this.tip && this.tip.parentNode) {
15756
15736
  this.tip.parentNode.removeChild(this.tip);
15757
15737
  }
15758
15738
 
15739
+ this._isEnabled = null;
15740
+ this._timeout = null;
15741
+ this._hoverState = null;
15742
+ this._activeTrigger = null;
15743
+
15759
15744
  if (this._popper) {
15760
15745
  this._popper.destroy();
15761
15746
  }
15762
15747
 
15748
+ this._popper = null;
15749
+ this.config = null;
15750
+ this.tip = null;
15763
15751
  super.dispose();
15764
15752
  }
15765
15753
 
@@ -15788,19 +15776,18 @@ return jQuery;
15788
15776
 
15789
15777
  this.setContent();
15790
15778
 
15791
- if (this._config.animation) {
15779
+ if (this.config.animation) {
15792
15780
  tip.classList.add(CLASS_NAME_FADE$3);
15793
15781
  }
15794
15782
 
15795
- const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;
15783
+ const placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;
15796
15784
 
15797
15785
  const attachment = this._getAttachment(placement);
15798
15786
 
15799
15787
  this._addAttachmentClass(attachment);
15800
15788
 
15801
- const {
15802
- container
15803
- } = this._config;
15789
+ const container = this._getContainer();
15790
+
15804
15791
  Data.set(tip, this.constructor.DATA_KEY, this);
15805
15792
 
15806
15793
  if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
@@ -15815,7 +15802,7 @@ return jQuery;
15815
15802
  }
15816
15803
 
15817
15804
  tip.classList.add(CLASS_NAME_SHOW$3);
15818
- const customClass = typeof this._config.customClass === 'function' ? this._config.customClass() : this._config.customClass;
15805
+ const customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;
15819
15806
 
15820
15807
  if (customClass) {
15821
15808
  tip.classList.add(...customClass.split(' '));
@@ -15827,7 +15814,7 @@ return jQuery;
15827
15814
 
15828
15815
  if ('ontouchstart' in document.documentElement) {
15829
15816
  [].concat(...document.body.children).forEach(element => {
15830
- EventHandler.on(element, 'mouseover', noop);
15817
+ EventHandler.on(element, 'mouseover', noop());
15831
15818
  });
15832
15819
  }
15833
15820
 
@@ -15841,9 +15828,13 @@ return jQuery;
15841
15828
  }
15842
15829
  };
15843
15830
 
15844
- const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$3);
15845
-
15846
- this._queueCallback(complete, this.tip, isAnimated);
15831
+ if (this.tip.classList.contains(CLASS_NAME_FADE$3)) {
15832
+ const transitionDuration = getTransitionDurationFromElement(this.tip);
15833
+ EventHandler.one(this.tip, 'transitionend', complete);
15834
+ emulateTransitionEnd(this.tip, transitionDuration);
15835
+ } else {
15836
+ complete();
15837
+ }
15847
15838
  }
15848
15839
 
15849
15840
  hide() {
@@ -15891,9 +15882,14 @@ return jQuery;
15891
15882
  this._activeTrigger[TRIGGER_CLICK] = false;
15892
15883
  this._activeTrigger[TRIGGER_FOCUS] = false;
15893
15884
  this._activeTrigger[TRIGGER_HOVER] = false;
15894
- const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$3);
15895
15885
 
15896
- this._queueCallback(complete, this.tip, isAnimated);
15886
+ if (this.tip.classList.contains(CLASS_NAME_FADE$3)) {
15887
+ const transitionDuration = getTransitionDurationFromElement(tip);
15888
+ EventHandler.one(tip, 'transitionend', complete);
15889
+ emulateTransitionEnd(tip, transitionDuration);
15890
+ } else {
15891
+ complete();
15892
+ }
15897
15893
 
15898
15894
  this._hoverState = '';
15899
15895
  }
@@ -15915,7 +15911,7 @@ return jQuery;
15915
15911
  }
15916
15912
 
15917
15913
  const element = document.createElement('div');
15918
- element.innerHTML = this._config.template;
15914
+ element.innerHTML = this.config.template;
15919
15915
  this.tip = element.children[0];
15920
15916
  return this.tip;
15921
15917
  }
@@ -15931,10 +15927,13 @@ return jQuery;
15931
15927
  return;
15932
15928
  }
15933
15929
 
15934
- if (isElement(content)) {
15935
- content = getElement(content); // content is a DOM node or a jQuery
15930
+ if (typeof content === 'object' && isElement(content)) {
15931
+ if (content.jquery) {
15932
+ content = content[0];
15933
+ } // content is a DOM node or a jQuery
15934
+
15936
15935
 
15937
- if (this._config.html) {
15936
+ if (this.config.html) {
15938
15937
  if (content.parentNode !== element) {
15939
15938
  element.innerHTML = '';
15940
15939
  element.appendChild(content);
@@ -15946,9 +15945,9 @@ return jQuery;
15946
15945
  return;
15947
15946
  }
15948
15947
 
15949
- if (this._config.html) {
15950
- if (this._config.sanitize) {
15951
- content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);
15948
+ if (this.config.html) {
15949
+ if (this.config.sanitize) {
15950
+ content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);
15952
15951
  }
15953
15952
 
15954
15953
  element.innerHTML = content;
@@ -15961,7 +15960,7 @@ return jQuery;
15961
15960
  let title = this._element.getAttribute('data-bs-original-title');
15962
15961
 
15963
15962
  if (!title) {
15964
- title = typeof this._config.title === 'function' ? this._config.title.call(this._element) : this._config.title;
15963
+ title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;
15965
15964
  }
15966
15965
 
15967
15966
  return title;
@@ -15995,7 +15994,7 @@ return jQuery;
15995
15994
  _getOffset() {
15996
15995
  const {
15997
15996
  offset
15998
- } = this._config;
15997
+ } = this.config;
15999
15998
 
16000
15999
  if (typeof offset === 'string') {
16001
16000
  return offset.split(',').map(val => Number.parseInt(val, 10));
@@ -16014,7 +16013,8 @@ return jQuery;
16014
16013
  modifiers: [{
16015
16014
  name: 'flip',
16016
16015
  options: {
16017
- fallbackPlacements: this._config.fallbackPlacements
16016
+ altBoundary: true,
16017
+ fallbackPlacements: this.config.fallbackPlacements
16018
16018
  }
16019
16019
  }, {
16020
16020
  name: 'offset',
@@ -16024,7 +16024,7 @@ return jQuery;
16024
16024
  }, {
16025
16025
  name: 'preventOverflow',
16026
16026
  options: {
16027
- boundary: this._config.boundary
16027
+ boundary: this.config.boundary
16028
16028
  }
16029
16029
  }, {
16030
16030
  name: 'arrow',
@@ -16044,7 +16044,7 @@ return jQuery;
16044
16044
  }
16045
16045
  };
16046
16046
  return { ...defaultBsPopperConfig,
16047
- ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)
16047
+ ...(typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig)
16048
16048
  };
16049
16049
  }
16050
16050
 
@@ -16052,21 +16052,32 @@ return jQuery;
16052
16052
  this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${this.updateAttachment(attachment)}`);
16053
16053
  }
16054
16054
 
16055
+ _getContainer() {
16056
+ if (this.config.container === false) {
16057
+ return document.body;
16058
+ }
16059
+
16060
+ if (isElement(this.config.container)) {
16061
+ return this.config.container;
16062
+ }
16063
+
16064
+ return SelectorEngine.findOne(this.config.container);
16065
+ }
16066
+
16055
16067
  _getAttachment(placement) {
16056
16068
  return AttachmentMap[placement.toUpperCase()];
16057
16069
  }
16058
16070
 
16059
16071
  _setListeners() {
16060
- const triggers = this._config.trigger.split(' ');
16061
-
16072
+ const triggers = this.config.trigger.split(' ');
16062
16073
  triggers.forEach(trigger => {
16063
16074
  if (trigger === 'click') {
16064
- EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event));
16075
+ EventHandler.on(this._element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event));
16065
16076
  } else if (trigger !== TRIGGER_MANUAL) {
16066
16077
  const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN;
16067
16078
  const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;
16068
- EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event));
16069
- EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event));
16079
+ EventHandler.on(this._element, eventIn, this.config.selector, event => this._enter(event));
16080
+ EventHandler.on(this._element, eventOut, this.config.selector, event => this._leave(event));
16070
16081
  }
16071
16082
  });
16072
16083
 
@@ -16078,8 +16089,8 @@ return jQuery;
16078
16089
 
16079
16090
  EventHandler.on(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler);
16080
16091
 
16081
- if (this._config.selector) {
16082
- this._config = { ...this._config,
16092
+ if (this.config.selector) {
16093
+ this.config = { ...this.config,
16083
16094
  trigger: 'manual',
16084
16095
  selector: ''
16085
16096
  };
@@ -16119,7 +16130,7 @@ return jQuery;
16119
16130
  clearTimeout(context._timeout);
16120
16131
  context._hoverState = HOVER_STATE_SHOW;
16121
16132
 
16122
- if (!context._config.delay || !context._config.delay.show) {
16133
+ if (!context.config.delay || !context.config.delay.show) {
16123
16134
  context.show();
16124
16135
  return;
16125
16136
  }
@@ -16128,7 +16139,7 @@ return jQuery;
16128
16139
  if (context._hoverState === HOVER_STATE_SHOW) {
16129
16140
  context.show();
16130
16141
  }
16131
- }, context._config.delay.show);
16142
+ }, context.config.delay.show);
16132
16143
  }
16133
16144
 
16134
16145
  _leave(event, context) {
@@ -16145,7 +16156,7 @@ return jQuery;
16145
16156
  clearTimeout(context._timeout);
16146
16157
  context._hoverState = HOVER_STATE_OUT;
16147
16158
 
16148
- if (!context._config.delay || !context._config.delay.hide) {
16159
+ if (!context.config.delay || !context.config.delay.hide) {
16149
16160
  context.hide();
16150
16161
  return;
16151
16162
  }
@@ -16154,7 +16165,7 @@ return jQuery;
16154
16165
  if (context._hoverState === HOVER_STATE_OUT) {
16155
16166
  context.hide();
16156
16167
  }
16157
- }, context._config.delay.hide);
16168
+ }, context.config.delay.hide);
16158
16169
  }
16159
16170
 
16160
16171
  _isWithActiveTrigger() {
@@ -16174,11 +16185,15 @@ return jQuery;
16174
16185
  delete dataAttributes[dataAttr];
16175
16186
  }
16176
16187
  });
16188
+
16189
+ if (config && typeof config.container === 'object' && config.container.jquery) {
16190
+ config.container = config.container[0];
16191
+ }
16192
+
16177
16193
  config = { ...this.constructor.Default,
16178
16194
  ...dataAttributes,
16179
16195
  ...(typeof config === 'object' && config ? config : {})
16180
16196
  };
16181
- config.container = config.container === false ? document.body : getElement(config.container);
16182
16197
 
16183
16198
  if (typeof config.delay === 'number') {
16184
16199
  config.delay = {
@@ -16207,10 +16222,10 @@ return jQuery;
16207
16222
  _getDelegateConfig() {
16208
16223
  const config = {};
16209
16224
 
16210
- if (this._config) {
16211
- for (const key in this._config) {
16212
- if (this.constructor.Default[key] !== this._config[key]) {
16213
- config[key] = this._config[key];
16225
+ if (this.config) {
16226
+ for (const key in this.config) {
16227
+ if (this.constructor.Default[key] !== this.config[key]) {
16228
+ config[key] = this.config[key];
16214
16229
  }
16215
16230
  }
16216
16231
  }
@@ -16277,11 +16292,11 @@ return jQuery;
16277
16292
  */
16278
16293
 
16279
16294
 
16280
- defineJQueryPlugin(Tooltip);
16295
+ defineJQueryPlugin(NAME$4, Tooltip);
16281
16296
 
16282
16297
  /**
16283
16298
  * --------------------------------------------------------------------------
16284
- * Bootstrap (v5.0.1): popover.js
16299
+ * Bootstrap (v5.0.0-beta3): popover.js
16285
16300
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16286
16301
  * --------------------------------------------------------------------------
16287
16302
  */
@@ -16338,10 +16353,18 @@ return jQuery;
16338
16353
  return NAME$3;
16339
16354
  }
16340
16355
 
16356
+ static get DATA_KEY() {
16357
+ return DATA_KEY$3;
16358
+ }
16359
+
16341
16360
  static get Event() {
16342
16361
  return Event$1;
16343
16362
  }
16344
16363
 
16364
+ static get EVENT_KEY() {
16365
+ return EVENT_KEY$3;
16366
+ }
16367
+
16345
16368
  static get DefaultType() {
16346
16369
  return DefaultType$2;
16347
16370
  } // Overrides
@@ -16372,7 +16395,7 @@ return jQuery;
16372
16395
  }
16373
16396
 
16374
16397
  _getContent() {
16375
- return this._element.getAttribute('data-bs-content') || this._config.content;
16398
+ return this._element.getAttribute('data-bs-content') || this.config.content;
16376
16399
  }
16377
16400
 
16378
16401
  _cleanTipClass() {
@@ -16419,11 +16442,11 @@ return jQuery;
16419
16442
  */
16420
16443
 
16421
16444
 
16422
- defineJQueryPlugin(Popover);
16445
+ defineJQueryPlugin(NAME$3, Popover);
16423
16446
 
16424
16447
  /**
16425
16448
  * --------------------------------------------------------------------------
16426
- * Bootstrap (v5.0.1): scrollspy.js
16449
+ * Bootstrap (v5.0.0-beta3): scrollspy.js
16427
16450
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16428
16451
  * --------------------------------------------------------------------------
16429
16452
  */
@@ -16488,8 +16511,8 @@ return jQuery;
16488
16511
  return Default$1;
16489
16512
  }
16490
16513
 
16491
- static get NAME() {
16492
- return NAME$2;
16514
+ static get DATA_KEY() {
16515
+ return DATA_KEY$2;
16493
16516
  } // Public
16494
16517
 
16495
16518
 
@@ -16522,14 +16545,20 @@ return jQuery;
16522
16545
  }
16523
16546
 
16524
16547
  dispose() {
16525
- EventHandler.off(this._scrollElement, EVENT_KEY$2);
16526
16548
  super.dispose();
16549
+ EventHandler.off(this._scrollElement, EVENT_KEY$2);
16550
+ this._scrollElement = null;
16551
+ this._config = null;
16552
+ this._selector = null;
16553
+ this._offsets = null;
16554
+ this._targets = null;
16555
+ this._activeTarget = null;
16556
+ this._scrollHeight = null;
16527
16557
  } // Private
16528
16558
 
16529
16559
 
16530
16560
  _getConfig(config) {
16531
16561
  config = { ...Default$1,
16532
- ...Manipulator.getDataAttributes(this._element),
16533
16562
  ...(typeof config === 'object' && config ? config : {})
16534
16563
  };
16535
16564
 
@@ -16638,17 +16667,21 @@ return jQuery;
16638
16667
 
16639
16668
  static jQueryInterface(config) {
16640
16669
  return this.each(function () {
16641
- const data = ScrollSpy.getInstance(this) || new ScrollSpy(this, typeof config === 'object' ? config : {});
16670
+ let data = Data.get(this, DATA_KEY$2);
16642
16671
 
16643
- if (typeof config !== 'string') {
16644
- return;
16645
- }
16672
+ const _config = typeof config === 'object' && config;
16646
16673
 
16647
- if (typeof data[config] === 'undefined') {
16648
- throw new TypeError(`No method named "${config}"`);
16674
+ if (!data) {
16675
+ data = new ScrollSpy(this, _config);
16649
16676
  }
16650
16677
 
16651
- data[config]();
16678
+ if (typeof config === 'string') {
16679
+ if (typeof data[config] === 'undefined') {
16680
+ throw new TypeError(`No method named "${config}"`);
16681
+ }
16682
+
16683
+ data[config]();
16684
+ }
16652
16685
  });
16653
16686
  }
16654
16687
 
@@ -16661,7 +16694,7 @@ return jQuery;
16661
16694
 
16662
16695
 
16663
16696
  EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
16664
- SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy));
16697
+ SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)));
16665
16698
  });
16666
16699
  /**
16667
16700
  * ------------------------------------------------------------------------
@@ -16670,11 +16703,11 @@ return jQuery;
16670
16703
  * add .ScrollSpy to jQuery only if jQuery is present
16671
16704
  */
16672
16705
 
16673
- defineJQueryPlugin(ScrollSpy);
16706
+ defineJQueryPlugin(NAME$2, ScrollSpy);
16674
16707
 
16675
16708
  /**
16676
16709
  * --------------------------------------------------------------------------
16677
- * Bootstrap (v5.0.1): tab.js
16710
+ * Bootstrap (v5.0.0-beta3): tab.js
16678
16711
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16679
16712
  * --------------------------------------------------------------------------
16680
16713
  */
@@ -16712,13 +16745,13 @@ return jQuery;
16712
16745
 
16713
16746
  class Tab extends BaseComponent {
16714
16747
  // Getters
16715
- static get NAME() {
16716
- return NAME$1;
16748
+ static get DATA_KEY() {
16749
+ return DATA_KEY$1;
16717
16750
  } // Public
16718
16751
 
16719
16752
 
16720
16753
  show() {
16721
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
16754
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || isDisabled(this._element)) {
16722
16755
  return;
16723
16756
  }
16724
16757
 
@@ -16771,9 +16804,10 @@ return jQuery;
16771
16804
  const complete = () => this._transitionComplete(element, active, callback);
16772
16805
 
16773
16806
  if (active && isTransitioning) {
16807
+ const transitionDuration = getTransitionDurationFromElement(active);
16774
16808
  active.classList.remove(CLASS_NAME_SHOW$1);
16775
-
16776
- this._queueCallback(complete, element, true);
16809
+ EventHandler.one(active, 'transitionend', complete);
16810
+ emulateTransitionEnd(active, transitionDuration);
16777
16811
  } else {
16778
16812
  complete();
16779
16813
  }
@@ -16805,17 +16839,11 @@ return jQuery;
16805
16839
  element.classList.add(CLASS_NAME_SHOW$1);
16806
16840
  }
16807
16841
 
16808
- let parent = element.parentNode;
16809
-
16810
- if (parent && parent.nodeName === 'LI') {
16811
- parent = parent.parentNode;
16812
- }
16813
-
16814
- if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
16842
+ if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
16815
16843
  const dropdownElement = element.closest(SELECTOR_DROPDOWN);
16816
16844
 
16817
16845
  if (dropdownElement) {
16818
- SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
16846
+ SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));
16819
16847
  }
16820
16848
 
16821
16849
  element.setAttribute('aria-expanded', true);
@@ -16850,14 +16878,7 @@ return jQuery;
16850
16878
 
16851
16879
 
16852
16880
  EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
16853
- if (['A', 'AREA'].includes(this.tagName)) {
16854
- event.preventDefault();
16855
- }
16856
-
16857
- if (isDisabled(this)) {
16858
- return;
16859
- }
16860
-
16881
+ event.preventDefault();
16861
16882
  const data = Data.get(this, DATA_KEY$1) || new Tab(this);
16862
16883
  data.show();
16863
16884
  });
@@ -16868,11 +16889,11 @@ return jQuery;
16868
16889
  * add .Tab to jQuery only if jQuery is present
16869
16890
  */
16870
16891
 
16871
- defineJQueryPlugin(Tab);
16892
+ defineJQueryPlugin(NAME$1, Tab);
16872
16893
 
16873
16894
  /**
16874
16895
  * --------------------------------------------------------------------------
16875
- * Bootstrap (v5.0.1): toast.js
16896
+ * Bootstrap (v5.0.0-beta3): toast.js
16876
16897
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16877
16898
  * --------------------------------------------------------------------------
16878
16899
  */
@@ -16886,10 +16907,6 @@ return jQuery;
16886
16907
  const DATA_KEY = 'bs.toast';
16887
16908
  const EVENT_KEY = `.${DATA_KEY}`;
16888
16909
  const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;
16889
- const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
16890
- const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
16891
- const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
16892
- const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
16893
16910
  const EVENT_HIDE = `hide${EVENT_KEY}`;
16894
16911
  const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
16895
16912
  const EVENT_SHOW = `show${EVENT_KEY}`;
@@ -16920,8 +16937,6 @@ return jQuery;
16920
16937
  super(element);
16921
16938
  this._config = this._getConfig(config);
16922
16939
  this._timeout = null;
16923
- this._hasMouseInteraction = false;
16924
- this._hasKeyboardInteraction = false;
16925
16940
 
16926
16941
  this._setListeners();
16927
16942
  } // Getters
@@ -16935,8 +16950,8 @@ return jQuery;
16935
16950
  return Default;
16936
16951
  }
16937
16952
 
16938
- static get NAME() {
16939
- return NAME;
16953
+ static get DATA_KEY() {
16954
+ return DATA_KEY;
16940
16955
  } // Public
16941
16956
 
16942
16957
 
@@ -16960,7 +16975,11 @@ return jQuery;
16960
16975
 
16961
16976
  EventHandler.trigger(this._element, EVENT_SHOWN);
16962
16977
 
16963
- this._maybeScheduleHide();
16978
+ if (this._config.autohide) {
16979
+ this._timeout = setTimeout(() => {
16980
+ this.hide();
16981
+ }, this._config.delay);
16982
+ }
16964
16983
  };
16965
16984
 
16966
16985
  this._element.classList.remove(CLASS_NAME_HIDE);
@@ -16969,7 +16988,13 @@ return jQuery;
16969
16988
 
16970
16989
  this._element.classList.add(CLASS_NAME_SHOWING);
16971
16990
 
16972
- this._queueCallback(complete, this._element, this._config.animation);
16991
+ if (this._config.animation) {
16992
+ const transitionDuration = getTransitionDurationFromElement(this._element);
16993
+ EventHandler.one(this._element, 'transitionend', complete);
16994
+ emulateTransitionEnd(this._element, transitionDuration);
16995
+ } else {
16996
+ complete();
16997
+ }
16973
16998
  }
16974
16999
 
16975
17000
  hide() {
@@ -16991,7 +17016,13 @@ return jQuery;
16991
17016
 
16992
17017
  this._element.classList.remove(CLASS_NAME_SHOW);
16993
17018
 
16994
- this._queueCallback(complete, this._element, this._config.animation);
17019
+ if (this._config.animation) {
17020
+ const transitionDuration = getTransitionDurationFromElement(this._element);
17021
+ EventHandler.one(this._element, 'transitionend', complete);
17022
+ emulateTransitionEnd(this._element, transitionDuration);
17023
+ } else {
17024
+ complete();
17025
+ }
16995
17026
  }
16996
17027
 
16997
17028
  dispose() {
@@ -17001,7 +17032,9 @@ return jQuery;
17001
17032
  this._element.classList.remove(CLASS_NAME_SHOW);
17002
17033
  }
17003
17034
 
17035
+ EventHandler.off(this._element, EVENT_CLICK_DISMISS);
17004
17036
  super.dispose();
17037
+ this._config = null;
17005
17038
  } // Private
17006
17039
 
17007
17040
 
@@ -17014,54 +17047,8 @@ return jQuery;
17014
17047
  return config;
17015
17048
  }
17016
17049
 
17017
- _maybeScheduleHide() {
17018
- if (!this._config.autohide) {
17019
- return;
17020
- }
17021
-
17022
- if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
17023
- return;
17024
- }
17025
-
17026
- this._timeout = setTimeout(() => {
17027
- this.hide();
17028
- }, this._config.delay);
17029
- }
17030
-
17031
- _onInteraction(event, isInteracting) {
17032
- switch (event.type) {
17033
- case 'mouseover':
17034
- case 'mouseout':
17035
- this._hasMouseInteraction = isInteracting;
17036
- break;
17037
-
17038
- case 'focusin':
17039
- case 'focusout':
17040
- this._hasKeyboardInteraction = isInteracting;
17041
- break;
17042
- }
17043
-
17044
- if (isInteracting) {
17045
- this._clearTimeout();
17046
-
17047
- return;
17048
- }
17049
-
17050
- const nextElement = event.relatedTarget;
17051
-
17052
- if (this._element === nextElement || this._element.contains(nextElement)) {
17053
- return;
17054
- }
17055
-
17056
- this._maybeScheduleHide();
17057
- }
17058
-
17059
17050
  _setListeners() {
17060
17051
  EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide());
17061
- EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
17062
- EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
17063
- EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
17064
- EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
17065
17052
  }
17066
17053
 
17067
17054
  _clearTimeout() {
@@ -17099,11 +17086,11 @@ return jQuery;
17099
17086
  */
17100
17087
 
17101
17088
 
17102
- defineJQueryPlugin(Toast);
17089
+ defineJQueryPlugin(NAME, Toast);
17103
17090
 
17104
17091
  /**
17105
17092
  * --------------------------------------------------------------------------
17106
- * Bootstrap (v5.0.1): index.umd.js
17093
+ * Bootstrap (v5.0.0-beta3): index.umd.js
17107
17094
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
17108
17095
  * --------------------------------------------------------------------------
17109
17096
  */
@@ -17593,22 +17580,22 @@ mumuki.load(function () {
17593
17580
  })
17594
17581
  }
17595
17582
 
17596
- function getBrowserMain($browser) {
17597
- return $([
17598
- '<main>',
17599
- ' <iframe srcdoc="', escapeHTML($browser.data('srcdoc')), '" frameborder="0"></iframe>',
17600
- '</main>'
17601
- ].join(''));
17583
+ function getBrowserMain($browser, options) {
17584
+ return $(`
17585
+ <main>
17586
+ <iframe srcdoc="${escapeHTML($browser.data('srcdoc'))}" frameborder="0" ${options.allowScript ? '' : 'sandbox'}></iframe>
17587
+ </main>
17588
+ `);
17602
17589
  }
17603
17590
 
17604
- $.fn.renderWebBrowser = function () {
17591
+ $.fn.renderWebBrowser = function (options = {}) {
17605
17592
  var self = this;
17606
17593
  self.empty();
17607
17594
  self.each(function (i) {
17608
17595
  var $browser = $(self[i]);
17609
17596
 
17610
17597
  var $header = getBrowserHeader($browser);
17611
- var $main = getBrowserMain($browser);
17598
+ var $main = getBrowserMain($browser, options);
17612
17599
 
17613
17600
  $browser.empty();
17614
17601
 
@@ -17840,10 +17827,10 @@ mumuki.load(function () {
17840
17827
 
17841
17828
  mumuki.load(function () {
17842
17829
 
17843
- $.fn.renderMuComponents = function () {
17830
+ $.fn.renderMuComponents = function (options = {}) {
17844
17831
  this.find('.mu-erd').renderERD();
17845
17832
  this.find('pre').renderCopyPaste();
17846
- this.find('.mu-browser').renderWebBrowser();
17833
+ this.find('.mu-browser').renderWebBrowser(options.webBrowser);
17847
17834
  this.find('.mu-sql-table').renderSqlTable();
17848
17835
  this.find('.mu-file-browser').renderFileBrowser();
17849
17836
  this.find('.mu-sql-table-rendered').renderPrerenderedSqlTable();