bootstrap 4.3.1 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ })));