mekari_ui_toolkit 1.0.8 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/lib/assets/javascripts/bootstrap/mekari-ui-alert.js +17 -23
  3. data/lib/assets/javascripts/bootstrap/mekari-ui-alert.js.map +1 -1
  4. data/lib/assets/javascripts/bootstrap/mekari-ui-alert.min.js +2 -2
  5. data/lib/assets/javascripts/bootstrap/mekari-ui-button.js +83 -41
  6. data/lib/assets/javascripts/bootstrap/mekari-ui-button.js.map +1 -1
  7. data/lib/assets/javascripts/bootstrap/mekari-ui-button.min.js +2 -2
  8. data/lib/assets/javascripts/bootstrap/mekari-ui-collapse.js +39 -47
  9. data/lib/assets/javascripts/bootstrap/mekari-ui-collapse.js.map +1 -1
  10. data/lib/assets/javascripts/bootstrap/mekari-ui-collapse.min.js +2 -2
  11. data/lib/assets/javascripts/bootstrap/mekari-ui-dropdown.js +104 -112
  12. data/lib/assets/javascripts/bootstrap/mekari-ui-dropdown.js.map +1 -1
  13. data/lib/assets/javascripts/bootstrap/mekari-ui-dropdown.min.js +2 -2
  14. data/lib/assets/javascripts/bootstrap/mekari-ui-modal.js +145 -109
  15. data/lib/assets/javascripts/bootstrap/mekari-ui-modal.js.map +1 -1
  16. data/lib/assets/javascripts/bootstrap/mekari-ui-modal.min.js +2 -2
  17. data/lib/assets/javascripts/bootstrap/mekari-ui-popover.js +11 -15
  18. data/lib/assets/javascripts/bootstrap/mekari-ui-popover.js.map +1 -1
  19. data/lib/assets/javascripts/bootstrap/mekari-ui-popover.min.js +2 -2
  20. data/lib/assets/javascripts/bootstrap/mekari-ui-scrollspy.js +36 -48
  21. data/lib/assets/javascripts/bootstrap/mekari-ui-scrollspy.js.map +1 -1
  22. data/lib/assets/javascripts/bootstrap/mekari-ui-scrollspy.min.js +2 -2
  23. data/lib/assets/javascripts/bootstrap/mekari-ui-tab.js +42 -48
  24. data/lib/assets/javascripts/bootstrap/mekari-ui-tab.js.map +1 -1
  25. data/lib/assets/javascripts/bootstrap/mekari-ui-tab.min.js +2 -2
  26. data/lib/assets/javascripts/bootstrap/mekari-ui-tooltip.js +98 -100
  27. data/lib/assets/javascripts/bootstrap/mekari-ui-tooltip.js.map +1 -1
  28. data/lib/assets/javascripts/bootstrap/mekari-ui-tooltip.min.js +2 -2
  29. data/lib/assets/javascripts/bootstrap/mekari-ui-util.js +25 -4
  30. data/lib/assets/javascripts/bootstrap/mekari-ui-util.js.map +1 -1
  31. data/lib/assets/javascripts/bootstrap/mekari-ui-util.min.js +1 -1
  32. data/lib/assets/javascripts/components/mekari-ui-index.js +1 -2
  33. data/lib/assets/javascripts/components/mekari-ui-index.js.map +1 -1
  34. data/lib/assets/javascripts/components/mekari-ui-index.min.js +1 -1
  35. data/lib/assets/javascripts/components/mekari-ui-index.min.js.map +1 -1
  36. data/lib/assets/javascripts/mekari-ui.bundle.js +750 -1544
  37. data/lib/assets/javascripts/mekari-ui.bundle.js.map +1 -1
  38. data/lib/assets/javascripts/mekari-ui.bundle.min.js +2 -2
  39. data/lib/assets/javascripts/mekari-ui.bundle.min.js.map +1 -1
  40. data/lib/assets/javascripts/mekari-ui.js +750 -1544
  41. data/lib/assets/javascripts/mekari-ui.js.map +1 -1
  42. data/lib/assets/javascripts/mekari-ui.min.js +2 -2
  43. data/lib/assets/javascripts/mekari-ui.min.js.map +1 -1
  44. data/lib/assets/stylesheets/css/components/mekari-ui-alert-min.css +1 -1
  45. data/lib/assets/stylesheets/css/components/mekari-ui-alert-min.css.map +1 -1
  46. data/lib/assets/stylesheets/css/components/mekari-ui-alert.css +7 -5
  47. data/lib/assets/stylesheets/css/components/mekari-ui-alert.css.map +1 -1
  48. data/lib/assets/stylesheets/css/components/mekari-ui-avatar-min.css +1 -1
  49. data/lib/assets/stylesheets/css/components/mekari-ui-avatar-min.css.map +1 -1
  50. data/lib/assets/stylesheets/css/components/mekari-ui-avatar.css +638 -42
  51. data/lib/assets/stylesheets/css/components/mekari-ui-avatar.css.map +1 -1
  52. data/lib/assets/stylesheets/css/components/mekari-ui-badge-min.css +1 -1
  53. data/lib/assets/stylesheets/css/components/mekari-ui-badge-min.css.map +1 -1
  54. data/lib/assets/stylesheets/css/components/mekari-ui-badge.css +4 -6
  55. data/lib/assets/stylesheets/css/components/mekari-ui-badge.css.map +1 -1
  56. data/lib/assets/stylesheets/css/components/mekari-ui-button-min.css +1 -1
  57. data/lib/assets/stylesheets/css/components/mekari-ui-button-min.css.map +1 -1
  58. data/lib/assets/stylesheets/css/components/mekari-ui-button.css +143 -44
  59. data/lib/assets/stylesheets/css/components/mekari-ui-button.css.map +1 -1
  60. data/lib/assets/stylesheets/css/components/mekari-ui-dropdown-min.css +1 -1
  61. data/lib/assets/stylesheets/css/components/mekari-ui-dropdown-min.css.map +1 -1
  62. data/lib/assets/stylesheets/css/components/mekari-ui-dropdown.css +38 -2
  63. data/lib/assets/stylesheets/css/components/mekari-ui-dropdown.css.map +1 -1
  64. data/lib/assets/stylesheets/css/components/mekari-ui-form-min.css +1 -1
  65. data/lib/assets/stylesheets/css/components/mekari-ui-form-min.css.map +1 -1
  66. data/lib/assets/stylesheets/css/components/mekari-ui-form.css +9 -1
  67. data/lib/assets/stylesheets/css/components/mekari-ui-form.css.map +1 -1
  68. data/lib/assets/stylesheets/css/components/mekari-ui-icons-min.css +1 -1
  69. data/lib/assets/stylesheets/css/components/mekari-ui-icons-min.css.map +1 -1
  70. data/lib/assets/stylesheets/css/components/mekari-ui-icons.css +28 -6
  71. data/lib/assets/stylesheets/css/components/mekari-ui-icons.css.map +1 -1
  72. data/lib/assets/stylesheets/css/components/mekari-ui-modal-min.css.map +1 -1
  73. data/lib/assets/stylesheets/css/components/mekari-ui-modal.css.map +1 -1
  74. data/lib/assets/stylesheets/css/components/mekari-ui-navbar-min.css +1 -1
  75. data/lib/assets/stylesheets/css/components/mekari-ui-navbar-min.css.map +1 -1
  76. data/lib/assets/stylesheets/css/components/mekari-ui-navbar.css +2 -2
  77. data/lib/assets/stylesheets/css/components/mekari-ui-navbar.css.map +1 -1
  78. data/lib/assets/stylesheets/css/components/mekari-ui-reboot-bootstrap-min.css.map +1 -1
  79. data/lib/assets/stylesheets/css/components/mekari-ui-reboot-bootstrap.css.map +1 -1
  80. data/lib/assets/stylesheets/css/components/mekari-ui-shimmer-min.css +2 -0
  81. data/lib/assets/stylesheets/css/components/mekari-ui-shimmer-min.css.map +1 -0
  82. data/lib/assets/stylesheets/css/components/mekari-ui-shimmer.css +28 -0
  83. data/lib/assets/stylesheets/css/components/mekari-ui-shimmer.css.map +1 -0
  84. data/lib/assets/stylesheets/css/components/mekari-ui-tabs-min.css +1 -1
  85. data/lib/assets/stylesheets/css/components/mekari-ui-tabs-min.css.map +1 -1
  86. data/lib/assets/stylesheets/css/components/mekari-ui-tabs.css +68 -0
  87. data/lib/assets/stylesheets/css/components/mekari-ui-tabs.css.map +1 -1
  88. data/lib/assets/stylesheets/css/components/mekari-ui-tooltip-min.css +1 -1
  89. data/lib/assets/stylesheets/css/components/mekari-ui-tooltip-min.css.map +1 -1
  90. data/lib/assets/stylesheets/css/components/mekari-ui-tooltip.css +36 -0
  91. data/lib/assets/stylesheets/css/components/mekari-ui-tooltip.css.map +1 -1
  92. data/lib/assets/stylesheets/css/full-bundle/mekari-ui.css +909 -143
  93. data/lib/assets/stylesheets/css/full-bundle/mekari-ui.css.map +1 -1
  94. data/lib/assets/stylesheets/css/full-bundle/mekari-ui.min.css +1 -1
  95. data/lib/assets/stylesheets/css/full-bundle/mekari-ui.min.css.map +1 -1
  96. data/lib/assets/stylesheets/scss/base/_fonts.scss +2 -2
  97. data/lib/assets/stylesheets/scss/components/button.scss +1 -0
  98. data/lib/assets/stylesheets/scss/components/config/_alert.scss +7 -5
  99. data/lib/assets/stylesheets/scss/components/config/_avatar.scss +50 -22
  100. data/lib/assets/stylesheets/scss/components/config/_badge.scss +5 -7
  101. data/lib/assets/stylesheets/scss/components/config/_button.scss +80 -47
  102. data/lib/assets/stylesheets/scss/components/config/_dropdowns.scss +7 -2
  103. data/lib/assets/stylesheets/scss/components/config/_form.scss +7 -1
  104. data/lib/assets/stylesheets/scss/components/config/_icons.scss +13 -8
  105. data/lib/assets/stylesheets/scss/components/config/_shimmer.scss +16 -0
  106. data/lib/assets/stylesheets/scss/components/config/_tabs.scss +10 -0
  107. data/lib/assets/stylesheets/scss/components/config/_tooltip.scss +3 -0
  108. data/lib/assets/stylesheets/scss/components/dropdown.scss +1 -0
  109. data/lib/assets/stylesheets/scss/components/shimmer.scss +3 -0
  110. data/lib/assets/stylesheets/scss/components/tooltip.scss +1 -0
  111. data/lib/assets/stylesheets/scss/main.scss +1 -0
  112. data/lib/assets/stylesheets/scss/vendor-extensions/_navbar.scss +2 -2
  113. data/lib/assets/stylesheets/scss/vendors/_button-group.scss +1 -1
  114. data/lib/assets/stylesheets/scss/vendors/_dropdown.scss +1 -1
  115. data/lib/assets/stylesheets/scss/vendors/_modal.scss +4 -4
  116. data/lib/assets/stylesheets/scss/vendors/_nav.scss +2 -2
  117. data/lib/assets/stylesheets/scss/vendors/_navbar.scss +4 -4
  118. data/lib/assets/stylesheets/scss/vendors/_tooltip.scss +1 -1
  119. data/lib/assets/stylesheets/scss/vendors/_transitions.scss +5 -5
  120. data/lib/assets/stylesheets/scss/vendors/mixins/_buttons.scss +2 -2
  121. data/lib/assets/stylesheets/webfonts/Mekari-Icon-Regular.eot +0 -0
  122. data/lib/assets/stylesheets/webfonts/Mekari-Icon-Regular.svg +130 -128
  123. data/lib/assets/stylesheets/webfonts/Mekari-Icon-Regular.ttf +0 -0
  124. data/lib/assets/stylesheets/webfonts/Mekari-Icon-Regular.woff +0 -0
  125. data/lib/mekari_ui_toolkit/version.rb +1 -1
  126. metadata +9 -7
  127. data/lib/assets/javascripts/bootstrap/mekari-ui-carousel.js +0 -632
  128. data/lib/assets/javascripts/bootstrap/mekari-ui-carousel.js.map +0 -1
  129. data/lib/assets/javascripts/bootstrap/mekari-ui-carousel.min.js +0 -13
  130. data/lib/assets/javascripts/bootstrap/mekari-ui-carousel.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Mekari UI util.js v1.0.0-beta (https://bitbucket.org/mekariuitoolkit/mekari-ui-toolkit#readme)
2
+ * Mekari UI util.js (https://bitbucket.org/mekariuitoolkit/mekari-ui-toolkit#readme)
3
3
  * Copyright 2011-2020 Mekari
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
@@ -11,8 +11,8 @@
11
11
  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v4.3.1): util.js
15
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
14
+ * Bootstrap (v4.5.2): util.js
15
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
18
18
 
@@ -27,6 +27,10 @@
27
27
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
28
28
 
29
29
  function toType(obj) {
30
+ if (obj === null || typeof obj === 'undefined') {
31
+ return "" + obj;
32
+ }
33
+
30
34
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
31
35
  }
32
36
 
@@ -39,7 +43,7 @@
39
43
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
40
44
  }
41
45
 
42
- return undefined; // eslint-disable-line no-undefined
46
+ return undefined;
43
47
  }
44
48
  };
45
49
  }
@@ -161,8 +165,25 @@
161
165
  }
162
166
 
163
167
  return Util.findShadowRoot(element.parentNode);
168
+ },
169
+ jQueryDetection: function jQueryDetection() {
170
+ if (typeof $ === 'undefined') {
171
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
172
+ }
173
+
174
+ var version = $.fn.jquery.split(' ')[0].split('.');
175
+ var minMajor = 1;
176
+ var ltMajor = 2;
177
+ var minMinor = 9;
178
+ var minPatch = 1;
179
+ var maxMajor = 4;
180
+
181
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
182
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
183
+ }
164
184
  }
165
185
  };
186
+ Util.jQueryDetection();
166
187
  setTransitionEndSupport();
167
188
  return Util;
168
189
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/bootstrap/js/src/util.js"],"names":[],"mappings":"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","file":"mekari-ui-util.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n }\n}\n\nsetTransitionEndSupport()\n\nexport default Util\n"]}
1
+ {"version":3,"sources":["../../node_modules/bootstrap/js/src/util.js"],"names":[],"mappings":"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","file":"mekari-ui-util.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n"]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Mekari UI util.js v1.0.6 (https://bitbucket.org/mekariuitoolkit/mekari-ui-toolkit#readme)
2
+ * Mekari UI util.js (https://bitbucket.org/mekariuitoolkit/mekari-ui-toolkit#readme)
3
3
  * Copyright 2011-2020 Mekari
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
@@ -2,7 +2,6 @@ import $ from 'jquery'; // Bootstrap
2
2
 
3
3
  import Alert from '../../node_modules/bootstrap/js/src/alert';
4
4
  import Button from '../../node_modules/bootstrap/js/src/button';
5
- import Carousel from '../../node_modules/bootstrap/js/src/carousel';
6
5
  import Collapse from '../../node_modules/bootstrap/js/src/collapse';
7
6
  import Dropdown from '../../node_modules/bootstrap/js/src/dropdown';
8
7
  import Modal from '../../node_modules/bootstrap/js/src/modal';
@@ -15,6 +14,6 @@ import Util from '../../node_modules/bootstrap/js/src/util'; // Mekari UI
15
14
  import MekariDropdown from './dropdown';
16
15
  import MekariForm from './form';
17
16
  import MekariTooltip from './tooltip';
18
- export { Util, Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, Scrollspy, Tab, Tooltip, MekariDropdown, MekariForm, MekariTooltip };
17
+ export { Util, Alert, Button, Collapse, Dropdown, Modal, Popover, Scrollspy, Tab, Tooltip, MekariDropdown, MekariForm, MekariTooltip };
19
18
 
20
19
  //# sourceMappingURL=mekari-ui-index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../js/src/index.js"],"names":[],"mappings":"AAAA,OAAO,CAAP,MAAc,QAAd,C,CAEA;;AACA,OAAO,KAAP,MAAkB,2CAAlB;AACA,OAAO,MAAP,MAAmB,4CAAnB;AACA,OAAO,QAAP,MAAqB,8CAArB;AACA,OAAO,QAAP,MAAqB,8CAArB;AACA,OAAO,QAAP,MAAqB,8CAArB;AACA,OAAO,KAAP,MAAkB,2CAAlB;AACA,OAAO,OAAP,MAAoB,6CAApB;AACA,OAAO,SAAP,MAAsB,+CAAtB;AACA,OAAO,GAAP,MAAgB,yCAAhB;AACA,OAAO,OAAP,MAAoB,6CAApB;AACA,OAAO,IAAP,MAAiB,0CAAjB,C,CAEA;;AACA,OAAO,cAAP,MAA2B,YAA3B;AACA,OAAO,UAAP,MAAuB,QAAvB;AACA,OAAO,aAAP,MAA0B,WAA1B;AAEA,SACE,IADF,EAEE,KAFF,EAGE,MAHF,EAIE,QAJF,EAKE,QALF,EAME,QANF,EAOE,KAPF,EAQE,OARF,EASE,SATF,EAUE,GAVF,EAWE,OAXF,EAYE,cAZF,EAaE,UAbF,EAcE,aAdF","file":"mekari-ui-index.js","sourcesContent":["import $ from 'jquery'\n\n// Bootstrap\nimport Alert from '../../node_modules/bootstrap/js/src/alert'\nimport Button from '../../node_modules/bootstrap/js/src/button'\nimport Carousel from '../../node_modules/bootstrap/js/src/carousel'\nimport Collapse from '../../node_modules/bootstrap/js/src/collapse'\nimport Dropdown from '../../node_modules/bootstrap/js/src/dropdown'\nimport Modal from '../../node_modules/bootstrap/js/src/modal'\nimport Popover from '../../node_modules/bootstrap/js/src/popover'\nimport Scrollspy from '../../node_modules/bootstrap/js/src/scrollspy'\nimport Tab from '../../node_modules/bootstrap/js/src/tab'\nimport Tooltip from '../../node_modules/bootstrap/js/src/tooltip'\nimport Util from '../../node_modules/bootstrap/js/src/util'\n\n// Mekari UI\nimport MekariDropdown from './dropdown'\nimport MekariForm from './form'\nimport MekariTooltip from './tooltip'\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip,\n MekariDropdown,\n MekariForm,\n MekariTooltip\n}"]}
1
+ {"version":3,"sources":["../../../js/src/index.js"],"names":[],"mappings":"AAAA,OAAO,CAAP,MAAc,QAAd,C,CAEA;;AACA,OAAO,KAAP,MAAkB,2CAAlB;AACA,OAAO,MAAP,MAAmB,4CAAnB;AACA,OAAO,QAAP,MAAqB,8CAArB;AACA,OAAO,QAAP,MAAqB,8CAArB;AACA,OAAO,KAAP,MAAkB,2CAAlB;AACA,OAAO,OAAP,MAAoB,6CAApB;AACA,OAAO,SAAP,MAAsB,+CAAtB;AACA,OAAO,GAAP,MAAgB,yCAAhB;AACA,OAAO,OAAP,MAAoB,6CAApB;AACA,OAAO,IAAP,MAAiB,0CAAjB,C,CAEA;;AACA,OAAO,cAAP,MAA2B,YAA3B;AACA,OAAO,UAAP,MAAuB,QAAvB;AACA,OAAO,aAAP,MAA0B,WAA1B;AAEA,SACE,IADF,EAEE,KAFF,EAGE,MAHF,EAIE,QAJF,EAKE,QALF,EAME,KANF,EAOE,OAPF,EAQE,SARF,EASE,GATF,EAUE,OAVF,EAWE,cAXF,EAYE,UAZF,EAaE,aAbF","file":"mekari-ui-index.js","sourcesContent":["import $ from 'jquery'\n\n// Bootstrap\nimport Alert from '../../node_modules/bootstrap/js/src/alert'\nimport Button from '../../node_modules/bootstrap/js/src/button'\nimport Collapse from '../../node_modules/bootstrap/js/src/collapse'\nimport Dropdown from '../../node_modules/bootstrap/js/src/dropdown'\nimport Modal from '../../node_modules/bootstrap/js/src/modal'\nimport Popover from '../../node_modules/bootstrap/js/src/popover'\nimport Scrollspy from '../../node_modules/bootstrap/js/src/scrollspy'\nimport Tab from '../../node_modules/bootstrap/js/src/tab'\nimport Tooltip from '../../node_modules/bootstrap/js/src/tooltip'\nimport Util from '../../node_modules/bootstrap/js/src/util'\n\n// Mekari UI\nimport MekariDropdown from './dropdown'\nimport MekariForm from './form'\nimport MekariTooltip from './tooltip'\n\nexport {\n Util,\n Alert,\n Button,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip,\n MekariDropdown,\n MekariForm,\n MekariTooltip\n}"]}
@@ -1,2 +1,2 @@
1
- import $ from"jquery";import Alert from"../../node_modules/bootstrap/js/src/alert";import Button from"../../node_modules/bootstrap/js/src/button";import Carousel from"../../node_modules/bootstrap/js/src/carousel";import Collapse from"../../node_modules/bootstrap/js/src/collapse";import Dropdown from"../../node_modules/bootstrap/js/src/dropdown";import Modal from"../../node_modules/bootstrap/js/src/modal";import Popover from"../../node_modules/bootstrap/js/src/popover";import Scrollspy from"../../node_modules/bootstrap/js/src/scrollspy";import Tab from"../../node_modules/bootstrap/js/src/tab";import Tooltip from"../../node_modules/bootstrap/js/src/tooltip";import Util from"../../node_modules/bootstrap/js/src/util";import MekariDropdown from"./dropdown";import MekariForm from"./form";import MekariTooltip from"./tooltip";export{Util,Alert,Button,Carousel,Collapse,Dropdown,Modal,Popover,Scrollspy,Tab,Tooltip,MekariDropdown,MekariForm,MekariTooltip};
1
+ import $ from"jquery";import Alert from"../../node_modules/bootstrap/js/src/alert";import Button from"../../node_modules/bootstrap/js/src/button";import Collapse from"../../node_modules/bootstrap/js/src/collapse";import Dropdown from"../../node_modules/bootstrap/js/src/dropdown";import Modal from"../../node_modules/bootstrap/js/src/modal";import Popover from"../../node_modules/bootstrap/js/src/popover";import Scrollspy from"../../node_modules/bootstrap/js/src/scrollspy";import Tab from"../../node_modules/bootstrap/js/src/tab";import Tooltip from"../../node_modules/bootstrap/js/src/tooltip";import Util from"../../node_modules/bootstrap/js/src/util";import MekariDropdown from"./dropdown";import MekariForm from"./form";import MekariTooltip from"./tooltip";export{Util,Alert,Button,Collapse,Dropdown,Modal,Popover,Scrollspy,Tab,Tooltip,MekariDropdown,MekariForm,MekariTooltip};
2
2
  //# sourceMappingURL=mekari-ui-index.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../js/src/index.js"],"names":["$","Alert","Button","Carousel","Collapse","Dropdown","Modal","Popover","Scrollspy","Tab","Tooltip","Util","MekariDropdown","MekariForm","MekariTooltip"],"mappings":"OAAOA,MAAO,gBAGPC,UAAW,mDACXC,WAAY,oDACZC,aAAc,sDACdC,aAAc,sDACdC,aAAc,sDACdC,UAAW,mDACXC,YAAa,qDACbC,cAAe,uDACfC,QAAS,iDACTC,YAAa,qDACbC,SAAU,kDAGVC,mBAAoB,oBACpBC,eAAgB,gBAChBC,kBAAmB,mBAGxBH,KACAV,MACAC,OACAC,SACAC,SACAC,SACAC,MACAC,QACAC,UACAC,IACAC,QACAE,eACAC,WACAC","sourcesContent":["import $ from 'jquery'\n\n// Bootstrap\nimport Alert from '../../node_modules/bootstrap/js/src/alert'\nimport Button from '../../node_modules/bootstrap/js/src/button'\nimport Carousel from '../../node_modules/bootstrap/js/src/carousel'\nimport Collapse from '../../node_modules/bootstrap/js/src/collapse'\nimport Dropdown from '../../node_modules/bootstrap/js/src/dropdown'\nimport Modal from '../../node_modules/bootstrap/js/src/modal'\nimport Popover from '../../node_modules/bootstrap/js/src/popover'\nimport Scrollspy from '../../node_modules/bootstrap/js/src/scrollspy'\nimport Tab from '../../node_modules/bootstrap/js/src/tab'\nimport Tooltip from '../../node_modules/bootstrap/js/src/tooltip'\nimport Util from '../../node_modules/bootstrap/js/src/util'\n\n// Mekari UI\nimport MekariDropdown from './dropdown'\nimport MekariForm from './form'\nimport MekariTooltip from './tooltip'\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip,\n MekariDropdown,\n MekariForm,\n MekariTooltip\n}"]}
1
+ {"version":3,"sources":["../../../js/src/index.js"],"names":["$","Alert","Button","Collapse","Dropdown","Modal","Popover","Scrollspy","Tab","Tooltip","Util","MekariDropdown","MekariForm","MekariTooltip"],"mappings":"OAAOA,MAAO,gBAGPC,UAAW,mDACXC,WAAY,oDACZC,aAAc,sDACdC,aAAc,sDACdC,UAAW,mDACXC,YAAa,qDACbC,cAAe,uDACfC,QAAS,iDACTC,YAAa,qDACbC,SAAU,kDAGVC,mBAAoB,oBACpBC,eAAgB,gBAChBC,kBAAmB,mBAGxBH,KACAT,MACAC,OACAC,SACAC,SACAC,MACAC,QACAC,UACAC,IACAC,QACAE,eACAC,WACAC","sourcesContent":["import $ from 'jquery'\n\n// Bootstrap\nimport Alert from '../../node_modules/bootstrap/js/src/alert'\nimport Button from '../../node_modules/bootstrap/js/src/button'\nimport Collapse from '../../node_modules/bootstrap/js/src/collapse'\nimport Dropdown from '../../node_modules/bootstrap/js/src/dropdown'\nimport Modal from '../../node_modules/bootstrap/js/src/modal'\nimport Popover from '../../node_modules/bootstrap/js/src/popover'\nimport Scrollspy from '../../node_modules/bootstrap/js/src/scrollspy'\nimport Tab from '../../node_modules/bootstrap/js/src/tab'\nimport Tooltip from '../../node_modules/bootstrap/js/src/tooltip'\nimport Util from '../../node_modules/bootstrap/js/src/util'\n\n// Mekari UI\nimport MekariDropdown from './dropdown'\nimport MekariForm from './form'\nimport MekariTooltip from './tooltip'\n\nexport {\n Util,\n Alert,\n Button,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip,\n MekariDropdown,\n MekariForm,\n MekariTooltip\n}"]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Mekari UI v1.0.0-beta (https://bitbucket.org/mekariuitoolkit/mekari-ui-toolkit#readme)
2
+ * Mekari UI (https://bitbucket.org/mekariuitoolkit/mekari-ui-toolkit#readme)
3
3
  * Copyright 2011-2020 Mekari
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
@@ -13,8 +13,8 @@
13
13
 
14
14
  /**
15
15
  * --------------------------------------------------------------------------
16
- * Bootstrap (v4.3.1): util.js
17
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
16
+ * Bootstrap (v4.5.2): util.js
17
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
18
18
  * --------------------------------------------------------------------------
19
19
  */
20
20
 
@@ -30,6 +30,10 @@
30
30
 
31
31
  // Shoutout AngusCroll (https://goo.gl/pxwQGp)
32
32
  function toType(obj) {
33
+ if (obj === null || typeof obj === 'undefined') {
34
+ return `${obj}`
35
+ }
36
+
33
37
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase()
34
38
  }
35
39
 
@@ -41,7 +45,7 @@
41
45
  if ($(event.target).is(this)) {
42
46
  return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params
43
47
  }
44
- return undefined // eslint-disable-line no-undefined
48
+ return undefined
45
49
  }
46
50
  }
47
51
  }
@@ -74,7 +78,6 @@
74
78
  */
75
79
 
76
80
  const Util = {
77
-
78
81
  TRANSITION_END: 'bsTransitionEnd',
79
82
 
80
83
  getUID(prefix) {
@@ -180,15 +183,33 @@
180
183
  }
181
184
 
182
185
  return Util.findShadowRoot(element.parentNode)
186
+ },
187
+
188
+ jQueryDetection() {
189
+ if (typeof $ === 'undefined') {
190
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
191
+ }
192
+
193
+ const version = $.fn.jquery.split(' ')[0].split('.');
194
+ const minMajor = 1;
195
+ const ltMajor = 2;
196
+ const minMinor = 9;
197
+ const minPatch = 1;
198
+ const maxMajor = 4;
199
+
200
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
201
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
202
+ }
183
203
  }
184
204
  };
