bootstrap 4.3.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +1 -1
  5. data/assets/javascripts/bootstrap/alert.js +26 -35
  6. data/assets/javascripts/bootstrap/button.js +93 -52
  7. data/assets/javascripts/bootstrap/carousel.js +122 -120
  8. data/assets/javascripts/bootstrap/collapse.js +75 -71
  9. data/assets/javascripts/bootstrap/dropdown.js +143 -140
  10. data/assets/javascripts/bootstrap/modal.js +165 -134
  11. data/assets/javascripts/bootstrap/popover.js +47 -39
  12. data/assets/javascripts/bootstrap/scrollspy.js +71 -71
  13. data/assets/javascripts/bootstrap/tab.js +51 -60
  14. data/assets/javascripts/bootstrap/toast.js +84 -72
  15. data/assets/javascripts/bootstrap/tooltip.js +141 -131
  16. data/assets/javascripts/bootstrap/util.js +28 -7
  17. data/assets/javascripts/bootstrap-sprockets.js +6 -6
  18. data/assets/javascripts/bootstrap.js +811 -826
  19. data/assets/javascripts/bootstrap.min.js +3 -3
  20. data/assets/stylesheets/_bootstrap-grid.scss +3 -3
  21. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  22. data/assets/stylesheets/_bootstrap.scss +3 -3
  23. data/assets/stylesheets/bootstrap/_badge.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
  25. data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
  27. data/assets/stylesheets/bootstrap/_card.scss +28 -35
  28. data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
  29. data/assets/stylesheets/bootstrap/_close.scss +2 -3
  30. data/assets/stylesheets/bootstrap/_code.scss +1 -1
  31. data/assets/stylesheets/bootstrap/_custom-forms.scss +24 -9
  32. data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
  33. data/assets/stylesheets/bootstrap/_forms.scss +26 -9
  34. data/assets/stylesheets/bootstrap/_functions.scss +60 -5
  35. data/assets/stylesheets/bootstrap/_grid.scss +33 -8
  36. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_input-group.scss +1 -2
  38. data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
  39. data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
  40. data/assets/stylesheets/bootstrap/_modal.scss +28 -16
  41. data/assets/stylesheets/bootstrap/_nav.scss +4 -3
  42. data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
  43. data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
  44. data/assets/stylesheets/bootstrap/_popover.scss +8 -9
  45. data/assets/stylesheets/bootstrap/_print.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_progress.scss +6 -2
  47. data/assets/stylesheets/bootstrap/_reboot.scss +24 -27
  48. data/assets/stylesheets/bootstrap/_root.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
  50. data/assets/stylesheets/bootstrap/_tables.scss +3 -3
  51. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  52. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  53. data/assets/stylesheets/bootstrap/_variables.scss +46 -22
  54. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  55. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
  56. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
  58. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  59. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
  60. data/assets/stylesheets/bootstrap/mixins/_forms.scss +34 -49
  61. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
  62. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
  63. data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
  64. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  65. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  66. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  67. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
  68. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  69. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
  70. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
  71. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
  72. data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
  73. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  74. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  75. data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
  76. data/bootstrap.gemspec +1 -1
  77. data/lib/bootstrap/version.rb +2 -2
  78. data/tasks/updater/network.rb +2 -2
  79. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  80. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  81. data/test/gemfiles/rails_6_0.gemfile +7 -0
  82. data/test/support/dummy_rails_integration.rb +3 -1
  83. data/test/test_helper.rb +18 -13
  84. metadata +11 -5
@@ -1,16 +1,16 @@
1
1
  /*!
2
- * Bootstrap v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
9
9
  (global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));
10
- }(this, function (exports, $, Popper) { 'use strict';
10
+ }(this, (function (exports, $, Popper) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper;
14
14
 
15
15
  function _defineProperties(target, props) {
16
16
  for (var i = 0; i < props.length; i++) {
@@ -43,20 +43,35 @@
43
43
  return obj;
44
44
  }
45
45
 
46
- function _objectSpread(target) {
46
+ function ownKeys(object, enumerableOnly) {
47
+ var keys = Object.keys(object);
48
+
49
+ if (Object.getOwnPropertySymbols) {
50
+ var symbols = Object.getOwnPropertySymbols(object);
51
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
+ });
54
+ keys.push.apply(keys, symbols);
55
+ }
56
+
57
+ return keys;
58
+ }
59
+
60
+ function _objectSpread2(target) {
47
61
  for (var i = 1; i < arguments.length; i++) {
48
62
  var source = arguments[i] != null ? arguments[i] : {};
49
- var ownKeys = Object.keys(source);
50
63
 
51
- if (typeof Object.getOwnPropertySymbols === 'function') {
52
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
- }));
64
+ if (i % 2) {
65
+ ownKeys(Object(source), true).forEach(function (key) {
66
+ _defineProperty(target, key, source[key]);
67
+ });
68
+ } else if (Object.getOwnPropertyDescriptors) {
69
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
+ } else {
71
+ ownKeys(Object(source)).forEach(function (key) {
72
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
+ });
55
74
  }
56
-
57
- ownKeys.forEach(function (key) {
58
- _defineProperty(target, key, source[key]);
59
- });
60
75
  }
61
76
 
62
77
  return target;
@@ -70,7 +85,7 @@
70
85
 
71
86
  /**
72
87
  * --------------------------------------------------------------------------
73
- * Bootstrap (v4.3.1): util.js
88
+ * Bootstrap (v4.5.0): util.js
74
89
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
75
90
  * --------------------------------------------------------------------------
76
91
  */
@@ -85,6 +100,10 @@
85
100
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
86
101
 
87
102
  function toType(obj) {
103
+ if (obj === null || typeof obj === 'undefined') {
104
+ return "" + obj;
105
+ }
106
+
88
107
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
89
108
  }
90
109
 
@@ -97,7 +116,7 @@
97
116
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
98
117
  }
99
118
 
100
- return undefined; // eslint-disable-line no-undefined
119
+ return undefined;
101
120
  }
102
121
  };
103
122
  }
@@ -219,8 +238,25 @@
219
238
  }
220
239
 
221
240
  return Util.findShadowRoot(element.parentNode);
241
+ },
242
+ jQueryDetection: function jQueryDetection() {
243
+ if (typeof $ === 'undefined') {
244
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
245
+ }
246
+
247
+ var version = $.fn.jquery.split(' ')[0].split('.');
248
+ var minMajor = 1;
249
+ var ltMajor = 2;
250
+ var minMinor = 9;
251
+ var minPatch = 1;
252
+ var maxMajor = 4;
253
+
254
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
255
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
256
+ }
222
257
  }
223
258
  };
259
+ Util.jQueryDetection();
224
260
  setTransitionEndSupport();
225
261
 
226
262
  /**
@@ -230,34 +266,25 @@
230
266
  */
231
267
 
232
268
  var NAME = 'alert';
233
- var VERSION = '4.3.1';
269
+ var VERSION = '4.5.0';
234
270
  var DATA_KEY = 'bs.alert';
235
271
  var EVENT_KEY = "." + DATA_KEY;
236
272
  var DATA_API_KEY = '.data-api';
237
273
  var JQUERY_NO_CONFLICT = $.fn[NAME];
238
- var Selector = {
239
- DISMISS: '[data-dismiss="alert"]'
240
- };
241
- var Event = {
242
- CLOSE: "close" + EVENT_KEY,
243
- CLOSED: "closed" + EVENT_KEY,
244
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
245
- };
246
- var ClassName = {
247
- ALERT: 'alert',
248
- FADE: 'fade',
249
- SHOW: 'show'
250
- /**
251
- * ------------------------------------------------------------------------
252
- * Class Definition
253
- * ------------------------------------------------------------------------
254
- */
255
-
256
- };
274
+ var SELECTOR_DISMISS = '[data-dismiss="alert"]';
275
+ var EVENT_CLOSE = "close" + EVENT_KEY;
276
+ var EVENT_CLOSED = "closed" + EVENT_KEY;
277
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
278
+ var CLASS_NAME_ALERT = 'alert';
279
+ var CLASS_NAME_FADE = 'fade';
280
+ var CLASS_NAME_SHOW = 'show';
281
+ /**
282
+ * ------------------------------------------------------------------------
283
+ * Class Definition
284
+ * ------------------------------------------------------------------------
285
+ */
257
286
 
258
- var Alert =
259
- /*#__PURE__*/
260
- function () {
287
+ var Alert = /*#__PURE__*/function () {
261
288
  function Alert(element) {
262
289
  this._element = element;
263
290
  } // Getters
@@ -297,14 +324,14 @@
297
324
  }
298
325
 
299
326
  if (!parent) {
300
- parent = $(element).closest("." + ClassName.ALERT)[0];
327
+ parent = $(element).closest("." + CLASS_NAME_ALERT)[0];
301
328
  }
302
329
 
303
330
  return parent;
304
331
  };
305
332
 
306
333
  _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
307
- var closeEvent = $.Event(Event.CLOSE);
334
+ var closeEvent = $.Event(EVENT_CLOSE);
308
335
  $(element).trigger(closeEvent);
309
336
  return closeEvent;
310
337
  };
@@ -312,9 +339,9 @@
312
339
  _proto._removeElement = function _removeElement(element) {
313
340
  var _this = this;
314
341
 
315
- $(element).removeClass(ClassName.SHOW);
342
+ $(element).removeClass(CLASS_NAME_SHOW);
316
343
 
317
- if (!$(element).hasClass(ClassName.FADE)) {
344
+ if (!$(element).hasClass(CLASS_NAME_FADE)) {
318
345
  this._destroyElement(element);
319
346
 
320
347
  return;
@@ -327,7 +354,7 @@
327
354
  };
328
355
 
329
356
  _proto._destroyElement = function _destroyElement(element) {
330
- $(element).detach().trigger(Event.CLOSED).remove();
357
+ $(element).detach().trigger(EVENT_CLOSED).remove();
331
358
  } // Static
332
359
  ;
333
360
 
@@ -373,7 +400,7 @@
373
400
  */
374
401
 
375
402
 
376
- $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
403
+ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
377
404
  /**
378
405
  * ------------------------------------------------------------------------
379
406
  * jQuery
@@ -395,37 +422,31 @@
395
422
  */
396
423
 
397
424
  var NAME$1 = 'button';
398
- var VERSION$1 = '4.3.1';
425
+ var VERSION$1 = '4.5.0';
399
426
  var DATA_KEY$1 = 'bs.button';
400
427
  var EVENT_KEY$1 = "." + DATA_KEY$1;
401
428
  var DATA_API_KEY$1 = '.data-api';
402
429
  var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];
403
- var ClassName$1 = {
404
- ACTIVE: 'active',
405
- BUTTON: 'btn',
406
- FOCUS: 'focus'
407
- };
408
- var Selector$1 = {
409
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
410
- DATA_TOGGLE: '[data-toggle="buttons"]',
411
- INPUT: 'input:not([type="hidden"])',
412
- ACTIVE: '.active',
413
- BUTTON: '.btn'
414
- };
415
- var Event$1 = {
416
- CLICK_DATA_API: "click" + EVENT_KEY$1 + DATA_API_KEY$1,
417
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY$1 + DATA_API_KEY$1 + " " + ("blur" + EVENT_KEY$1 + DATA_API_KEY$1)
418
- /**
419
- * ------------------------------------------------------------------------
420
- * Class Definition
421
- * ------------------------------------------------------------------------
422
- */
423
-
424
- };
430
+ var CLASS_NAME_ACTIVE = 'active';
431
+ var CLASS_NAME_BUTTON = 'btn';
432
+ var CLASS_NAME_FOCUS = 'focus';
433
+ var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
434
+ var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
435
+ var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
436
+ var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
437
+ var SELECTOR_INPUT = 'input:not([type="hidden"])';
438
+ var SELECTOR_ACTIVE = '.active';
439
+ var SELECTOR_BUTTON = '.btn';
440
+ var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$1 + DATA_API_KEY$1;
441
+ var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY$1 + DATA_API_KEY$1 + " " + ("blur" + EVENT_KEY$1 + DATA_API_KEY$1);
442
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$1 + DATA_API_KEY$1;
443
+ /**
444
+ * ------------------------------------------------------------------------
445
+ * Class Definition
446
+ * ------------------------------------------------------------------------
447
+ */
425
448
 
426
- var Button =
427
- /*#__PURE__*/
428
- function () {
449
+ var Button = /*#__PURE__*/function () {
429
450
  function Button(element) {
430
451
  this._element = element;
431
452
  } // Getters
@@ -437,30 +458,30 @@
437
458
  _proto.toggle = function toggle() {
438
459
  var triggerChangeEvent = true;
439
460
  var addAriaPressed = true;
440
- var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];
461
+ var rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0];
441
462
 
442
463
  if (rootElement) {
443
- var input = this._element.querySelector(Selector$1.INPUT);
464
+ var input = this._element.querySelector(SELECTOR_INPUT);
444
465
 
445
466
  if (input) {
446
467
  if (input.type === 'radio') {
447
- if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {
468
+ if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
448
469
  triggerChangeEvent = false;
449
470
  } else {
450
- var activeElement = rootElement.querySelector(Selector$1.ACTIVE);
471
+ var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
451
472
 
452
473
  if (activeElement) {
453
- $(activeElement).removeClass(ClassName$1.ACTIVE);
474
+ $(activeElement).removeClass(CLASS_NAME_ACTIVE);
454
475
  }
455
476
  }
456
477
  }
457
478
 
458
479
  if (triggerChangeEvent) {
459
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
460
- return;
480
+ // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
481
+ if (input.type === 'checkbox' || input.type === 'radio') {
482
+ input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
461
483
  }
462
484
 
463
- input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
464
485
  $(input).trigger('change');
465
486
  }
466
487
 
@@ -469,12 +490,14 @@
469
490
  }
470
491
  }
471
492
 
472
- if (addAriaPressed) {
473
- this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));
474
- }
493
+ if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
494
+ if (addAriaPressed) {
495
+ this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
496
+ }
475
497
 
476
- if (triggerChangeEvent) {
477
- $(this._element).toggleClass(ClassName$1.ACTIVE);
498
+ if (triggerChangeEvent) {
499
+ $(this._element).toggleClass(CLASS_NAME_ACTIVE);
500
+ }
478
501
  }
479
502
  };
480
503
 
@@ -515,18 +538,63 @@
515
538
  */
516
539
 
517
540
 
518
- $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
519
- event.preventDefault();
541
+ $(document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
520
542
  var button = event.target;
543
+ var initialButton = button;
521
544
 
522
- if (!$(button).hasClass(ClassName$1.BUTTON)) {
523
- button = $(button).closest(Selector$1.BUTTON);
545
+ if (!$(button).hasClass(CLASS_NAME_BUTTON)) {
546
+ button = $(button).closest(SELECTOR_BUTTON)[0];
524
547
  }
525
548
 
526
- Button._jQueryInterface.call($(button), 'toggle');
527
- }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
528
- var button = $(event.target).closest(Selector$1.BUTTON)[0];
529
- $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));
549
+ if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
550
+ event.preventDefault(); // work around Firefox bug #1540995
551
+ } else {
552
+ var inputBtn = button.querySelector(SELECTOR_INPUT);
553
+
554
+ if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
555
+ event.preventDefault(); // work around Firefox bug #1540995
556
+
557
+ return;
558
+ }
559
+
560
+ if (initialButton.tagName === 'LABEL' && inputBtn && inputBtn.type === 'checkbox') {
561
+ event.preventDefault(); // work around event sent to label and input
562
+ }
563
+
564
+ Button._jQueryInterface.call($(button), 'toggle');
565
+ }
566
+ }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
567
+ var button = $(event.target).closest(SELECTOR_BUTTON)[0];
568
+ $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
569
+ });
570
+ $(window).on(EVENT_LOAD_DATA_API, function () {
571
+ // ensure correct active class is set to match the controls' actual values/states
572
+ // find all checkboxes/readio buttons inside data-toggle groups
573
+ var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
574
+
575
+ for (var i = 0, len = buttons.length; i < len; i++) {
576
+ var button = buttons[i];
577
+ var input = button.querySelector(SELECTOR_INPUT);
578
+
579
+ if (input.checked || input.hasAttribute('checked')) {
580
+ button.classList.add(CLASS_NAME_ACTIVE);
581
+ } else {
582
+ button.classList.remove(CLASS_NAME_ACTIVE);
583
+ }
584
+ } // find all button toggles
585
+
586
+
587
+ buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
588
+
589
+ for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
590
+ var _button = buttons[_i];
591
+
592
+ if (_button.getAttribute('aria-pressed') === 'true') {
593
+ _button.classList.add(CLASS_NAME_ACTIVE);
594
+ } else {
595
+ _button.classList.remove(CLASS_NAME_ACTIVE);
596
+ }
597
+ }
530
598
  });