185
205
 
206
+ Util.jQueryDetection();
186
207
  setTransitionEndSupport();
187
208
 
188
209
  /**
189
210
  * --------------------------------------------------------------------------
190
- * Bootstrap (v4.3.1): alert.js
191
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
211
+ * Bootstrap (v4.5.2): alert.js
212
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
192
213
  * --------------------------------------------------------------------------
193
214
  */
194
215
 
@@ -199,27 +220,21 @@
199
220
  */
200
221
 
201
222
  const NAME = 'alert';
202
- const VERSION = '4.3.1';
223
+ const VERSION = '4.5.2';
203
224
  const DATA_KEY = 'bs.alert';
204
225
  const EVENT_KEY = `.${DATA_KEY}`;
205
226
  const DATA_API_KEY = '.data-api';
206
227
  const JQUERY_NO_CONFLICT = $.fn[NAME];
207
228
 
208
- const Selector = {
209
- DISMISS : '[data-dismiss="alert"]'
210
- };
229
+ const SELECTOR_DISMISS = '[data-dismiss="alert"]';
211
230
 
212
- const Event = {
213
- CLOSE : `close${EVENT_KEY}`,
214
- CLOSED : `closed${EVENT_KEY}`,
215
- CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
216
- };
231
+ const EVENT_CLOSE = `close${EVENT_KEY}`;
232
+ const EVENT_CLOSED = `closed${EVENT_KEY}`;
233
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
217
234
 
218
- const ClassName = {
219
- ALERT : 'alert',
220
- FADE : 'fade',
221
- SHOW : 'show'
222
- };
235
+ const CLASS_NAME_ALERT = 'alert';
236
+ const CLASS_NAME_FADE = 'fade';
237
+ const CLASS_NAME_SHOW = 'show';
223
238
 
224
239
  /**
225
240
  * ------------------------------------------------------------------------
@@ -271,23 +286,23 @@
271
286
  }
272
287
 
273
288
  if (!parent) {
274
- parent = $(element).closest(`.${ClassName.ALERT}`)[0];
289
+ parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0];
275
290
  }
276
291
 
277
292
  return parent
278
293
  }
279
294
 
280
295
  _triggerCloseEvent(element) {
281
- const closeEvent = $.Event(Event.CLOSE);
296
+ const closeEvent = $.Event(EVENT_CLOSE);
282
297
 
283
298
  $(element).trigger(closeEvent);
284
299
  return closeEvent
285
300
  }
286
301
 
287
302
  _removeElement(element) {
288
- $(element).removeClass(ClassName.SHOW);
303
+ $(element).removeClass(CLASS_NAME_SHOW);
289
304
 
290
- if (!$(element).hasClass(ClassName.FADE)) {
305
+ if (!$(element).hasClass(CLASS_NAME_FADE)) {
291
306
  this._destroyElement(element);
292
307
  return
293
308
  }
@@ -302,7 +317,7 @@
302
317
  _destroyElement(element) {
303
318
  $(element)
304
319
  .detach()
305
- .trigger(Event.CLOSED)
320
+ .trigger(EVENT_CLOSED)
306
321
  .remove();
307
322
  }
308
323
 
@@ -342,8 +357,8 @@
342
357
  */
343
358
 
344
359
  $(document).on(
345
- Event.CLICK_DATA_API,
346
- Selector.DISMISS,
360
+ EVENT_CLICK_DATA_API,
361
+ SELECTOR_DISMISS,
347
362
  Alert._handleDismiss(new Alert())
348
363
  );
349
364
 
@@ -362,8 +377,8 @@
362
377
 
363
378
  /**
364
379
  * --------------------------------------------------------------------------
365
- * Bootstrap (v4.3.1): button.js
366
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
380
+ * Bootstrap (v4.5.2): button.js
381
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
367
382
  * --------------------------------------------------------------------------
368
383
  */
369
384
 
@@ -374,31 +389,28 @@
374
389
  */
375
390
 
376
391
  const NAME$1 = 'button';
377
- const VERSION$1 = '4.3.1';
392
+ const VERSION$1 = '4.5.2';
378
393
  const DATA_KEY$1 = 'bs.button';
379
394
  const EVENT_KEY$1 = `.${DATA_KEY$1}`;
380
395
  const DATA_API_KEY$1 = '.data-api';
381
396
  const JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];
382
397
 
383
- const ClassName$1 = {
384
- ACTIVE : 'active',
385
- BUTTON : 'btn',
386
- FOCUS : 'focus'
387
- };
398
+ const CLASS_NAME_ACTIVE = 'active';
399
+ const CLASS_NAME_BUTTON = 'btn';
400
+ const CLASS_NAME_FOCUS = 'focus';
388
401
 
389
- const Selector$1 = {
390
- DATA_TOGGLE_CARROT : '[data-toggle^="button"]',
391
- DATA_TOGGLE : '[data-toggle="buttons"]',
392
- INPUT : 'input:not([type="hidden"])',
393
- ACTIVE : '.active',
394
- BUTTON : '.btn'
395
- };
402
+ const SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
403
+ const SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
404
+ const SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
405
+ const SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
406
+ const SELECTOR_INPUT = 'input:not([type="hidden"])';
407
+ const SELECTOR_ACTIVE = '.active';
408
+ const SELECTOR_BUTTON = '.btn';
396
409
 
397
- const Event$1 = {
398
- CLICK_DATA_API : `click${EVENT_KEY$1}${DATA_API_KEY$1}`,
399
- FOCUS_BLUR_DATA_API : `focus${EVENT_KEY$1}${DATA_API_KEY$1} ` +
400
- `blur${EVENT_KEY$1}${DATA_API_KEY$1}`
401
- };
410
+ const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$1}${DATA_API_KEY$1}`;
411
+ const EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY$1}${DATA_API_KEY$1} ` +
412
+ `blur${EVENT_KEY$1}${DATA_API_KEY$1}`;
413
+ const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}${DATA_API_KEY$1}`;
402
414
 
403
415
  /**
404
416
  * ------------------------------------------------------------------------
@@ -423,34 +435,31 @@
423
435
  let triggerChangeEvent = true;
424
436
  let addAriaPressed = true;
425
437
  const rootElement = $(this._element).closest(
426
- Selector$1.DATA_TOGGLE
438
+ SELECTOR_DATA_TOGGLES
427
439
  )[0];
428
440
 
429
441
  if (rootElement) {
430
- const input = this._element.querySelector(Selector$1.INPUT);
442
+ const input = this._element.querySelector(SELECTOR_INPUT);
431
443
 
432
444
  if (input) {
433
445
  if (input.type === 'radio') {
434
446
  if (input.checked &&
435
- this._element.classList.contains(ClassName$1.ACTIVE)) {
447
+ this._element.classList.contains(CLASS_NAME_ACTIVE)) {
436
448
  triggerChangeEvent = false;
437
449
  } else {
438
- const activeElement = rootElement.querySelector(Selector$1.ACTIVE);
450
+ const activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
439
451
 
440
452
  if (activeElement) {
441
- $(activeElement).removeClass(ClassName$1.ACTIVE);
453
+ $(activeElement).removeClass(CLASS_NAME_ACTIVE);
442
454
  }
443
455
  }
444
456
  }
445
457
 
446
458
  if (triggerChangeEvent) {
447
- if (input.hasAttribute('disabled') ||
448
- rootElement.hasAttribute('disabled') ||
449
- input.classList.contains('disabled') ||
450
- rootElement.classList.contains('disabled')) {
451
- return
459
+ // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
460
+ if (input.type === 'checkbox' || input.type === 'radio') {
461
+ input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
452
462
  }
453
- input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
454
463
  $(input).trigger('change');
455
464
  }
456
465
 
@@ -459,13 +468,15 @@
459
468
  }
460
469
  }
461
470
 
462
- if (addAriaPressed) {
463
- this._element.setAttribute('aria-pressed',
464
- !this._element.classList.contains(ClassName$1.ACTIVE));
465
- }
471
+ if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
472
+ if (addAriaPressed) {
473
+ this._element.setAttribute('aria-pressed',
474
+ !this._element.classList.contains(CLASS_NAME_ACTIVE));
475
+ }
466
476
 
467
- if (triggerChangeEvent) {
468
- $(this._element).toggleClass(ClassName$1.ACTIVE);
477
+ if (triggerChangeEvent) {
478
+ $(this._element).toggleClass(CLASS_NAME_ACTIVE);
479
+ }
469
480
  }
470
481
  }
471
482
 
@@ -499,621 +510,58 @@
499
510
  */
500
511
 
501
512
  $(document)
502
- .on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, (event) => {
503
- event.preventDefault();
504
-
513
+ .on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, (event) => {
505
514
  let button = event.target;
515
+ const initialButton = button;
506
516
 
507
- if (!$(button).hasClass(ClassName$1.BUTTON)) {
508
- button = $(button).closest(Selector$1.BUTTON);
509
- }
510
-
511
- Button._jQueryInterface.call($(button), 'toggle');
512
- })
513
- .on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, (event) => {
514
- const button = $(event.target).closest(Selector$1.BUTTON)[0];
515
- $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));
516
- });
517
-
518
- /**
519
- * ------------------------------------------------------------------------
520
- * jQuery
521
- * ------------------------------------------------------------------------
522
- */
523
-
524
- $.fn[NAME$1] = Button._jQueryInterface;
525
- $.fn[NAME$1].Constructor = Button;
526
- $.fn[NAME$1].noConflict = () => {
527
- $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
528
- return Button._jQueryInterface
529
- };
530
-
531
- /**
532
- * --------------------------------------------------------------------------
533
- * Bootstrap (v4.3.1): carousel.js
534
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
535
- * --------------------------------------------------------------------------
536
- */
537
-
538
- /**
539
- * ------------------------------------------------------------------------
540
- * Constants
541
- * ------------------------------------------------------------------------
542
- */
543
-
544
- const NAME$2 = 'carousel';
545
- const VERSION$2 = '4.3.1';
546
- const DATA_KEY$2 = 'bs.carousel';
547
- const EVENT_KEY$2 = `.${DATA_KEY$2}`;
548
- const DATA_API_KEY$2 = '.data-api';
549
- const JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];
550
- const ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
551
- const ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
552
- const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
553
- const SWIPE_THRESHOLD = 40;
554
-
555
- const Default = {
556
- interval : 5000,
557
- keyboard : true,
558
- slide : false,
559
- pause : 'hover',
560
- wrap : true,
561
- touch : true
562
- };
563
-
564
- const DefaultType = {
565
- interval : '(number|boolean)',
566
- keyboard : 'boolean',
567
- slide : '(boolean|string)',
568
- pause : '(string|boolean)',
569
- wrap : 'boolean',
570
- touch : 'boolean'
571
- };
572
-
573
- const Direction = {
574
- NEXT : 'next',
575
- PREV : 'prev',
576
- LEFT : 'left',
577
- RIGHT : 'right'
578
- };
579
-
580
- const Event$2 = {
581
- SLIDE : `slide${EVENT_KEY$2}`,
582
- SLID : `slid${EVENT_KEY$2}`,
583
- KEYDOWN : `keydown${EVENT_KEY$2}`,
584
- MOUSEENTER : `mouseenter${EVENT_KEY$2}`,
585
- MOUSELEAVE : `mouseleave${EVENT_KEY$2}`,
586
- TOUCHSTART : `touchstart${EVENT_KEY$2}`,
587
- TOUCHMOVE : `touchmove${EVENT_KEY$2}`,
588
- TOUCHEND : `touchend${EVENT_KEY$2}`,
589
- POINTERDOWN : `pointerdown${EVENT_KEY$2}`,
590
- POINTERUP : `pointerup${EVENT_KEY$2}`,
591
- DRAG_START : `dragstart${EVENT_KEY$2}`,
592
- LOAD_DATA_API : `load${EVENT_KEY$2}${DATA_API_KEY$2}`,
593
- CLICK_DATA_API : `click${EVENT_KEY$2}${DATA_API_KEY$2}`
594
- };
595
-
596
- const ClassName$2 = {
597
- CAROUSEL : 'carousel',
598
- ACTIVE : 'active',
599
- SLIDE : 'slide',
600
- RIGHT : 'carousel-item-right',
601
- LEFT : 'carousel-item-left',
602
- NEXT : 'carousel-item-next',
603
- PREV : 'carousel-item-prev',
604
- ITEM : 'carousel-item',
605
- POINTER_EVENT : 'pointer-event'
606
- };
607
-
608
- const Selector$2 = {
609
- ACTIVE : '.active',
610
- ACTIVE_ITEM : '.active.carousel-item',
611
- ITEM : '.carousel-item',
612
- ITEM_IMG : '.carousel-item img',
613
- NEXT_PREV : '.carousel-item-next, .carousel-item-prev',
614
- INDICATORS : '.carousel-indicators',
615
- DATA_SLIDE : '[data-slide], [data-slide-to]',
616
- DATA_RIDE : '[data-ride="carousel"]'
617
- };
618
-
619
- const PointerType = {
620
- TOUCH : 'touch',
621
- PEN : 'pen'
622
- };
623
-
624
- /**
625
- * ------------------------------------------------------------------------
626
- * Class Definition
627
- * ------------------------------------------------------------------------
628
- */
629
- class Carousel {
630
- constructor(element, config) {
631
- this._items = null;
632
- this._interval = null;
633
- this._activeElement = null;
634
- this._isPaused = false;
635
- this._isSliding = false;
636
- this.touchTimeout = null;
637
- this.touchStartX = 0;
638
- this.touchDeltaX = 0;
639
-
640
- this._config = this._getConfig(config);
641
- this._element = element;
642
- this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);
643
- this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
644
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
645
-
646
- this._addEventListeners();
647
- }
648
-
649
- // Getters
650
-
651
- static get VERSION() {
652
- return VERSION$2
653
- }
654
-
655
- static get Default() {
656
- return Default
657
- }
658
-
659
- // Public
660
-
661
- next() {
662
- if (!this._isSliding) {
663
- this._slide(Direction.NEXT);
664
- }
665
- }
666
-
667
- nextWhenVisible() {
668
- // Don't call next when the page isn't visible
669
- // or the carousel or its parent isn't visible
670
- if (!document.hidden &&
671
- ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {
672
- this.next();
673
- }
674
- }
675
-
676
- prev() {
677
- if (!this._isSliding) {
678
- this._slide(Direction.PREV);
679
- }
680
- }
681
-
682
- pause(event) {
683
- if (!event) {
684
- this._isPaused = true;
685
- }
686
-
687
- if (this._element.querySelector(Selector$2.NEXT_PREV)) {
688
- Util.triggerTransitionEnd(this._element);
689
- this.cycle(true);
690
- }
691
-
692
- clearInterval(this._interval);
693
- this._interval = null;
694
- }
695
-
696
- cycle(event) {
697
- if (!event) {
698
- this._isPaused = false;
699
- }
700
-
701
- if (this._interval) {
702
- clearInterval(this._interval);
703
- this._interval = null;
704
- }
705
-
706
- if (this._config.interval && !this._isPaused) {
707
- this._interval = setInterval(
708
- (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),
709
- this._config.interval
710
- );
711
- }
712
- }
713
-
714
- to(index) {
715
- this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
716
-
717
- const activeIndex = this._getItemIndex(this._activeElement);
718
-
719
- if (index > this._items.length - 1 || index < 0) {
720
- return
721
- }
722
-
723
- if (this._isSliding) {
724
- $(this._element).one(Event$2.SLID, () => this.to(index));
725
- return
517
+ if (!$(button).hasClass(CLASS_NAME_BUTTON)) {
518
+ button = $(button).closest(SELECTOR_BUTTON)[0];
726
519
  }
727
520
 
728
- if (activeIndex === index) {
729
- this.pause();
730
- this.cycle();
731
- return
732
- }
733
-
734
- const direction = index > activeIndex
735
- ? Direction.NEXT
736
- : Direction.PREV;
737
-
738
- this._slide(direction, this._items[index]);
739
- }
740
-
741
- dispose() {
742
- $(this._element).off(EVENT_KEY$2);
743
- $.removeData(this._element, DATA_KEY$2);
744
-
745
- this._items = null;
746
- this._config = null;
747
- this._element = null;
748
- this._interval = null;
749
- this._isPaused = null;
750
- this._isSliding = null;
751
- this._activeElement = null;
752
- this._indicatorsElement = null;
753
- }
754
-
755
- // Private
756
-
757
- _getConfig(config) {
758
- config = {
759
- ...Default,
760
- ...config
761
- };
762
- Util.typeCheckConfig(NAME$2, config, DefaultType);
763
- return config
764
- }
765
-
766
- _handleSwipe() {
767
- const absDeltax = Math.abs(this.touchDeltaX);
768
-
769
- if (absDeltax <= SWIPE_THRESHOLD) {
770
- return
771
- }
772
-
773
- const direction = absDeltax / this.touchDeltaX;
774
-
775
- // swipe left
776
- if (direction > 0) {
777
- this.prev();
778
- }
779
-
780
- // swipe right
781
- if (direction < 0) {
782
- this.next();
783
- }
784
- }
785
-
786
- _addEventListeners() {
787
- if (this._config.keyboard) {
788
- $(this._element)
789
- .on(Event$2.KEYDOWN, (event) => this._keydown(event));
790
- }
791
-
792
- if (this._config.pause === 'hover') {
793
- $(this._element)
794
- .on(Event$2.MOUSEENTER, (event) => this.pause(event))
795
- .on(Event$2.MOUSELEAVE, (event) => this.cycle(event));
796
- }
797
-
798
- if (this._config.touch) {
799
- this._addTouchEventListeners();
800
- }
801
- }
802
-
803
- _addTouchEventListeners() {
804
- if (!this._touchSupported) {
805
- return
806
- }
807
-
808
- const start = (event) => {
809
- if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
810
- this.touchStartX = event.originalEvent.clientX;
811
- } else if (!this._pointerEvent) {
812
- this.touchStartX = event.originalEvent.touches[0].clientX;
813
- }
814
- };
815
-
816
- const move = (event) => {
817
- // ensure swiping with one touch and not pinching
818
- if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
819
- this.touchDeltaX = 0;
820
- } else {
821
- this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX;
822
- }
823
- };
824
-
825
- const end = (event) => {
826
- if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
827
- this.touchDeltaX = event.originalEvent.clientX - this.touchStartX;
828
- }
829
-
830
- this._handleSwipe();
831
- if (this._config.pause === 'hover') {
832
- // If it's a touch-enabled device, mouseenter/leave are fired as
833
- // part of the mouse compatibility events on first tap - the carousel
834
- // would stop cycling until user tapped out of it;
835
- // here, we listen for touchend, explicitly pause the carousel
836
- // (as if it's the second time we tap on it, mouseenter compat event
837
- // is NOT fired) and after a timeout (to allow for mouse compatibility
838
- // events to fire) we explicitly restart cycling
839
-
840
- this.pause();
841
- if (this.touchTimeout) {
842
- clearTimeout(this.touchTimeout);
843
- }
844
- this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
845
- }
846
- };
847
-
848
- $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, (e) => e.preventDefault());
849
- if (this._pointerEvent) {
850
- $(this._element).on(Event$2.POINTERDOWN, (event) => start(event));
851
- $(this._element).on(Event$2.POINTERUP, (event) => end(event));
852
-
853
- this._element.classList.add(ClassName$2.POINTER_EVENT);
521
+ if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
522
+ event.preventDefault(); // work around Firefox bug #1540995
854
523
  } else {
855
- $(this._element).on(Event$2.TOUCHSTART, (event) => start(event));
856
- $(this._element).on(Event$2.TOUCHMOVE, (event) => move(event));
857
- $(this._element).on(Event$2.TOUCHEND, (event) => end(event));
858
- }
859
- }
860
-
861
- _keydown(event) {
862
- if (/input|textarea/i.test(event.target.tagName)) {
863
- return
864
- }
865
-
866
- switch (event.which) {
867
- case ARROW_LEFT_KEYCODE:
868
- event.preventDefault();
869
- this.prev();
870
- break
871
- case ARROW_RIGHT_KEYCODE:
872
- event.preventDefault();
873
- this.next();
874
- break
875
- default:
876
- }
877
- }
878
-
879
- _getItemIndex(element) {
880
- this._items = element && element.parentNode
881
- ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM))
882
- : [];
883
- return this._items.indexOf(element)
884
- }
885
-
886
- _getItemByDirection(direction, activeElement) {
887
- const isNextDirection = direction === Direction.NEXT;
888
- const isPrevDirection = direction === Direction.PREV;
889
- const activeIndex = this._getItemIndex(activeElement);
890
- const lastItemIndex = this._items.length - 1;
891
- const isGoingToWrap = isPrevDirection && activeIndex === 0 ||
892
- isNextDirection && activeIndex === lastItemIndex;
893
-
894
- if (isGoingToWrap && !this._config.wrap) {
895
- return activeElement
896
- }
897
-
898
- const delta = direction === Direction.PREV ? -1 : 1;
899
- const itemIndex = (activeIndex + delta) % this._items.length;
900
-
901
- return itemIndex === -1
902
- ? this._items[this._items.length - 1] : this._items[itemIndex]
903
- }
904
-
905
- _triggerSlideEvent(relatedTarget, eventDirectionName) {
906
- const targetIndex = this._getItemIndex(relatedTarget);
907
- const fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));
908
- const slideEvent = $.Event(Event$2.SLIDE, {
909
- relatedTarget,
910
- direction: eventDirectionName,
911
- from: fromIndex,
912
- to: targetIndex
913
- });
914
-
915
- $(this._element).trigger(slideEvent);
916
-
917
- return slideEvent
918
- }
919
-
920
- _setActiveIndicatorElement(element) {
921
- if (this._indicatorsElement) {
922
- const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));
923
- $(indicators)
924
- .removeClass(ClassName$2.ACTIVE);
524
+ const inputBtn = button.querySelector(SELECTOR_INPUT);
925
525
 
926
- const nextIndicator = this._indicatorsElement.children[
927
- this._getItemIndex(element)
928
- ];
929
-
930
- if (nextIndicator) {
931
- $(nextIndicator).addClass(ClassName$2.ACTIVE);
526
+ if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
527
+ event.preventDefault(); // work around Firefox bug #1540995
528
+ return
932
529
  }
933
- }
934
- }
935
-
936
- _slide(direction, element) {
937
- const activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
938
- const activeElementIndex = this._getItemIndex(activeElement);
939
- const nextElement = element || activeElement &&
940
- this._getItemByDirection(direction, activeElement);
941
- const nextElementIndex = this._getItemIndex(nextElement);
942
- const isCycling = Boolean(this._interval);
943
-
944
- let directionalClassName;
945
- let orderClassName;
946
- let eventDirectionName;
947
-
948
- if (direction === Direction.NEXT) {
949
- directionalClassName = ClassName$2.LEFT;
950
- orderClassName = ClassName$2.NEXT;
951
- eventDirectionName = Direction.LEFT;
952
- } else {
953
- directionalClassName = ClassName$2.RIGHT;
954
- orderClassName = ClassName$2.PREV;
955
- eventDirectionName = Direction.RIGHT;
956
- }
957
-
958
- if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {
959
- this._isSliding = false;
960
- return
961
- }
962
-
963
- const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
964
- if (slideEvent.isDefaultPrevented()) {
965
- return
966
- }
967
-
968
- if (!activeElement || !nextElement) {
969
- // Some weirdness is happening, so we bail
970
- return
971
- }
972
-
973
- this._isSliding = true;
974
-
975
- if (isCycling) {
976
- this.pause();
977
- }
978
530
 
979
- this._setActiveIndicatorElement(nextElement);
980
-
981
- const slidEvent = $.Event(Event$2.SLID, {
982
- relatedTarget: nextElement,
983
- direction: eventDirectionName,
984
- from: activeElementIndex,
985
- to: nextElementIndex
986
- });
987
-
988
- if ($(this._element).hasClass(ClassName$2.SLIDE)) {
989
- $(nextElement).addClass(orderClassName);
990
-
991
- Util.reflow(nextElement);
992
-
993
- $(activeElement).addClass(directionalClassName);
994
- $(nextElement).addClass(directionalClassName);
995
-
996
- const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
997
- if (nextElementInterval) {
998
- this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
999
- this._config.interval = nextElementInterval;
1000
- } else {
1001
- this._config.interval = this._config.defaultInterval || this._config.interval;
531
+ if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {
532
+ Button._jQueryInterface.call($(button), 'toggle');
1002
533
  }
534
+ }
535
+ })
536
+ .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {
537
+ const button = $(event.target).closest(SELECTOR_BUTTON)[0];
538
+ $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
539
+ });
1003
540
 
1004
- const transitionDuration = Util.getTransitionDurationFromElement(activeElement);
1005
-
1006
- $(activeElement)
1007
- .one(Util.TRANSITION_END, () => {
1008
- $(nextElement)
1009
- .removeClass(`${directionalClassName} ${orderClassName}`)
1010
- .addClass(ClassName$2.ACTIVE);
1011
-
1012
- $(activeElement).removeClass(`${ClassName$2.ACTIVE} ${orderClassName} ${directionalClassName}`);
1013
-
1014
- this._isSliding = false;
541
+ $(window).on(EVENT_LOAD_DATA_API, () => {
542
+ // ensure correct active class is set to match the controls' actual values/states
1015
543
 
1016
- setTimeout(() => $(this._element).trigger(slidEvent), 0);
1017
- })
1018
- .emulateTransitionEnd(transitionDuration);
544
+ // find all checkboxes/readio buttons inside data-toggle groups
545
+ let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
546
+ for (let i = 0, len = buttons.length; i < len; i++) {
547
+ const button = buttons[i];
548
+ const input = button.querySelector(SELECTOR_INPUT);
549
+ if (input.checked || input.hasAttribute('checked')) {
550
+ button.classList.add(CLASS_NAME_ACTIVE);
1019
551
  } else {
1020
- $(activeElement).removeClass(ClassName$2.ACTIVE);
1021
- $(nextElement).addClass(ClassName$2.ACTIVE);
1022
-
1023
- this._isSliding = false;
1024
- $(this._element).trigger(slidEvent);
1025
- }
1026
-
1027
- if (isCycling) {
1028
- this.cycle();
552
+ button.classList.remove(CLASS_NAME_ACTIVE);
1029
553
  }
1030
554
  }
1031
555
 
1032
- // Static
1033
-
1034
- static _jQueryInterface(config) {
1035
- return this.each(function () {
1036
- let data = $(this).data(DATA_KEY$2);
1037
- let _config = {
1038
- ...Default,
1039
- ...$(this).data()
1040
- };
1041
-
1042
- if (typeof config === 'object') {
1043
- _config = {
1044
- ..._config,
1045
- ...config
1046
- };
1047
- }
1048
-
1049
- const action = typeof config === 'string' ? config : _config.slide;
1050
-
1051
- if (!data) {
1052
- data = new Carousel(this, _config);
1053
- $(this).data(DATA_KEY$2, data);
1054
- }
1055
-
1056
- if (typeof config === 'number') {
1057
- data.to(config);
1058
- } else if (typeof action === 'string') {
1059
- if (typeof data[action] === 'undefined') {
1060
- throw new TypeError(`No method named "${action}"`)
1061
- }
1062
- data[action]();
1063
- } else if (_config.interval && _config.ride) {
1064
- data.pause();
1065
- data.cycle();
1066
- }
1067
- })
1068
- }
1069
-
1070
- static _dataApiClickHandler(event) {
1071
- const selector = Util.getSelectorFromElement(this);
1072
-
1073
- if (!selector) {
1074
- return
1075
- }
1076
-
1077
- const target = $(selector)[0];
1078
-
1079
- if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {
1080
- return
1081
- }
1082
-
1083
- const config = {
1084
- ...$(target).data(),
1085
- ...$(this).data()
1086
- };
1087
- const slideIndex = this.getAttribute('data-slide-to');
1088
-
1089
- if (slideIndex) {
1090
- config.interval = false;
1091
- }
1092
-
1093
- Carousel._jQueryInterface.call($(target), config);
1094
-
1095
- if (slideIndex) {
1096
- $(target).data(DATA_KEY$2).to(slideIndex);
556
+ // find all button toggles
557
+ buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
558
+ for (let i = 0, len = buttons.length; i < len; i++) {
559
+ const button = buttons[i];
560
+ if (button.getAttribute('aria-pressed') === 'true') {
561
+ button.classList.add(CLASS_NAME_ACTIVE);
562
+ } else {
563
+ button.classList.remove(CLASS_NAME_ACTIVE);
1097
564
  }
1098
-
1099
- event.preventDefault();
1100
- }
1101
- }
1102
-
1103
- /**
1104
- * ------------------------------------------------------------------------
1105
- * Data Api implementation
1106
- * ------------------------------------------------------------------------
1107
- */
1108
-
1109
- $(document)
1110
- .on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);
1111
-
1112
- $(window).on(Event$2.LOAD_DATA_API, () => {
1113
- const carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));
1114
- for (let i = 0, len = carousels.length; i < len; i++) {
1115
- const $carousel = $(carousels[i]);
1116
- Carousel._jQueryInterface.call($carousel, $carousel.data());
1117
565
  }
1118
566
  });
1119
567
 
@@ -1123,17 +571,17 @@
1123
571
  * ------------------------------------------------------------------------
1124
572
  */
1125
573
 
1126
- $.fn[NAME$2] = Carousel._jQueryInterface;
1127
- $.fn[NAME$2].Constructor = Carousel;
1128
- $.fn[NAME$2].noConflict = () => {
1129
- $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
1130
- return Carousel._jQueryInterface
574
+ $.fn[NAME$1] = Button._jQueryInterface;
575
+ $.fn[NAME$1].Constructor = Button;
576
+ $.fn[NAME$1].noConflict = () => {
577
+ $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
578
+ return Button._jQueryInterface
1131
579
  };
1132
580
 
1133
581
  /**
1134
582
  * --------------------------------------------------------------------------
1135
- * Bootstrap (v4.3.1): collapse.js
1136
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
583
+ * Bootstrap (v4.5.2): collapse.js
584
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1137
585
  * --------------------------------------------------------------------------
1138
586
  */
1139
587
 
@@ -1143,47 +591,39 @@
1143
591
  * ------------------------------------------------------------------------
1144
592
  */
1145
593
 
1146
- const NAME$3 = 'collapse';
1147
- const VERSION$3 = '4.3.1';
1148
- const DATA_KEY$3 = 'bs.collapse';
1149
- const EVENT_KEY$3 = `.${DATA_KEY$3}`;
1150
- const DATA_API_KEY$3 = '.data-api';
1151
- const JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];
594
+ const NAME$2 = 'collapse';
595
+ const VERSION$2 = '4.5.2';
596
+ const DATA_KEY$2 = 'bs.collapse';
597
+ const EVENT_KEY$2 = `.${DATA_KEY$2}`;
598
+ const DATA_API_KEY$2 = '.data-api';
599
+ const JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];
1152
600
 
1153
- const Default$1 = {
601
+ const Default = {
1154
602
  toggle : true,
1155
603
  parent : ''
1156
604
  };
1157
605
 
1158
- const DefaultType$1 = {
606
+ const DefaultType = {
1159
607
  toggle : 'boolean',
1160
608
  parent : '(string|element)'
1161
609
  };
1162
610
 
1163
- const Event$3 = {
1164
- SHOW : `show${EVENT_KEY$3}`,
1165
- SHOWN : `shown${EVENT_KEY$3}`,
1166
- HIDE : `hide${EVENT_KEY$3}`,
1167
- HIDDEN : `hidden${EVENT_KEY$3}`,
1168
- CLICK_DATA_API : `click${EVENT_KEY$3}${DATA_API_KEY$3}`
1169
- };
611
+ const EVENT_SHOW = `show${EVENT_KEY$2}`;
612
+ const EVENT_SHOWN = `shown${EVENT_KEY$2}`;
613
+ const EVENT_HIDE = `hide${EVENT_KEY$2}`;
614
+ const EVENT_HIDDEN = `hidden${EVENT_KEY$2}`;
615
+ const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$2}${DATA_API_KEY$2}`;
1170
616
 
1171
- const ClassName$3 = {
1172
- SHOW : 'show',
1173
- COLLAPSE : 'collapse',
1174
- COLLAPSING : 'collapsing',
1175
- COLLAPSED : 'collapsed'
1176
- };
617
+ const CLASS_NAME_SHOW$1 = 'show';
618
+ const CLASS_NAME_COLLAPSE = 'collapse';
619
+ const CLASS_NAME_COLLAPSING = 'collapsing';
620
+ const CLASS_NAME_COLLAPSED = 'collapsed';
1177
621
 
1178
- const Dimension = {
1179
- WIDTH : 'width',
1180
- HEIGHT : 'height'
1181
- };
622
+ const DIMENSION_WIDTH = 'width';
623
+ const DIMENSION_HEIGHT = 'height';
1182
624
 
1183
- const Selector$3 = {
1184
- ACTIVES : '.show, .collapsing',
1185
- DATA_TOGGLE : '[data-toggle="collapse"]'
1186
- };
625
+ const SELECTOR_ACTIVES = '.show, .collapsing';
626
+ const SELECTOR_DATA_TOGGLE$1 = '[data-toggle="collapse"]';
1187
627
 