531
599
  /**
532
600
  * ------------------------------------------------------------------------
@@ -549,7 +617,7 @@
549
617
  */
550
618
 
551
619
  var NAME$2 = 'carousel';
552
- var VERSION$2 = '4.3.1';
620
+ var VERSION$2 = '4.5.0';
553
621
  var DATA_KEY$2 = 'bs.carousel';
554
622
  var EVENT_KEY$2 = "." + DATA_KEY$2;
555
623
  var DATA_API_KEY$2 = '.data-api';
@@ -577,62 +645,50 @@
577
645
  wrap: 'boolean',
578
646
  touch: 'boolean'
579
647
  };
580
- var Direction = {
581
- NEXT: 'next',
582
- PREV: 'prev',
583
- LEFT: 'left',
584
- RIGHT: 'right'
585
- };
586
- var Event$2 = {
587
- SLIDE: "slide" + EVENT_KEY$2,
588
- SLID: "slid" + EVENT_KEY$2,
589
- KEYDOWN: "keydown" + EVENT_KEY$2,
590
- MOUSEENTER: "mouseenter" + EVENT_KEY$2,
591
- MOUSELEAVE: "mouseleave" + EVENT_KEY$2,
592
- TOUCHSTART: "touchstart" + EVENT_KEY$2,
593
- TOUCHMOVE: "touchmove" + EVENT_KEY$2,
594
- TOUCHEND: "touchend" + EVENT_KEY$2,
595
- POINTERDOWN: "pointerdown" + EVENT_KEY$2,
596
- POINTERUP: "pointerup" + EVENT_KEY$2,
597
- DRAG_START: "dragstart" + EVENT_KEY$2,
598
- LOAD_DATA_API: "load" + EVENT_KEY$2 + DATA_API_KEY$2,
599
- CLICK_DATA_API: "click" + EVENT_KEY$2 + DATA_API_KEY$2
600
- };
601
- var ClassName$2 = {
602
- CAROUSEL: 'carousel',
603
- ACTIVE: 'active',
604
- SLIDE: 'slide',
605
- RIGHT: 'carousel-item-right',
606
- LEFT: 'carousel-item-left',
607
- NEXT: 'carousel-item-next',
608
- PREV: 'carousel-item-prev',
609
- ITEM: 'carousel-item',
610
- POINTER_EVENT: 'pointer-event'
611
- };
612
- var Selector$2 = {
613
- ACTIVE: '.active',
614
- ACTIVE_ITEM: '.active.carousel-item',
615
- ITEM: '.carousel-item',
616
- ITEM_IMG: '.carousel-item img',
617
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
618
- INDICATORS: '.carousel-indicators',
619
- DATA_SLIDE: '[data-slide], [data-slide-to]',
620
- DATA_RIDE: '[data-ride="carousel"]'
621
- };
648
+ var DIRECTION_NEXT = 'next';
649
+ var DIRECTION_PREV = 'prev';
650
+ var DIRECTION_LEFT = 'left';
651
+ var DIRECTION_RIGHT = 'right';
652
+ var EVENT_SLIDE = "slide" + EVENT_KEY$2;
653
+ var EVENT_SLID = "slid" + EVENT_KEY$2;
654
+ var EVENT_KEYDOWN = "keydown" + EVENT_KEY$2;
655
+ var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$2;
656
+ var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$2;
657
+ var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$2;
658
+ var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$2;
659
+ var EVENT_TOUCHEND = "touchend" + EVENT_KEY$2;
660
+ var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$2;
661
+ var EVENT_POINTERUP = "pointerup" + EVENT_KEY$2;
662
+ var EVENT_DRAG_START = "dragstart" + EVENT_KEY$2;
663
+ var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$2 + DATA_API_KEY$2;
664
+ var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$2 + DATA_API_KEY$2;
665
+ var CLASS_NAME_CAROUSEL = 'carousel';
666
+ var CLASS_NAME_ACTIVE$1 = 'active';
667
+ var CLASS_NAME_SLIDE = 'slide';
668
+ var CLASS_NAME_RIGHT = 'carousel-item-right';
669
+ var CLASS_NAME_LEFT = 'carousel-item-left';
670
+ var CLASS_NAME_NEXT = 'carousel-item-next';
671
+ var CLASS_NAME_PREV = 'carousel-item-prev';
672
+ var CLASS_NAME_POINTER_EVENT = 'pointer-event';
673
+ var SELECTOR_ACTIVE$1 = '.active';
674
+ var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
675
+ var SELECTOR_ITEM = '.carousel-item';
676
+ var SELECTOR_ITEM_IMG = '.carousel-item img';
677
+ var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
678
+ var SELECTOR_INDICATORS = '.carousel-indicators';
679
+ var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
680
+ var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
622
681
  var PointerType = {
623
682
  TOUCH: 'touch',
624
683
  PEN: 'pen'
625
- /**
626
- * ------------------------------------------------------------------------
627
- * Class Definition
628
- * ------------------------------------------------------------------------
629
- */
630
-
631
684
  };
685
+ /**
686
+ * ------------------------------------------------------------------------
687
+ * Class Definition
688
+ * ------------------------------------------------------------------------
689
+ */
632
690
 
633
- var Carousel =
634
- /*#__PURE__*/
635
- function () {
691
+ var Carousel = /*#__PURE__*/function () {
636
692
  function Carousel(element, config) {
637
693
  this._items = null;
638
694
  this._interval = null;
@@ -644,7 +700,7 @@
644
700
  this.touchDeltaX = 0;
645
701
  this._config = this._getConfig(config);
646
702
  this._element = element;
647
- this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);
703
+ this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);
648
704
  this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
649
705
  this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
650
706
 
@@ -657,7 +713,7 @@
657
713
  // Public
658
714
  _proto.next = function next() {
659
715
  if (!this._isSliding) {
660
- this._slide(Direction.NEXT);
716
+ this._slide(DIRECTION_NEXT);
661
717
  }
662
718
  };
663
719
 
@@ -671,7 +727,7 @@
671
727
 
672
728
  _proto.prev = function prev() {
673
729
  if (!this._isSliding) {
674
- this._slide(Direction.PREV);
730
+ this._slide(DIRECTION_PREV);
675
731
  }
676
732
  };
677
733
 
@@ -680,7 +736,7 @@
680
736
  this._isPaused = true;
681
737
  }
682
738
 