1188
628
  /**
1189
629
  * ------------------------------------------------------------------------
@@ -1201,7 +641,7 @@
1201
641
  `[data-toggle="collapse"][data-target="#${element.id}"]`
1202
642
  ));
1203
643
 
1204
- const toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));
644
+ const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));
1205
645
  for (let i = 0, len = toggleList.length; i < len; i++) {
1206
646
  const elem = toggleList[i];
1207
647
  const selector = Util.getSelectorFromElement(elem);
@@ -1228,17 +668,17 @@
1228
668
  // Getters
1229
669
 
1230
670
  static get VERSION() {
1231
- return VERSION$3
671
+ return VERSION$2
1232
672
  }
1233
673
 
1234
674
  static get Default() {
1235
- return Default$1
675
+ return Default
1236
676
  }
1237
677
 
1238
678
  // Public
1239
679
 
1240
680
  toggle() {
1241
- if ($(this._element).hasClass(ClassName$3.SHOW)) {
681
+ if ($(this._element).hasClass(CLASS_NAME_SHOW$1)) {
1242
682
  this.hide();
1243
683
  } else {
1244
684
  this.show();
@@ -1247,7 +687,7 @@
1247
687
 
1248
688
  show() {
1249
689
  if (this._isTransitioning ||
1250
- $(this._element).hasClass(ClassName$3.SHOW)) {
690
+ $(this._element).hasClass(CLASS_NAME_SHOW$1)) {
1251
691
  return
1252
692
  }
1253
693
 
@@ -1255,13 +695,13 @@
1255
695
  let activesData;
1256
696
 
1257
697
  if (this._parent) {
1258
- actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES))
698
+ actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))
1259
699
  .filter((elem) => {
1260
700
  if (typeof this._config.parent === 'string') {
1261
701
  return elem.getAttribute('data-parent') === this._config.parent
1262
702
  }
1263
703
 
1264
- return elem.classList.contains(ClassName$3.COLLAPSE)
704
+ return elem.classList.contains(CLASS_NAME_COLLAPSE)
1265
705
  });
1266
706
 
1267
707
  if (actives.length === 0) {
@@ -1270,13 +710,13 @@
1270
710
  }
1271
711
 
1272
712
  if (actives) {
1273
- activesData = $(actives).not(this._selector).data(DATA_KEY$3);
713
+ activesData = $(actives).not(this._selector).data(DATA_KEY$2);
1274
714
  if (activesData && activesData._isTransitioning) {
1275
715
  return
1276
716
  }
1277
717
  }
1278
718
 
1279
- const startEvent = $.Event(Event$3.SHOW);
719
+ const startEvent = $.Event(EVENT_SHOW);
1280
720
  $(this._element).trigger(startEvent);
1281
721
  if (startEvent.isDefaultPrevented()) {
1282
722
  return
@@ -1285,21 +725,21 @@
1285
725
  if (actives) {
1286
726
  Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
1287
727
  if (!activesData) {
1288
- $(actives).data(DATA_KEY$3, null);
728
+ $(actives).data(DATA_KEY$2, null);
1289
729
  }
1290
730
  }
1291
731
 
1292
732
  const dimension = this._getDimension();
1293
733
 
1294
734
  $(this._element)
1295
- .removeClass(ClassName$3.COLLAPSE)
1296
- .addClass(ClassName$3.COLLAPSING);
735
+ .removeClass(CLASS_NAME_COLLAPSE)
736
+ .addClass(CLASS_NAME_COLLAPSING);
1297
737
 
1298
738
  this._element.style[dimension] = 0;
1299
739
 
1300
740
  if (this._triggerArray.length) {
1301
741
  $(this._triggerArray)
1302
- .removeClass(ClassName$3.COLLAPSED)
742
+ .removeClass(CLASS_NAME_COLLAPSED)
1303
743
  .attr('aria-expanded', true);
1304
744
  }
1305
745
 
@@ -1307,15 +747,14 @@
1307
747
 
1308
748
  const complete = () => {
1309
749
  $(this._element)
1310
- .removeClass(ClassName$3.COLLAPSING)
1311
- .addClass(ClassName$3.COLLAPSE)
1312
- .addClass(ClassName$3.SHOW);
750
+ .removeClass(CLASS_NAME_COLLAPSING)
751
+ .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW$1}`);
1313
752
 
1314
753
  this._element.style[dimension] = '';
1315
754
 
1316
755
  this.setTransitioning(false);
1317
756
 
1318
- $(this._element).trigger(Event$3.SHOWN);
757
+ $(this._element).trigger(EVENT_SHOWN);
1319
758
  };
1320
759
 
1321
760
  const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -1331,11 +770,11 @@
1331
770
 
1332
771
  hide() {
1333
772
  if (this._isTransitioning ||
1334
- !$(this._element).hasClass(ClassName$3.SHOW)) {
773
+ !$(this._element).hasClass(CLASS_NAME_SHOW$1)) {
1335
774
  return
1336
775
  }
1337
776
 
1338
- const startEvent = $.Event(Event$3.HIDE);
777
+ const startEvent = $.Event(EVENT_HIDE);
1339
778
  $(this._element).trigger(startEvent);
1340
779
  if (startEvent.isDefaultPrevented()) {
1341
780
  return
@@ -1348,9 +787,8 @@
1348
787
  Util.reflow(this._element);
1349
788
 
1350
789
  $(this._element)
1351
- .addClass(ClassName$3.COLLAPSING)
1352
- .removeClass(ClassName$3.COLLAPSE)
1353
- .removeClass(ClassName$3.SHOW);
790
+ .addClass(CLASS_NAME_COLLAPSING)
791
+ .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW$1}`);
1354
792
 
1355
793
  const triggerArrayLength = this._triggerArray.length;
1356
794
  if (triggerArrayLength > 0) {
@@ -1360,8 +798,8 @@
1360
798
 
1361
799
  if (selector !== null) {
1362
800
  const $elem = $([].slice.call(document.querySelectorAll(selector)));
1363
- if (!$elem.hasClass(ClassName$3.SHOW)) {
1364
- $(trigger).addClass(ClassName$3.COLLAPSED)
801
+ if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {
802
+ $(trigger).addClass(CLASS_NAME_COLLAPSED)
1365
803
  .attr('aria-expanded', false);
1366
804
  }
1367
805
  }
@@ -1373,9 +811,9 @@
1373
811
  const complete = () => {
1374
812
  this.setTransitioning(false);
1375
813
  $(this._element)
1376
- .removeClass(ClassName$3.COLLAPSING)
1377
- .addClass(ClassName$3.COLLAPSE)
1378
- .trigger(Event$3.HIDDEN);
814
+ .removeClass(CLASS_NAME_COLLAPSING)
815
+ .addClass(CLASS_NAME_COLLAPSE)
816
+ .trigger(EVENT_HIDDEN);
1379
817
  };
1380
818
 
1381
819
  this._element.style[dimension] = '';
@@ -1391,7 +829,7 @@
1391
829
  }
1392
830
 
1393
831
  dispose() {
1394
- $.removeData(this._element, DATA_KEY$3);
832
+ $.removeData(this._element, DATA_KEY$2);
1395
833
 
1396
834
  this._config = null;
1397
835
  this._parent = null;
@@ -1404,17 +842,17 @@
1404
842
 
1405
843
  _getConfig(config) {
1406
844
  config = {
1407
- ...Default$1,
845
+ ...Default,
1408
846
  ...config
1409
847
  };
1410
848
  config.toggle = Boolean(config.toggle); // Coerce string values
1411
- Util.typeCheckConfig(NAME$3, config, DefaultType$1);
849
+ Util.typeCheckConfig(NAME$2, config, DefaultType);
1412
850
  return config
1413
851
  }
1414
852
 
1415
853
  _getDimension() {
1416
- const hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1417
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT
854
+ const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH);
855
+ return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT
1418
856
  }
1419
857
 
1420
858
  _getParent() {
@@ -1431,10 +869,9 @@
1431
869
  parent = document.querySelector(this._config.parent);
1432
870
  }
1433
871
 
1434
- const selector =
1435
- `[data-toggle="collapse"][data-parent="${this._config.parent}"]`;
1436
-
872
+ const selector = `[data-toggle="collapse"][data-parent="${this._config.parent}"]`;
1437
873
  const children = [].slice.call(parent.querySelectorAll(selector));
874
+
1438
875
  $(children).each((i, element) => {
1439
876
  this._addAriaAndCollapsedClass(
1440
877
  Collapse._getTargetFromElement(element),
@@ -1446,11 +883,11 @@
1446
883
  }
1447
884
 
1448
885
  _addAriaAndCollapsedClass(element, triggerArray) {
1449
- const isOpen = $(element).hasClass(ClassName$3.SHOW);
886
+ const isOpen = $(element).hasClass(CLASS_NAME_SHOW$1);
1450
887
 
1451
888
  if (triggerArray.length) {
1452
889
  $(triggerArray)
1453
- .toggleClass(ClassName$3.COLLAPSED, !isOpen)
890
+ .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)
1454
891
  .attr('aria-expanded', isOpen);
1455
892
  }
1456
893
  }
@@ -1465,20 +902,20 @@
1465
902
  static _jQueryInterface(config) {
1466
903
  return this.each(function () {
1467
904
  const $this = $(this);
1468
- let data = $this.data(DATA_KEY$3);
905
+ let data = $this.data(DATA_KEY$2);
1469
906
  const _config = {
1470
- ...Default$1,
907
+ ...Default,
1471
908
  ...$this.data(),
1472
909
  ...typeof config === 'object' && config ? config : {}
1473
910
  };
1474
911
 
1475
- if (!data && _config.toggle && /show|hide/.test(config)) {
912
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
1476
913
  _config.toggle = false;
1477
914
  }
1478
915
 
1479
916
  if (!data) {
1480
917
  data = new Collapse(this, _config);
1481
- $this.data(DATA_KEY$3, data);
918
+ $this.data(DATA_KEY$2, data);
1482
919
  }
1483
920
 
1484
921
  if (typeof config === 'string') {
@@ -1497,7 +934,7 @@
1497
934
  * ------------------------------------------------------------------------
1498
935
  */
1499
936
 
1500
- $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
937
+ $(document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$1, function (event) {
1501
938
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1502
939
  if (event.currentTarget.tagName === 'A') {
1503
940
  event.preventDefault();
@@ -1509,7 +946,7 @@
1509
946
 
1510
947
  $(selectors).each(function () {
1511
948
  const $target = $(this);
1512
- const data = $target.data(DATA_KEY$3);
949
+ const data = $target.data(DATA_KEY$2);
1513
950
  const config = data ? 'toggle' : $trigger.data();
1514
951
  Collapse._jQueryInterface.call($target, config);
1515
952
  });
@@ -1521,10 +958,10 @@
1521
958
  * ------------------------------------------------------------------------
1522
959
  */
1523
960
 
1524
- $.fn[NAME$3] = Collapse._jQueryInterface;
1525
- $.fn[NAME$3].Constructor = Collapse;
1526
- $.fn[NAME$3].noConflict = () => {
1527
- $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
961
+ $.fn[NAME$2] = Collapse._jQueryInterface;
962
+ $.fn[NAME$2].Constructor = Collapse;
963
+ $.fn[NAME$2].noConflict = () => {
964
+ $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
1528
965
  return Collapse._jQueryInterface
1529
966
  };
1530
967
 
@@ -4132,8 +3569,8 @@
4132
3569
 
4133
3570
  /**
4134
3571
  * --------------------------------------------------------------------------
4135
- * Bootstrap (v4.3.1): dropdown.js
4136
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3572
+ * Bootstrap (v4.5.2): dropdown.js
3573
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4137
3574
  * --------------------------------------------------------------------------
4138
3575
  */
4139
3576
 
@@ -4143,12 +3580,12 @@
4143
3580
  * ------------------------------------------------------------------------
4144
3581
  */
4145
3582
 
4146
- const NAME$4 = 'dropdown';
4147
- const VERSION$4 = '4.3.1';
4148
- const DATA_KEY$4 = 'bs.dropdown';
4149
- const EVENT_KEY$4 = `.${DATA_KEY$4}`;
4150
- const DATA_API_KEY$4 = '.data-api';
4151
- const JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];
3583
+ const NAME$3 = 'dropdown';
3584
+ const VERSION$3 = '4.5.2';
3585
+ const DATA_KEY$3 = 'bs.dropdown';
3586
+ const EVENT_KEY$3 = `.${DATA_KEY$3}`;
3587
+ const DATA_API_KEY$3 = '.data-api';
3588
+ const JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];
4152
3589
  const ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
4153
3590
  const SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
4154
3591
  const TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
@@ -4157,61 +3594,52 @@
4157
3594
  const RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
4158
3595
  const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`);
4159
3596
 
4160
- const Event$4 = {
4161
- HIDE : `hide${EVENT_KEY$4}`,
4162
- HIDDEN : `hidden${EVENT_KEY$4}`,
4163
- SHOW : `show${EVENT_KEY$4}`,
4164
- SHOWN : `shown${EVENT_KEY$4}`,
4165
- CLICK : `click${EVENT_KEY$4}`,
4166
- CLICK_DATA_API : `click${EVENT_KEY$4}${DATA_API_KEY$4}`,
4167
- KEYDOWN_DATA_API : `keydown${EVENT_KEY$4}${DATA_API_KEY$4}`,
4168
- KEYUP_DATA_API : `keyup${EVENT_KEY$4}${DATA_API_KEY$4}`
4169
- };
4170
-
4171
- const ClassName$4 = {
4172
- DISABLED : 'disabled',
4173
- SHOW : 'show',
4174
- DROPUP : 'dropup',
4175
- DROPRIGHT : 'dropright',
4176
- DROPLEFT : 'dropleft',
4177
- MENURIGHT : 'dropdown-menu-right',
4178
- MENULEFT : 'dropdown-menu-left',
4179
- POSITION_STATIC : 'position-static'
4180
- };
4181
-
4182
- const Selector$4 = {
4183
- DATA_TOGGLE : '[data-toggle="dropdown"]',
4184
- FORM_CHILD : '.dropdown form',
4185
- MENU : '.dropdown-menu',
4186
- NAVBAR_NAV : '.navbar-nav',
4187
- VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
4188
- };
4189
-
4190
- const AttachmentMap = {
4191
- TOP : 'top-start',
4192
- TOPEND : 'top-end',
4193
- BOTTOM : 'bottom-start',
4194
- BOTTOMEND : 'bottom-end',
4195
- RIGHT : 'right-start',
4196
- RIGHTEND : 'right-end',
4197
- LEFT : 'left-start',
4198
- LEFTEND : 'left-end'
4199
- };
3597
+ const EVENT_HIDE$1 = `hide${EVENT_KEY$3}`;
3598
+ const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$3}`;
3599
+ const EVENT_SHOW$1 = `show${EVENT_KEY$3}`;
3600
+ const EVENT_SHOWN$1 = `shown${EVENT_KEY$3}`;
3601
+ const EVENT_CLICK = `click${EVENT_KEY$3}`;
3602
+ const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$3}${DATA_API_KEY$3}`;
3603
+ const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$3}${DATA_API_KEY$3}`;
3604
+ const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$3}${DATA_API_KEY$3}`;
3605
+
3606
+ const CLASS_NAME_DISABLED = 'disabled';
3607
+ const CLASS_NAME_SHOW$2 = 'show';
3608
+ const CLASS_NAME_DROPUP = 'dropup';
3609
+ const CLASS_NAME_DROPRIGHT = 'dropright';
3610
+ const CLASS_NAME_DROPLEFT = 'dropleft';
3611
+ const CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
3612
+ const CLASS_NAME_POSITION_STATIC = 'position-static';
3613
+
3614
+ const SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]';
3615
+ const SELECTOR_FORM_CHILD = '.dropdown form';
3616
+ const SELECTOR_MENU = '.dropdown-menu';
3617
+ const SELECTOR_NAVBAR_NAV = '.navbar-nav';
3618
+ const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
3619
+
3620
+ const PLACEMENT_TOP = 'top-start';
3621
+ const PLACEMENT_TOPEND = 'top-end';
3622
+ const PLACEMENT_BOTTOM = 'bottom-start';
3623
+ const PLACEMENT_BOTTOMEND = 'bottom-end';
3624
+ const PLACEMENT_RIGHT = 'right-start';
3625
+ const PLACEMENT_LEFT = 'left-start';
4200
3626
 
4201
- const Default$2 = {
4202
- offset : 0,
4203
- flip : true,
4204
- boundary : 'scrollParent',
4205
- reference : 'toggle',
4206
- display : 'dynamic'
3627
+ const Default$1 = {
3628
+ offset : 0,
3629
+ flip : true,
3630
+ boundary : 'scrollParent',
3631
+ reference : 'toggle',
3632
+ display : 'dynamic',
3633
+ popperConfig : null
4207
3634
  };
4208
3635
 
4209
- const DefaultType$2 = {
4210
- offset : '(number|string|function)',
4211
- flip : 'boolean',
4212
- boundary : '(string|element)',
4213
- reference : '(string|element)',
4214
- display : 'string'
3636
+ const DefaultType$1 = {
3637
+ offset : '(number|string|function)',
3638
+ flip : 'boolean',
3639
+ boundary : '(string|element)',
3640
+ reference : '(string|element)',
3641
+ display : 'string',
3642
+ popperConfig : '(null|object)'
4215
3643
  };
4216
3644
 
4217
3645
  /**
@@ -4234,26 +3662,25 @@
4234
3662
  // Getters
4235
3663
 
4236
3664
  static get VERSION() {
4237
- return VERSION$4
3665
+ return VERSION$3
4238
3666
  }
4239
3667
 
4240
3668
  static get Default() {
4241
- return Default$2
3669
+ return Default$1
4242
3670
  }
4243
3671
 
4244
3672
  static get DefaultType() {
4245
- return DefaultType$2
3673
+ return DefaultType$1
4246
3674
  }
4247
3675
 
4248
3676
  // Public
4249
3677
 
4250
3678
  toggle() {
4251
- if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {
3679
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
4252
3680
  return
4253
3681
  }
4254
3682
 
4255
- const parent = Dropdown._getParentFromElement(this._element);
4256
- const isActive = $(this._menu).hasClass(ClassName$4.SHOW);
3683
+ const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW$2);
4257
3684
 
4258
3685
  Dropdown._clearMenus();
4259
3686
 
@@ -4261,10 +3688,19 @@
4261
3688
  return
4262
3689
  }
4263
3690
 
3691
+ this.show(true);
3692
+ }
3693
+
3694
+ show(usePopper = false) {
3695
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW$2)) {
3696
+ return
3697
+ }
3698
+
4264
3699
  const relatedTarget = {
4265
3700
  relatedTarget: this._element
4266
3701
  };
4267
- const showEvent = $.Event(Event$4.SHOW, relatedTarget);
3702
+ const showEvent = $.Event(EVENT_SHOW$1, relatedTarget);
3703
+ const parent = Dropdown._getParentFromElement(this._element);
4268
3704
 
4269
3705
  $(parent).trigger(showEvent);
4270
3706
 
@@ -4273,7 +3709,7 @@
4273
3709
  }
4274
3710
 
4275
3711
  // Disable totally Popper.js for Dropdown in Navbar
4276
- if (!this._inNavbar) {
3712
+ if (!this._inNavbar && usePopper) {
4277
3713
  /**
4278
3714
  * Check for Popper dependency
4279
3715
  * Popper - https://popper.js.org
@@ -4299,7 +3735,7 @@
4299
3735
  // to allow the menu to "escape" the scroll parent's boundaries
4300
3736
  // https://github.com/twbs/bootstrap/issues/24251
4301
3737
  if (this._config.boundary !== 'scrollParent') {
4302
- $(parent).addClass(ClassName$4.POSITION_STATIC);
3738
+ $(parent).addClass(CLASS_NAME_POSITION_STATIC);
4303
3739
  }
4304
3740
  this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
4305
3741
  }
@@ -4309,51 +3745,28 @@
4309
3745
  // only needed because of broken event delegation on iOS
4310
3746
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
4311
3747
  if ('ontouchstart' in document.documentElement &&
4312
- $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {
3748
+ $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
4313
3749
  $(document.body).children().on('mouseover', null, $.noop);
4314
3750
  }
4315
3751
 
4316
3752
  this._element.focus();
4317
3753
  this._element.setAttribute('aria-expanded', true);
4318
3754
 
4319
- $(this._menu).toggleClass(ClassName$4.SHOW);
3755
+ $(this._menu).toggleClass(CLASS_NAME_SHOW$2);
4320
3756
  $(parent)
4321
- .toggleClass(ClassName$4.SHOW)
4322
- .trigger($.Event(Event$4.SHOWN, relatedTarget));
4323
- }
4324
-
4325
- show() {
4326
- if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {
4327
- return
4328
- }
4329
-
4330
- const relatedTarget = {
4331
- relatedTarget: this._element
4332
- };
4333
- const showEvent = $.Event(Event$4.SHOW, relatedTarget);
4334
- const parent = Dropdown._getParentFromElement(this._element);
4335
-
4336
- $(parent).trigger(showEvent);
4337
-
4338
- if (showEvent.isDefaultPrevented()) {
4339
- return
4340
- }
4341
-
4342
- $(this._menu).toggleClass(ClassName$4.SHOW);
4343
- $(parent)
4344
- .toggleClass(ClassName$4.SHOW)
4345
- .trigger($.Event(Event$4.SHOWN, relatedTarget));
3757
+ .toggleClass(CLASS_NAME_SHOW$2)
3758
+ .trigger($.Event(EVENT_SHOWN$1, relatedTarget));
4346
3759
  }
4347
3760
 
4348
3761
  hide() {
4349
- if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {
3762
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW$2)) {
4350
3763
  return
4351
3764
  }
4352
3765
 
4353
3766
  const relatedTarget = {
4354
3767
  relatedTarget: this._element
4355
3768
  };
4356
- const hideEvent = $.Event(Event$4.HIDE, relatedTarget);
3769
+ const hideEvent = $.Event(EVENT_HIDE$1, relatedTarget);
4357
3770
  const parent = Dropdown._getParentFromElement(this._element);
4358
3771
 
4359
3772
  $(parent).trigger(hideEvent);
@@ -4362,15 +3775,19 @@
4362
3775
  return
4363
3776
  }
4364
3777
 
4365
- $(this._menu).toggleClass(ClassName$4.SHOW);
3778
+ if (this._popper) {
3779
+ this._popper.destroy();
3780
+ }
3781
+
3782
+ $(this._menu).toggleClass(CLASS_NAME_SHOW$2);
4366
3783
  $(parent)
4367
- .toggleClass(ClassName$4.SHOW)
4368
- .trigger($.Event(Event$4.HIDDEN, relatedTarget));
3784
+ .toggleClass(CLASS_NAME_SHOW$2)
3785
+ .trigger($.Event(EVENT_HIDDEN$1, relatedTarget));
4369
3786
  }
4370
3787
 
4371
3788
  dispose() {
4372
- $.removeData(this._element, DATA_KEY$4);
4373
- $(this._element).off(EVENT_KEY$4);
3789
+ $.removeData(this._element, DATA_KEY$3);
3790
+ $(this._element).off(EVENT_KEY$3);
4374
3791
  this._element = null;
4375
3792
  this._menu = null;
4376
3793
  if (this._popper !== null) {
@@ -4389,7 +3806,7 @@
4389
3806
  // Private
4390
3807
 
4391
3808
  _addEventListeners() {
4392
- $(this._element).on(Event$4.CLICK, (event) => {
3809
+ $(this._element).on(EVENT_CLICK, (event) => {
4393
3810
  event.preventDefault();
4394
3811
  event.stopPropagation();
4395
3812
  this.toggle();
@@ -4404,7 +3821,7 @@
4404
3821
  };
4405
3822
 
4406
3823
  Util.typeCheckConfig(
4407
- NAME$4,
3824
+ NAME$3,
4408
3825
  config,
4409
3826
  this.constructor.DefaultType
4410
3827
  );
@@ -4417,7 +3834,7 @@
4417
3834
  const parent = Dropdown._getParentFromElement(this._element);
4418
3835
 
4419
3836
  if (parent) {
4420
- this._menu = parent.querySelector(Selector$4.MENU);
3837
+ this._menu = parent.querySelector(SELECTOR_MENU);
4421
3838
  }
4422
3839
  }
4423
3840
  return this._menu
@@ -4425,20 +3842,19 @@
4425
3842
 
4426
3843
  _getPlacement() {
4427
3844
  const $parentDropdown = $(this._element.parentNode);
4428
- let placement = AttachmentMap.BOTTOM;
3845
+ let placement = PLACEMENT_BOTTOM;
4429
3846
 
4430
3847
  // Handle dropup
4431
- if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {
4432
- placement = AttachmentMap.TOP;
4433
- if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
4434
- placement = AttachmentMap.TOPEND;
4435
- }
4436
- } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {
4437
- placement = AttachmentMap.RIGHT;
4438
- } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {
4439
- placement = AttachmentMap.LEFT;
4440
- } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
4441
- placement = AttachmentMap.BOTTOMEND;
3848
+ if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
3849
+ placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)
3850
+ ? PLACEMENT_TOPEND
3851
+ : PLACEMENT_TOP;
3852
+ } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
3853
+ placement = PLACEMENT_RIGHT;
3854
+ } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
3855
+ placement = PLACEMENT_LEFT;
3856
+ } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
3857
+ placement = PLACEMENT_BOTTOMEND;
4442
3858
  }
4443
3859
  return placement
4444
3860
  }
@@ -4487,19 +3903,22 @@
4487
3903
  };
4488
3904
  }
4489
3905
 
4490
- return popperConfig
3906
+ return {
3907
+ ...popperConfig,
3908
+ ...this._config.popperConfig
3909
+ }
4491
3910
  }
4492
3911
 
4493
3912
  // Static
4494
3913
 
4495
3914
  static _jQueryInterface(config) {
4496
3915
  return this.each(function () {
4497
- let data = $(this).data(DATA_KEY$4);
3916
+ let data = $(this).data(DATA_KEY$3);
4498
3917
  const _config = typeof config === 'object' ? config : null;
4499
3918
 
4500
3919
  if (!data) {
4501
3920
  data = new Dropdown(this, _config);
4502
- $(this).data(DATA_KEY$4, data);
3921
+ $(this).data(DATA_KEY$3, data);
4503
3922
  }
4504
3923
 
4505
3924
  if (typeof config === 'string') {
@@ -4517,11 +3936,11 @@
4517
3936
  return
4518
3937
  }
4519
3938
 
4520
- const toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));
3939
+ const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));
4521
3940
 
4522
3941
  for (let i = 0, len = toggles.length; i < len; i++) {
4523
3942
  const parent = Dropdown._getParentFromElement(toggles[i]);
4524
- const context = $(toggles[i]).data(DATA_KEY$4);
3943
+ const context = $(toggles[i]).data(DATA_KEY$3);
4525
3944
  const relatedTarget = {
4526
3945
  relatedTarget: toggles[i]
4527
3946
  };
@@ -4535,7 +3954,7 @@
4535
3954
  }
4536
3955
 
4537
3956
  const dropdownMenu = context._menu;
4538
- if (!$(parent).hasClass(ClassName$4.SHOW)) {
3957
+ if (!$(parent).hasClass(CLASS_NAME_SHOW$2)) {
4539
3958
  continue
4540
3959
  }
4541
3960
 
@@ -4545,7 +3964,7 @@
4545
3964
  continue
4546
3965
  }
4547
3966
 
4548
- const hideEvent = $.Event(Event$4.HIDE, relatedTarget);
3967
+ const hideEvent = $.Event(EVENT_HIDE$1, relatedTarget);
4549
3968
  $(parent).trigger(hideEvent);
4550
3969
  if (hideEvent.isDefaultPrevented()) {
4551
3970
  continue
@@ -4559,10 +3978,14 @@
4559
3978
 
4560
3979
  toggles[i].setAttribute('aria-expanded', 'false');
4561
3980
 
4562
- $(dropdownMenu).removeClass(ClassName$4.SHOW);
3981
+ if (context._popper) {
3982
+ context._popper.destroy();
3983
+ }
3984
+
3985
+ $(dropdownMenu).removeClass(CLASS_NAME_SHOW$2);
4563
3986
  $(parent)
4564
- .removeClass(ClassName$4.SHOW)
4565
- .trigger($.Event(Event$4.HIDDEN, relatedTarget));
3987
+ .removeClass(CLASS_NAME_SHOW$2)
3988
+ .trigger($.Event(EVENT_HIDDEN$1, relatedTarget));
4566
3989
  }
4567
3990
  }
4568
3991
 
@@ -4589,31 +4012,35 @@
4589
4012
  if (/input|textarea/i.test(event.target.tagName)
4590
4013
  ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&
4591
4014
  (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||
4592
- $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
4015
+ $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
4593
4016
  return
4594
4017
  }
4595
4018
 
4596
- event.preventDefault();
4597
- event.stopPropagation();
4598
-
4599
- if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {
4019
+ if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {
4600
4020
  return
4601
4021
  }
4602
4022
 
4603
4023
  const parent = Dropdown._getParentFromElement(this);
4604
- const isActive = $(parent).hasClass(ClassName$4.SHOW);
4024
+ const isActive = $(parent).hasClass(CLASS_NAME_SHOW$2);
4025
+
4026
+ if (!isActive && event.which === ESCAPE_KEYCODE) {
4027
+ return
4028
+ }
4029
+
4030
+ event.preventDefault();
4031
+ event.stopPropagation();
4605
4032
 
4606
4033
  if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
4607
4034
  if (event.which === ESCAPE_KEYCODE) {
4608
- const toggle = parent.querySelector(Selector$4.DATA_TOGGLE);
4609
- $(toggle).trigger('focus');
4035
+ $(parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');
4610
4036
  }
4611
4037
 
4612
4038
  $(this).trigger('click');
4613
4039
  return
4614
4040
  }
4615
4041
 
4616
- const items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));
4042
+ const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))
4043
+ .filter((item) => $(item).is(':visible'));
4617
4044
 
4618
4045
  if (items.length === 0) {
4619
4046
  return
@@ -4644,15 +4071,15 @@
4644
4071
  */
4645
4072
 
4646
4073
  $(document)
4647
- .on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)
4648
- .on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler)
4649
- .on(`${Event$4.CLICK_DATA_API} ${Event$4.KEYUP_DATA_API}`, Dropdown._clearMenus)
4650
- .on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {
4074
+ .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler)
4075
+ .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)
4076
+ .on(`${EVENT_CLICK_DATA_API$3} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)
4077
+ .on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$2, function (event) {
4651
4078
  event.preventDefault();
4652
4079
  event.stopPropagation();
4653
4080
  Dropdown._jQueryInterface.call($(this), 'toggle');
4654
4081
  })