683
- if (this._element.querySelector(Selector$2.NEXT_PREV)) {
739
+ if (this._element.querySelector(SELECTOR_NEXT_PREV)) {
684
740
  Util.triggerTransitionEnd(this._element);
685
741
  this.cycle(true);
686
742
  }
@@ -707,7 +763,7 @@
707
763
  _proto.to = function to(index) {
708
764
  var _this = this;
709
765
 
710
- this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
766
+ this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
711
767
 
712
768
  var activeIndex = this._getItemIndex(this._activeElement);
713
769
 
@@ -716,7 +772,7 @@
716
772
  }
717
773
 
718
774
  if (this._isSliding) {
719
- $(this._element).one(Event$2.SLID, function () {
775
+ $(this._element).one(EVENT_SLID, function () {
720
776
  return _this.to(index);
721
777
  });
722
778
  return;
@@ -728,7 +784,7 @@
728
784
  return;
729
785
  }
730
786
 
731
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
787
+ var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
732
788
 
733
789
  this._slide(direction, this._items[index]);
734
790
  };
@@ -748,7 +804,7 @@
748
804
  ;
749
805
 
750
806
  _proto._getConfig = function _getConfig(config) {
751
- config = _objectSpread({}, Default, config);
807
+ config = _objectSpread2(_objectSpread2({}, Default), config);
752
808
  Util.typeCheckConfig(NAME$2, config, DefaultType);
753
809
  return config;
754
810
  };
@@ -760,7 +816,8 @@
760
816
  return;
761
817
  }
762
818
 
763
- var direction = absDeltax / this.touchDeltaX; // swipe left
819
+ var direction = absDeltax / this.touchDeltaX;
820
+ this.touchDeltaX = 0; // swipe left
764
821
 
765
822
  if (direction > 0) {
766
823
  this.prev();
@@ -776,15 +833,15 @@
776
833
  var _this2 = this;
777
834
 
778
835
  if (this._config.keyboard) {
779
- $(this._element).on(Event$2.KEYDOWN, function (event) {
836
+ $(this._element).on(EVENT_KEYDOWN, function (event) {
780
837
  return _this2._keydown(event);
781
838
  });
782
839
  }
783
840
 
784
841
  if (this._config.pause === 'hover') {
785
- $(this._element).on(Event$2.MOUSEENTER, function (event) {
842
+ $(this._element).on(EVENT_MOUSEENTER, function (event) {
786
843
  return _this2.pause(event);
787
- }).on(Event$2.MOUSELEAVE, function (event) {
844
+ }).on(EVENT_MOUSELEAVE, function (event) {
788
845
  return _this2.cycle(event);
789
846
  });
790
847
  }
@@ -845,27 +902,27 @@
845
902
  }
846
903
  };
847
904
 
848
- $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {
905
+ $(this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {
849
906
  return e.preventDefault();
850
907
  });
851
908
 
852
909
  if (this._pointerEvent) {
853
- $(this._element).on(Event$2.POINTERDOWN, function (event) {
910
+ $(this._element).on(EVENT_POINTERDOWN, function (event) {
854
911
  return start(event);
855
912
  });
856
- $(this._element).on(Event$2.POINTERUP, function (event) {
913
+ $(this._element).on(EVENT_POINTERUP, function (event) {
857
914
  return end(event);
858
915
  });
859
916
 
860
- this._element.classList.add(ClassName$2.POINTER_EVENT);
917
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
861
918
  } else {
862
- $(this._element).on(Event$2.TOUCHSTART, function (event) {
919
+ $(this._element).on(EVENT_TOUCHSTART, function (event) {
863
920
  return start(event);
864
921
  });
865
- $(this._element).on(Event$2.TOUCHMOVE, function (event) {
922
+ $(this._element).on(EVENT_TOUCHMOVE, function (event) {
866
923
  return move(event);
867
924
  });
868
- $(this._element).on(Event$2.TOUCHEND, function (event) {
925
+ $(this._element).on(EVENT_TOUCHEND, function (event) {
869
926
  return end(event);
870
927
  });
871
928
  }
@@ -886,19 +943,17 @@
886
943
  event.preventDefault();
887
944
  this.next();
888
945
  break;
889
-
890
- default:
891
946
  }
892
947
  };
893
948
 
894
949
  _proto._getItemIndex = function _getItemIndex(element) {
895
- this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];
950
+ this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];
896
951
  return this._items.indexOf(element);
897
952
  };
898
953
 
899
954
  _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
900
- var isNextDirection = direction === Direction.NEXT;
901
- var isPrevDirection = direction === Direction.PREV;
955
+ var isNextDirection = direction === DIRECTION_NEXT;
956
+ var isPrevDirection = direction === DIRECTION_PREV;
902
957
 
903
958
  var activeIndex = this._getItemIndex(activeElement);
904
959
 
@@ -909,7 +964,7 @@
909
964
  return activeElement;
910
965
  }
911
966
 
912
- var delta = direction === Direction.PREV ? -1 : 1;
967
+ var delta = direction === DIRECTION_PREV ? -1 : 1;
913
968
  var itemIndex = (activeIndex + delta) % this._items.length;
914
969
  return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
915
970
  };
@@ -917,9 +972,9 @@
917
972
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
918
973
  var targetIndex = this._getItemIndex(relatedTarget);
919
974
 
920
- var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));
975
+ var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));
921
976
 
922
- var slideEvent = $.Event(Event$2.SLIDE, {
977
+ var slideEvent = $.Event(EVENT_SLIDE, {
923
978
  relatedTarget: relatedTarget,
924
979
  direction: eventDirectionName,
925
980
  from: fromIndex,
@@ -931,13 +986,13 @@
931
986
 
932
987
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
933
988
  if (this._indicatorsElement) {
934
- var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));
935
- $(indicators).removeClass(ClassName$2.ACTIVE);
989
+ var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));
990
+ $(indicators).removeClass(CLASS_NAME_ACTIVE$1);
936
991
 
937
992
  var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
938
993
 
939
994
  if (nextIndicator) {
940
- $(nextIndicator).addClass(ClassName$2.ACTIVE);
995
+ $(nextIndicator).addClass(CLASS_NAME_ACTIVE$1);
941
996
  }
942
997
  }
943
998
  };
@@ -945,7 +1000,7 @@
945
1000
  _proto._slide = function _slide(direction, element) {
946
1001
  var _this4 = this;
947
1002
 
948
- var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
1003
+ var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);
949
1004
 
950
1005
  var activeElementIndex = this._getItemIndex(activeElement);
951
1006
 
@@ -958,17 +1013,17 @@
958
1013
  var orderClassName;
959
1014
  var eventDirectionName;
960
1015
 
961
- if (direction === Direction.NEXT) {
962
- directionalClassName = ClassName$2.LEFT;
963
- orderClassName = ClassName$2.NEXT;
964
- eventDirectionName = Direction.LEFT;
1016
+ if (direction === DIRECTION_NEXT) {
1017
+ directionalClassName = CLASS_NAME_LEFT;
1018
+ orderClassName = CLASS_NAME_NEXT;
1019
+ eventDirectionName = DIRECTION_LEFT;
965
1020
  } else {
966
- directionalClassName = ClassName$2.RIGHT;
967
- orderClassName = ClassName$2.PREV;
968
- eventDirectionName = Direction.RIGHT;
1021
+ directionalClassName = CLASS_NAME_RIGHT;
1022
+ orderClassName = CLASS_NAME_PREV;
1023
+ eventDirectionName = DIRECTION_RIGHT;
969
1024
  }
970
1025
 
971
- if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {
1026
+ if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {
972
1027
  this._isSliding = false;
973
1028
  return;
974
1029
  }
@@ -992,14 +1047,14 @@
992
1047
 
993
1048
  this._setActiveIndicatorElement(nextElement);
994
1049
 
995
- var slidEvent = $.Event(Event$2.SLID, {
1050
+ var slidEvent = $.Event(EVENT_SLID, {
996
1051
  relatedTarget: nextElement,
997
1052
  direction: eventDirectionName,
998
1053
  from: activeElementIndex,
999
1054
  to: nextElementIndex
1000
1055
  });
1001
1056
 
1002
- if ($(this._element).hasClass(ClassName$2.SLIDE)) {
1057
+ if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {
1003
1058
  $(nextElement).addClass(orderClassName);
1004
1059
  Util.reflow(nextElement);
1005
1060
  $(activeElement).addClass(directionalClassName);
@@ -1015,16 +1070,16 @@
1015
1070
 
1016
1071
  var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
1017
1072
  $(activeElement).one(Util.TRANSITION_END, function () {
1018
- $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName$2.ACTIVE);
1019
- $(activeElement).removeClass(ClassName$2.ACTIVE + " " + orderClassName + " " + directionalClassName);
1073
+ $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$1);
1074
+ $(activeElement).removeClass(CLASS_NAME_ACTIVE$1 + " " + orderClassName + " " + directionalClassName);
1020
1075
  _this4._isSliding = false;
1021
1076
  setTimeout(function () {
1022
1077
  return $(_this4._element).trigger(slidEvent);
1023
1078
  }, 0);
1024
1079
  }).emulateTransitionEnd(transitionDuration);
1025
1080
  } else {
1026
- $(activeElement).removeClass(ClassName$2.ACTIVE);
1027
- $(nextElement).addClass(ClassName$2.ACTIVE);
1081
+ $(activeElement).removeClass(CLASS_NAME_ACTIVE$1);
1082
+ $(nextElement).addClass(CLASS_NAME_ACTIVE$1);
1028
1083
  this._isSliding = false;
1029
1084
  $(this._element).trigger(slidEvent);
1030
1085
  }
@@ -1039,10 +1094,10 @@
1039
1094
  return this.each(function () {
1040
1095
  var data = $(this).data(DATA_KEY$2);
1041
1096
 
1042
- var _config = _objectSpread({}, Default, $(this).data());
1097
+ var _config = _objectSpread2(_objectSpread2({}, Default), $(this).data());
1043
1098
 
1044
1099
  if (typeof config === 'object') {
1045
- _config = _objectSpread({}, _config, config);
1100
+ _config = _objectSpread2(_objectSpread2({}, _config), config);
1046
1101
  }
1047
1102
 
1048
1103
  var action = typeof config === 'string' ? config : _config.slide;
@@ -1076,11 +1131,11 @@
1076
1131
 
1077
1132
  var target = $(selector)[0];
1078
1133
 
1079
- if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {
1134
+ if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {
1080
1135
  return;
1081
1136
  }
1082
1137
 
1083
- var config = _objectSpread({}, $(target).data(), $(this).data());
1138
+ var config = _objectSpread2(_objectSpread2({}, $(target).data()), $(this).data());
1084
1139
 
1085
1140
  var slideIndex = this.getAttribute('data-slide-to');
1086
1141
 
@@ -1118,9 +1173,9 @@
1118
1173
  */
1119
1174
 
1120
1175
 
1121
- $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);
1122
- $(window).on(Event$2.LOAD_DATA_API, function () {
1123
- var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));
1176
+ $(document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);
1177
+ $(window).on(EVENT_LOAD_DATA_API$1, function () {
1178
+ var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));
1124
1179
 
1125
1180
  for (var i = 0, len = carousels.length; i < len; i++) {
1126
1181
  var $carousel = $(carousels[i]);
@@ -1149,7 +1204,7 @@
1149
1204
  */
1150
1205
 
1151
1206
  var NAME$3 = 'collapse';
1152
- var VERSION$3 = '4.3.1';
1207
+ var VERSION$3 = '4.5.0';
1153
1208
  var DATA_KEY$3 = 'bs.collapse';
1154
1209
  var EVENT_KEY$3 = "." + DATA_KEY$3;
1155
1210
  var DATA_API_KEY$3 = '.data-api';
@@ -1162,43 +1217,32 @@
1162
1217
  toggle: 'boolean',
1163
1218
  parent: '(string|element)'
1164
1219
  };
1165
- var Event$3 = {
1166
- SHOW: "show" + EVENT_KEY$3,
1167
- SHOWN: "shown" + EVENT_KEY$3,
1168
- HIDE: "hide" + EVENT_KEY$3,
1169
- HIDDEN: "hidden" + EVENT_KEY$3,
1170
- CLICK_DATA_API: "click" + EVENT_KEY$3 + DATA_API_KEY$3
1171
- };
1172
- var ClassName$3 = {
1173
- SHOW: 'show',
1174
- COLLAPSE: 'collapse',
1175
- COLLAPSING: 'collapsing',
1176
- COLLAPSED: 'collapsed'
1177
- };
1178
- var Dimension = {
1179
- WIDTH: 'width',
1180
- HEIGHT: 'height'
1181
- };
1182
- var Selector$3 = {
1183
- ACTIVES: '.show, .collapsing',
1184
- DATA_TOGGLE: '[data-toggle="collapse"]'
1185
- /**
1186
- * ------------------------------------------------------------------------
1187
- * Class Definition
1188
- * ------------------------------------------------------------------------
1189
- */
1190
-
1191
- };
1220
+ var EVENT_SHOW = "show" + EVENT_KEY$3;
1221
+ var EVENT_SHOWN = "shown" + EVENT_KEY$3;
1222
+ var EVENT_HIDE = "hide" + EVENT_KEY$3;
1223
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY$3;
1224
+ var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$3 + DATA_API_KEY$3;
1225
+ var CLASS_NAME_SHOW$1 = 'show';
1226
+ var CLASS_NAME_COLLAPSE = 'collapse';
1227
+ var CLASS_NAME_COLLAPSING = 'collapsing';
1228
+ var CLASS_NAME_COLLAPSED = 'collapsed';
1229
+ var DIMENSION_WIDTH = 'width';
1230
+ var DIMENSION_HEIGHT = 'height';
1231
+ var SELECTOR_ACTIVES = '.show, .collapsing';
1232
+ var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]';
1233
+ /**
1234
+ * ------------------------------------------------------------------------
1235
+ * Class Definition
1236
+ * ------------------------------------------------------------------------
1237
+ */
1192
1238
 
1193
- var Collapse =
1194
- /*#__PURE__*/
1195
- function () {
1239
+ var Collapse = /*#__PURE__*/function () {
1196
1240
  function Collapse(element, config) {
1197
1241
  this._isTransitioning = false;
1198
1242
  this._element = element;
1199
1243
  this._config = this._getConfig(config);
1200
1244
  this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1201
- var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));
1245
+ var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));
1202
1246
 
1203
1247
  for (var i = 0, len = toggleList.length; i < len; i++) {
1204
1248
  var elem = toggleList[i];
@@ -1230,7 +1274,7 @@
1230
1274
 
1231
1275
  // Public
1232
1276
  _proto.toggle = function toggle() {
1233
- if ($(this._element).hasClass(ClassName$3.SHOW)) {
1277
+ if ($(this._element).hasClass(CLASS_NAME_SHOW$1)) {
1234
1278
  this.hide();
1235
1279
  } else {
1236
1280
  this.show();
@@ -1240,7 +1284,7 @@
1240
1284
  _proto.show = function show() {
1241
1285
  var _this = this;
1242
1286
 
1243
- if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {
1287
+ if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW$1)) {
1244
1288
  return;
1245
1289
  }
1246
1290
 
@@ -1248,12 +1292,12 @@
1248
1292
  var activesData;
1249
1293
 
1250
1294
  if (this._parent) {
1251
- actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {
1295
+ actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
1252
1296
  if (typeof _this._config.parent === 'string') {
1253
1297
  return elem.getAttribute('data-parent') === _this._config.parent;
1254
1298
  }
1255
1299
 
1256
- return elem.classList.contains(ClassName$3.COLLAPSE);
1300
+ return elem.classList.contains(CLASS_NAME_COLLAPSE);
1257
1301
  });
1258
1302
 
1259
1303
  if (actives.length === 0) {
@@ -1269,7 +1313,7 @@
1269
1313
  }
1270
1314
  }
1271
1315
 
1272
- var startEvent = $.Event(Event$3.SHOW);
1316
+ var startEvent = $.Event(EVENT_SHOW);
1273
1317
  $(this._element).trigger(startEvent);
1274
1318
 
1275
1319
  if (startEvent.isDefaultPrevented()) {
@@ -1286,22 +1330,22 @@
1286
1330
 
1287
1331
  var dimension = this._getDimension();
1288
1332
 
1289
- $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);
1333
+ $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
1290
1334
  this._element.style[dimension] = 0;
1291
1335
 
1292
1336
  if (this._triggerArray.length) {
1293
- $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);
1337
+ $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
1294
1338
  }
1295
1339
 
1296
1340
  this.setTransitioning(true);
1297
1341
 
1298
1342
  var complete = function complete() {
1299
- $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);
1343
+ $(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1);
1300
1344
  _this._element.style[dimension] = '';
1301
1345
 
1302
1346
  _this.setTransitioning(false);
1303
1347
 
1304
- $(_this._element).trigger(Event$3.SHOWN);
1348
+ $(_this._element).trigger(EVENT_SHOWN);
1305
1349
  };
1306
1350
 
1307
1351
  var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -1314,11 +1358,11 @@
1314
1358
  _proto.hide = function hide() {
1315
1359
  var _this2 = this;
1316
1360
 
1317
- if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {
1361
+ if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW$1)) {
1318
1362
  return;
1319
1363
  }
1320
1364
 
1321
- var startEvent = $.Event(Event$3.HIDE);
1365
+ var startEvent = $.Event(EVENT_HIDE);
1322
1366
  $(this._element).trigger(startEvent);
1323
1367
 
1324
1368
  if (startEvent.isDefaultPrevented()) {
@@ -1329,7 +1373,7 @@
1329
1373
 
1330
1374
  this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1331
1375
  Util.reflow(this._element);
1332
- $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);
1376
+ $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$1);
1333
1377
  var triggerArrayLength = this._triggerArray.length;
1334
1378
 
1335
1379
  if (triggerArrayLength > 0) {
@@ -1340,8 +1384,8 @@
1340
1384
  if (selector !== null) {
1341
1385
  var $elem = $([].slice.call(document.querySelectorAll(selector)));
1342
1386
 
1343
- if (!$elem.hasClass(ClassName$3.SHOW)) {
1344
- $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);
1387
+ if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {
1388
+ $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
1345
1389
  }
1346
1390
  }
1347
1391
  }
@@ -1352,7 +1396,7 @@
1352
1396
  var complete = function complete() {
1353
1397
  _this2.setTransitioning(false);
1354
1398
 
1355
- $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);
1399
+ $(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
1356
1400
  };
1357
1401
 
1358
1402
  this._element.style[dimension] = '';
@@ -1375,7 +1419,7 @@
1375
1419
  ;
1376
1420
 
1377
1421
  _proto._getConfig = function _getConfig(config) {
1378
- config = _objectSpread({}, Default$1, config);
1422
+ config = _objectSpread2(_objectSpread2({}, Default$1), config);
1379
1423
  config.toggle = Boolean(config.toggle); // Coerce string values
1380
1424
 
1381
1425
  Util.typeCheckConfig(NAME$3, config, DefaultType$1);
@@ -1383,8 +1427,8 @@
1383
1427
  };
1384
1428
 
1385
1429
  _proto._getDimension = function _getDimension() {
1386
- var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1387
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1430
+ var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH);
1431
+ return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
1388
1432
  };
1389
1433
 
1390
1434
  _proto._getParent = function _getParent() {
@@ -1411,10 +1455,10 @@
1411
1455
  };
1412
1456
 
1413
1457
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1414
- var isOpen = $(element).hasClass(ClassName$3.SHOW);
1458
+ var isOpen = $(element).hasClass(CLASS_NAME_SHOW$1);
1415
1459
 
1416
1460
  if (triggerArray.length) {
1417
- $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1461
+ $(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1418
1462
  }
1419
1463
  } // Static
1420
1464
  ;
@@ -1429,9 +1473,9 @@
1429
1473
  var $this = $(this);
1430
1474
  var data = $this.data(DATA_KEY$3);
1431
1475
 
1432
- var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});
1476
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$1), $this.data()), typeof config === 'object' && config ? config : {});
1433
1477
 
1434
- if (!data && _config.toggle && /show|hide/.test(config)) {
1478
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
1435
1479
  _config.toggle = false;
1436
1480
  }
1437
1481
 
@@ -1471,7 +1515,7 @@
1471
1515
  */
1472
1516
 
1473
1517
 
1474
- $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
1518
+ $(document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {
1475
1519
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1476
1520
  if (event.currentTarget.tagName === 'A') {
1477
1521
  event.preventDefault();
@@ -1509,7 +1553,7 @@
1509
1553
  */
1510
1554
 
1511
1555
  var NAME$4 = 'dropdown';
1512
- var VERSION$4 = '4.3.1';
1556
+ var VERSION$4 = '4.5.0';
1513
1557
  var DATA_KEY$4 = 'bs.dropdown';
1514
1558
  var EVENT_KEY$4 = "." + DATA_KEY$4;
1515
1559
  var DATA_API_KEY$4 = '.data-api';
@@ -1527,67 +1571,55 @@
1527
1571
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
1528
1572
 
1529
1573
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
1530
- var Event$4 = {
1531
- HIDE: "hide" + EVENT_KEY$4,
1532
- HIDDEN: "hidden" + EVENT_KEY$4,
1533
- SHOW: "show" + EVENT_KEY$4,
1534
- SHOWN: "shown" + EVENT_KEY$4,
1535
- CLICK: "click" + EVENT_KEY$4,
1536
- CLICK_DATA_API: "click" + EVENT_KEY$4 + DATA_API_KEY$4,
1537
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY$4 + DATA_API_KEY$4,
1538
- KEYUP_DATA_API: "keyup" + EVENT_KEY$4 + DATA_API_KEY$4
1539
- };
1540
- var ClassName$4 = {
1541
- DISABLED: 'disabled',
1542
- SHOW: 'show',
1543
- DROPUP: 'dropup',
1544
- DROPRIGHT: 'dropright',
1545
- DROPLEFT: 'dropleft',
1546
- MENURIGHT: 'dropdown-menu-right',
1547
- MENULEFT: 'dropdown-menu-left',
1548
- POSITION_STATIC: 'position-static'
1549
- };
1550
- var Selector$4 = {
1551
- DATA_TOGGLE: '[data-toggle="dropdown"]',
1552
- FORM_CHILD: '.dropdown form',
1553
- MENU: '.dropdown-menu',
1554
- NAVBAR_NAV: '.navbar-nav',
1555
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
1556
- };
1557
- var AttachmentMap = {
1558
- TOP: 'top-start',
1559
- TOPEND: 'top-end',
1560
- BOTTOM: 'bottom-start',
1561
- BOTTOMEND: 'bottom-end',
1562
- RIGHT: 'right-start',
1563
- RIGHTEND: 'right-end',
1564
- LEFT: 'left-start',
1565
- LEFTEND: 'left-end'
1566
- };
1574
+ var EVENT_HIDE$1 = "hide" + EVENT_KEY$4;
1575
+ var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4;
1576
+ var EVENT_SHOW$1 = "show" + EVENT_KEY$4;
1577
+ var EVENT_SHOWN$1 = "shown" + EVENT_KEY$4;
1578
+ var EVENT_CLICK = "click" + EVENT_KEY$4;
1579
+ var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$4 + DATA_API_KEY$4;
1580
+ var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$4 + DATA_API_KEY$4;
1581
+ var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$4 + DATA_API_KEY$4;
1582
+ var CLASS_NAME_DISABLED = 'disabled';
1583
+ var CLASS_NAME_SHOW$2 = 'show';
1584
+ var CLASS_NAME_DROPUP = 'dropup';
1585
+ var CLASS_NAME_DROPRIGHT = 'dropright';
1586
+ var CLASS_NAME_DROPLEFT = 'dropleft';
1587
+ var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
1588
+ var CLASS_NAME_POSITION_STATIC = 'position-static';
1589
+ var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
1590
+ var SELECTOR_FORM_CHILD = '.dropdown form';
1591
+ var SELECTOR_MENU = '.dropdown-menu';
1592
+ var SELECTOR_NAVBAR_NAV = '.navbar-nav';
1593
+ var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
1594
+ var PLACEMENT_TOP = 'top-start';
1595
+ var PLACEMENT_TOPEND = 'top-end';
1596
+ var PLACEMENT_BOTTOM = 'bottom-start';
1597
+ var PLACEMENT_BOTTOMEND = 'bottom-end';
1598
+ var PLACEMENT_RIGHT = 'right-start';
1599
+ var PLACEMENT_LEFT = 'left-start';
1567
1600
  var Default$2 = {
1568
1601
  offset: 0,
1569
1602
  flip: true,
1570
1603
  boundary: 'scrollParent',
1571
1604
  reference: 'toggle',
1572
- display: 'dynamic'
1605
+ display: 'dynamic',
1606
+ popperConfig: null
1573
1607
  };
1574
1608
  var DefaultType$2 = {
1575
1609
  offset: '(number|string|function)',
1576
1610
  flip: 'boolean',
1577
1611
  boundary: '(string|element)',
1578
1612
  reference: '(string|element)',
1579
- display: 'string'
1580
- /**
1581
- * ------------------------------------------------------------------------
1582
- * Class Definition
1583
- * ------------------------------------------------------------------------
1584
- */
1585
-
1613
+ display: 'string',
1614
+ popperConfig: '(null|object)'
1586
1615
  };
1616
+ /**
1617
+ * ------------------------------------------------------------------------
1618
+ * Class Definition
1619
+ * ------------------------------------------------------------------------
1620
+ */
1587
1621
 
1588
- var Dropdown =
1589
- /*#__PURE__*/
1590
- function () {
1622
+ var Dropdown = /*#__PURE__*/function () {
1591
1623
  function Dropdown(element, config) {
1592
1624
  this._element = element;
1593
1625
  this._popper = null;
@@ -1603,13 +1635,11 @@
1603
1635
 
1604
1636
  // Public
1605
1637
  _proto.toggle = function toggle() {
1606
- if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {
1638
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
1607
1639
  return;
1608
1640
  }
1609
1641
 
1610
- var parent = Dropdown._getParentFromElement(this._element);
1611
-
1612
- var isActive = $(this._menu).hasClass(ClassName$4.SHOW);
1642
+ var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW$2);
1613
1643
 
1614
1644
  Dropdown._clearMenus();
1615
1645
 
@@ -1617,10 +1647,25 @@
1617
1647
  return;
1618
1648
  }
1619
1649
 
1650
+ this.show(true);
1651
+ };
1652
+
1653
+ _proto.show = function show(usePopper) {
1654
+ if (usePopper === void 0) {
1655
+ usePopper = false;
1656
+ }
1657
+
1658
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW$2)) {
1659
+ return;
1660
+ }
1661
+
1620
1662
  var relatedTarget = {
1621
1663
  relatedTarget: this._element
1622
1664
  };
1623
- var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1665
+ var showEvent = $.Event(EVENT_SHOW$1, relatedTarget);
1666
+
1667
+ var parent = Dropdown._getParentFromElement(this._element);
1668
+
1624
1669
  $(parent).trigger(showEvent);
1625
1670
 
1626
1671
  if (showEvent.isDefaultPrevented()) {
@@ -1628,7 +1673,7 @@
1628
1673
  } // Disable totally Popper.js for Dropdown in Navbar
1629
1674
 
1630
1675
 
1631
- if (!this._inNavbar) {
1676
+ if (!this._inNavbar && usePopper) {
1632
1677
  /**
1633
1678
  * Check for Popper dependency
1634
1679
  * Popper - https://popper.js.org
@@ -1653,7 +1698,7 @@
1653
1698
 
1654
1699
 
1655
1700
  if (this._config.boundary !== 'scrollParent') {
1656
- $(parent).addClass(ClassName$4.POSITION_STATIC);
1701
+ $(parent).addClass(CLASS_NAME_POSITION_STATIC);
1657
1702
  }
1658
1703
 
1659
1704
  this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
@@ -1663,7 +1708,7 @@
1663
1708
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
1664
1709
 
1665
1710
 
1666
- if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {
1711
+ if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
1667
1712
  $(document.body).children().on('mouseover', null, $.noop);
1668
1713
  }
1669
1714
 
@@ -1671,41 +1716,19 @@
1671
1716
 
1672
1717
  this._element.setAttribute('aria-expanded', true);
1673
1718
 
1674
- $(this._menu).toggleClass(ClassName$4.SHOW);
1675
- $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
1676
- };
1677
-
1678
- _proto.show = function show() {
1679
- if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {
1680
- return;
1681
- }
1682
-
1683
- var relatedTarget = {
1684
- relatedTarget: this._element
1685
- };
1686
- var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1687
-
1688
- var parent = Dropdown._getParentFromElement(this._element);
1689
-
1690
- $(parent).trigger(showEvent);
1691
-
1692
- if (showEvent.isDefaultPrevented()) {
1693
- return;
1694
- }
1695
-
1696
- $(this._menu).toggleClass(ClassName$4.SHOW);
1697
- $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
1719
+ $(this._menu).toggleClass(CLASS_NAME_SHOW$2);
1720
+ $(parent).toggleClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_SHOWN$1, relatedTarget));
1698
1721
  };
1699
1722
 
1700
1723
  _proto.hide = function hide() {
1701
- if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {
1724
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW$2)) {
1702
1725
  return;
1703
1726
  }
1704
1727
 
1705
1728
  var relatedTarget = {
1706
1729
  relatedTarget: this._element
1707
1730
  };
1708
- var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1731
+ var hideEvent = $.Event(EVENT_HIDE$1, relatedTarget);
1709
1732
 
1710
1733
  var parent = Dropdown._getParentFromElement(this._element);
1711
1734
 
@@ -1715,8 +1738,12 @@
1715
1738
  return;
1716
1739
  }
1717
1740
 
1718
- $(this._menu).toggleClass(ClassName$4.SHOW);
1719
- $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1741
+ if (this._popper) {
1742
+ this._popper.destroy();
1743
+ }
1744
+
1745
+ $(this._menu).toggleClass(CLASS_NAME_SHOW$2);
1746
+ $(parent).toggleClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_HIDDEN$1, relatedTarget));
1720
1747
  };
1721
1748
 
1722
1749
  _proto.dispose = function dispose() {
@@ -1744,7 +1771,7 @@
1744
1771
  _proto._addEventListeners = function _addEventListeners() {
1745
1772
  var _this = this;
1746
1773
 
1747
- $(this._element).on(Event$4.CLICK, function (event) {
1774
+ $(this._element).on(EVENT_CLICK, function (event) {
1748
1775
  event.preventDefault();
1749
1776
  event.stopPropagation();
1750
1777
 
@@ -1753,7 +1780,7 @@
1753
1780
  };
1754
1781
 
1755
1782
  _proto._getConfig = function _getConfig(config) {
1756
- config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
1783
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), $(this._element).data()), config);
1757
1784
  Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
1758
1785
  return config;
1759
1786
  };
@@ -1763,7 +1790,7 @@
1763
1790
  var parent = Dropdown._getParentFromElement(this._element);
1764
1791
 
1765
1792
  if (parent) {
1766
- this._menu = parent.querySelector(Selector$4.MENU);
1793
+ this._menu = parent.querySelector(SELECTOR_MENU);
1767
1794
  }
1768
1795
  }
1769
1796
 
@@ -1772,20 +1799,16 @@
1772
1799
 
1773
1800
  _proto._getPlacement = function _getPlacement() {
1774
1801
  var $parentDropdown = $(this._element.parentNode);
1775
- var placement = AttachmentMap.BOTTOM; // Handle dropup
1802
+ var placement = PLACEMENT_BOTTOM; // Handle dropup
1776
1803
 
1777
- if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {
1778
- placement = AttachmentMap.TOP;
1779
-
1780
- if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1781
- placement = AttachmentMap.TOPEND;
1782
- }
1783
- } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {
1784
- placement = AttachmentMap.RIGHT;
1785
- } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {
1786
- placement = AttachmentMap.LEFT;
1787
- } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1788
- placement = AttachmentMap.BOTTOMEND;
1804
+ if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
1805
+ placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
1806
+ } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
1807
+ placement = PLACEMENT_RIGHT;
1808
+ } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
1809
+ placement = PLACEMENT_LEFT;
1810
+ } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
1811
+ placement = PLACEMENT_BOTTOMEND;
1789
1812
  }
1790
1813
 
1791
1814
  return placement;
@@ -1802,7 +1825,7 @@
1802
1825
 
1803
1826
  if (typeof this._config.offset === 'function') {
1804
1827
  offset.fn = function (data) {
1805
- data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
1828
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
1806
1829
  return data;
1807
1830
  };
1808
1831
  } else {
@@ -1823,9 +1846,8 @@
1823
1846
  preventOverflow: {
1824
1847
  boundariesElement: this._config.boundary
1825
1848
  }
1826
- } // Disable Popper.js if we have a static display
1827
-
1828
- };
1849
+ }
1850
+ }; // Disable Popper.js if we have a static display
1829
1851
 
1830
1852
  if (this._config.display === 'static') {
1831
1853
  popperConfig.modifiers.applyStyle = {
@@ -1833,7 +1855,7 @@
1833
1855
  };
1834
1856
  }
1835
1857
 
1836
- return popperConfig;
1858
+ return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
1837
1859
  } // Static
1838
1860
  ;
1839
1861
 
@@ -1863,7 +1885,7 @@
1863
1885
  return;
1864
1886
  }
1865
1887
 
1866
- var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));
1888
+ var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));
1867
1889
 
1868
1890
  for (var i = 0, len = toggles.length; i < len; i++) {
1869
1891
  var parent = Dropdown._getParentFromElement(toggles[i]);
@@ -1883,7 +1905,7 @@
1883
1905
 
1884
1906
  var dropdownMenu = context._menu;
1885
1907
 
1886
- if (!$(parent).hasClass(ClassName$4.SHOW)) {
1908
+ if (!$(parent).hasClass(CLASS_NAME_SHOW$2)) {
1887
1909
  continue;
1888
1910
  }
1889
1911
 
@@ -1891,7 +1913,7 @@
1891
1913
  continue;
1892
1914
  }
1893
1915
 
1894
- var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1916
+ var hideEvent = $.Event(EVENT_HIDE$1, relatedTarget);
1895
1917
  $(parent).trigger(hideEvent);
1896
1918
 
1897
1919
  if (hideEvent.isDefaultPrevented()) {
@@ -1905,8 +1927,13 @@
1905
1927
  }
1906
1928
 
1907
1929
  toggles[i].setAttribute('aria-expanded', 'false');
1908
- $(dropdownMenu).removeClass(ClassName$4.SHOW);
1909
- $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1930
+
1931
+ if (context._popper) {
1932
+ context._popper.destroy();
1933
+ }
1934
+
1935
+ $(dropdownMenu).removeClass(CLASS_NAME_SHOW$2);
1936
+ $(parent).removeClass(CLASS_NAME_SHOW$2).trigger($.Event(EVENT_HIDDEN$1, relatedTarget));
1910
1937
  }
1911
1938
  };
1912
1939
 
@@ -1930,32 +1957,37 @@
1930
1957
  // - If key is other than escape
1931
1958
  // - If key is not up or down => not a dropdown command
1932
1959
  // - If trigger inside the menu => not a dropdown command
1933
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
1960
+ if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
1934
1961
  return;
1935
1962
  }
1936
1963
 
1937
- event.preventDefault();
1938
- event.stopPropagation();
1939
-
1940
- if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {
1964
+ if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {
1941
1965
  return;
1942
1966
  }
1943
1967
 
1944
1968
  var parent = Dropdown._getParentFromElement(this);
1945
1969
 
1946
- var isActive = $(parent).hasClass(ClassName$4.SHOW);
1970
+ var isActive = $(parent).hasClass(CLASS_NAME_SHOW$2);
1971
+
1972
+ if (!isActive && event.which === ESCAPE_KEYCODE) {
1973
+ return;
1974
+ }
1975
+
1976
+ event.preventDefault();
1977
+ event.stopPropagation();
1947
1978
 
1948
1979
  if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1949
1980
  if (event.which === ESCAPE_KEYCODE) {
1950
- var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);
1951
- $(toggle).trigger('focus');
1981
+ $(parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');
1952
1982
  }
1953
1983
 
1954
1984
  $(this).trigger('click');
1955
1985
  return;
1956
1986
  }
1957
1987
 
1958
- var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));
1988
+ var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
1989
+ return $(item).is(':visible');
1990
+ });
1959
1991
 
1960
1992
  if (items.length === 0) {
1961
1993
  return;
@@ -2006,12 +2038,12 @@
2006
2038
  */
2007
2039
 
2008
2040
 
2009
- $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + " " + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {
2041
+ $(document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {
2010
2042
  event.preventDefault();
2011
2043
  event.stopPropagation();
2012
2044
 
2013
2045
  Dropdown._jQueryInterface.call($(this), 'toggle');
2014
- }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {
2046
+ }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {
2015
2047
  e.stopPropagation();
2016
2048
  });
2017
2049
  /**
@@ -2035,7 +2067,7 @@
2035
2067
  */
2036
2068
 
2037
2069
  var NAME$5 = 'modal';
2038
- var VERSION$5 = '4.3.1';
2070
+ var VERSION$5 = '4.5.0';
2039
2071
  var DATA_KEY$5 = 'bs.modal';
2040
2072
  var EVENT_KEY$5 = "." + DATA_KEY$5;
2041
2073
  var DATA_API_KEY$5 = '.data-api';
@@ -2054,49 +2086,42 @@
2054
2086
  focus: 'boolean',
2055
2087
  show: 'boolean'
2056
2088
  };
2057
- var Event$5 = {
2058
- HIDE: "hide" + EVENT_KEY$5,
2059
- HIDDEN: "hidden" + EVENT_KEY$5,
2060
- SHOW: "show" + EVENT_KEY$5,
2061
- SHOWN: "shown" + EVENT_KEY$5,
2062
- FOCUSIN: "focusin" + EVENT_KEY$5,
2063
- RESIZE: "resize" + EVENT_KEY$5,
2064
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY$5,
2065
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY$5,
2066
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY$5,
2067
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY$5,
2068
- CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
2069
- };
2070
- var ClassName$5 = {
2071
- SCROLLABLE: 'modal-dialog-scrollable',
2072
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
2073
- BACKDROP: 'modal-backdrop',
2074
- OPEN: 'modal-open',
2075
- FADE: 'fade',
2076
- SHOW: 'show'
2077
- };
2078
- var Selector$5 = {
2079
- DIALOG: '.modal-dialog',
2080
- MODAL_BODY: '.modal-body',
2081
- DATA_TOGGLE: '[data-toggle="modal"]',
2082
- DATA_DISMISS: '[data-dismiss="modal"]',
2083
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
2084
- STICKY_CONTENT: '.sticky-top'
2085
- /**
2086
- * ------------------------------------------------------------------------
2087
- * Class Definition
2088
- * ------------------------------------------------------------------------
2089
- */
2090
-
2091
- };
2089
+ var EVENT_HIDE$2 = "hide" + EVENT_KEY$5;
2090
+ var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5;
2091
+ var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5;
2092
+ var EVENT_SHOW$2 = "show" + EVENT_KEY$5;
2093
+ var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5;
2094
+ var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5;
2095
+ var EVENT_RESIZE = "resize" + EVENT_KEY$5;
2096
+ var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY$5;
2097
+ var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5;
2098
+ var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
2099
+ var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
2100
+ var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5;
2101
+ var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
2102
+ var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
2103
+ var CLASS_NAME_BACKDROP = 'modal-backdrop';
2104
+ var CLASS_NAME_OPEN = 'modal-open';
2105
+ var CLASS_NAME_FADE$1 = 'fade';
2106
+ var CLASS_NAME_SHOW$3 = 'show';
2107
+ var CLASS_NAME_STATIC = 'modal-static';
2108
+ var SELECTOR_DIALOG = '.modal-dialog';
2109
+ var SELECTOR_MODAL_BODY = '.modal-body';
2110
+ var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="modal"]';
2111
+ var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
2112
+ var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
2113
+ var SELECTOR_STICKY_CONTENT = '.sticky-top';
2114
+ /**
2115
+ * ------------------------------------------------------------------------
2116
+ * Class Definition
2117
+ * ------------------------------------------------------------------------
2118
+ */
2092
2119
 
2093
- var Modal =
2094
- /*#__PURE__*/
2095
- function () {
2120
+ var Modal = /*#__PURE__*/function () {
2096
2121
  function Modal(element, config) {
2097
2122
  this._config = this._getConfig(config);
2098
2123
  this._element = element;
2099
- this._dialog = element.querySelector(Selector$5.DIALOG);
2124
+ this._dialog = element.querySelector(SELECTOR_DIALOG);
2100
2125
  this._backdrop = null;
2101
2126
  this._isShown = false;
2102
2127
  this._isBodyOverflowing = false;
@@ -2120,11 +2145,11 @@
2120
2145
  return;
2121
2146
  }
2122
2147
 
2123
- if ($(this._element).hasClass(ClassName$5.FADE)) {
2148
+ if ($(this._element).hasClass(CLASS_NAME_FADE$1)) {
2124
2149
  this._isTransitioning = true;
2125
2150
  }
2126
2151
 
2127
- var showEvent = $.Event(Event$5.SHOW, {
2152
+ var showEvent = $.Event(EVENT_SHOW$2, {
2128
2153
  relatedTarget: relatedTarget
2129
2154
  });
2130
2155
  $(this._element).trigger(showEvent);
@@ -2145,11 +2170,11 @@
2145
2170
 
2146
2171
  this._setResizeEvent();
2147
2172
 
2148
- $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {
2173
+ $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
2149
2174
  return _this.hide(event);
2150
2175
  });
2151
- $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {
2152
- $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {
2176
+ $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
2177
+ $(_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
2153
2178
  if ($(event.target).is(_this._element)) {
2154
2179
  _this._ignoreBackdropClick = true;
2155
2180
  }
@@ -2172,7 +2197,7 @@
2172
2197
  return;
2173
2198
  }
2174
2199
 
2175
- var hideEvent = $.Event(Event$5.HIDE);
2200
+ var hideEvent = $.Event(EVENT_HIDE$2);
2176
2201
  $(this._element).trigger(hideEvent);
2177
2202
 
2178
2203
  if (!this._isShown || hideEvent.isDefaultPrevented()) {
@@ -2180,7 +2205,7 @@
2180
2205
  }
2181
2206
 
2182
2207
  this._isShown = false;
2183
- var transition = $(this._element).hasClass(ClassName$5.FADE);
2208
+ var transition = $(this._element).hasClass(CLASS_NAME_FADE$1);
2184
2209
 
2185
2210
  if (transition) {
2186
2211
  this._isTransitioning = true;
@@ -2190,10 +2215,10 @@
2190
2215
 
2191
2216
  this._setResizeEvent();
2192
2217
 
2193
- $(document).off(Event$5.FOCUSIN);
2194
- $(this._element).removeClass(ClassName$5.SHOW);
2195
- $(this._element).off(Event$5.CLICK_DISMISS);
2196
- $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);
2218
+ $(document).off(EVENT_FOCUSIN);
2219
+ $(this._element).removeClass(CLASS_NAME_SHOW$3);
2220
+ $(this._element).off(EVENT_CLICK_DISMISS);
2221
+ $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
2197
2222
 
2198
2223
  if (transition) {
2199
2224
  var transitionDuration = Util.getTransitionDurationFromElement(this._element);
@@ -2210,12 +2235,12 @@
2210
2235
  return $(htmlElement).off(EVENT_KEY$5);
2211
2236
  });
2212
2237
  /**
2213
- * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
2238
+ * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
2214
2239
  * Do not move `document` in `htmlElements` array
2215
- * It will remove `Event.CLICK_DATA_API` event that should remain
2240
+ * It will remove `EVENT_CLICK_DATA_API` event that should remain
2216
2241
  */
2217
2242
 
2218
- $(document).off(Event$5.FOCUSIN);
2243
+ $(document).off(EVENT_FOCUSIN);
2219
2244
  $.removeData(this._element, DATA_KEY$5);
2220
2245
  this._config = null;
2221
2246
  this._element = null;
@@ -2234,15 +2259,40 @@
2234
2259
  ;
2235
2260
 
2236
2261
  _proto._getConfig = function _getConfig(config) {
2237
- config = _objectSpread({}, Default$3, config);
2262
+ config = _objectSpread2(_objectSpread2({}, Default$3), config);
2238
2263
  Util.typeCheckConfig(NAME$5, config, DefaultType$3);
2239
2264
  return config;
2240
2265
  };
2241
2266
 
2242
- _proto._showElement = function _showElement(relatedTarget) {
2267
+ _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
2243
2268
  var _this3 = this;
2244
2269
 
2245
- var transition = $(this._element).hasClass(ClassName$5.FADE);
2270
+ if (this._config.backdrop === 'static') {
2271
+ var hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED);
2272
+ $(this._element).trigger(hideEventPrevented);
2273
+
2274
+ if (hideEventPrevented.defaultPrevented) {
2275
+ return;
2276
+ }
2277
+
2278
+ this._element.classList.add(CLASS_NAME_STATIC);
2279
+
2280
+ var modalTransitionDuration = Util.getTransitionDurationFromElement(this._element);
2281
+ $(this._element).one(Util.TRANSITION_END, function () {
2282
+ _this3._element.classList.remove(CLASS_NAME_STATIC);
2283
+ }).emulateTransitionEnd(modalTransitionDuration);
2284
+
2285
+ this._element.focus();
2286
+ } else {
2287
+ this.hide();
2288
+ }
2289
+ };
2290
+
2291
+ _proto._showElement = function _showElement(relatedTarget) {
2292
+ var _this4 = this;
2293
+
2294
+ var transition = $(this._element).hasClass(CLASS_NAME_FADE$1);
2295
+ var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
2246
2296
 
2247
2297
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
2248
2298
  // Don't move modal's DOM position
@@ -2255,8 +2305,8 @@
2255
2305
 
2256
2306
  this._element.setAttribute('aria-modal', true);
2257
2307
 
2258
- if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
2259
- this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
2308
+ if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
2309
+ modalBody.scrollTop = 0;
2260
2310
  } else {
2261
2311
  this._element.scrollTop = 0;
2262
2312
  }
@@ -2265,23 +2315,23 @@
2265
2315
  Util.reflow(this._element);
2266
2316
  }
2267
2317
 
2268
- $(this._element).addClass(ClassName$5.SHOW);
2318
+ $(this._element).addClass(CLASS_NAME_SHOW$3);
2269
2319
 
2270
2320
  if (this._config.focus) {
2271
2321
  this._enforceFocus();
2272
2322
  }
2273
2323
 
2274
- var shownEvent = $.Event(Event$5.SHOWN, {
2324
+ var shownEvent = $.Event(EVENT_SHOWN$2, {
2275
2325
  relatedTarget: relatedTarget
2276
2326
  });
2277
2327
 
2278
2328
  var transitionComplete = function transitionComplete() {
2279
- if (_this3._config.focus) {
2280
- _this3._element.focus();
2329
+ if (_this4._config.focus) {
2330
+ _this4._element.focus();
2281
2331
  }
2282
2332
 
2283
- _this3._isTransitioning = false;
2284
- $(_this3._element).trigger(shownEvent);
2333
+ _this4._isTransitioning = false;
2334
+ $(_this4._element).trigger(shownEvent);
2285
2335
  };
2286
2336
 
2287
2337
  if (transition) {
@@ -2293,46 +2343,48 @@
2293
2343
  };
2294
2344
 
2295
2345
  _proto._enforceFocus = function _enforceFocus() {
2296
- var _this4 = this;
2346
+ var _this5 = this;
2297
2347
 
2298
- $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop
2299
- .on(Event$5.FOCUSIN, function (event) {
2300
- if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
2301
- _this4._element.focus();
2348
+ $(document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
2349
+ .on(EVENT_FOCUSIN, function (event) {
2350
+ if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) {
2351
+ _this5._element.focus();
2302
2352
  }
2303
2353
  });
2304
2354
  };
2305
2355
 
2306
2356
  _proto._setEscapeEvent = function _setEscapeEvent() {
2307
- var _this5 = this;
2357
+ var _this6 = this;
2308
2358
 
2309
- if (this._isShown && this._config.keyboard) {
2310
- $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {
2311
- if (event.which === ESCAPE_KEYCODE$1) {
2359
+ if (this._isShown) {
2360
+ $(this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
2361
+ if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
2312
2362
  event.preventDefault();
2313
2363
 
2314
- _this5.hide();
2364
+ _this6.hide();
2365
+ } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
2366
+ _this6._triggerBackdropTransition();
2315
2367
  }
2316
2368
  });
2317
2369
  } else if (!this._isShown) {
2318
- $(this._element).off(Event$5.KEYDOWN_DISMISS);
2370
+ $(this._element).off(EVENT_KEYDOWN_DISMISS);
2319
2371
  }
2320
2372
  };
2321
2373
 
2322
2374
  _proto._setResizeEvent = function _setResizeEvent() {
2323
- var _this6 = this;
2375
+ var _this7 = this;
2324
2376
 
2325
2377
  if (this._isShown) {
2326
- $(window).on(Event$5.RESIZE, function (event) {
2327
- return _this6.handleUpdate(event);
2378
+ $(window).on(EVENT_RESIZE, function (event) {
2379
+ return _this7.handleUpdate(event);
2328
2380
  });
2329
2381
  } else {
2330
- $(window).off(Event$5.RESIZE);
2382
+ $(window).off(EVENT_RESIZE);
2331
2383
  }
2332
2384
  };
2333
2385
 
2334
2386
  _proto._hideModal = function _hideModal() {
2335
- var _this7 = this;
2387
+ var _this8 = this;
2336
2388
 
2337
2389
  this._element.style.display = 'none';
2338
2390
 
@@ -2343,13 +2395,13 @@
2343
2395
  this._isTransitioning = false;
2344
2396
 
2345
2397
  this._showBackdrop(function () {
2346
- $(document.body).removeClass(ClassName$5.OPEN);
2398
+ $(document.body).removeClass(CLASS_NAME_OPEN);
2347
2399
 
2348
- _this7._resetAdjustments();
2400
+ _this8._resetAdjustments();
2349
2401
 
2350
- _this7._resetScrollbar();
2402
+ _this8._resetScrollbar();
2351
2403
 
2352
- $(_this7._element).trigger(Event$5.HIDDEN);
2404
+ $(_this8._element).trigger(EVENT_HIDDEN$2);
2353
2405
  });
2354
2406
  };
2355
2407
 
@@ -2361,22 +2413,22 @@
2361
2413
  };
2362
2414
 
2363
2415
  _proto._showBackdrop = function _showBackdrop(callback) {
2364
- var _this8 = this;
2416
+ var _this9 = this;
2365
2417
 
2366
- var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';
2418
+ var animate = $(this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';
2367
2419
 
2368
2420
  if (this._isShown && this._config.backdrop) {
2369
2421
  this._backdrop = document.createElement('div');
2370
- this._backdrop.className = ClassName$5.BACKDROP;
2422
+ this._backdrop.className = CLASS_NAME_BACKDROP;
2371
2423
 
2372
2424
  if (animate) {
2373
2425
  this._backdrop.classList.add(animate);
2374
2426
  }
2375
2427
 
2376
2428
  $(this._backdrop).appendTo(document.body);
2377
- $(this._element).on(Event$5.CLICK_DISMISS, function (event) {
2378
- if (_this8._ignoreBackdropClick) {
2379
- _this8._ignoreBackdropClick = false;
2429
+ $(this._element).on(EVENT_CLICK_DISMISS, function (event) {
2430
+ if (_this9._ignoreBackdropClick) {
2431
+ _this9._ignoreBackdropClick = false;
2380
2432
  return;
2381
2433
  }
2382
2434
 
@@ -2384,18 +2436,14 @@
2384
2436
  return;
2385
2437
  }
2386
2438
 
2387
- if (_this8._config.backdrop === 'static') {
2388
- _this8._element.focus();
2389
- } else {
2390
- _this8.hide();
2391
- }
2439
+ _this9._triggerBackdropTransition();
2392
2440
  });
2393
2441
 
2394
2442
  if (animate) {
2395
2443
  Util.reflow(this._backdrop);
2396
2444
  }
2397
2445
 
2398
- $(this._backdrop).addClass(ClassName$5.SHOW);
2446
+ $(this._backdrop).addClass(CLASS_NAME_SHOW$3);
2399
2447
 
2400
2448
  if (!callback) {
2401
2449
  return;
@@ -2409,17 +2457,17 @@
2409
2457
  var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2410
2458
  $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
2411
2459
  } else if (!this._isShown && this._backdrop) {
2412
- $(this._backdrop).removeClass(ClassName$5.SHOW);
2460
+ $(this._backdrop).removeClass(CLASS_NAME_SHOW$3);
2413
2461
 
2414
2462
  var callbackRemove = function callbackRemove() {
2415
- _this8._removeBackdrop();
2463
+ _this9._removeBackdrop();
2416
2464
 
2417
2465
  if (callback) {
2418
2466
  callback();
2419
2467
  }
2420
2468
  };
2421
2469
 
2422
- if ($(this._element).hasClass(ClassName$5.FADE)) {
2470
+ if ($(this._element).hasClass(CLASS_NAME_FADE$1)) {
2423
2471
  var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2424
2472
 
2425
2473
  $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
@@ -2454,29 +2502,29 @@
2454
2502
 
2455
2503
  _proto._checkScrollbar = function _checkScrollbar() {
2456
2504
  var rect = document.body.getBoundingClientRect();
2457
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
2505
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
2458
2506
  this._scrollbarWidth = this._getScrollbarWidth();
2459
2507
  };
2460
2508
 
2461
2509
  _proto._setScrollbar = function _setScrollbar() {
2462
- var _this9 = this;
2510
+ var _this10 = this;
2463
2511
 
2464
2512
  if (this._isBodyOverflowing) {
2465
2513
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
2466
2514
  // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
2467
- var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
2468
- var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding
2515
+ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
2516
+ var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding
2469
2517
 
2470
2518
  $(fixedContent).each(function (index, element) {
2471
2519
  var actualPadding = element.style.paddingRight;
2472
2520
  var calculatedPadding = $(element).css('padding-right');
2473
- $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
2521
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
2474
2522
  }); // Adjust sticky content margin
2475
2523
 
2476
2524
  $(stickyContent).each(function (index, element) {
2477
2525
  var actualMargin = element.style.marginRight;
2478
2526
  var calculatedMargin = $(element).css('margin-right');
2479
- $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
2527
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
2480
2528
  }); // Adjust body padding
2481
2529
 
2482
2530
  var actualPadding = document.body.style.paddingRight;
@@ -2484,19 +2532,19 @@
2484
2532
  $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
2485
2533
  }
2486
2534
 
2487
- $(document.body).addClass(ClassName$5.OPEN);
2535
+ $(document.body).addClass(CLASS_NAME_OPEN);
2488
2536
  };
2489
2537
 
2490
2538
  _proto._resetScrollbar = function _resetScrollbar() {
2491
2539
  // Restore fixed content padding
2492
- var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
2540
+ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
2493
2541
  $(fixedContent).each(function (index, element) {
2494
2542
  var padding = $(element).data('padding-right');
2495
2543
  $(element).removeData('padding-right');
2496
2544
  element.style.paddingRight = padding ? padding : '';
2497
2545
  }); // Restore sticky content
2498
2546
 
2499
- var elements = [].slice.call(document.querySelectorAll("" + Selector$5.STICKY_CONTENT));
2547
+ var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
2500
2548
  $(elements).each(function (index, element) {
2501
2549
  var margin = $(element).data('margin-right');
2502
2550
 
@@ -2513,7 +2561,7 @@
2513
2561
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
2514
2562
  // thx d.walsh
2515
2563
  var scrollDiv = document.createElement('div');
2516
- scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
2564
+ scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
2517
2565
  document.body.appendChild(scrollDiv);
2518
2566
  var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
2519
2567
  document.body.removeChild(scrollDiv);
@@ -2525,7 +2573,7 @@
2525
2573
  return this.each(function () {
2526
2574
  var data = $(this).data(DATA_KEY$5);
2527
2575
 
2528
- var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});
2576
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), $(this).data()), typeof config === 'object' && config ? config : {});
2529
2577
 
2530
2578
  if (!data) {
2531
2579
  data = new Modal(this, _config);
@@ -2565,8 +2613,8 @@
2565
2613
  */
2566
2614
 
2567
2615
 
2568
- $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
2569
- var _this10 = this;
2616
+ $(document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {
2617
+ var _this11 = this;
2570
2618
 
2571
2619
  var target;
2572
2620
  var selector = Util.getSelectorFromElement(this);
@@ -2575,21 +2623,21 @@
2575
2623
  target = document.querySelector(selector);
2576
2624
  }
2577
2625
 
2578
- var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
2626
+ var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread2(_objectSpread2({}, $(target).data()), $(this).data());
2579
2627
 
2580
2628
  if (this.tagName === 'A' || this.tagName === 'AREA') {
2581
2629
  event.preventDefault();
2582
2630
  }
2583
2631
 
2584
- var $target = $(target).one(Event$5.SHOW, function (showEvent) {
2632
+ var $target = $(target).one(EVENT_SHOW$2, function (showEvent) {
2585
2633
  if (showEvent.isDefaultPrevented()) {
2586
2634
  // Only register focus restorer if modal will actually get shown
2587
2635
  return;
2588
2636
  }
2589
2637
 
2590
- $target.one(Event$5.HIDDEN, function () {
2591
- if ($(_this10).is(':visible')) {
2592
- _this10.focus();
2638
+ $target.one(EVENT_HIDDEN$2, function () {
2639
+ if ($(_this11).is(':visible')) {
2640
+ _this11.focus();
2593
2641
  }
2594
2642
  });
2595
2643
  });
@@ -2612,7 +2660,7 @@
2612
2660
 
2613
2661
  /**
2614
2662
  * --------------------------------------------------------------------------
2615
- * Bootstrap (v4.3.1): tools/sanitizer.js
2663
+ * Bootstrap (v4.5.0): tools/sanitizer.js
2616
2664
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2617
2665
  * --------------------------------------------------------------------------
2618
2666
  */
@@ -2637,7 +2685,7 @@
2637
2685
  h5: [],
2638
2686
  h6: [],
2639
2687
  i: [],
2640
- img: ['src', 'alt', 'title', 'width', 'height'],
2688
+ img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
2641
2689
  li: [],
2642
2690
  ol: [],
2643
2691
  p: [],
@@ -2650,21 +2698,21 @@
2650
2698
  strong: [],
2651
2699
  u: [],
2652
2700
  ul: []
2653
- /**
2654
- * A pattern that recognizes a commonly useful subset of URLs that are safe.
2655
- *
2656
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2657
- */
2658
-
2659
2701
  };
2660
- var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
2702
+ /**
2703
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
2704
+ *
2705
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2706
+ */
2707
+
2708
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
2661
2709
  /**
2662
2710
  * A pattern that matches safe data URLs. Only matches image, video and audio types.
2663
2711
  *
2664
2712
  * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2665
2713
  */
2666
2714
 
2667
- var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
2715
+ var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
2668
2716
 
2669
2717
  function allowedAttribute(attr, allowedAttributeList) {
2670
2718
  var attrName = attr.nodeName.toLowerCase();
@@ -2681,7 +2729,7 @@
2681
2729
  return attrRegex instanceof RegExp;
2682
2730
  }); // Check if a regular expression validates the attribute.
2683
2731
 
2684
- for (var i = 0, l = regExp.length; i < l; i++) {
2732
+ for (var i = 0, len = regExp.length; i < len; i++) {
2685
2733
  if (attrName.match(regExp[i])) {
2686
2734
  return true;
2687
2735
  }
@@ -2723,7 +2771,7 @@
2723
2771
  };
2724
2772
 
2725
2773
  for (var i = 0, len = elements.length; i < len; i++) {
2726
- var _ret = _loop(i, len);
2774
+ var _ret = _loop(i);
2727
2775
 
2728
2776
  if (_ret === "continue") continue;
2729
2777
  }
@@ -2738,7 +2786,7 @@
2738
2786
  */
2739
2787
 
2740
2788
  var NAME$6 = 'tooltip';
2741
- var VERSION$6 = '4.3.1';
2789
+ var VERSION$6 = '4.5.0';
2742
2790
  var DATA_KEY$6 = 'bs.tooltip';
2743
2791
  var EVENT_KEY$6 = "." + DATA_KEY$6;
2744
2792
  var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
@@ -2760,9 +2808,10 @@
2760
2808
  boundary: '(string|element)',
2761
2809
  sanitize: 'boolean',
2762
2810
  sanitizeFn: '(null|function)',
2763
- whiteList: 'object'
2811
+ whiteList: 'object',
2812
+ popperConfig: '(null|object)'
2764
2813
  };
2765
- var AttachmentMap$1 = {
2814
+ var AttachmentMap = {
2766
2815
  AUTO: 'auto',
2767
2816
  TOP: 'top',
2768
2817
  RIGHT: 'right',
@@ -2784,13 +2833,12 @@
2784
2833
  boundary: 'scrollParent',
2785
2834
  sanitize: true,
2786
2835
  sanitizeFn: null,
2787
- whiteList: DefaultWhitelist
2788
- };
2789
- var HoverState = {
2790
- SHOW: 'show',
2791
- OUT: 'out'
2836
+ whiteList: DefaultWhitelist,
2837
+ popperConfig: null
2792
2838
  };
2793
- var Event$6 = {
2839
+ var HOVER_STATE_SHOW = 'show';
2840
+ var HOVER_STATE_OUT = 'out';
2841
+ var Event = {
2794
2842
  HIDE: "hide" + EVENT_KEY$6,
2795
2843
  HIDDEN: "hidden" + EVENT_KEY$6,
2796
2844
  SHOW: "show" + EVENT_KEY$6,
@@ -2802,36 +2850,22 @@
2802
2850
  MOUSEENTER: "mouseenter" + EVENT_KEY$6,
2803
2851
  MOUSELEAVE: "mouseleave" + EVENT_KEY$6
2804
2852
  };
2805
- var ClassName$6 = {
2806
- FADE: 'fade',
2807
- SHOW: 'show'
2808
- };
2809
- var Selector$6 = {
2810
- TOOLTIP: '.tooltip',
2811
- TOOLTIP_INNER: '.tooltip-inner',
2812
- ARROW: '.arrow'
2813
- };
2814
- var Trigger = {
2815
- HOVER: 'hover',
2816
- FOCUS: 'focus',
2817
- CLICK: 'click',
2818
- MANUAL: 'manual'
2819
- /**
2820
- * ------------------------------------------------------------------------
2821
- * Class Definition
2822
- * ------------------------------------------------------------------------
2823
- */
2824
-
2825
- };
2853
+ var CLASS_NAME_FADE$2 = 'fade';
2854
+ var CLASS_NAME_SHOW$4 = 'show';
2855
+ var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
2856
+ var SELECTOR_ARROW = '.arrow';
2857
+ var TRIGGER_HOVER = 'hover';
2858
+ var TRIGGER_FOCUS = 'focus';
2859
+ var TRIGGER_CLICK = 'click';
2860
+ var TRIGGER_MANUAL = 'manual';
2861
+ /**
2862
+ * ------------------------------------------------------------------------
2863
+ * Class Definition
2864
+ * ------------------------------------------------------------------------
2865
+ */
2826
2866
 
2827
- var Tooltip =
2828
- /*#__PURE__*/
2829
- function () {
2867
+ var Tooltip = /*#__PURE__*/function () {
2830
2868
  function Tooltip(element, config) {
2831
- /**
2832
- * Check for Popper dependency
2833
- * Popper - https://popper.js.org
2834
- */
2835
2869
  if (typeof Popper === 'undefined') {
2836
2870
  throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
2837
2871
  } // private
@@ -2888,7 +2922,7 @@
2888
2922
  context._leave(null, context);
2889
2923
  }
2890
2924
  } else {
2891
- if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {
2925
+ if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {
2892
2926
  this._leave(null, this);
2893
2927
 
2894
2928
  return;
@@ -2902,7 +2936,7 @@
2902
2936
  clearTimeout(this._timeout);
2903
2937
  $.removeData(this.element, this.constructor.DATA_KEY);
2904
2938
  $(this.element).off(this.constructor.EVENT_KEY);
2905
- $(this.element).closest('.modal').off('hide.bs.modal');
2939
+ $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);
2906
2940
 
2907
2941
  if (this.tip) {
2908
2942
  $(this.tip).remove();
@@ -2913,7 +2947,7 @@
2913
2947
  this._hoverState = null;
2914
2948
  this._activeTrigger = null;
2915
2949
 
2916
- if (this._popper !== null) {
2950
+ if (this._popper) {
2917
2951
  this._popper.destroy();
2918
2952
  }
2919
2953
 
@@ -2948,7 +2982,7 @@
2948
2982
  this.setContent();
2949
2983
 
2950
2984
  if (this.config.animation) {
2951
- $(tip).addClass(ClassName$6.FADE);
2985
+ $(tip).addClass(CLASS_NAME_FADE$2);
2952
2986
  }
2953
2987
 
2954
2988
  var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
@@ -2966,30 +3000,8 @@
2966
3000
  }
2967
3001
 
2968
3002
  $(this.element).trigger(this.constructor.Event.INSERTED);
2969
- this._popper = new Popper(this.element, tip, {
2970
- placement: attachment,
2971
- modifiers: {
2972
- offset: this._getOffset(),
2973
- flip: {
2974
- behavior: this.config.fallbackPlacement
2975
- },
2976
- arrow: {
2977
- element: Selector$6.ARROW
2978
- },
2979
- preventOverflow: {
2980
- boundariesElement: this.config.boundary
2981
- }
2982
- },
2983
- onCreate: function onCreate(data) {
2984
- if (data.originalPlacement !== data.placement) {
2985
- _this._handlePopperPlacementChange(data);
2986
- }
2987
- },
2988
- onUpdate: function onUpdate(data) {
2989
- return _this._handlePopperPlacementChange(data);
2990
- }
2991
- });
2992
- $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
3003
+ this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
3004
+ $(tip).addClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we add extra
2993
3005
  // empty mouseover listeners to the body's immediate children;
2994
3006
  // only needed because of broken event delegation on iOS
2995
3007
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
@@ -3007,12 +3019,12 @@
3007
3019
  _this._hoverState = null;
3008
3020
  $(_this.element).trigger(_this.constructor.Event.SHOWN);
3009
3021
 
3010
- if (prevHoverState === HoverState.OUT) {
3022
+ if (prevHoverState === HOVER_STATE_OUT) {
3011
3023
  _this._leave(null, _this);
3012
3024
  }
3013
3025
  };
3014
3026
 
3015
- if ($(this.tip).hasClass(ClassName$6.FADE)) {
3027
+ if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) {
3016
3028
  var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
3017
3029
  $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3018
3030
  } else {
@@ -3028,7 +3040,7 @@
3028
3040
  var hideEvent = $.Event(this.constructor.Event.HIDE);
3029
3041
 
3030
3042
  var complete = function complete() {
3031
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
3043
+ if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
3032
3044
  tip.parentNode.removeChild(tip);
3033
3045
  }
3034
3046
 
@@ -3053,18 +3065,18 @@
3053
3065
  return;
3054
3066
  }
3055
3067
 
3056
- $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
3068
+ $(tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra
3057
3069
  // empty mouseover listeners we added for iOS support
3058
3070
 
3059
3071
  if ('ontouchstart' in document.documentElement) {
3060
3072
  $(document.body).children().off('mouseover', null, $.noop);
3061
3073
  }
3062
3074
 
3063
- this._activeTrigger[Trigger.CLICK] = false;
3064
- this._activeTrigger[Trigger.FOCUS] = false;
3065
- this._activeTrigger[Trigger.HOVER] = false;
3075
+ this._activeTrigger[TRIGGER_CLICK] = false;
3076
+ this._activeTrigger[TRIGGER_FOCUS] = false;
3077
+ this._activeTrigger[TRIGGER_HOVER] = false;
3066
3078
 
3067
- if ($(this.tip).hasClass(ClassName$6.FADE)) {
3079
+ if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) {
3068
3080
  var transitionDuration = Util.getTransitionDurationFromElement(tip);
3069
3081
  $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3070
3082
  } else {
@@ -3096,8 +3108,8 @@
3096
3108
 
3097
3109
  _proto.setContent = function setContent() {
3098
3110
  var tip = this.getTipElement();
3099
- this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());
3100
- $(tip).removeClass(ClassName$6.FADE + " " + ClassName$6.SHOW);
3111
+ this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());
3112
+ $(tip).removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$4);
3101
3113
  };
3102
3114
 
3103
3115
  _proto.setElementContent = function setElementContent($element, content) {
@@ -3136,14 +3148,43 @@
3136
3148
  } // Private
3137
3149
  ;
3138
3150
 
3139
- _proto._getOffset = function _getOffset() {
3151
+ _proto._getPopperConfig = function _getPopperConfig(attachment) {
3140
3152
  var _this3 = this;
3141
3153
 
3154
+ var defaultBsConfig = {
3155
+ placement: attachment,
3156
+ modifiers: {
3157
+ offset: this._getOffset(),
3158
+ flip: {
3159
+ behavior: this.config.fallbackPlacement
3160
+ },
3161
+ arrow: {
3162
+ element: SELECTOR_ARROW
3163
+ },
3164
+ preventOverflow: {
3165
+ boundariesElement: this.config.boundary
3166
+ }
3167
+ },
3168
+ onCreate: function onCreate(data) {
3169
+ if (data.originalPlacement !== data.placement) {
3170
+ _this3._handlePopperPlacementChange(data);
3171
+ }
3172
+ },
3173
+ onUpdate: function onUpdate(data) {
3174
+ return _this3._handlePopperPlacementChange(data);
3175
+ }
3176
+ };
3177
+ return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
3178
+ };
3179
+
3180
+ _proto._getOffset = function _getOffset() {
3181
+ var _this4 = this;
3182
+
3142
3183
  var offset = {};
3143
3184
 
3144
3185
  if (typeof this.config.offset === 'function') {
3145
3186
  offset.fn = function (data) {
3146
- data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
3187
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
3147
3188
  return data;
3148
3189
  };
3149
3190
  } else {
@@ -3166,36 +3207,39 @@
3166
3207
  };
3167
3208
 
3168
3209
  _proto._getAttachment = function _getAttachment(placement) {
3169
- return AttachmentMap$1[placement.toUpperCase()];
3210
+ return AttachmentMap[placement.toUpperCase()];
3170
3211
  };
3171
3212
 
3172
3213
  _proto._setListeners = function _setListeners() {
3173
- var _this4 = this;
3214
+ var _this5 = this;
3174
3215
 
3175
3216
  var triggers = this.config.trigger.split(' ');
3176
3217
  triggers.forEach(function (trigger) {
3177
3218
  if (trigger === 'click') {
3178
- $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
3179
- return _this4.toggle(event);
3219
+ $(_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
3220
+ return _this5.toggle(event);
3180
3221
  });
3181
- } else if (trigger !== Trigger.MANUAL) {
3182
- var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
3183
- var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
3184
- $(_this4.element).on(eventIn, _this4.config.selector, function (event) {
3185
- return _this4._enter(event);
3186
- }).on(eventOut, _this4.config.selector, function (event) {
3187
- return _this4._leave(event);
3222
+ } else if (trigger !== TRIGGER_MANUAL) {
3223
+ var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
3224
+ var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
3225
+ $(_this5.element).on(eventIn, _this5.config.selector, function (event) {
3226
+ return _this5._enter(event);
3227
+ }).on(eventOut, _this5.config.selector, function (event) {
3228
+ return _this5._leave(event);
3188
3229
  });
3189
3230
  }
3190
3231
  });
3191
- $(this.element).closest('.modal').on('hide.bs.modal', function () {
3192
- if (_this4.element) {
3193
- _this4.hide();
3232
+
3233
+ this._hideModalHandler = function () {
3234
+ if (_this5.element) {
3235
+ _this5.hide();
3194
3236
  }
3195
- });
3237
+ };
3238
+
3239
+ $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);
3196
3240
 
3197
3241
  if (this.config.selector) {
3198
- this.config = _objectSpread({}, this.config, {
3242
+ this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
3199
3243
  trigger: 'manual',
3200
3244
  selector: ''
3201
3245
  });
@@ -3223,16 +3267,16 @@
3223
3267
  }
3224
3268
 
3225
3269
  if (event) {
3226
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
3270
+ context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
3227
3271
  }
3228
3272
 
3229
- if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
3230
- context._hoverState = HoverState.SHOW;
3273
+ if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {
3274
+ context._hoverState = HOVER_STATE_SHOW;
3231
3275
  return;
3232
3276
  }
3233
3277
 
3234
3278
  clearTimeout(context._timeout);
3235
- context._hoverState = HoverState.SHOW;
3279
+ context._hoverState = HOVER_STATE_SHOW;
3236
3280
 
3237
3281
  if (!context.config.delay || !context.config.delay.show) {
3238
3282
  context.show();
@@ -3240,7 +3284,7 @@
3240
3284
  }
3241
3285
 
3242
3286
  context._timeout = setTimeout(function () {
3243
- if (context._hoverState === HoverState.SHOW) {
3287
+ if (context._hoverState === HOVER_STATE_SHOW) {
3244
3288
  context.show();
3245
3289
  }
3246
3290
  }, context.config.delay.show);
@@ -3256,7 +3300,7 @@
3256
3300
  }
3257
3301
 
3258
3302
  if (event) {
3259
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
3303
+ context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
3260
3304
  }
3261
3305
 
3262
3306
  if (context._isWithActiveTrigger()) {
@@ -3264,7 +3308,7 @@
3264
3308
  }
3265
3309
 
3266
3310
  clearTimeout(context._timeout);
3267
- context._hoverState = HoverState.OUT;
3311
+ context._hoverState = HOVER_STATE_OUT;
3268
3312
 
3269
3313
  if (!context.config.delay || !context.config.delay.hide) {
3270
3314
  context.hide();
@@ -3272,7 +3316,7 @@
3272
3316
  }
3273
3317
 
3274
3318
  context._timeout = setTimeout(function () {
3275
- if (context._hoverState === HoverState.OUT) {
3319
+ if (context._hoverState === HOVER_STATE_OUT) {
3276
3320
  context.hide();
3277
3321
  }
3278
3322
  }, context.config.delay.hide);
@@ -3295,7 +3339,7 @@
3295
3339
  delete dataAttributes[dataAttr];
3296
3340
  }
3297
3341
  });
3298
- config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
3342
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
3299
3343
 
3300
3344
  if (typeof config.delay === 'number') {
3301
3345
  config.delay = {
@@ -3345,8 +3389,7 @@
3345
3389
  };
3346
3390
 
3347
3391
  _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
3348
- var popperInstance = popperData.instance;
3349
- this.tip = popperInstance.popper;
3392
+ this.tip = popperData.instance.popper;
3350
3393
 
3351
3394
  this._cleanTipClass();
3352
3395
 
@@ -3361,7 +3404,7 @@
3361
3404
  return;
3362
3405
  }
3363
3406
 
3364
- $(tip).removeClass(ClassName$6.FADE);
3407
+ $(tip).removeClass(CLASS_NAME_FADE$2);
3365
3408
  this.config.animation = false;
3366
3409
  this.hide();
3367
3410
  this.show();
@@ -3417,7 +3460,7 @@
3417
3460
  }, {
3418
3461
  key: "Event",
3419
3462
  get: function get() {
3420
- return Event$6;
3463
+ return Event;
3421
3464
  }
3422
3465
  }, {
3423
3466
  key: "EVENT_KEY",
@@ -3455,33 +3498,29 @@
3455
3498
  */
3456
3499
 
3457
3500
  var NAME$7 = 'popover';
3458
- var VERSION$7 = '4.3.1';
3501
+ var VERSION$7 = '4.5.0';
3459
3502
  var DATA_KEY$7 = 'bs.popover';
3460
3503
  var EVENT_KEY$7 = "." + DATA_KEY$7;
3461
3504
  var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
3462
3505
  var CLASS_PREFIX$1 = 'bs-popover';
3463
3506
  var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
3464
3507
 
3465
- var Default$5 = _objectSpread({}, Tooltip.Default, {
3508
+ var Default$5 = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
3466
3509
  placement: 'right',
3467
3510
  trigger: 'click',
3468
3511
  content: '',
3469
3512
  template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
3470
3513
  });
3471
3514
 
3472
- var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {
3515
+ var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
3473
3516
  content: '(string|element|function)'
3474
3517
  });
3475
3518
 
3476
- var ClassName$7 = {
3477
- FADE: 'fade',
3478
- SHOW: 'show'
3479
- };
3480
- var Selector$7 = {
3481
- TITLE: '.popover-header',
3482
- CONTENT: '.popover-body'
3483
- };
3484
- var Event$7 = {
3519
+ var CLASS_NAME_FADE$3 = 'fade';
3520
+ var CLASS_NAME_SHOW$5 = 'show';
3521
+ var SELECTOR_TITLE = '.popover-header';
3522
+ var SELECTOR_CONTENT = '.popover-body';
3523
+ var Event$1 = {
3485
3524
  HIDE: "hide" + EVENT_KEY$7,
3486
3525
  HIDDEN: "hidden" + EVENT_KEY$7,
3487
3526
  SHOW: "show" + EVENT_KEY$7,
@@ -3492,17 +3531,14 @@
3492
3531
  FOCUSOUT: "focusout" + EVENT_KEY$7,
3493
3532
  MOUSEENTER: "mouseenter" + EVENT_KEY$7,
3494
3533
  MOUSELEAVE: "mouseleave" + EVENT_KEY$7
3495
- /**
3496
- * ------------------------------------------------------------------------
3497
- * Class Definition
3498
- * ------------------------------------------------------------------------
3499
- */
3500
-
3501
3534
  };
3535
+ /**
3536
+ * ------------------------------------------------------------------------
3537
+ * Class Definition
3538
+ * ------------------------------------------------------------------------
3539
+ */
3502
3540
 
3503
- var Popover =
3504
- /*#__PURE__*/
3505
- function (_Tooltip) {
3541
+ var Popover = /*#__PURE__*/function (_Tooltip) {
3506
3542
  _inheritsLoose(Popover, _Tooltip);
3507
3543
 
3508
3544
  function Popover() {
@@ -3528,7 +3564,7 @@
3528
3564
  _proto.setContent = function setContent() {
3529
3565
  var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
3530
3566
 
3531
- this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());
3567
+ this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
3532
3568
 
3533
3569
  var content = this._getContent();
3534
3570
 
@@ -3536,8 +3572,8 @@
3536
3572
  content = content.call(this.element);
3537
3573
  }
3538
3574
 
3539
- this.setElementContent($tip.find(Selector$7.CONTENT), content);
3540
- $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
3575
+ this.setElementContent($tip.find(SELECTOR_CONTENT), content);
3576
+ $tip.removeClass(CLASS_NAME_FADE$3 + " " + CLASS_NAME_SHOW$5);
3541
3577
  } // Private
3542
3578
  ;
3543
3579
 
@@ -3604,7 +3640,7 @@
3604
3640
  }, {
3605
3641
  key: "Event",
3606
3642
  get: function get() {
3607
- return Event$7;
3643
+ return Event$1;
3608
3644
  }
3609
3645
  }, {
3610
3646
  key: "EVENT_KEY",
@@ -3642,7 +3678,7 @@
3642
3678
  */
3643
3679
 
3644
3680
  var NAME$8 = 'scrollspy';
3645
- var VERSION$8 = '4.3.1';
3681
+ var VERSION$8 = '4.5.0';
3646
3682
  var DATA_KEY$8 = 'bs.scrollspy';
3647
3683
  var EVENT_KEY$8 = "." + DATA_KEY$8;
3648
3684
  var DATA_API_KEY$6 = '.data-api';
@@ -3657,53 +3693,40 @@
3657
3693
  method: 'string',
3658
3694
  target: '(string|element)'
3659
3695
  };
3660
- var Event$8 = {
3661
- ACTIVATE: "activate" + EVENT_KEY$8,
3662
- SCROLL: "scroll" + EVENT_KEY$8,
3663
- LOAD_DATA_API: "load" + EVENT_KEY$8 + DATA_API_KEY$6
3664
- };
3665
- var ClassName$8 = {
3666
- DROPDOWN_ITEM: 'dropdown-item',
3667
- DROPDOWN_MENU: 'dropdown-menu',
3668
- ACTIVE: 'active'
3669
- };
3670
- var Selector$8 = {
3671
- DATA_SPY: '[data-spy="scroll"]',
3672
- ACTIVE: '.active',
3673
- NAV_LIST_GROUP: '.nav, .list-group',
3674
- NAV_LINKS: '.nav-link',
3675
- NAV_ITEMS: '.nav-item',
3676
- LIST_ITEMS: '.list-group-item',
3677
- DROPDOWN: '.dropdown',
3678
- DROPDOWN_ITEMS: '.dropdown-item',
3679
- DROPDOWN_TOGGLE: '.dropdown-toggle'
3680
- };
3681
- var OffsetMethod = {
3682
- OFFSET: 'offset',
3683
- POSITION: 'position'
3684
- /**
3685
- * ------------------------------------------------------------------------
3686
- * Class Definition
3687
- * ------------------------------------------------------------------------
3688
- */
3689
-
3690
- };
3696
+ var EVENT_ACTIVATE = "activate" + EVENT_KEY$8;
3697
+ var EVENT_SCROLL = "scroll" + EVENT_KEY$8;
3698
+ var EVENT_LOAD_DATA_API$2 = "load" + EVENT_KEY$8 + DATA_API_KEY$6;
3699
+ var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
3700
+ var CLASS_NAME_ACTIVE$2 = 'active';
3701
+ var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
3702
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
3703
+ var SELECTOR_NAV_LINKS = '.nav-link';
3704
+ var SELECTOR_NAV_ITEMS = '.nav-item';
3705
+ var SELECTOR_LIST_ITEMS = '.list-group-item';
3706
+ var SELECTOR_DROPDOWN = '.dropdown';
3707
+ var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
3708
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
3709
+ var METHOD_OFFSET = 'offset';
3710
+ var METHOD_POSITION = 'position';
3711
+ /**
3712
+ * ------------------------------------------------------------------------
3713
+ * Class Definition
3714
+ * ------------------------------------------------------------------------
3715
+ */
3691
3716
 
3692
- var ScrollSpy =
3693
- /*#__PURE__*/
3694
- function () {
3717
+ var ScrollSpy = /*#__PURE__*/function () {
3695
3718
  function ScrollSpy(element, config) {
3696
3719
  var _this = this;
3697
3720
 
3698
3721
  this._element = element;
3699
3722
  this._scrollElement = element.tagName === 'BODY' ? window : element;
3700
3723
  this._config = this._getConfig(config);
3701
- this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
3724
+ this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS);
3702
3725
  this._offsets = [];
3703
3726
  this._targets = [];
3704
3727
  this._activeTarget = null;
3705
3728
  this._scrollHeight = 0;
3706
- $(this._scrollElement).on(Event$8.SCROLL, function (event) {
3729
+ $(this._scrollElement).on(EVENT_SCROLL, function (event) {
3707
3730
  return _this._process(event);
3708
3731
  });
3709
3732
  this.refresh();
@@ -3718,9 +3741,9 @@
3718
3741
  _proto.refresh = function refresh() {
3719
3742
  var _this2 = this;
3720
3743
 
3721
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
3744
+ var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
3722
3745
  var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
3723
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
3746
+ var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
3724
3747
  this._offsets = [];
3725
3748
  this._targets = [];
3726
3749
  this._scrollHeight = this._getScrollHeight();
@@ -3769,9 +3792,9 @@
3769
3792
  ;
3770
3793
 
3771
3794
  _proto._getConfig = function _getConfig(config) {
3772
- config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
3795
+ config = _objectSpread2(_objectSpread2({}, Default$6), typeof config === 'object' && config ? config : {});
3773
3796
 
3774
- if (typeof config.target !== 'string') {
3797
+ if (typeof config.target !== 'string' && Util.isElement(config.target)) {
3775
3798
  var id = $(config.target).attr('id');
3776
3799
 
3777
3800
  if (!id) {
@@ -3827,9 +3850,7 @@
3827
3850
  return;
3828
3851
  }
3829
3852
 
3830
- var offsetLength = this._offsets.length;
3831
-
3832
- for (var i = offsetLength; i--;) {
3853
+ for (var i = this._offsets.length; i--;) {
3833
3854
  var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
3834
3855
 
3835
3856
  if (isActiveTarget) {
@@ -3849,29 +3870,29 @@
3849
3870
 
3850
3871
  var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
3851
3872
 
3852
- if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {
3853
- $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);
3854
- $link.addClass(ClassName$8.ACTIVE);
3873
+ if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
3874
+ $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);
3875
+ $link.addClass(CLASS_NAME_ACTIVE$2);
3855
3876
  } else {
3856
3877
  // Set triggered link as active
3857
- $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active
3878
+ $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active
3858
3879
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
3859
3880
 
3860
- $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_LINKS + ", " + Selector$8.LIST_ITEMS).addClass(ClassName$8.ACTIVE); // Handle special case when .nav-link is inside .nav-item
3881
+ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$2); // Handle special case when .nav-link is inside .nav-item
3861
3882
 
3862
- $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);
3883
+ $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2);
3863
3884
  }
3864
3885
 
3865
- $(this._scrollElement).trigger(Event$8.ACTIVATE, {
3886
+ $(this._scrollElement).trigger(EVENT_ACTIVATE, {
3866
3887
  relatedTarget: target
3867
3888
  });
3868
3889
  };
3869
3890
 
3870
3891
  _proto._clear = function _clear() {
3871
3892
  [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
3872
- return node.classList.contains(ClassName$8.ACTIVE);
3893
+ return node.classList.contains(CLASS_NAME_ACTIVE$2);
3873
3894
  }).forEach(function (node) {
3874
- return node.classList.remove(ClassName$8.ACTIVE);
3895
+ return node.classList.remove(CLASS_NAME_ACTIVE$2);
3875
3896
  });
3876
3897
  } // Static
3877
3898
  ;
@@ -3918,8 +3939,8 @@
3918
3939
  */
3919
3940
 
3920
3941
 
3921
- $(window).on(Event$8.LOAD_DATA_API, function () {
3922
- var scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));
3942
+ $(window).on(EVENT_LOAD_DATA_API$2, function () {
3943
+ var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));
3923
3944
  var scrollSpysLength = scrollSpys.length;
3924
3945
 
3925
3946
  for (var i = scrollSpysLength; i--;) {
@@ -3949,44 +3970,35 @@
3949
3970
  */
3950
3971
 
3951
3972
  var NAME$9 = 'tab';
3952
- var VERSION$9 = '4.3.1';
3973
+ var VERSION$9 = '4.5.0';
3953
3974
  var DATA_KEY$9 = 'bs.tab';
3954
3975
  var EVENT_KEY$9 = "." + DATA_KEY$9;
3955
3976
  var DATA_API_KEY$7 = '.data-api';
3956
3977
  var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];
3957
- var Event$9 = {
3958
- HIDE: "hide" + EVENT_KEY$9,
3959
- HIDDEN: "hidden" + EVENT_KEY$9,
3960
- SHOW: "show" + EVENT_KEY$9,
3961
- SHOWN: "shown" + EVENT_KEY$9,
3962
- CLICK_DATA_API: "click" + EVENT_KEY$9 + DATA_API_KEY$7
3963
- };
3964
- var ClassName$9 = {
3965
- DROPDOWN_MENU: 'dropdown-menu',
3966
- ACTIVE: 'active',
3967
- DISABLED: 'disabled',
3968
- FADE: 'fade',
3969
- SHOW: 'show'
3970
- };
3971
- var Selector$9 = {
3972
- DROPDOWN: '.dropdown',
3973
- NAV_LIST_GROUP: '.nav, .list-group',
3974
- ACTIVE: '.active',
3975
- ACTIVE_UL: '> li > .active',
3976
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
3977
- DROPDOWN_TOGGLE: '.dropdown-toggle',
3978
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
3979
- /**
3980
- * ------------------------------------------------------------------------
3981
- * Class Definition
3982
- * ------------------------------------------------------------------------
3983
- */
3984
-
3985
- };
3978
+ var EVENT_HIDE$3 = "hide" + EVENT_KEY$9;
3979
+ var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$9;
3980
+ var EVENT_SHOW$3 = "show" + EVENT_KEY$9;
3981
+ var EVENT_SHOWN$3 = "shown" + EVENT_KEY$9;
3982
+ var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$9 + DATA_API_KEY$7;
3983
+ var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
3984
+ var CLASS_NAME_ACTIVE$3 = 'active';
3985
+ var CLASS_NAME_DISABLED$1 = 'disabled';
3986
+ var CLASS_NAME_FADE$4 = 'fade';
3987
+ var CLASS_NAME_SHOW$6 = 'show';
3988
+ var SELECTOR_DROPDOWN$1 = '.dropdown';
3989
+ var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';
3990
+ var SELECTOR_ACTIVE$2 = '.active';
3991
+ var SELECTOR_ACTIVE_UL = '> li > .active';
3992
+ var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
3993
+ var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
3994
+ var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
3995
+ /**
3996
+ * ------------------------------------------------------------------------
3997
+ * Class Definition
3998
+ * ------------------------------------------------------------------------
3999
+ */
3986
4000
 
3987
- var Tab =
3988
- /*#__PURE__*/
3989
- function () {
4001
+ var Tab = /*#__PURE__*/function () {
3990
4002
  function Tab(element) {
3991
4003
  this._element = element;
3992
4004
  } // Getters
@@ -3998,25 +4010,25 @@
3998
4010
  _proto.show = function show() {
3999
4011
  var _this = this;
4000
4012
 
4001
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {
4013
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(CLASS_NAME_ACTIVE$3) || $(this._element).hasClass(CLASS_NAME_DISABLED$1)) {
4002
4014
  return;
4003
4015
  }
4004
4016
 
4005
4017
  var target;
4006
4018
  var previous;
4007
- var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];
4019
+ var listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];
4008
4020
  var selector = Util.getSelectorFromElement(this._element);
4009
4021
 
4010
4022
  if (listElement) {
4011
- var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
4023
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;
4012
4024
  previous = $.makeArray($(listElement).find(itemSelector));
4013
4025
  previous = previous[previous.length - 1];
4014
4026
  }
4015
4027
 
4016
- var hideEvent = $.Event(Event$9.HIDE, {
4028
+ var hideEvent = $.Event(EVENT_HIDE$3, {
4017
4029
  relatedTarget: this._element
4018
4030
  });
4019
- var showEvent = $.Event(Event$9.SHOW, {
4031
+ var showEvent = $.Event(EVENT_SHOW$3, {
4020
4032
  relatedTarget: previous
4021
4033
  });
4022
4034
 
@@ -4037,10 +4049,10 @@
4037
4049
  this._activate(this._element, listElement);
4038
4050
 
4039
4051
  var complete = function complete() {
4040
- var hiddenEvent = $.Event(Event$9.HIDDEN, {
4052
+ var hiddenEvent = $.Event(EVENT_HIDDEN$3, {
4041
4053
  relatedTarget: _this._element
4042
4054
  });
4043
- var shownEvent = $.Event(Event$9.SHOWN, {
4055
+ var shownEvent = $.Event(EVENT_SHOWN$3, {
4044
4056
  relatedTarget: previous
4045
4057
  });
4046
4058
  $(previous).trigger(hiddenEvent);
@@ -4063,9 +4075,9 @@
4063
4075
  _proto._activate = function _activate(element, container, callback) {
4064
4076
  var _this2 = this;
4065
4077
 
4066
- var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);
4078
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(SELECTOR_ACTIVE_UL) : $(container).children(SELECTOR_ACTIVE$2);
4067
4079
  var active = activeElements[0];
4068
- var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);
4080
+ var isTransitioning = callback && active && $(active).hasClass(CLASS_NAME_FADE$4);
4069
4081
 
4070
4082
  var complete = function complete() {
4071
4083
  return _this2._transitionComplete(element, active, callback);
@@ -4073,7 +4085,7 @@
4073
4085
 
4074
4086
  if (active && isTransitioning) {
4075
4087
  var transitionDuration = Util.getTransitionDurationFromElement(active);
4076
- $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4088
+ $(active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4077
4089
  } else {
4078
4090
  complete();
4079
4091
  }
@@ -4081,11 +4093,11 @@
4081
4093
 
4082
4094
  _proto._transitionComplete = function _transitionComplete(element, active, callback) {
4083
4095
  if (active) {
4084
- $(active).removeClass(ClassName$9.ACTIVE);
4085
- var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];
4096
+ $(active).removeClass(CLASS_NAME_ACTIVE$3);
4097
+ var dropdownChild = $(active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];
4086
4098
 
4087
4099
  if (dropdownChild) {
4088
- $(dropdownChild).removeClass(ClassName$9.ACTIVE);
4100
+ $(dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);
4089
4101
  }
4090
4102
 
4091
4103
  if (active.getAttribute('role') === 'tab') {
@@ -4093,7 +4105,7 @@
4093
4105
  }
4094
4106
  }
4095
4107
 
4096
- $(element).addClass(ClassName$9.ACTIVE);
4108
+ $(element).addClass(CLASS_NAME_ACTIVE$3);
4097
4109
 
4098
4110
  if (element.getAttribute('role') === 'tab') {
4099
4111
  element.setAttribute('aria-selected', true);
@@ -4101,16 +4113,16 @@
4101
4113
 
4102
4114
  Util.reflow(element);
4103
4115
 
4104
- if (element.classList.contains(ClassName$9.FADE)) {
4105
- element.classList.add(ClassName$9.SHOW);
4116
+ if (element.classList.contains(CLASS_NAME_FADE$4)) {
4117
+ element.classList.add(CLASS_NAME_SHOW$6);
4106
4118
  }
4107
4119
 
4108
- if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
4109
- var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
4120
+ if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
4121
+ var dropdownElement = $(element).closest(SELECTOR_DROPDOWN$1)[0];
4110
4122
 
4111
4123
  if (dropdownElement) {
4112
- var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));
4113
- $(dropdownToggleList).addClass(ClassName$9.ACTIVE);
4124
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));
4125
+ $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);
4114
4126
  }
4115
4127
 
4116
4128
  element.setAttribute('aria-expanded', true);
@@ -4158,7 +4170,7 @@
4158
4170
  */
4159
4171
 
4160
4172
 
4161
- $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
4173
+ $(document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {
4162
4174
  event.preventDefault();
4163
4175
 
4164
4176
  Tab._jQueryInterface.call($(this), 'show');
@@ -4184,23 +4196,19 @@
4184
4196
  */
4185
4197
 
4186
4198
  var NAME$a = 'toast';
4187
- var VERSION$a = '4.3.1';
4199
+ var VERSION$a = '4.5.0';
4188
4200
  var DATA_KEY$a = 'bs.toast';
4189
4201
  var EVENT_KEY$a = "." + DATA_KEY$a;
4190
4202
  var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
4191
- var Event$a = {
4192
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY$a,
4193
- HIDE: "hide" + EVENT_KEY$a,
4194
- HIDDEN: "hidden" + EVENT_KEY$a,
4195
- SHOW: "show" + EVENT_KEY$a,
4196
- SHOWN: "shown" + EVENT_KEY$a
4197
- };
4198
- var ClassName$a = {
4199
- FADE: 'fade',
4200
- HIDE: 'hide',
4201
- SHOW: 'show',
4202
- SHOWING: 'showing'
4203
- };
4203
+ var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$a;
4204
+ var EVENT_HIDE$4 = "hide" + EVENT_KEY$a;
4205
+ var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$a;
4206
+ var EVENT_SHOW$4 = "show" + EVENT_KEY$a;
4207
+ var EVENT_SHOWN$4 = "shown" + EVENT_KEY$a;
4208
+ var CLASS_NAME_FADE$5 = 'fade';
4209
+ var CLASS_NAME_HIDE = 'hide';
4210
+ var CLASS_NAME_SHOW$7 = 'show';
4211
+ var CLASS_NAME_SHOWING = 'showing';
4204
4212
  var DefaultType$7 = {
4205
4213
  animation: 'boolean',
4206
4214
  autohide: 'boolean',
@@ -4211,19 +4219,14 @@
4211
4219
  autohide: true,
4212
4220
  delay: 500
4213
4221
  };
4214
- var Selector$a = {
4215
- DATA_DISMISS: '[data-dismiss="toast"]'
4216
- /**
4217
- * ------------------------------------------------------------------------
4218
- * Class Definition
4219
- * ------------------------------------------------------------------------
4220
- */
4221
-
4222
- };
4222
+ var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="toast"]';
4223
+ /**
4224
+ * ------------------------------------------------------------------------
4225
+ * Class Definition
4226
+ * ------------------------------------------------------------------------
4227
+ */
4223
4228
 
4224
- var Toast =
4225
- /*#__PURE__*/
4226
- function () {
4229
+ var Toast = /*#__PURE__*/function () {
4227
4230
  function Toast(element, config) {
4228
4231
  this._element = element;
4229
4232
  this._config = this._getConfig(config);
@@ -4239,27 +4242,36 @@
4239
4242
  _proto.show = function show() {
4240
4243
  var _this = this;
4241
4244
 
4242
- $(this._element).trigger(Event$a.SHOW);
4245
+ var showEvent = $.Event(EVENT_SHOW$4);
4246
+ $(this._element).trigger(showEvent);
4247
+
4248
+ if (showEvent.isDefaultPrevented()) {
4249
+ return;
4250
+ }
4243
4251
 
4244
4252
  if (this._config.animation) {
4245
- this._element.classList.add(ClassName$a.FADE);
4253
+ this._element.classList.add(CLASS_NAME_FADE$5);
4246
4254
  }
4247
4255
 
4248
4256
  var complete = function complete() {
4249
- _this._element.classList.remove(ClassName$a.SHOWING);
4257
+ _this._element.classList.remove(CLASS_NAME_SHOWING);
4250
4258
 
4251
- _this._element.classList.add(ClassName$a.SHOW);
4259
+ _this._element.classList.add(CLASS_NAME_SHOW$7);
4252
4260
 
4253
- $(_this._element).trigger(Event$a.SHOWN);
4261
+ $(_this._element).trigger(EVENT_SHOWN$4);
4254
4262
 
4255
4263
  if (_this._config.autohide) {
4256
- _this.hide();
4264
+ _this._timeout = setTimeout(function () {
4265
+ _this.hide();
4266
+ }, _this._config.delay);
4257
4267
  }
4258
4268
  };
4259
4269
 
4260
- this._element.classList.remove(ClassName$a.HIDE);
4270
+ this._element.classList.remove(CLASS_NAME_HIDE);
4261
4271
 
4262
- this._element.classList.add(ClassName$a.SHOWING);
4272
+ Util.reflow(this._element);
4273
+
4274
+ this._element.classList.add(CLASS_NAME_SHOWING);
4263
4275
 
4264
4276
  if (this._config.animation) {
4265
4277
  var transitionDuration = Util.getTransitionDurationFromElement(this._element);
@@ -4269,33 +4281,30 @@
4269
4281
  }
4270
4282
  };
4271
4283
 
4272
- _proto.hide = function hide(withoutTimeout) {
4273
- var _this2 = this;
4274
-
4275
- if (!this._element.classList.contains(ClassName$a.SHOW)) {
4284
+ _proto.hide = function hide() {
4285
+ if (!this._element.classList.contains(CLASS_NAME_SHOW$7)) {
4276
4286
  return;
4277
4287
  }
4278
4288
 
4279
- $(this._element).trigger(Event$a.HIDE);
4289
+ var hideEvent = $.Event(EVENT_HIDE$4);
4290
+ $(this._element).trigger(hideEvent);
4280
4291
 
4281
- if (withoutTimeout) {
4282
- this._close();
4283
- } else {
4284
- this._timeout = setTimeout(function () {
4285
- _this2._close();
4286
- }, this._config.delay);
4292
+ if (hideEvent.isDefaultPrevented()) {
4293
+ return;
4287
4294
  }
4295
+
4296
+ this._close();
4288
4297
  };
4289
4298
 
4290
4299
  _proto.dispose = function dispose() {
4291
4300
  clearTimeout(this._timeout);
4292
4301
  this._timeout = null;
4293
4302
 
4294
- if (this._element.classList.contains(ClassName$a.SHOW)) {
4295
- this._element.classList.remove(ClassName$a.SHOW);
4303
+ if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {
4304
+ this._element.classList.remove(CLASS_NAME_SHOW$7);
4296
4305
  }
4297
4306
 
4298
- $(this._element).off(Event$a.CLICK_DISMISS);
4307
+ $(this._element).off(EVENT_CLICK_DISMISS$1);
4299
4308
  $.removeData(this._element, DATA_KEY$a);
4300
4309
  this._element = null;
4301
4310
  this._config = null;
@@ -4303,29 +4312,29 @@
4303
4312
  ;
4304
4313
 
4305
4314
  _proto._getConfig = function _getConfig(config) {
4306
- config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
4315
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$7), $(this._element).data()), typeof config === 'object' && config ? config : {});
4307
4316
  Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
4308
4317
  return config;
4309
4318
  };
4310
4319
 
4311
4320
  _proto._setListeners = function _setListeners() {
4312
- var _this3 = this;
4321
+ var _this2 = this;
4313
4322
 
4314
- $(this._element).on(Event$a.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () {
4315
- return _this3.hide(true);
4323
+ $(this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {
4324
+ return _this2.hide();
4316
4325
  });
4317
4326
  };
4318
4327
 
4319
4328
  _proto._close = function _close() {
4320
- var _this4 = this;
4329
+ var _this3 = this;
4321
4330
 
4322
4331
  var complete = function complete() {
4323
- _this4._element.classList.add(ClassName$a.HIDE);
4332
+ _this3._element.classList.add(CLASS_NAME_HIDE);
4324
4333
 
4325
- $(_this4._element).trigger(Event$a.HIDDEN);
4334
+ $(_this3._element).trigger(EVENT_HIDDEN$4);
4326
4335
  };
4327
4336
 
4328
- this._element.classList.remove(ClassName$a.SHOW);
4337
+ this._element.classList.remove(CLASS_NAME_SHOW$7);
4329
4338
 
4330
4339
  if (this._config.animation) {
4331
4340
  var transitionDuration = Util.getTransitionDurationFromElement(this._element);
@@ -4392,31 +4401,6 @@
4392
4401
  return Toast._jQueryInterface;
4393
4402
  };
4394
4403
 
4395
- /**
4396
- * --------------------------------------------------------------------------
4397
- * Bootstrap (v4.3.1): index.js
4398
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4399
- * --------------------------------------------------------------------------
4400
- */
4401
-
4402
- (function () {
4403
- if (typeof $ === 'undefined') {
4404
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
4405
- }
4406
-
4407
- var version = $.fn.jquery.split(' ')[0].split('.');
4408
- var minMajor = 1;
4409
- var ltMajor = 2;
4410
- var minMinor = 9;
4411
- var minPatch = 1;
4412
- var maxMajor = 4;
4413
-
4414
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
4415
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
4416
- }
4417
- })();
4418
-
4419
- exports.Util = Util;
4420
4404
  exports.Alert = Alert;
4421
4405
  exports.Button = Button;
4422
4406
  exports.Carousel = Carousel;
@@ -4428,7 +4412,8 @@
4428
4412
  exports.Tab = Tab;
4429
4413
  exports.Toast = Toast;
4430
4414
  exports.Tooltip = Tooltip;
4415
+ exports.Util = Util;
4431
4416
 
4432
4417
  Object.defineProperty(exports, '__esModule', { value: true });
4433
4418
 
4434
- }));
4419
+ })));