4655
- .on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, (e) => {
4082
+ .on(EVENT_CLICK_DATA_API$3, SELECTOR_FORM_CHILD, (e) => {
4656
4083
  e.stopPropagation();
4657
4084
  });
4658
4085
 
@@ -4662,17 +4089,17 @@
4662
4089
  * ------------------------------------------------------------------------
4663
4090
  */
4664
4091
 
4665
- $.fn[NAME$4] = Dropdown._jQueryInterface;
4666
- $.fn[NAME$4].Constructor = Dropdown;
4667
- $.fn[NAME$4].noConflict = () => {
4668
- $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
4092
+ $.fn[NAME$3] = Dropdown._jQueryInterface;
4093
+ $.fn[NAME$3].Constructor = Dropdown;
4094
+ $.fn[NAME$3].noConflict = () => {
4095
+ $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
4669
4096
  return Dropdown._jQueryInterface
4670
4097
  };
4671
4098
 
4672
4099
  /**
4673
4100
  * --------------------------------------------------------------------------
4674
- * Bootstrap (v4.3.1): modal.js
4675
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4101
+ * Bootstrap (v4.5.2): modal.js
4102
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4676
4103
  * --------------------------------------------------------------------------
4677
4104
  */
4678
4105
 
@@ -4682,59 +4109,55 @@
4682
4109
  * ------------------------------------------------------------------------
4683
4110
  */
4684
4111
 
4685
- const NAME$5 = 'modal';
4686
- const VERSION$5 = '4.3.1';
4687
- const DATA_KEY$5 = 'bs.modal';
4688
- const EVENT_KEY$5 = `.${DATA_KEY$5}`;
4689
- const DATA_API_KEY$5 = '.data-api';
4690
- const JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];
4112
+ const NAME$4 = 'modal';
4113
+ const VERSION$4 = '4.5.2';
4114
+ const DATA_KEY$4 = 'bs.modal';
4115
+ const EVENT_KEY$4 = `.${DATA_KEY$4}`;
4116
+ const DATA_API_KEY$4 = '.data-api';
4117
+ const JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];
4691
4118
  const ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
4692
4119
 
4693
- const Default$3 = {
4120
+ const Default$2 = {
4694
4121
  backdrop : true,
4695
4122
  keyboard : true,
4696
4123
  focus : true,
4697
4124
  show : true
4698
4125
  };
4699
4126
 
4700
- const DefaultType$3 = {
4127
+ const DefaultType$2 = {
4701
4128
  backdrop : '(boolean|string)',
4702
4129
  keyboard : 'boolean',
4703
4130
  focus : 'boolean',
4704
4131
  show : 'boolean'
4705
4132
  };
4706
4133
 
4707
- const Event$5 = {
4708
- HIDE : `hide${EVENT_KEY$5}`,
4709
- HIDDEN : `hidden${EVENT_KEY$5}`,
4710
- SHOW : `show${EVENT_KEY$5}`,
4711
- SHOWN : `shown${EVENT_KEY$5}`,
4712
- FOCUSIN : `focusin${EVENT_KEY$5}`,
4713
- RESIZE : `resize${EVENT_KEY$5}`,
4714
- CLICK_DISMISS : `click.dismiss${EVENT_KEY$5}`,
4715
- KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY$5}`,
4716
- MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY$5}`,
4717
- MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY$5}`,
4718
- CLICK_DATA_API : `click${EVENT_KEY$5}${DATA_API_KEY$5}`
4719
- };
4720
-
4721
- const ClassName$5 = {
4722
- SCROLLABLE : 'modal-dialog-scrollable',
4723
- SCROLLBAR_MEASURER : 'modal-scrollbar-measure',
4724
- BACKDROP : 'modal-backdrop',
4725
- OPEN : 'modal-open',
4726
- FADE : 'fade',
4727
- SHOW : 'show'
4728
- };
4729
-
4730
- const Selector$5 = {
4731
- DIALOG : '.modal-dialog',
4732
- MODAL_BODY : '.modal-body',
4733
- DATA_TOGGLE : '[data-toggle="modal"]',
4734
- DATA_DISMISS : '[data-dismiss="modal"]',
4735
- FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
4736
- STICKY_CONTENT : '.sticky-top'
4737
- };
4134
+ const EVENT_HIDE$2 = `hide${EVENT_KEY$4}`;
4135
+ const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$4}`;
4136
+ const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$4}`;
4137
+ const EVENT_SHOW$2 = `show${EVENT_KEY$4}`;
4138
+ const EVENT_SHOWN$2 = `shown${EVENT_KEY$4}`;
4139
+ const EVENT_FOCUSIN = `focusin${EVENT_KEY$4}`;
4140
+ const EVENT_RESIZE = `resize${EVENT_KEY$4}`;
4141
+ const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
4142
+ const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$4}`;
4143
+ const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$4}`;
4144
+ const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
4145
+ const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$4}${DATA_API_KEY$4}`;
4146
+
4147
+ const CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
4148
+ const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
4149
+ const CLASS_NAME_BACKDROP = 'modal-backdrop';
4150
+ const CLASS_NAME_OPEN = 'modal-open';
4151
+ const CLASS_NAME_FADE$1 = 'fade';
4152
+ const CLASS_NAME_SHOW$3 = 'show';
4153
+ const CLASS_NAME_STATIC = 'modal-static';
4154
+
4155
+ const SELECTOR_DIALOG = '.modal-dialog';
4156
+ const SELECTOR_MODAL_BODY = '.modal-body';
4157
+ const SELECTOR_DATA_TOGGLE$3 = '[data-toggle="modal"]';
4158
+ const SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
4159
+ const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
4160
+ const SELECTOR_STICKY_CONTENT = '.sticky-top';
4738
4161
 
4739
4162
  /**
4740
4163
  * ------------------------------------------------------------------------
@@ -4746,7 +4169,7 @@
4746
4169
  constructor(element, config) {
4747
4170
  this._config = this._getConfig(config);
4748
4171
  this._element = element;
4749
- this._dialog = element.querySelector(Selector$5.DIALOG);
4172
+ this._dialog = element.querySelector(SELECTOR_DIALOG);
4750
4173
  this._backdrop = null;
4751
4174
  this._isShown = false;
4752
4175
  this._isBodyOverflowing = false;
@@ -4758,11 +4181,11 @@
4758
4181
  // Getters
4759
4182
 
4760
4183
  static get VERSION() {
4761
- return VERSION$5
4184
+ return VERSION$4
4762
4185
  }
4763
4186
 
4764
4187
  static get Default() {
4765
- return Default$3
4188
+ return Default$2
4766
4189
  }
4767
4190
 
4768
4191
  // Public
@@ -4776,11 +4199,11 @@
4776
4199
  return
4777
4200
  }
4778
4201
 
4779
- if ($(this._element).hasClass(ClassName$5.FADE)) {
4202
+ if ($(this._element).hasClass(CLASS_NAME_FADE$1)) {
4780
4203
  this._isTransitioning = true;
4781
4204
  }
4782
4205
 
4783
- const showEvent = $.Event(Event$5.SHOW, {
4206
+ const showEvent = $.Event(EVENT_SHOW$2, {
4784
4207
  relatedTarget
4785
4208
  });
4786
4209
 
@@ -4801,13 +4224,13 @@
4801
4224
  this._setResizeEvent();
4802
4225
 
4803
4226
  $(this._element).on(
4804
- Event$5.CLICK_DISMISS,
4805
- Selector$5.DATA_DISMISS,
4227
+ EVENT_CLICK_DISMISS,
4228
+ SELECTOR_DATA_DISMISS,
4806
4229
  (event) => this.hide(event)
4807
4230
  );
4808
4231
 
4809
- $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, () => {
4810
- $(this._element).one(Event$5.MOUSEUP_DISMISS, (event) => {
4232
+ $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {
4233
+ $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {
4811
4234
  if ($(event.target).is(this._element)) {
4812
4235
  this._ignoreBackdropClick = true;
4813
4236
  }
@@ -4826,7 +4249,7 @@
4826
4249
  return
4827
4250
  }
4828
4251
 
4829
- const hideEvent = $.Event(Event$5.HIDE);
4252
+ const hideEvent = $.Event(EVENT_HIDE$2);
4830
4253
 
4831
4254
  $(this._element).trigger(hideEvent);
4832
4255
 
@@ -4835,7 +4258,7 @@
4835
4258
  }
4836
4259
 
4837
4260
  this._isShown = false;
4838
- const transition = $(this._element).hasClass(ClassName$5.FADE);
4261
+ const transition = $(this._element).hasClass(CLASS_NAME_FADE$1);
4839
4262
 
4840
4263
  if (transition) {
4841
4264
  this._isTransitioning = true;
@@ -4844,13 +4267,12 @@
4844
4267
  this._setEscapeEvent();
4845
4268
  this._setResizeEvent();
4846
4269
 
4847
- $(document).off(Event$5.FOCUSIN);
4848
-
4849
- $(this._element).removeClass(ClassName$5.SHOW);
4270
+ $(document).off(EVENT_FOCUSIN);
4850
4271
 
4851
- $(this._element).off(Event$5.CLICK_DISMISS);
4852
- $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);
4272
+ $(this._element).removeClass(CLASS_NAME_SHOW$3);
4853
4273
 
4274
+ $(this._element).off(EVENT_CLICK_DISMISS);
4275
+ $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
4854
4276
 
4855
4277
  if (transition) {
4856
4278
  const transitionDuration = Util.getTransitionDurationFromElement(this._element);
@@ -4865,16 +4287,16 @@
4865
4287
 
4866
4288
  dispose() {
4867
4289
  [window, this._element, this._dialog]
4868
- .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY$5));
4290
+ .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY$4));
4869
4291
 
4870
4292
  /**
4871
- * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
4293
+ * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
4872
4294
  * Do not move `document` in `htmlElements` array
4873
- * It will remove `Event.CLICK_DATA_API` event that should remain
4295
+ * It will remove `EVENT_CLICK_DATA_API` event that should remain
4874
4296
  */
4875
- $(document).off(Event$5.FOCUSIN);
4297
+ $(document).off(EVENT_FOCUSIN);
4876
4298
 
4877
- $.removeData(this._element, DATA_KEY$5);
4299
+ $.removeData(this._element, DATA_KEY$4);
4878
4300
 
4879
4301
  this._config = null;
4880
4302
  this._element = null;
@@ -4895,15 +4317,52 @@
4895
4317
 
4896
4318
  _getConfig(config) {
4897
4319
  config = {
4898
- ...Default$3,
4320
+ ...Default$2,
4899
4321
  ...config
4900
4322
  };
4901
- Util.typeCheckConfig(NAME$5, config, DefaultType$3);
4323
+ Util.typeCheckConfig(NAME$4, config, DefaultType$2);
4902
4324
  return config
4903
4325
  }
4904
4326
 
4327
+ _triggerBackdropTransition() {
4328
+ if (this._config.backdrop === 'static') {
4329
+ const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED);
4330
+
4331
+ $(this._element).trigger(hideEventPrevented);
4332
+ if (hideEventPrevented.defaultPrevented) {
4333
+ return
4334
+ }
4335
+
4336
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
4337
+
4338
+ if (!isModalOverflowing) {
4339
+ this._element.style.overflowY = 'hidden';
4340
+ }
4341
+
4342
+ this._element.classList.add(CLASS_NAME_STATIC);
4343
+
4344
+ const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);
4345
+ $(this._element).off(Util.TRANSITION_END);
4346
+
4347
+ $(this._element).one(Util.TRANSITION_END, () => {
4348
+ this._element.classList.remove(CLASS_NAME_STATIC);
4349
+ if (!isModalOverflowing) {
4350
+ $(this._element).one(Util.TRANSITION_END, () => {
4351
+ this._element.style.overflowY = '';
4352
+ })
4353
+ .emulateTransitionEnd(this._element, modalTransitionDuration);
4354
+ }
4355
+ })
4356
+ .emulateTransitionEnd(modalTransitionDuration);
4357
+ this._element.focus();
4358
+ } else {
4359
+ this.hide();
4360
+ }
4361
+ }
4362
+
4905
4363
  _showElement(relatedTarget) {
4906
- const transition = $(this._element).hasClass(ClassName$5.FADE);
4364
+ const transition = $(this._element).hasClass(CLASS_NAME_FADE$1);
4365
+ const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
4907
4366
 
4908
4367
  if (!this._element.parentNode ||
4909
4368
  this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
@@ -4914,9 +4373,10 @@
4914
4373
  this._element.style.display = 'block';
4915
4374
  this._element.removeAttribute('aria-hidden');
4916
4375
  this._element.setAttribute('aria-modal', true);
4376
+ this._element.setAttribute('role', 'dialog');
4917
4377
 
4918
- if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
4919
- this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
4378
+ if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
4379
+ modalBody.scrollTop = 0;
4920
4380
  } else {
4921
4381
  this._element.scrollTop = 0;
4922
4382
  }
@@ -4925,13 +4385,13 @@
4925
4385
  Util.reflow(this._element);
4926
4386
  }
4927
4387
 
4928
- $(this._element).addClass(ClassName$5.SHOW);
4388
+ $(this._element).addClass(CLASS_NAME_SHOW$3);
4929
4389
 
4930
4390
  if (this._config.focus) {
4931
4391
  this._enforceFocus();
4932
4392
  }
4933
4393
 
4934
- const shownEvent = $.Event(Event$5.SHOWN, {
4394
+ const shownEvent = $.Event(EVENT_SHOWN$2, {
4935
4395
  relatedTarget
4936
4396
  });
4937
4397
 
@@ -4956,8 +4416,8 @@
4956
4416
 
4957
4417
  _enforceFocus() {
4958
4418
  $(document)
4959
- .off(Event$5.FOCUSIN) // Guard against infinite focus loop
4960
- .on(Event$5.FOCUSIN, (event) => {
4419
+ .off(EVENT_FOCUSIN) // Guard against infinite focus loop
4420
+ .on(EVENT_FOCUSIN, (event) => {
4961
4421
  if (document !== event.target &&
4962
4422
  this._element !== event.target &&
4963
4423
  $(this._element).has(event.target).length === 0) {
@@ -4967,23 +4427,25 @@
4967
4427
  }
4968
4428
 
4969
4429
  _setEscapeEvent() {
4970
- if (this._isShown && this._config.keyboard) {
4971
- $(this._element).on(Event$5.KEYDOWN_DISMISS, (event) => {
4972
- if (event.which === ESCAPE_KEYCODE$1) {
4430
+ if (this._isShown) {
4431
+ $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {
4432
+ if (this._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
4973
4433
  event.preventDefault();
4974
4434
  this.hide();
4435
+ } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
4436
+ this._triggerBackdropTransition();
4975
4437
  }
4976
4438
  });
4977
4439
  } else if (!this._isShown) {
4978
- $(this._element).off(Event$5.KEYDOWN_DISMISS);
4440
+ $(this._element).off(EVENT_KEYDOWN_DISMISS);
4979
4441
  }
4980
4442
  }
4981
4443
 
4982
4444
  _setResizeEvent() {
4983
4445
  if (this._isShown) {
4984
- $(window).on(Event$5.RESIZE, (event) => this.handleUpdate(event));
4446
+ $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event));
4985
4447
  } else {
4986
- $(window).off(Event$5.RESIZE);
4448
+ $(window).off(EVENT_RESIZE);
4987
4449
  }
4988
4450
  }
4989
4451
 
@@ -4991,12 +4453,13 @@
4991
4453
  this._element.style.display = 'none';
4992
4454
  this._element.setAttribute('aria-hidden', true);
4993
4455
  this._element.removeAttribute('aria-modal');
4456
+ this._element.removeAttribute('role');
4994
4457
  this._isTransitioning = false;
4995
4458
  this._showBackdrop(() => {
4996
- $(document.body).removeClass(ClassName$5.OPEN);
4459
+ $(document.body).removeClass(CLASS_NAME_OPEN);
4997
4460
  this._resetAdjustments();
4998
4461
  this._resetScrollbar();
4999
- $(this._element).trigger(Event$5.HIDDEN);
4462
+ $(this._element).trigger(EVENT_HIDDEN$2);
5000
4463
  });
5001
4464
  }
5002
4465
 
@@ -5008,12 +4471,12 @@
5008
4471
  }
5009
4472
 
5010
4473
  _showBackdrop(callback) {
5011
- const animate = $(this._element).hasClass(ClassName$5.FADE)
5012
- ? ClassName$5.FADE : '';
4474
+ const animate = $(this._element).hasClass(CLASS_NAME_FADE$1)
4475
+ ? CLASS_NAME_FADE$1 : '';
5013
4476
 
5014
4477
  if (this._isShown && this._config.backdrop) {
5015
4478
  this._backdrop = document.createElement('div');
5016
- this._backdrop.className = ClassName$5.BACKDROP;
4479
+ this._backdrop.className = CLASS_NAME_BACKDROP;
5017
4480
 
5018
4481
  if (animate) {
5019
4482
  this._backdrop.classList.add(animate);
@@ -5021,7 +4484,7 @@
5021
4484
 
5022
4485
  $(this._backdrop).appendTo(document.body);
5023
4486
 
5024
- $(this._element).on(Event$5.CLICK_DISMISS, (event) => {
4487
+ $(this._element).on(EVENT_CLICK_DISMISS, (event) => {
5025
4488
  if (this._ignoreBackdropClick) {
5026
4489
  this._ignoreBackdropClick = false;
5027
4490
  return
@@ -5029,18 +4492,15 @@
5029
4492
  if (event.target !== event.currentTarget) {
5030
4493
  return
5031
4494
  }
5032
- if (this._config.backdrop === 'static') {
5033
- this._element.focus();
5034
- } else {
5035
- this.hide();
5036
- }
4495
+
4496
+ this._triggerBackdropTransition();
5037
4497
  });
5038
4498
 
5039
4499
  if (animate) {
5040
4500
  Util.reflow(this._backdrop);
5041
4501
  }
5042
4502
 
5043
- $(this._backdrop).addClass(ClassName$5.SHOW);
4503
+ $(this._backdrop).addClass(CLASS_NAME_SHOW$3);
5044
4504
 
5045
4505
  if (!callback) {
5046
4506
  return
@@ -5057,7 +4517,7 @@
5057
4517
  .one(Util.TRANSITION_END, callback)
5058
4518
  .emulateTransitionEnd(backdropTransitionDuration);
5059
4519
  } else if (!this._isShown && this._backdrop) {
5060
- $(this._backdrop).removeClass(ClassName$5.SHOW);
4520
+ $(this._backdrop).removeClass(CLASS_NAME_SHOW$3);
5061
4521
 
5062
4522
  const callbackRemove = () => {
5063
4523
  this._removeBackdrop();
@@ -5066,7 +4526,7 @@
5066
4526
  }
5067
4527
  };
5068
4528
 
5069
- if ($(this._element).hasClass(ClassName$5.FADE)) {
4529
+ if ($(this._element).hasClass(CLASS_NAME_FADE$1)) {
5070
4530
  const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
5071
4531
 
5072
4532
  $(this._backdrop)
@@ -5105,7 +4565,7 @@
5105
4565
 
5106
4566
  _checkScrollbar() {
5107
4567
  const rect = document.body.getBoundingClientRect();
5108
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
4568
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
5109
4569
  this._scrollbarWidth = this._getScrollbarWidth();
5110
4570
  }
5111
4571
 
@@ -5113,8 +4573,8 @@
5113
4573
  if (this._isBodyOverflowing) {
5114
4574
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
5115
4575
  // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
5116
- const fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
5117
- const stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT));
4576
+ const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
4577
+ const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT));
5118
4578
 
5119
4579
  // Adjust fixed content padding
5120
4580
  $(fixedContent).each((index, element) => {
@@ -5142,12 +4602,12 @@
5142
4602
  .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);
5143
4603
  }
5144
4604
 
5145
- $(document.body).addClass(ClassName$5.OPEN);
4605
+ $(document.body).addClass(CLASS_NAME_OPEN);
5146
4606
  }
5147
4607
 
5148
4608
  _resetScrollbar() {
5149
4609
  // Restore fixed content padding
5150
- const fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
4610
+ const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
5151
4611
  $(fixedContent).each((index, element) => {
5152
4612
  const padding = $(element).data('padding-right');
5153
4613
  $(element).removeData('padding-right');
@@ -5155,7 +4615,7 @@
5155
4615
  });
5156
4616
 
5157
4617
  // Restore sticky content
5158
- const elements = [].slice.call(document.querySelectorAll(`${Selector$5.STICKY_CONTENT}`));
4618
+ const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`));
5159
4619
  $(elements).each((index, element) => {
5160
4620
  const margin = $(element).data('margin-right');
5161
4621
  if (typeof margin !== 'undefined') {
@@ -5171,7 +4631,7 @@
5171
4631
 
5172
4632
  _getScrollbarWidth() { // thx d.walsh
5173
4633
  const scrollDiv = document.createElement('div');
5174
- scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
4634
+ scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
5175
4635
  document.body.appendChild(scrollDiv);
5176
4636
  const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
5177
4637
  document.body.removeChild(scrollDiv);
@@ -5182,16 +4642,16 @@
5182
4642
 
5183
4643
  static _jQueryInterface(config, relatedTarget) {
5184
4644
  return this.each(function () {
5185
- let data = $(this).data(DATA_KEY$5);
4645
+ let data = $(this).data(DATA_KEY$4);
5186
4646
  const _config = {
5187
- ...Default$3,
4647
+ ...Default$2,
5188
4648
  ...$(this).data(),
5189
4649
  ...typeof config === 'object' && config ? config : {}
5190
4650
  };
5191
4651
 
5192
4652
  if (!data) {
5193
4653
  data = new Modal(this, _config);
5194
- $(this).data(DATA_KEY$5, data);
4654
+ $(this).data(DATA_KEY$4, data);
5195
4655
  }
5196
4656
 
5197
4657
  if (typeof config === 'string') {
@@ -5212,7 +4672,7 @@
5212
4672
  * ------------------------------------------------------------------------
5213
4673
  */
5214
4674
 
5215
- $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
4675
+ $(document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$3, function (event) {
5216
4676
  let target;
5217
4677
  const selector = Util.getSelectorFromElement(this);
5218
4678
 
@@ -5220,7 +4680,7 @@
5220
4680
  target = document.querySelector(selector);
5221
4681
  }
5222
4682
 
5223
- const config = $(target).data(DATA_KEY$5)
4683
+ const config = $(target).data(DATA_KEY$4)
5224
4684
  ? 'toggle' : {
5225
4685
  ...$(target).data(),
5226
4686
  ...$(this).data()
@@ -5230,13 +4690,13 @@
5230
4690
  event.preventDefault();
5231
4691
  }
5232
4692
 
5233
- const $target = $(target).one(Event$5.SHOW, (showEvent) => {
4693
+ const $target = $(target).one(EVENT_SHOW$2, (showEvent) => {
5234
4694
  if (showEvent.isDefaultPrevented()) {
5235
4695
  // Only register focus restorer if modal will actually get shown
5236
4696
  return
5237
4697
  }
5238
4698
 
5239
- $target.one(Event$5.HIDDEN, () => {
4699
+ $target.one(EVENT_HIDDEN$2, () => {
5240
4700
  if ($(this).is(':visible')) {
5241
4701
  this.focus();
5242
4702
  }
@@ -5252,17 +4712,17 @@
5252
4712
  * ------------------------------------------------------------------------
5253
4713
  */
5254
4714
 
5255
- $.fn[NAME$5] = Modal._jQueryInterface;
5256
- $.fn[NAME$5].Constructor = Modal;
5257
- $.fn[NAME$5].noConflict = () => {
5258
- $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
4715
+ $.fn[NAME$4] = Modal._jQueryInterface;
4716
+ $.fn[NAME$4].Constructor = Modal;
4717
+ $.fn[NAME$4].noConflict = () => {
4718
+ $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
5259
4719
  return Modal._jQueryInterface
5260
4720
  };
5261
4721
 
5262
4722
  /**
5263
4723
  * --------------------------------------------------------------------------
5264
- * Bootstrap (v4.3.1): tools/sanitizer.js
5265
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4724
+ * Bootstrap (v4.5.2): tools/sanitizer.js
4725
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5266
4726
  * --------------------------------------------------------------------------
5267
4727
  */
5268
4728
 
@@ -5298,7 +4758,7 @@
5298
4758
  h5: [],
5299
4759
  h6: [],
5300
4760
  i: [],
5301
- img: ['src', 'alt', 'title', 'width', 'height'],
4761
+ img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
5302
4762
  li: [],
5303
4763
  ol: [],
5304
4764
  p: [],
@@ -5318,14 +4778,14 @@
5318
4778
  *
5319
4779
  * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
5320
4780
  */
5321
- const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
4781
+ const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
5322
4782
 
5323
4783
  /**
5324
4784
  * A pattern that matches safe data URLs. Only matches image, video and audio types.
5325
4785
  *
5326
4786
  * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
5327
4787
  */
5328
- const 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;
4788
+ const 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;
5329
4789
 
5330
4790
  function allowedAttribute(attr, allowedAttributeList) {
5331
4791
  const attrName = attr.nodeName.toLowerCase();
@@ -5341,7 +4801,7 @@
5341
4801
  const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp);
5342
4802
 
5343
4803
  // Check if a regular expression validates the attribute.
5344
- for (let i = 0, l = regExp.length; i < l; i++) {
4804
+ for (let i = 0, len = regExp.length; i < len; i++) {
5345
4805
  if (attrName.match(regExp[i])) {
5346
4806
  return true
5347
4807
  }
@@ -5389,8 +4849,8 @@
5389
4849
 
5390
4850
  /**
5391
4851
  * --------------------------------------------------------------------------
5392
- * Bootstrap (v4.3.1): tooltip.js
5393
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4852
+ * Bootstrap (v4.5.2): tooltip.js
4853
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5394
4854
  * --------------------------------------------------------------------------
5395
4855
  */
5396
4856
 
@@ -5400,16 +4860,16 @@
5400
4860
  * ------------------------------------------------------------------------
5401
4861
  */
5402
4862
 
5403
- const NAME$6 = 'tooltip';
5404
- const VERSION$6 = '4.3.1';
5405
- const DATA_KEY$6 = 'bs.tooltip';
5406
- const EVENT_KEY$6 = `.${DATA_KEY$6}`;
5407
- const JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
4863
+ const NAME$5 = 'tooltip';
4864
+ const VERSION$5 = '4.5.2';
4865
+ const DATA_KEY$5 = 'bs.tooltip';
4866
+ const EVENT_KEY$5 = `.${DATA_KEY$5}`;
4867
+ const JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];
5408
4868
  const CLASS_PREFIX = 'bs-tooltip';
5409
4869
  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
5410
4870
  const DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
5411
4871
 
5412
- const DefaultType$4 = {
4872
+ const DefaultType$3 = {
5413
4873
  animation : 'boolean',
5414
4874
  template : 'string',
5415
4875
  title : '(string|element|function)',
@@ -5424,10 +4884,11 @@
5424
4884
  boundary : '(string|element)',
5425
4885
  sanitize : 'boolean',
5426
4886
  sanitizeFn : '(null|function)',
5427
- whiteList : 'object'
4887
+ whiteList : 'object',
4888
+ popperConfig : '(null|object)'
5428
4889
  };
5429
4890
 
5430
- const AttachmentMap$1 = {
4891
+ const AttachmentMap = {
5431
4892
  AUTO : 'auto',
5432
4893
  TOP : 'top',
5433
4894
  RIGHT : 'right',
@@ -5435,7 +4896,7 @@
5435
4896
  LEFT : 'left'
5436
4897
  };
5437
4898
 
5438
- const Default$4 = {
4899
+ const Default$3 = {
5439
4900
  animation : true,
5440
4901
  template : '<div class="tooltip" role="tooltip">' +
5441
4902
  '<div class="arrow"></div>' +
@@ -5450,47 +4911,38 @@
5450
4911
  container : false,
5451
4912
  fallbackPlacement : 'flip',
5452
4913
  boundary : 'scrollParent',
5453
- sanitize : true,
5454
- sanitizeFn : null,
5455
- whiteList : DefaultWhitelist
5456
- };
5457
-
5458
- const HoverState = {
5459
- SHOW : 'show',
5460
- OUT : 'out'
5461
- };
5462
-
5463
- const Event$6 = {
5464
- HIDE : `hide${EVENT_KEY$6}`,
5465
- HIDDEN : `hidden${EVENT_KEY$6}`,
5466
- SHOW : `show${EVENT_KEY$6}`,
5467
- SHOWN : `shown${EVENT_KEY$6}`,
5468
- INSERTED : `inserted${EVENT_KEY$6}`,
5469
- CLICK : `click${EVENT_KEY$6}`,
5470
- FOCUSIN : `focusin${EVENT_KEY$6}`,
5471
- FOCUSOUT : `focusout${EVENT_KEY$6}`,
5472
- MOUSEENTER : `mouseenter${EVENT_KEY$6}`,
5473
- MOUSELEAVE : `mouseleave${EVENT_KEY$6}`
4914
+ sanitize : true,
4915
+ sanitizeFn : null,
4916
+ whiteList : DefaultWhitelist,
4917
+ popperConfig : null
5474
4918
  };
5475
4919
 
5476
- const ClassName$6 = {
5477
- FADE : 'fade',
5478
- SHOW : 'show'
5479
- };
4920
+ const HOVER_STATE_SHOW = 'show';
4921
+ const HOVER_STATE_OUT = 'out';
5480
4922
 
5481
- const Selector$6 = {
5482
- TOOLTIP : '.tooltip',
5483
- TOOLTIP_INNER : '.tooltip-inner',
5484
- ARROW : '.arrow'
4923
+ const Event = {
4924
+ HIDE : `hide${EVENT_KEY$5}`,
4925
+ HIDDEN : `hidden${EVENT_KEY$5}`,
4926
+ SHOW : `show${EVENT_KEY$5}`,
4927
+ SHOWN : `shown${EVENT_KEY$5}`,
4928
+ INSERTED : `inserted${EVENT_KEY$5}`,
4929
+ CLICK : `click${EVENT_KEY$5}`,
4930
+ FOCUSIN : `focusin${EVENT_KEY$5}`,
4931
+ FOCUSOUT : `focusout${EVENT_KEY$5}`,
4932
+ MOUSEENTER : `mouseenter${EVENT_KEY$5}`,
4933
+ MOUSELEAVE : `mouseleave${EVENT_KEY$5}`
5485
4934
  };
5486
4935
 
5487
- const Trigger = {
5488
- HOVER : 'hover',
5489
- FOCUS : 'focus',
5490
- CLICK : 'click',
5491
- MANUAL : 'manual'
5492
- };
4936
+ const CLASS_NAME_FADE$2 = 'fade';
4937
+ const CLASS_NAME_SHOW$4 = 'show';
4938
+
4939
+ const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
4940
+ const SELECTOR_ARROW = '.arrow';
5493
4941
 
4942
+ const TRIGGER_HOVER = 'hover';
4943
+ const TRIGGER_FOCUS = 'focus';
4944
+ const TRIGGER_CLICK = 'click';
4945
+ const TRIGGER_MANUAL = 'manual';
5494
4946
 
5495
4947
  /**
5496
4948
  * ------------------------------------------------------------------------
@@ -5500,10 +4952,6 @@
5500
4952
 
5501
4953
  class Tooltip {
5502
4954
  constructor(element, config) {
5503
- /**
5504
- * Check for Popper dependency
5505
- * Popper - https://popper.js.org
5506
- */
5507
4955
  if (typeof Popper === 'undefined') {
5508
4956
  throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)')
5509
4957
  }
@@ -5526,31 +4974,31 @@
5526
4974
  // Getters
5527
4975
 
5528
4976
  static get VERSION() {
5529
- return VERSION$6
4977
+ return VERSION$5
5530
4978
  }
5531
4979
 
5532
4980
  static get Default() {
5533
- return Default$4
4981
+ return Default$3
5534
4982
  }
5535
4983
 
5536
4984
  static get NAME() {
5537
- return NAME$6
4985
+ return NAME$5
5538
4986
  }
5539
4987
 
5540
4988
  static get DATA_KEY() {
5541
- return DATA_KEY$6
4989
+ return DATA_KEY$5
5542
4990
  }
5543
4991
 
5544
4992
  static get Event() {
5545
- return Event$6
4993
+ return Event
5546
4994
  }
5547
4995
 
5548
4996
  static get EVENT_KEY() {
5549
- return EVENT_KEY$6
4997
+ return EVENT_KEY$5
5550
4998
  }
5551
4999
 
5552
5000
  static get DefaultType() {
5553
- return DefaultType$4
5001
+ return DefaultType$3
5554
5002
  }
5555
5003
 
5556
5004
  // Public
@@ -5592,7 +5040,7 @@
5592
5040
  context._leave(null, context);
5593
5041
  }
5594
5042
  } else {
5595
- if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {
5043
+ if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {
5596
5044
  this._leave(null, this);
5597
5045
  return
5598
5046
  }
@@ -5607,7 +5055,7 @@
5607
5055
  $.removeData(this.element, this.constructor.DATA_KEY);
5608
5056
 
5609
5057
  $(this.element).off(this.constructor.EVENT_KEY);
5610
- $(this.element).closest('.modal').off('hide.bs.modal');
5058
+ $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);
5611
5059
 
5612
5060
  if (this.tip) {
5613
5061
  $(this.tip).remove();
@@ -5617,7 +5065,7 @@
5617
5065
  this._timeout = null;
5618
5066
  this._hoverState = null;
5619
5067
  this._activeTrigger = null;
5620
- if (this._popper !== null) {
5068
+ if (this._popper) {
5621
5069
  this._popper.destroy();
5622
5070
  }
5623
5071
 
@@ -5655,7 +5103,7 @@
5655
5103
  this.setContent();
5656
5104
 
5657
5105
  if (this.config.animation) {
5658
- $(tip).addClass(ClassName$6.FADE);
5106
+ $(tip).addClass(CLASS_NAME_FADE$2);
5659
5107
  }
5660
5108
 
5661
5109
  const placement = typeof this.config.placement === 'function'
@@ -5674,29 +5122,9 @@
5674
5122
 
5675
5123
  $(this.element).trigger(this.constructor.Event.INSERTED);
5676
5124
 
5677
- this._popper = new Popper(this.element, tip, {
5678
- placement: attachment,
5679
- modifiers: {
5680
- offset: this._getOffset(),
5681
- flip: {
5682
- behavior: this.config.fallbackPlacement
5683
- },
5684
- arrow: {
5685
- element: Selector$6.ARROW
5686
- },
5687
- preventOverflow: {
5688
- boundariesElement: this.config.boundary
5689
- }
5690
- },
5691
- onCreate: (data) => {
5692
- if (data.originalPlacement !== data.placement) {
5693
- this._handlePopperPlacementChange(data);
5694
- }
5695
- },
5696
- onUpdate: (data) => this._handlePopperPlacementChange(data)
5697
- });
5125
+ this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
5698
5126
 
5699
- $(tip).addClass(ClassName$6.SHOW);
5127
+ $(tip).addClass(CLASS_NAME_SHOW$4);
5700
5128
 
5701
5129
  // If this is a touch-enabled device we add extra
5702
5130
  // empty mouseover listeners to the body's immediate children;
@@ -5715,12 +5143,12 @@
5715
5143
 
5716
5144
  $(this.element).trigger(this.constructor.Event.SHOWN);
5717
5145
 
5718
- if (prevHoverState === HoverState.OUT) {
5146
+ if (prevHoverState === HOVER_STATE_OUT) {
5719
5147
  this._leave(null, this);
5720
5148
  }
5721
5149
  };
5722
5150
 
5723
- if ($(this.tip).hasClass(ClassName$6.FADE)) {
5151
+ if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) {
5724
5152
  const transitionDuration = Util.getTransitionDurationFromElement(this.tip);
5725
5153
 
5726
5154
  $(this.tip)
@@ -5736,7 +5164,7 @@
5736
5164
  const tip = this.getTipElement();
5737
5165
  const hideEvent = $.Event(this.constructor.Event.HIDE);
5738
5166
  const complete = () => {
5739
- if (this._hoverState !== HoverState.SHOW && tip.parentNode) {
5167
+ if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
5740
5168
  tip.parentNode.removeChild(tip);
5741
5169
  }
5742
5170
 
@@ -5758,7 +5186,7 @@
5758
5186
  return
5759
5187
  }
5760
5188
 
5761
- $(tip).removeClass(ClassName$6.SHOW);
5189
+ $(tip).removeClass(CLASS_NAME_SHOW$4);
5762
5190
 
5763
5191
  // If this is a touch-enabled device we remove the extra
5764
5192
  // empty mouseover listeners we added for iOS support
@@ -5766,11 +5194,11 @@
5766
5194
  $(document.body).children().off('mouseover', null, $.noop);
5767
5195
  }
5768
5196
 
5769
- this._activeTrigger[Trigger.CLICK] = false;
5770
- this._activeTrigger[Trigger.FOCUS] = false;
5771
- this._activeTrigger[Trigger.HOVER] = false;
5197
+ this._activeTrigger[TRIGGER_CLICK] = false;
5198
+ this._activeTrigger[TRIGGER_FOCUS] = false;
5199
+ this._activeTrigger[TRIGGER_HOVER] = false;
5772
5200
 
5773
- if ($(this.tip).hasClass(ClassName$6.FADE)) {
5201
+ if ($(this.tip).hasClass(CLASS_NAME_FADE$2)) {
5774
5202
  const transitionDuration = Util.getTransitionDurationFromElement(tip);
5775
5203
 
5776
5204
  $(tip)
@@ -5806,8 +5234,8 @@
5806
5234
 
5807
5235
  setContent() {
5808
5236
  const tip = this.getTipElement();
5809
- this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());
5810
- $(tip).removeClass(`${ClassName$6.FADE} ${ClassName$6.SHOW}`);
5237
+ this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());
5238
+ $(tip).removeClass(`${CLASS_NAME_FADE$2} ${CLASS_NAME_SHOW$4}`);
5811
5239
  }
5812
5240
 
5813
5241
  setElementContent($element, content) {
@@ -5849,6 +5277,35 @@
5849
5277
 
5850
5278
  // Private
5851
5279
 
5280
+ _getPopperConfig(attachment) {
5281
+ const defaultBsConfig = {
5282
+ placement: attachment,
5283
+ modifiers: {
5284
+ offset: this._getOffset(),
5285
+ flip: {
5286
+ behavior: this.config.fallbackPlacement
5287
+ },
5288
+ arrow: {
5289
+ element: SELECTOR_ARROW
5290
+ },
5291
+ preventOverflow: {
5292
+ boundariesElement: this.config.boundary
5293
+ }
5294
+ },
5295
+ onCreate: (data) => {
5296
+ if (data.originalPlacement !== data.placement) {
5297
+ this._handlePopperPlacementChange(data);
5298
+ }
5299
+ },
5300
+ onUpdate: (data) => this._handlePopperPlacementChange(data)
5301
+ };
5302
+
5303
+ return {
5304
+ ...defaultBsConfig,
5305
+ ...this.config.popperConfig
5306
+ }
5307
+ }
5308
+
5852
5309
  _getOffset() {
5853
5310
  const offset = {};
5854
5311
 
@@ -5881,7 +5338,7 @@
5881
5338
  }
5882
5339
 
5883
5340
  _getAttachment(placement) {
5884
- return AttachmentMap$1[placement.toUpperCase()]
5341
+ return AttachmentMap[placement.toUpperCase()]
5885
5342
  }
5886
5343
 
5887
5344
  _setListeners() {
@@ -5894,36 +5351,27 @@
5894
5351
  this.config.selector,
5895
5352
  (event) => this.toggle(event)
5896
5353
  );
5897
- } else if (trigger !== Trigger.MANUAL) {
5898
- const eventIn = trigger === Trigger.HOVER
5354
+ } else if (trigger !== TRIGGER_MANUAL) {
5355
+ const eventIn = trigger === TRIGGER_HOVER
5899
5356
  ? this.constructor.Event.MOUSEENTER
5900
5357
  : this.constructor.Event.FOCUSIN;
5901
- const eventOut = trigger === Trigger.HOVER
5358
+ const eventOut = trigger === TRIGGER_HOVER
5902
5359
  ? this.constructor.Event.MOUSELEAVE
5903
5360
  : this.constructor.Event.FOCUSOUT;
5904
5361
 
5905
5362
  $(this.element)
5906
- .on(
5907
- eventIn,
5908
- this.config.selector,
5909
- (event) => this._enter(event)
5910
- )
5911
- .on(
5912
- eventOut,
5913
- this.config.selector,
5914
- (event) => this._leave(event)
5915
- );
5363
+ .on(eventIn, this.config.selector, (event) => this._enter(event))
5364
+ .on(eventOut, this.config.selector, (event) => this._leave(event));
5916
5365
  }
5917
5366
  });
5918
5367
 
5919
- $(this.element).closest('.modal').on(
5920
- 'hide.bs.modal',
5921
- () => {
5922
- if (this.element) {
5923
- this.hide();
5924
- }
5368
+ this._hideModalHandler = () => {
5369
+ if (this.element) {
5370
+ this.hide();
5925
5371
  }
5926
- );
5372
+ };
5373
+
5374
+ $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);
5927
5375
 
5928
5376
  if (this.config.selector) {
5929
5377
  this.config = {
@@ -5963,18 +5411,18 @@
5963
5411
 
5964
5412
  if (event) {
5965
5413
  context._activeTrigger[
5966
- event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER
5414
+ event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER
5967
5415
  ] = true;
5968
5416
  }
5969
5417
 
5970
- if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
5971
- context._hoverState = HoverState.SHOW;
5418
+ if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {
5419
+ context._hoverState = HOVER_STATE_SHOW;
5972
5420
  return
5973
5421
  }
5974
5422
 
5975
5423
  clearTimeout(context._timeout);
5976
5424
 
5977
- context._hoverState = HoverState.SHOW;
5425
+ context._hoverState = HOVER_STATE_SHOW;
5978
5426
 
5979
5427
  if (!context.config.delay || !context.config.delay.show) {
5980
5428
  context.show();
@@ -5982,7 +5430,7 @@
5982
5430
  }
5983
5431
 
5984
5432
  context._timeout = setTimeout(() => {
5985
- if (context._hoverState === HoverState.SHOW) {
5433
+ if (context._hoverState === HOVER_STATE_SHOW) {
5986
5434
  context.show();
5987
5435
  }
5988
5436
  }, context.config.delay.show);
@@ -6002,7 +5450,7 @@
6002
5450
 
6003
5451
  if (event) {
6004
5452
  context._activeTrigger[
6005
- event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER
5453
+ event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER
6006
5454
  ] = false;
6007
5455
  }
6008
5456
 
@@ -6012,7 +5460,7 @@
6012
5460
 
6013
5461
  clearTimeout(context._timeout);
6014
5462
 
6015
- context._hoverState = HoverState.OUT;
5463
+ context._hoverState = HOVER_STATE_OUT;
6016
5464
 
6017
5465
  if (!context.config.delay || !context.config.delay.hide) {
6018
5466
  context.hide();
@@ -6020,7 +5468,7 @@
6020
5468
  }
6021
5469
 
6022
5470
  context._timeout = setTimeout(() => {
6023
- if (context._hoverState === HoverState.OUT) {
5471
+ if (context._hoverState === HOVER_STATE_OUT) {
6024
5472
  context.hide();
6025
5473
  }
6026
5474
  }, context.config.delay.hide);
@@ -6068,7 +5516,7 @@
6068
5516
  }
6069
5517
 
6070
5518
  Util.typeCheckConfig(
6071
- NAME$6,
5519
+ NAME$5,
6072
5520
  config,
6073
5521
  this.constructor.DefaultType
6074
5522
  );
@@ -6103,8 +5551,7 @@
6103
5551
  }
6104
5552
 
6105
5553
  _handlePopperPlacementChange(popperData) {
6106
- const popperInstance = popperData.instance;
6107
- this.tip = popperInstance.popper;
5554
+ this.tip = popperData.instance.popper;
6108
5555
  this._cleanTipClass();
6109
5556
  this.addAttachmentClass(this._getAttachment(popperData.placement));
6110
5557
  }
@@ -6117,7 +5564,7 @@
6117
5564
  return
6118
5565
  }
6119
5566
 
6120
- $(tip).removeClass(ClassName$6.FADE);
5567
+ $(tip).removeClass(CLASS_NAME_FADE$2);
6121
5568
  this.config.animation = false;
6122
5569
  this.hide();
6123
5570
  this.show();
@@ -6128,7 +5575,7 @@
6128
5575
 
6129
5576
  static _jQueryInterface(config) {
6130
5577
  return this.each(function () {
6131
- let data = $(this).data(DATA_KEY$6);
5578
+ let data = $(this).data(DATA_KEY$5);
6132
5579
  const _config = typeof config === 'object' && config;
6133
5580
 
6134
5581
  if (!data && /dispose|hide/.test(config)) {
@@ -6137,7 +5584,7 @@
6137
5584
 
6138
5585
  if (!data) {
6139
5586
  data = new Tooltip(this, _config);
6140
- $(this).data(DATA_KEY$6, data);
5587
+ $(this).data(DATA_KEY$5, data);
6141
5588
  }
6142
5589
 
6143
5590
  if (typeof config === 'string') {
@@ -6156,17 +5603,17 @@
6156
5603
  * ------------------------------------------------------------------------
6157
5604
  */
6158
5605
 
6159
- $.fn[NAME$6] = Tooltip._jQueryInterface;
6160
- $.fn[NAME$6].Constructor = Tooltip;
6161
- $.fn[NAME$6].noConflict = () => {
6162
- $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
5606
+ $.fn[NAME$5] = Tooltip._jQueryInterface;
5607
+ $.fn[NAME$5].Constructor = Tooltip;
5608
+ $.fn[NAME$5].noConflict = () => {
5609
+ $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
6163
5610
  return Tooltip._jQueryInterface
6164
5611
  };
6165
5612
 
6166
5613
  /**
6167
5614
  * --------------------------------------------------------------------------
6168
- * Bootstrap (v4.3.1): popover.js
6169
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5615
+ * Bootstrap (v4.5.2): popover.js
5616
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6170
5617
  * --------------------------------------------------------------------------
6171
5618
  */
6172
5619
 
@@ -6176,15 +5623,15 @@
6176
5623
  * ------------------------------------------------------------------------
6177
5624
  */
6178
5625
 
6179
- const NAME$7 = 'popover';
6180
- const VERSION$7 = '4.3.1';
6181
- const DATA_KEY$7 = 'bs.popover';
6182
- const EVENT_KEY$7 = `.${DATA_KEY$7}`;
6183
- const JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
5626
+ const NAME$6 = 'popover';
5627
+ const VERSION$6 = '4.5.2';
5628
+ const DATA_KEY$6 = 'bs.popover';
5629
+ const EVENT_KEY$6 = `.${DATA_KEY$6}`;
5630
+ const JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
6184
5631
  const CLASS_PREFIX$1 = 'bs-popover';
6185
5632
  const BSCLS_PREFIX_REGEX$1 = new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`, 'g');
6186
5633
 
6187
- const Default$5 = {
5634
+ const Default$4 = {
6188
5635
  ...Tooltip.Default,
6189
5636
  placement : 'right',
6190
5637
  trigger : 'click',
@@ -6195,32 +5642,28 @@
6195
5642
  '<div class="popover-body"></div></div>'
6196
5643
  };
6197
5644
 
6198
- const DefaultType$5 = {
5645
+ const DefaultType$4 = {
6199
5646
  ...Tooltip.DefaultType,
6200
5647
  content : '(string|element|function)'
6201
5648
  };
6202
5649
 
6203
- const ClassName$7 = {
6204
- FADE : 'fade',
6205
- SHOW : 'show'
6206
- };
5650
+ const CLASS_NAME_FADE$3 = 'fade';
5651
+ const CLASS_NAME_SHOW$5 = 'show';
6207
5652
 
6208
- const Selector$7 = {
6209
- TITLE : '.popover-header',
6210
- CONTENT : '.popover-body'
6211
- };
5653
+ const SELECTOR_TITLE = '.popover-header';
5654
+ const SELECTOR_CONTENT = '.popover-body';
6212
5655
 
6213
- const Event$7 = {
6214
- HIDE : `hide${EVENT_KEY$7}`,
6215
- HIDDEN : `hidden${EVENT_KEY$7}`,
6216
- SHOW : `show${EVENT_KEY$7}`,
6217
- SHOWN : `shown${EVENT_KEY$7}`,
6218
- INSERTED : `inserted${EVENT_KEY$7}`,
6219
- CLICK : `click${EVENT_KEY$7}`,
6220
- FOCUSIN : `focusin${EVENT_KEY$7}`,
6221
- FOCUSOUT : `focusout${EVENT_KEY$7}`,
6222
- MOUSEENTER : `mouseenter${EVENT_KEY$7}`,
6223
- MOUSELEAVE : `mouseleave${EVENT_KEY$7}`
5656
+ const Event$1 = {
5657
+ HIDE : `hide${EVENT_KEY$6}`,
5658
+ HIDDEN : `hidden${EVENT_KEY$6}`,
5659
+ SHOW : `show${EVENT_KEY$6}`,
5660
+ SHOWN : `shown${EVENT_KEY$6}`,
5661
+ INSERTED : `inserted${EVENT_KEY$6}`,
5662
+ CLICK : `click${EVENT_KEY$6}`,
5663
+ FOCUSIN : `focusin${EVENT_KEY$6}`,
5664
+ FOCUSOUT : `focusout${EVENT_KEY$6}`,
5665
+ MOUSEENTER : `mouseenter${EVENT_KEY$6}`,
5666
+ MOUSELEAVE : `mouseleave${EVENT_KEY$6}`
6224
5667
  };
6225
5668
 
6226
5669
  /**
@@ -6233,31 +5676,31 @@
6233
5676
  // Getters
6234
5677
 
6235
5678
  static get VERSION() {
6236
- return VERSION$7
5679
+ return VERSION$6
6237
5680
  }
6238
5681
 
6239
5682
  static get Default() {
6240
- return Default$5
5683
+ return Default$4
6241
5684
  }
6242
5685
 
6243
5686
  static get NAME() {
6244
- return NAME$7
5687
+ return NAME$6
6245
5688
  }
6246
5689
 
6247
5690
  static get DATA_KEY() {
6248
- return DATA_KEY$7
5691
+ return DATA_KEY$6
6249
5692
  }
6250
5693
 
6251
5694
  static get Event() {
6252
- return Event$7
5695
+ return Event$1
6253
5696
  }
6254
5697
 
6255
5698
  static get EVENT_KEY() {
6256
- return EVENT_KEY$7
5699
+ return EVENT_KEY$6
6257
5700
  }
6258
5701
 
6259
5702
  static get DefaultType() {
6260
- return DefaultType$5
5703
+ return DefaultType$4
6261
5704
  }
6262
5705
 
6263
5706
  // Overrides
@@ -6279,14 +5722,14 @@
6279
5722
  const $tip = $(this.getTipElement());
6280
5723
 
6281
5724
  // We use append for html objects to maintain js events
6282
- this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());
5725
+ this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
6283
5726
  let content = this._getContent();
6284
5727
  if (typeof content === 'function') {
6285
5728
  content = content.call(this.element);
6286
5729
  }
6287
- this.setElementContent($tip.find(Selector$7.CONTENT), content);
5730
+ this.setElementContent($tip.find(SELECTOR_CONTENT), content);
6288
5731
 
6289
- $tip.removeClass(`${ClassName$7.FADE} ${ClassName$7.SHOW}`);
5732
+ $tip.removeClass(`${CLASS_NAME_FADE$3} ${CLASS_NAME_SHOW$5}`);
6290
5733
  }
6291
5734
 
6292
5735
  // Private
@@ -6308,7 +5751,7 @@
6308
5751
 
6309
5752
  static _jQueryInterface(config) {
6310
5753
  return this.each(function () {
6311
- let data = $(this).data(DATA_KEY$7);
5754
+ let data = $(this).data(DATA_KEY$6);
6312
5755
  const _config = typeof config === 'object' ? config : null;
6313
5756
 
6314
5757
  if (!data && /dispose|hide/.test(config)) {
@@ -6317,7 +5760,7 @@
6317
5760
 
6318
5761
  if (!data) {
6319
5762
  data = new Popover(this, _config);
6320
- $(this).data(DATA_KEY$7, data);
5763
+ $(this).data(DATA_KEY$6, data);
6321
5764
  }
6322
5765
 
6323
5766
  if (typeof config === 'string') {
@@ -6336,17 +5779,17 @@
6336
5779
  * ------------------------------------------------------------------------
6337
5780
  */
6338
5781
 
6339
- $.fn[NAME$7] = Popover._jQueryInterface;
6340
- $.fn[NAME$7].Constructor = Popover;
6341
- $.fn[NAME$7].noConflict = () => {
6342
- $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
5782
+ $.fn[NAME$6] = Popover._jQueryInterface;
5783
+ $.fn[NAME$6].Constructor = Popover;
5784
+ $.fn[NAME$6].noConflict = () => {
5785
+ $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
6343
5786
  return Popover._jQueryInterface
6344
5787
  };
6345
5788
 
6346
5789
  /**
6347
5790
  * --------------------------------------------------------------------------
6348
- * Bootstrap (v4.3.1): scrollspy.js
6349
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5791
+ * Bootstrap (v4.5.2): scrollspy.js
5792
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6350
5793
  * --------------------------------------------------------------------------
6351
5794
  */
6352
5795
 
@@ -6356,53 +5799,43 @@
6356
5799
  * ------------------------------------------------------------------------
6357
5800
  */
6358
5801
 
6359
- const NAME$8 = 'scrollspy';
6360
- const VERSION$8 = '4.3.1';
6361
- const DATA_KEY$8 = 'bs.scrollspy';
6362
- const EVENT_KEY$8 = `.${DATA_KEY$8}`;
6363
- const DATA_API_KEY$6 = '.data-api';
6364
- const JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];
5802
+ const NAME$7 = 'scrollspy';
5803
+ const VERSION$7 = '4.5.2';
5804
+ const DATA_KEY$7 = 'bs.scrollspy';
5805
+ const EVENT_KEY$7 = `.${DATA_KEY$7}`;
5806
+ const DATA_API_KEY$5 = '.data-api';
5807
+ const JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
6365
5808
 
6366
- const Default$6 = {
5809
+ const Default$5 = {
6367
5810
  offset : 10,
6368
5811
  method : 'auto',
6369
5812
  target : ''
6370
5813
  };
6371
5814
 
6372
- const DefaultType$6 = {
5815
+ const DefaultType$5 = {
6373
5816
  offset : 'number',
6374
5817
  method : 'string',
6375
5818
  target : '(string|element)'
6376
5819
  };
6377
5820
 
6378
- const Event$8 = {
6379
- ACTIVATE : `activate${EVENT_KEY$8}`,
6380
- SCROLL : `scroll${EVENT_KEY$8}`,
6381
- LOAD_DATA_API : `load${EVENT_KEY$8}${DATA_API_KEY$6}`
6382
- };
5821
+ const EVENT_ACTIVATE = `activate${EVENT_KEY$7}`;
5822
+ const EVENT_SCROLL = `scroll${EVENT_KEY$7}`;
5823
+ const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$7}${DATA_API_KEY$5}`;
6383
5824
 
6384
- const ClassName$8 = {
6385
- DROPDOWN_ITEM : 'dropdown-item',
6386
- DROPDOWN_MENU : 'dropdown-menu',
6387
- ACTIVE : 'active'
6388
- };
5825
+ const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
5826
+ const CLASS_NAME_ACTIVE$1 = 'active';
6389
5827
 
6390
- const Selector$8 = {
6391
- DATA_SPY : '[data-spy="scroll"]',
6392
- ACTIVE : '.active',
6393
- NAV_LIST_GROUP : '.nav, .list-group',
6394
- NAV_LINKS : '.nav-link',
6395
- NAV_ITEMS : '.nav-item',
6396
- LIST_ITEMS : '.list-group-item',
6397
- DROPDOWN : '.dropdown',
6398
- DROPDOWN_ITEMS : '.dropdown-item',
6399
- DROPDOWN_TOGGLE : '.dropdown-toggle'
6400
- };
5828
+ const SELECTOR_DATA_SPY = '[data-spy="scroll"]';
5829
+ const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
5830
+ const SELECTOR_NAV_LINKS = '.nav-link';
5831
+ const SELECTOR_NAV_ITEMS = '.nav-item';
5832
+ const SELECTOR_LIST_ITEMS = '.list-group-item';
5833
+ const SELECTOR_DROPDOWN = '.dropdown';
5834
+ const SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';
5835
+ const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
6401
5836
 
6402
- const OffsetMethod = {
6403
- OFFSET : 'offset',
6404
- POSITION : 'position'
6405
- };
5837
+ const METHOD_OFFSET = 'offset';
5838
+ const METHOD_POSITION = 'position';
6406
5839
 
6407
5840
  /**
6408
5841
  * ------------------------------------------------------------------------
@@ -6415,15 +5848,15 @@
6415
5848
  this._element = element;
6416
5849
  this._scrollElement = element.tagName === 'BODY' ? window : element;
6417
5850
  this._config = this._getConfig(config);
6418
- this._selector = `${this._config.target} ${Selector$8.NAV_LINKS},` +
6419
- `${this._config.target} ${Selector$8.LIST_ITEMS},` +
6420
- `${this._config.target} ${Selector$8.DROPDOWN_ITEMS}`;
5851
+ this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +
5852
+ `${this._config.target} ${SELECTOR_LIST_ITEMS},` +
5853
+ `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`;
6421
5854
  this._offsets = [];
6422
5855
  this._targets = [];
6423
5856
  this._activeTarget = null;
6424
5857
  this._scrollHeight = 0;
6425
5858
 
6426
- $(this._scrollElement).on(Event$8.SCROLL, (event) => this._process(event));
5859
+ $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event));
6427
5860
 
6428
5861
  this.refresh();
6429
5862
  this._process();
@@ -6432,23 +5865,23 @@
6432
5865
  // Getters
6433
5866
 
6434
5867
  static get VERSION() {
6435
- return VERSION$8
5868
+ return VERSION$7
6436
5869
  }
6437
5870
 
6438
5871
  static get Default() {
6439
- return Default$6
5872
+ return Default$5
6440
5873
  }
6441
5874
 
6442
5875
  // Public
6443
5876
 
6444
5877
  refresh() {
6445
5878
  const autoMethod = this._scrollElement === this._scrollElement.window
6446
- ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
5879
+ ? METHOD_OFFSET : METHOD_POSITION;
6447
5880
 
6448
5881
  const offsetMethod = this._config.method === 'auto'
6449
5882
  ? autoMethod : this._config.method;
6450
5883
 
6451
- const offsetBase = offsetMethod === OffsetMethod.POSITION
5884
+ const offsetBase = offsetMethod === METHOD_POSITION
6452
5885
  ? this._getScrollTop() : 0;
6453
5886
 
6454
5887
  this._offsets = [];
@@ -6488,8 +5921,8 @@
6488
5921
  }
6489
5922
 
6490
5923
  dispose() {
6491
- $.removeData(this._element, DATA_KEY$8);
6492
- $(this._scrollElement).off(EVENT_KEY$8);
5924
+ $.removeData(this._element, DATA_KEY$7);
5925
+ $(this._scrollElement).off(EVENT_KEY$7);
6493
5926
 
6494
5927
  this._element = null;
6495
5928
  this._scrollElement = null;
@@ -6505,20 +5938,20 @@
6505
5938
 
6506
5939
  _getConfig(config) {
6507
5940
  config = {
6508
- ...Default$6,
5941
+ ...Default$5,
6509
5942
  ...typeof config === 'object' && config ? config : {}
6510
5943
  };
6511
5944
 
6512
- if (typeof config.target !== 'string') {
5945
+ if (typeof config.target !== 'string' && Util.isElement(config.target)) {
6513
5946
  let id = $(config.target).attr('id');
6514
5947
  if (!id) {
6515
- id = Util.getUID(NAME$8);
5948
+ id = Util.getUID(NAME$7);
6516
5949
  $(config.target).attr('id', id);
6517
5950
  }
6518
5951
  config.target = `#${id}`;
6519
5952
  }
6520
5953
 
6521
- Util.typeCheckConfig(NAME$8, config, DefaultType$6);
5954
+ Util.typeCheckConfig(NAME$7, config, DefaultType$5);
6522
5955
 
6523
5956
  return config
6524
5957
  }
@@ -6543,9 +5976,7 @@
6543
5976
  _process() {
6544
5977
  const scrollTop = this._getScrollTop() + this._config.offset;
6545
5978
  const scrollHeight = this._getScrollHeight();
6546
- const maxScroll = this._config.offset +
6547
- scrollHeight -
6548
- this._getOffsetHeight();
5979
+ const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
6549
5980
 
6550
5981
  if (this._scrollHeight !== scrollHeight) {
6551
5982
  this.refresh();
@@ -6566,8 +5997,7 @@
6566
5997
  return
6567
5998
  }
6568
5999
 
6569
- const offsetLength = this._offsets.length;
6570
- for (let i = offsetLength; i--;) {
6000
+ for (let i = this._offsets.length; i--;) {
6571
6001
  const isActiveTarget = this._activeTarget !== this._targets[i] &&
6572
6002
  scrollTop >= this._offsets[i] &&
6573
6003
  (typeof this._offsets[i + 1] === 'undefined' ||
@@ -6590,40 +6020,47 @@
6590
6020
 
6591
6021
  const $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
6592
6022
 
6593
- if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {
6594
- $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);
6595
- $link.addClass(ClassName$8.ACTIVE);
6023
+ if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {
6024
+ $link.closest(SELECTOR_DROPDOWN)
6025
+ .find(SELECTOR_DROPDOWN_TOGGLE)
6026
+ .addClass(CLASS_NAME_ACTIVE$1);
6027
+ $link.addClass(CLASS_NAME_ACTIVE$1);
6596
6028
  } else {
6597
6029
  // Set triggered link as active
6598
- $link.addClass(ClassName$8.ACTIVE);
6030
+ $link.addClass(CLASS_NAME_ACTIVE$1);
6599
6031
  // Set triggered links parents as active
6600
6032
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
6601
- $link.parents(Selector$8.NAV_LIST_GROUP).prev(`${Selector$8.NAV_LINKS}, ${Selector$8.LIST_ITEMS}`).addClass(ClassName$8.ACTIVE);
6033
+ $link.parents(SELECTOR_NAV_LIST_GROUP)
6034
+ .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)
6035
+ .addClass(CLASS_NAME_ACTIVE$1);
6602
6036
  // Handle special case when .nav-link is inside .nav-item
6603
- $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);
6037
+ $link.parents(SELECTOR_NAV_LIST_GROUP)
6038
+ .prev(SELECTOR_NAV_ITEMS)
6039
+ .children(SELECTOR_NAV_LINKS)
6040
+ .addClass(CLASS_NAME_ACTIVE$1);
6604
6041
  }
6605
6042
 
6606
- $(this._scrollElement).trigger(Event$8.ACTIVATE, {
6043
+ $(this._scrollElement).trigger(EVENT_ACTIVATE, {
6607
6044
  relatedTarget: target
6608
6045
  });
6609
6046
  }
6610
6047
 
6611
6048
  _clear() {
6612
6049
  [].slice.call(document.querySelectorAll(this._selector))
6613
- .filter((node) => node.classList.contains(ClassName$8.ACTIVE))
6614
- .forEach((node) => node.classList.remove(ClassName$8.ACTIVE));
6050
+ .filter((node) => node.classList.contains(CLASS_NAME_ACTIVE$1))
6051
+ .forEach((node) => node.classList.remove(CLASS_NAME_ACTIVE$1));
6615
6052
  }
6616
6053
 
6617
6054
  // Static
6618
6055
 
6619
6056
  static _jQueryInterface(config) {
6620
6057
  return this.each(function () {
6621
- let data = $(this).data(DATA_KEY$8);
6058
+ let data = $(this).data(DATA_KEY$7);
6622
6059
  const _config = typeof config === 'object' && config;
6623
6060
 
6624
6061
  if (!data) {
6625
6062
  data = new ScrollSpy(this, _config);
6626
- $(this).data(DATA_KEY$8, data);
6063
+ $(this).data(DATA_KEY$7, data);
6627
6064
  }
6628
6065
 
6629
6066
  if (typeof config === 'string') {
@@ -6642,8 +6079,8 @@
6642
6079
  * ------------------------------------------------------------------------
6643
6080
  */
6644
6081
 
6645
- $(window).on(Event$8.LOAD_DATA_API, () => {
6646
- const scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));
6082
+ $(window).on(EVENT_LOAD_DATA_API$1, () => {
6083
+ const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));
6647
6084
  const scrollSpysLength = scrollSpys.length;
6648
6085
 
6649
6086
  for (let i = scrollSpysLength; i--;) {
@@ -6658,17 +6095,17 @@
6658
6095
  * ------------------------------------------------------------------------
6659
6096
  */
6660
6097
 
6661
- $.fn[NAME$8] = ScrollSpy._jQueryInterface;
6662
- $.fn[NAME$8].Constructor = ScrollSpy;
6663
- $.fn[NAME$8].noConflict = () => {
6664
- $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
6098
+ $.fn[NAME$7] = ScrollSpy._jQueryInterface;
6099
+ $.fn[NAME$7].Constructor = ScrollSpy;
6100
+ $.fn[NAME$7].noConflict = () => {
6101
+ $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
6665
6102
  return ScrollSpy._jQueryInterface
6666
6103
  };
6667
6104
 
6668
6105
  /**
6669
6106
  * --------------------------------------------------------------------------
6670
- * Bootstrap (v4.3.1): tab.js
6671
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6107
+ * Bootstrap (v4.5.2): tab.js
6108
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6672
6109
  * --------------------------------------------------------------------------
6673
6110
  */
6674
6111
 
@@ -6678,38 +6115,32 @@
6678
6115
  * ------------------------------------------------------------------------
6679
6116
  */
6680
6117
 
6681
- const NAME$9 = 'tab';
6682
- const VERSION$9 = '4.3.1';
6683
- const DATA_KEY$9 = 'bs.tab';
6684
- const EVENT_KEY$9 = `.${DATA_KEY$9}`;
6685
- const DATA_API_KEY$7 = '.data-api';
6686
- const JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];
6687
-
6688
- const Event$9 = {
6689
- HIDE : `hide${EVENT_KEY$9}`,
6690
- HIDDEN : `hidden${EVENT_KEY$9}`,
6691
- SHOW : `show${EVENT_KEY$9}`,
6692
- SHOWN : `shown${EVENT_KEY$9}`,
6693
- CLICK_DATA_API : `click${EVENT_KEY$9}${DATA_API_KEY$7}`
6694
- };
6695
-
6696
- const ClassName$9 = {
6697
- DROPDOWN_MENU : 'dropdown-menu',
6698
- ACTIVE : 'active',
6699
- DISABLED : 'disabled',
6700
- FADE : 'fade',
6701
- SHOW : 'show'
6702
- };
6118
+ const NAME$8 = 'tab';
6119
+ const VERSION$8 = '4.5.2';
6120
+ const DATA_KEY$8 = 'bs.tab';
6121
+ const EVENT_KEY$8 = `.${DATA_KEY$8}`;
6122
+ const DATA_API_KEY$6 = '.data-api';
6123
+ const JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];
6703
6124
 
6704
- const Selector$9 = {
6705
- DROPDOWN : '.dropdown',
6706
- NAV_LIST_GROUP : '.nav, .list-group',
6707
- ACTIVE : '.active',
6708
- ACTIVE_UL : '> li > .active',
6709
- DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
6710
- DROPDOWN_TOGGLE : '.dropdown-toggle',
6711
- DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'
6712
- };
6125
+ const EVENT_HIDE$3 = `hide${EVENT_KEY$8}`;
6126
+ const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$8}`;
6127
+ const EVENT_SHOW$3 = `show${EVENT_KEY$8}`;
6128
+ const EVENT_SHOWN$3 = `shown${EVENT_KEY$8}`;
6129
+ const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$6}`;
6130
+
6131
+ const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
6132
+ const CLASS_NAME_ACTIVE$2 = 'active';
6133
+ const CLASS_NAME_DISABLED$1 = 'disabled';
6134
+ const CLASS_NAME_FADE$4 = 'fade';
6135
+ const CLASS_NAME_SHOW$6 = 'show';
6136
+
6137
+ const SELECTOR_DROPDOWN$1 = '.dropdown';
6138
+ const SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';
6139
+ const SELECTOR_ACTIVE$1 = '.active';
6140
+ const SELECTOR_ACTIVE_UL = '> li > .active';
6141
+ const SELECTOR_DATA_TOGGLE$4 = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
6142
+ const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
6143
+ const SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
6713
6144
 
6714
6145
  /**
6715
6146
  * ------------------------------------------------------------------------
@@ -6725,7 +6156,7 @@
6725
6156
  // Getters
6726
6157
 
6727
6158
  static get VERSION() {
6728
- return VERSION$9
6159
+ return VERSION$8
6729
6160
  }
6730
6161
 
6731
6162
  // Public
@@ -6733,27 +6164,27 @@
6733
6164
  show() {
6734
6165
  if (this._element.parentNode &&
6735
6166
  this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
6736
- $(this._element).hasClass(ClassName$9.ACTIVE) ||
6737
- $(this._element).hasClass(ClassName$9.DISABLED)) {
6167
+ $(this._element).hasClass(CLASS_NAME_ACTIVE$2) ||
6168
+ $(this._element).hasClass(CLASS_NAME_DISABLED$1)) {
6738
6169
  return
6739
6170
  }
6740
6171
 
6741
6172
  let target;
6742
6173
  let previous;
6743
- const listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];
6174
+ const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];
6744
6175
  const selector = Util.getSelectorFromElement(this._element);
6745
6176
 
6746
6177
  if (listElement) {
6747
- const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
6178
+ const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$1;
6748
6179
  previous = $.makeArray($(listElement).find(itemSelector));
6749
6180
  previous = previous[previous.length - 1];
6750
6181
  }
6751
6182
 
6752
- const hideEvent = $.Event(Event$9.HIDE, {
6183
+ const hideEvent = $.Event(EVENT_HIDE$3, {
6753
6184
  relatedTarget: this._element
6754
6185
  });
6755
6186
 
6756
- const showEvent = $.Event(Event$9.SHOW, {
6187
+ const showEvent = $.Event(EVENT_SHOW$3, {
6757
6188
  relatedTarget: previous
6758
6189
  });
6759
6190
 
@@ -6778,11 +6209,11 @@
6778
6209
  );
6779
6210
 
6780
6211
  const complete = () => {
6781
- const hiddenEvent = $.Event(Event$9.HIDDEN, {
6212
+ const hiddenEvent = $.Event(EVENT_HIDDEN$3, {
6782
6213
  relatedTarget: this._element
6783
6214
  });
6784
6215
 
6785
- const shownEvent = $.Event(Event$9.SHOWN, {
6216
+ const shownEvent = $.Event(EVENT_SHOWN$3, {
6786
6217
  relatedTarget: previous
6787
6218
  });
6788
6219
 
@@ -6798,7 +6229,7 @@
6798
6229
  }
6799
6230
 
6800
6231
  dispose() {
6801
- $.removeData(this._element, DATA_KEY$9);
6232
+ $.removeData(this._element, DATA_KEY$8);
6802
6233
  this._element = null;
6803
6234
  }
6804
6235
 
@@ -6806,11 +6237,11 @@
6806
6237
 
6807
6238
  _activate(element, container, callback) {
6808
6239
  const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')
6809
- ? $(container).find(Selector$9.ACTIVE_UL)
6810
- : $(container).children(Selector$9.ACTIVE);
6240
+ ? $(container).find(SELECTOR_ACTIVE_UL)
6241
+ : $(container).children(SELECTOR_ACTIVE$1);
6811
6242
 
6812
6243
  const active = activeElements[0];
6813
- const isTransitioning = callback && (active && $(active).hasClass(ClassName$9.FADE));
6244
+ const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE$4));
6814
6245
  const complete = () => this._transitionComplete(
6815
6246
  element,
6816
6247
  active,
@@ -6821,7 +6252,7 @@
6821
6252
  const transitionDuration = Util.getTransitionDurationFromElement(active);
6822
6253
 
6823
6254
  $(active)
6824
- .removeClass(ClassName$9.SHOW)
6255
+ .removeClass(CLASS_NAME_SHOW$6)
6825
6256
  .one(Util.TRANSITION_END, complete)
6826
6257
  .emulateTransitionEnd(transitionDuration);
6827
6258
  } else {
@@ -6831,14 +6262,14 @@
6831
6262
 
6832
6263
  _transitionComplete(element, active, callback) {
6833
6264
  if (active) {
6834
- $(active).removeClass(ClassName$9.ACTIVE);
6265
+ $(active).removeClass(CLASS_NAME_ACTIVE$2);
6835
6266
 
6836
6267
  const dropdownChild = $(active.parentNode).find(
6837
- Selector$9.DROPDOWN_ACTIVE_CHILD
6268
+ SELECTOR_DROPDOWN_ACTIVE_CHILD
6838
6269
  )[0];
6839
6270
 
6840
6271
  if (dropdownChild) {
6841
- $(dropdownChild).removeClass(ClassName$9.ACTIVE);
6272
+ $(dropdownChild).removeClass(CLASS_NAME_ACTIVE$2);
6842
6273
  }
6843
6274
 
6844
6275
  if (active.getAttribute('role') === 'tab') {
@@ -6846,24 +6277,24 @@
6846
6277
  }
6847
6278
  }
6848
6279
 
6849
- $(element).addClass(ClassName$9.ACTIVE);
6280
+ $(element).addClass(CLASS_NAME_ACTIVE$2);
6850
6281
  if (element.getAttribute('role') === 'tab') {
6851
6282
  element.setAttribute('aria-selected', true);
6852
6283
  }
6853
6284
 
6854
6285
  Util.reflow(element);
6855
6286
 
6856
- if (element.classList.contains(ClassName$9.FADE)) {
6857
- element.classList.add(ClassName$9.SHOW);
6287
+ if (element.classList.contains(CLASS_NAME_FADE$4)) {
6288
+ element.classList.add(CLASS_NAME_SHOW$6);
6858
6289
  }
6859
6290
 
6860
- if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
6861
- const dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
6291
+ if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
6292
+ const dropdownElement = $(element).closest(SELECTOR_DROPDOWN$1)[0];
6862
6293
 
6863
6294
  if (dropdownElement) {
6864
- const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));
6295
+ const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));
6865
6296
 
6866
- $(dropdownToggleList).addClass(ClassName$9.ACTIVE);
6297
+ $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE$2);
6867
6298
  }
6868
6299
 
6869
6300
  element.setAttribute('aria-expanded', true);
@@ -6879,11 +6310,11 @@
6879
6310
  static _jQueryInterface(config) {
6880
6311
  return this.each(function () {
6881
6312
  const $this = $(this);
6882
- let data = $this.data(DATA_KEY$9);
6313
+ let data = $this.data(DATA_KEY$8);
6883
6314
 
6884
6315
  if (!data) {
6885
6316
  data = new Tab(this);
6886
- $this.data(DATA_KEY$9, data);
6317
+ $this.data(DATA_KEY$8, data);
6887
6318
  }
6888
6319
 
6889
6320
  if (typeof config === 'string') {
@@ -6903,7 +6334,7 @@
6903
6334
  */
6904
6335
 
6905
6336
  $(document)
6906
- .on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
6337
+ .on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$4, function (event) {
6907
6338
  event.preventDefault();
6908
6339
  Tab._jQueryInterface.call($(this), 'show');
6909
6340
  });
@@ -6914,236 +6345,13 @@
6914
6345
  * ------------------------------------------------------------------------
6915
6346
  */
6916
6347
 
6917
- $.fn[NAME$9] = Tab._jQueryInterface;
6918
- $.fn[NAME$9].Constructor = Tab;
6919
- $.fn[NAME$9].noConflict = () => {
6920
- $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
6348
+ $.fn[NAME$8] = Tab._jQueryInterface;
6349
+ $.fn[NAME$8].Constructor = Tab;
6350
+ $.fn[NAME$8].noConflict = () => {
6351
+ $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
6921
6352
  return Tab._jQueryInterface
6922
6353
  };
6923
6354
 
6924
- /**
6925
- * --------------------------------------------------------------------------
6926
- * Bootstrap (v4.3.1): toast.js
6927
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6928
- * --------------------------------------------------------------------------
6929
- */
6930
-
6931
- /**
6932
- * ------------------------------------------------------------------------
6933
- * Constants
6934
- * ------------------------------------------------------------------------
6935
- */
6936
-
6937
- const NAME$a = 'toast';
6938
- const VERSION$a = '4.3.1';
6939
- const DATA_KEY$a = 'bs.toast';
6940
- const EVENT_KEY$a = `.${DATA_KEY$a}`;
6941
- const JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
6942
-
6943
- const Event$a = {
6944
- CLICK_DISMISS : `click.dismiss${EVENT_KEY$a}`,
6945
- HIDE : `hide${EVENT_KEY$a}`,
6946
- HIDDEN : `hidden${EVENT_KEY$a}`,
6947
- SHOW : `show${EVENT_KEY$a}`,
6948
- SHOWN : `shown${EVENT_KEY$a}`
6949
- };
6950
-
6951
- const ClassName$a = {
6952
- FADE : 'fade',
6953
- HIDE : 'hide',
6954
- SHOW : 'show',
6955
- SHOWING : 'showing'
6956
- };
6957
-
6958
- const DefaultType$7 = {
6959
- animation : 'boolean',
6960
- autohide : 'boolean',
6961
- delay : 'number'
6962
- };
6963
-
6964
- const Default$7 = {
6965
- animation : true,
6966
- autohide : true,
6967
- delay : 500
6968
- };
6969
-
6970
- const Selector$a = {
6971
- DATA_DISMISS : '[data-dismiss="toast"]'
6972
- };
6973
-
6974
- /**
6975
- * ------------------------------------------------------------------------
6976
- * Class Definition
6977
- * ------------------------------------------------------------------------
6978
- */
6979
-
6980
- class Toast {
6981
- constructor(element, config) {
6982
- this._element = element;
6983
- this._config = this._getConfig(config);
6984
- this._timeout = null;
6985
- this._setListeners();
6986
- }
6987
-
6988
- // Getters
6989
-
6990
- static get VERSION() {
6991
- return VERSION$a
6992
- }
6993
-
6994
- static get DefaultType() {
6995
- return DefaultType$7
6996
- }
6997
-
6998
- static get Default() {
6999
- return Default$7
7000
- }
7001
-
7002
- // Public
7003
-
7004
- show() {
7005
- $(this._element).trigger(Event$a.SHOW);
7006
-
7007
- if (this._config.animation) {
7008
- this._element.classList.add(ClassName$a.FADE);
7009
- }
7010
-
7011
- const complete = () => {
7012
- this._element.classList.remove(ClassName$a.SHOWING);
7013
- this._element.classList.add(ClassName$a.SHOW);
7014
-
7015
- $(this._element).trigger(Event$a.SHOWN);
7016
-
7017
- if (this._config.autohide) {
7018
- this.hide();
7019
- }
7020
- };
7021
-
7022
- this._element.classList.remove(ClassName$a.HIDE);
7023
- this._element.classList.add(ClassName$a.SHOWING);
7024
- if (this._config.animation) {
7025
- const transitionDuration = Util.getTransitionDurationFromElement(this._element);
7026
-
7027
- $(this._element)
7028
- .one(Util.TRANSITION_END, complete)
7029
- .emulateTransitionEnd(transitionDuration);
7030
- } else {
7031
- complete();
7032
- }
7033
- }
7034
-
7035
- hide(withoutTimeout) {
7036
- if (!this._element.classList.contains(ClassName$a.SHOW)) {
7037
- return
7038
- }
7039
-
7040
- $(this._element).trigger(Event$a.HIDE);
7041
-
7042
- if (withoutTimeout) {
7043
- this._close();
7044
- } else {
7045
- this._timeout = setTimeout(() => {
7046
- this._close();
7047
- }, this._config.delay);
7048
- }
7049
- }
7050
-
7051
- dispose() {
7052
- clearTimeout(this._timeout);
7053
- this._timeout = null;
7054
-
7055
- if (this._element.classList.contains(ClassName$a.SHOW)) {
7056
- this._element.classList.remove(ClassName$a.SHOW);
7057
- }
7058
-
7059
- $(this._element).off(Event$a.CLICK_DISMISS);
7060
-
7061
- $.removeData(this._element, DATA_KEY$a);
7062
- this._element = null;
7063
- this._config = null;
7064
- }
7065
-
7066
- // Private
7067
-
7068
- _getConfig(config) {
7069
- config = {
7070
- ...Default$7,
7071
- ...$(this._element).data(),
7072
- ...typeof config === 'object' && config ? config : {}
7073
- };
7074
-
7075
- Util.typeCheckConfig(
7076
- NAME$a,
7077
- config,
7078
- this.constructor.DefaultType
7079
- );
7080
-
7081
- return config
7082
- }
7083
-
7084
- _setListeners() {
7085
- $(this._element).on(
7086
- Event$a.CLICK_DISMISS,
7087
- Selector$a.DATA_DISMISS,
7088
- () => this.hide(true)
7089
- );
7090
- }
7091
-
7092
- _close() {
7093
- const complete = () => {
7094
- this._element.classList.add(ClassName$a.HIDE);
7095
- $(this._element).trigger(Event$a.HIDDEN);
7096
- };
7097
-
7098
- this._element.classList.remove(ClassName$a.SHOW);
7099
- if (this._config.animation) {
7100
- const transitionDuration = Util.getTransitionDurationFromElement(this._element);
7101
-
7102
- $(this._element)
7103
- .one(Util.TRANSITION_END, complete)
7104
- .emulateTransitionEnd(transitionDuration);
7105
- } else {
7106
- complete();
7107
- }
7108
- }
7109
-
7110
- // Static
7111
-
7112
- static _jQueryInterface(config) {
7113
- return this.each(function () {
7114
- const $element = $(this);
7115
- let data = $element.data(DATA_KEY$a);
7116
- const _config = typeof config === 'object' && config;
7117
-
7118
- if (!data) {
7119
- data = new Toast(this, _config);
7120
- $element.data(DATA_KEY$a, data);
7121
- }
7122
-
7123
- if (typeof config === 'string') {
7124
- if (typeof data[config] === 'undefined') {
7125
- throw new TypeError(`No method named "${config}"`)
7126
- }
7127
-
7128
- data[config](this);
7129
- }
7130
- })
7131
- }
7132
- }
7133
-
7134
- /**
7135
- * ------------------------------------------------------------------------
7136
- * jQuery
7137
- * ------------------------------------------------------------------------
7138
- */
7139
-
7140
- $.fn[NAME$a] = Toast._jQueryInterface;
7141
- $.fn[NAME$a].Constructor = Toast;
7142
- $.fn[NAME$a].noConflict = () => {
7143
- $.fn[NAME$a] = JQUERY_NO_CONFLICT$a;
7144
- return Toast._jQueryInterface
7145
- };
7146
-
7147
6355
  var dropdownInit = function dropdownInit() {
7148
6356
  // find dropdown with pill class
7149
6357
  var $wrapperDropdownPill = $('.dropdown-with-pill'); // find dropdown with select class
@@ -7363,7 +6571,6 @@
7363
6571
 
7364
6572
  exports.Alert = Alert;
7365
6573
  exports.Button = Button;
7366
- exports.Carousel = Carousel;
7367
6574
  exports.Collapse = Collapse;
7368
6575
  exports.Dropdown = Dropdown;
7369
6576
  exports.MekariDropdown = dropdownInit;
@@ -7373,7 +6580,6 @@
7373
6580
  exports.Popover = Popover;
7374
6581
  exports.Scrollspy = ScrollSpy;
7375
6582
  exports.Tab = Tab;
7376
- exports.Toast = Toast;
7377
6583
  exports.Tooltip = Tooltip;
7378
6584
  exports.Util = Util;
7379
6585