@openeuropa/bcl-bootstrap 0.28.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/bootstrap-icons.svg +1 -1
  2. package/icons/0-circle-fill.svg +4 -0
  3. package/icons/0-circle.svg +4 -0
  4. package/icons/0-square-fill.svg +4 -0
  5. package/icons/0-square.svg +4 -0
  6. package/icons/1-circle-fill.svg +1 -1
  7. package/icons/amd.svg +3 -0
  8. package/icons/arrow-bar-left.svg +1 -1
  9. package/icons/arrow-bar-right.svg +1 -1
  10. package/icons/arrows-collapse.svg +1 -1
  11. package/icons/arrows-expand.svg +1 -1
  12. package/icons/building-add.svg +5 -0
  13. package/icons/building-check.svg +5 -0
  14. package/icons/building-dash.svg +5 -0
  15. package/icons/building-down.svg +5 -0
  16. package/icons/building-exclamation.svg +4 -0
  17. package/icons/building-fill-add.svg +4 -0
  18. package/icons/building-fill-check.svg +4 -0
  19. package/icons/building-fill-dash.svg +4 -0
  20. package/icons/building-fill-down.svg +4 -0
  21. package/icons/building-fill-exclamation.svg +4 -0
  22. package/icons/building-fill-gear.svg +4 -0
  23. package/icons/building-fill-lock.svg +4 -0
  24. package/icons/building-fill-slash.svg +4 -0
  25. package/icons/building-fill-up.svg +4 -0
  26. package/icons/building-fill-x.svg +4 -0
  27. package/icons/building-fill.svg +3 -0
  28. package/icons/building-gear.svg +4 -0
  29. package/icons/building-lock.svg +4 -0
  30. package/icons/building-slash.svg +5 -0
  31. package/icons/building-up.svg +5 -0
  32. package/icons/building-x.svg +4 -0
  33. package/icons/building.svg +2 -2
  34. package/icons/buildings-fill.svg +3 -0
  35. package/icons/buildings.svg +4 -0
  36. package/icons/bus-front-fill.svg +3 -0
  37. package/icons/bus-front.svg +4 -0
  38. package/icons/capsule-pill.svg +1 -1
  39. package/icons/capsule.svg +1 -1
  40. package/icons/car-front-fill.svg +1 -1
  41. package/icons/car-front.svg +1 -1
  42. package/icons/database-add.svg +4 -0
  43. package/icons/database-check.svg +4 -0
  44. package/icons/database-dash.svg +4 -0
  45. package/icons/database-down.svg +4 -0
  46. package/icons/database-exclamation.svg +4 -0
  47. package/icons/database-fill-add.svg +4 -0
  48. package/icons/database-fill-check.svg +4 -0
  49. package/icons/database-fill-dash.svg +4 -0
  50. package/icons/database-fill-down.svg +4 -0
  51. package/icons/database-fill-exclamation.svg +5 -0
  52. package/icons/database-fill-gear.svg +4 -0
  53. package/icons/database-fill-lock.svg +5 -0
  54. package/icons/database-fill-slash.svg +4 -0
  55. package/icons/database-fill-up.svg +4 -0
  56. package/icons/database-fill-x.svg +5 -0
  57. package/icons/database-fill.svg +6 -0
  58. package/icons/database-gear.svg +4 -0
  59. package/icons/database-lock.svg +4 -0
  60. package/icons/database-slash.svg +4 -0
  61. package/icons/database-up.svg +4 -0
  62. package/icons/database-x.svg +4 -0
  63. package/icons/database.svg +3 -0
  64. package/icons/envelope-at-fill.svg +4 -0
  65. package/icons/envelope-at.svg +4 -0
  66. package/icons/ev-front-fill.svg +3 -0
  67. package/icons/ev-front.svg +4 -0
  68. package/icons/globe-americas.svg +3 -0
  69. package/icons/globe-asia-australia.svg +4 -0
  70. package/icons/globe-central-south-asia.svg +3 -0
  71. package/icons/globe-europe-africa.svg +3 -0
  72. package/icons/heart-pulse-fill.svg +2 -1
  73. package/icons/heart-pulse.svg +2 -1
  74. package/icons/heartbreak-fill.svg +1 -1
  75. package/icons/heartbreak.svg +1 -1
  76. package/icons/house-add-fill.svg +5 -0
  77. package/icons/house-add.svg +4 -0
  78. package/icons/house-check-fill.svg +5 -0
  79. package/icons/house-check.svg +4 -0
  80. package/icons/house-dash-fill.svg +5 -0
  81. package/icons/house-dash.svg +4 -0
  82. package/icons/house-door-fill.svg +1 -1
  83. package/icons/house-door.svg +1 -1
  84. package/icons/house-down-fill.svg +5 -0
  85. package/icons/house-down.svg +4 -0
  86. package/icons/house-exclamation-fill.svg +5 -0
  87. package/icons/house-exclamation.svg +4 -0
  88. package/icons/house-fill.svg +2 -2
  89. package/icons/house-gear-fill.svg +5 -0
  90. package/icons/house-gear.svg +4 -0
  91. package/icons/house-lock-fill.svg +5 -0
  92. package/icons/house-lock.svg +4 -0
  93. package/icons/house-slash-fill.svg +5 -0
  94. package/icons/house-slash.svg +4 -0
  95. package/icons/house-up-fill.svg +5 -0
  96. package/icons/house-up.svg +4 -0
  97. package/icons/house-x-fill.svg +5 -0
  98. package/icons/house-x.svg +4 -0
  99. package/icons/house.svg +1 -2
  100. package/icons/houses-fill.svg +4 -0
  101. package/icons/houses.svg +3 -0
  102. package/icons/lungs-fill.svg +1 -1
  103. package/icons/nvidia.svg +3 -0
  104. package/icons/people-fill.svg +1 -3
  105. package/icons/people.svg +1 -1
  106. package/icons/person-add.svg +4 -0
  107. package/icons/person-check.svg +2 -2
  108. package/icons/person-dash.svg +2 -2
  109. package/icons/person-down.svg +4 -0
  110. package/icons/person-exclamation.svg +4 -0
  111. package/icons/person-fill-add.svg +4 -0
  112. package/icons/person-fill-check.svg +4 -0
  113. package/icons/person-fill-dash.svg +4 -0
  114. package/icons/person-fill-down.svg +4 -0
  115. package/icons/person-fill-exclamation.svg +4 -0
  116. package/icons/person-fill-gear.svg +3 -0
  117. package/icons/person-fill-lock.svg +3 -0
  118. package/icons/person-fill-slash.svg +3 -0
  119. package/icons/person-fill-up.svg +4 -0
  120. package/icons/person-fill-x.svg +4 -0
  121. package/icons/person-fill.svg +1 -1
  122. package/icons/person-gear.svg +3 -0
  123. package/icons/person-lock.svg +3 -0
  124. package/icons/person-slash.svg +3 -0
  125. package/icons/person-up.svg +4 -0
  126. package/icons/person-vcard-fill.svg +3 -0
  127. package/icons/person-vcard.svg +4 -0
  128. package/icons/person-x.svg +2 -2
  129. package/icons/person.svg +1 -1
  130. package/icons/prescription.svg +2 -2
  131. package/icons/prescription2.svg +1 -1
  132. package/icons/regex.svg +3 -0
  133. package/icons/rocket-fill.svg +4 -0
  134. package/icons/rocket-takeoff-fill.svg +4 -0
  135. package/icons/rocket-takeoff.svg +5 -0
  136. package/icons/rocket.svg +5 -0
  137. package/icons/scooter.svg +3 -0
  138. package/icons/sign-dead-end-fill.svg +4 -0
  139. package/icons/sign-dead-end.svg +4 -0
  140. package/icons/sign-do-not-enter-fill.svg +4 -0
  141. package/icons/sign-do-not-enter.svg +4 -0
  142. package/icons/sign-intersection-fill.svg +3 -0
  143. package/icons/sign-intersection-side-fill.svg +3 -0
  144. package/icons/sign-intersection-side.svg +4 -0
  145. package/icons/sign-intersection-t-fill.svg +3 -0
  146. package/icons/sign-intersection-t.svg +4 -0
  147. package/icons/sign-intersection-y-fill.svg +3 -0
  148. package/icons/sign-intersection-y.svg +4 -0
  149. package/icons/sign-intersection.svg +4 -0
  150. package/icons/sign-merge-left-fill.svg +3 -0
  151. package/icons/sign-merge-left.svg +4 -0
  152. package/icons/sign-merge-right-fill.svg +3 -0
  153. package/icons/sign-merge-right.svg +4 -0
  154. package/icons/sign-no-left-turn-fill.svg +4 -0
  155. package/icons/sign-no-left-turn.svg +3 -0
  156. package/icons/sign-no-parking-fill.svg +4 -0
  157. package/icons/sign-no-parking.svg +3 -0
  158. package/icons/sign-no-right-turn-fill.svg +4 -0
  159. package/icons/sign-no-right-turn.svg +3 -0
  160. package/icons/sign-railroad-fill.svg +5 -0
  161. package/icons/sign-railroad.svg +4 -0
  162. package/icons/sign-stop-fill.svg +1 -1
  163. package/icons/sign-stop-lights-fill.svg +1 -1
  164. package/icons/sign-turn-left-fill.svg +1 -1
  165. package/icons/sign-turn-right-fill.svg +1 -1
  166. package/icons/sign-turn-slight-left-fill.svg +1 -1
  167. package/icons/sign-turn-slight-right-fill.svg +1 -1
  168. package/icons/sign-yield-fill.svg +1 -1
  169. package/icons/sina-weibo.svg +4 -0
  170. package/icons/stripe.svg +3 -0
  171. package/icons/subscript.svg +3 -0
  172. package/icons/superscript.svg +3 -0
  173. package/icons/taxi-front-fill.svg +3 -0
  174. package/icons/taxi-front.svg +4 -0
  175. package/icons/tencent-qq.svg +4 -0
  176. package/icons/text-wrap.svg +3 -0
  177. package/icons/train-freight-front-fill.svg +1 -1
  178. package/icons/train-freight-front.svg +1 -1
  179. package/icons/train-front-fill.svg +1 -1
  180. package/icons/train-front.svg +1 -1
  181. package/icons/train-lightrail-front-fill.svg +1 -1
  182. package/icons/train-lightrail-front.svg +1 -1
  183. package/icons/trello.svg +3 -0
  184. package/icons/truck-front-fill.svg +1 -1
  185. package/icons/truck-front.svg +2 -3
  186. package/icons/virus.svg +1 -1
  187. package/icons/virus2.svg +1 -1
  188. package/icons/wikipedia.svg +3 -0
  189. package/js/dist/alert.js +14 -25
  190. package/js/dist/alert.js.map +1 -1
  191. package/js/dist/base-component.js +13 -30
  192. package/js/dist/base-component.js.map +1 -1
  193. package/js/dist/button.js +11 -15
  194. package/js/dist/button.js.map +1 -1
  195. package/js/dist/carousel.js +36 -120
  196. package/js/dist/carousel.js.map +1 -1
  197. package/js/dist/collapse.js +27 -88
  198. package/js/dist/collapse.js.map +1 -1
  199. package/js/dist/dependency/manipulator.js +72 -0
  200. package/js/dist/dependency/manipulator.js.map +1 -0
  201. package/js/dist/dom/data.js +6 -10
  202. package/js/dist/dom/data.js.map +1 -1
  203. package/js/dist/dom/event-handler.js +7 -52
  204. package/js/dist/dom/event-handler.js.map +1 -1
  205. package/js/dist/dom/manipulator.js +2 -15
  206. package/js/dist/dom/manipulator.js.map +1 -1
  207. package/js/dist/dom/selector-engine.js +2 -16
  208. package/js/dist/dom/selector-engine.js.map +1 -1
  209. package/js/dist/dropdown.js +52 -124
  210. package/js/dist/dropdown.js.map +1 -1
  211. package/js/dist/modal.js +40 -119
  212. package/js/dist/modal.js.map +1 -1
  213. package/js/dist/offcanvas.js +36 -89
  214. package/js/dist/offcanvas.js.map +1 -1
  215. package/js/dist/popover.js +15 -22
  216. package/js/dist/popover.js.map +1 -1
  217. package/js/dist/scrollspy-legacy.js +216 -0
  218. package/js/dist/scrollspy-legacy.js.map +1 -0
  219. package/js/dist/scrollspy.js +42 -80
  220. package/js/dist/scrollspy.js.map +1 -1
  221. package/js/dist/tab.js +40 -98
  222. package/js/dist/tab.js.map +1 -1
  223. package/js/dist/toast.js +30 -69
  224. package/js/dist/toast.js.map +1 -1
  225. package/js/dist/tooltip.js +74 -196
  226. package/js/dist/tooltip.js.map +1 -1
  227. package/js/dist/util/backdrop.js +13 -40
  228. package/js/dist/util/backdrop.js.map +1 -1
  229. package/js/dist/util/component-functions.js +5 -11
  230. package/js/dist/util/component-functions.js.map +1 -1
  231. package/js/dist/util/config.js +6 -18
  232. package/js/dist/util/config.js.map +1 -1
  233. package/js/dist/util/focustrap.js +16 -33
  234. package/js/dist/util/focustrap.js.map +1 -1
  235. package/js/dist/util/index.js +28 -75
  236. package/js/dist/util/index.js.map +1 -1
  237. package/js/dist/util/sanitizer.js +7 -17
  238. package/js/dist/util/sanitizer.js.map +1 -1
  239. package/js/dist/util/scrollbar.js +16 -43
  240. package/js/dist/util/scrollbar.js.map +1 -1
  241. package/js/dist/util/swipe.js +18 -40
  242. package/js/dist/util/swipe.js.map +1 -1
  243. package/js/dist/util/template-factory.js +13 -41
  244. package/js/dist/util/template-factory.js.map +1 -1
  245. package/js/src/alert.js +1 -1
  246. package/js/src/base-component.js +2 -2
  247. package/js/src/button.js +1 -1
  248. package/js/src/carousel.js +1 -1
  249. package/js/src/collapse.js +1 -1
  250. package/js/src/dependency/manipulator.js +80 -0
  251. package/js/src/dom/data.js +1 -1
  252. package/js/src/dom/event-handler.js +1 -1
  253. package/js/src/dom/manipulator.js +1 -1
  254. package/js/src/dom/selector-engine.js +1 -1
  255. package/js/src/dropdown.js +10 -3
  256. package/js/src/modal.js +3 -3
  257. package/js/src/offcanvas.js +1 -1
  258. package/js/src/popover.js +1 -1
  259. package/js/src/scrollspy-legacy.js +294 -0
  260. package/js/src/scrollspy.js +1 -1
  261. package/js/src/tab.js +2 -4
  262. package/js/src/toast.js +9 -4
  263. package/js/src/tooltip.js +27 -48
  264. package/js/src/util/backdrop.js +1 -1
  265. package/js/src/util/component-functions.js +1 -1
  266. package/js/src/util/config.js +1 -1
  267. package/js/src/util/focustrap.js +1 -1
  268. package/js/src/util/index.js +1 -1
  269. package/js/src/util/sanitizer.js +1 -1
  270. package/js/src/util/scrollbar.js +1 -1
  271. package/js/src/util/swipe.js +1 -1
  272. package/js/src/util/template-factory.js +1 -1
  273. package/legacy/dependency/manipulator.js +80 -0
  274. package/legacy/scrollspy-legacy.js +294 -0
  275. package/package.json +6 -6
  276. package/scss/_buttons.scss +8 -2
  277. package/scss/_carousel.scss +0 -3
  278. package/scss/_functions.scss +1 -1
  279. package/scss/_toasts.scss +2 -0
  280. package/scss/_variables.scss +1 -1
  281. package/scss/bootstrap-utilities.scss +3 -0
  282. package/scss/mixins/_banner.scss +1 -1
  283. package/scss/mixins/_table-variants.scss +2 -2
package/js/dist/tab.js CHANGED
@@ -4,18 +4,13 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));
5
5
  })(this, (function (index, EventHandler, SelectorEngine, BaseComponent) { 'use strict';
6
6
 
7
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
8
-
9
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
10
- const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
11
- const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
12
-
13
7
  /**
14
8
  * --------------------------------------------------------------------------
15
- * Bootstrap (v5.2.1): tab.js
9
+ * Bootstrap (v5.2.3): tab.js
16
10
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
17
11
  * --------------------------------------------------------------------------
18
12
  */
13
+
19
14
  /**
20
15
  * Constants
21
16
  */
@@ -40,280 +35,227 @@
40
35
  const CLASS_DROPDOWN = 'dropdown';
41
36
  const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
42
37
  const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
43
- const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';
44
38
  const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
45
39
  const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
46
40
  const SELECTOR_OUTER = '.nav-item, .list-group-item';
47
41
  const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
48
42
  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab`
49
-
50
43
  const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
51
44
  const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
45
+
52
46
  /**
53
47
  * Class definition
54
48
  */
55
49
 
56
- class Tab extends BaseComponent__default.default {
50
+ class Tab extends BaseComponent {
57
51
  constructor(element) {
58
52
  super(element);
59
53
  this._parent = this._element.closest(SELECTOR_TAB_PANEL);
60
-
61
54
  if (!this._parent) {
62
- return; // todo: should Throw exception on v6
55
+ return;
56
+ // todo: should Throw exception on v6
63
57
  // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
64
- } // Set up initial aria attributes
65
-
58
+ }
66
59
 
60
+ // Set up initial aria attributes
67
61
  this._setInitialAttributes(this._parent, this._getChildren());
62
+ EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
63
+ }
68
64
 
69
- EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
70
- } // Getters
71
-
72
-
65
+ // Getters
73
66
  static get NAME() {
74
67
  return NAME;
75
- } // Public
76
-
68
+ }
77
69
 
70
+ // Public
78
71
  show() {
79
72
  // Shows this elem and deactivate the active sibling if exists
80
73
  const innerElem = this._element;
81
-
82
74
  if (this._elemIsActive(innerElem)) {
83
75
  return;
84
- } // Search for active tab on same parent to deactivate it
85
-
76
+ }
86
77
 
78
+ // Search for active tab on same parent to deactivate it
87
79
  const active = this._getActiveElem();
88
-
89
- const hideEvent = active ? EventHandler__default.default.trigger(active, EVENT_HIDE, {
80
+ const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE, {
90
81
  relatedTarget: innerElem
91
82
  }) : null;
92
- const showEvent = EventHandler__default.default.trigger(innerElem, EVENT_SHOW, {
83
+ const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, {
93
84
  relatedTarget: active
94
85
  });
95
-
96
86
  if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
97
87
  return;
98
88
  }
99
-
100
89
  this._deactivate(active, innerElem);
101
-
102
90
  this._activate(innerElem, active);
103
- } // Private
104
-
91
+ }
105
92
 
93
+ // Private
106
94
  _activate(element, relatedElem) {
107
95
  if (!element) {
108
96
  return;
109
97
  }
110
-
111
98
  element.classList.add(CLASS_NAME_ACTIVE);
112
-
113
99
  this._activate(index.getElementFromSelector(element)); // Search and activate/show the proper section
114
100
 
115
-
116
101
  const complete = () => {
117
102
  if (element.getAttribute('role') !== 'tab') {
118
103
  element.classList.add(CLASS_NAME_SHOW);
119
104
  return;
120
105
  }
121
-
122
- element.focus();
123
106
  element.removeAttribute('tabindex');
124
107
  element.setAttribute('aria-selected', true);
125
-
126
108
  this._toggleDropDown(element, true);
127
-
128
- EventHandler__default.default.trigger(element, EVENT_SHOWN, {
109
+ EventHandler.trigger(element, EVENT_SHOWN, {
129
110
  relatedTarget: relatedElem
130
111
  });
131
112
  };
132
-
133
113
  this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));
134
114
  }
135
-
136
115
  _deactivate(element, relatedElem) {
137
116
  if (!element) {
138
117
  return;
139
118
  }
140
-
141
119
  element.classList.remove(CLASS_NAME_ACTIVE);
142
120
  element.blur();
143
-
144
121
  this._deactivate(index.getElementFromSelector(element)); // Search and deactivate the shown section too
145
122
 
146
-
147
123
  const complete = () => {
148
124
  if (element.getAttribute('role') !== 'tab') {
149
125
  element.classList.remove(CLASS_NAME_SHOW);
150
126
  return;
151
127
  }
152
-
153
128
  element.setAttribute('aria-selected', false);
154
129
  element.setAttribute('tabindex', '-1');
155
-
156
130
  this._toggleDropDown(element, false);
157
-
158
- EventHandler__default.default.trigger(element, EVENT_HIDDEN, {
131
+ EventHandler.trigger(element, EVENT_HIDDEN, {
159
132
  relatedTarget: relatedElem
160
133
  });
161
134
  };
162
-
163
135
  this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));
164
136
  }
165
-
166
137
  _keydown(event) {
167
138
  if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
168
139
  return;
169
140
  }
170
-
171
141
  event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
172
-
173
142
  event.preventDefault();
174
143
  const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
175
144
  const nextActiveElement = index.getNextActiveElement(this._getChildren().filter(element => !index.isDisabled(element)), event.target, isNext, true);
176
-
177
145
  if (nextActiveElement) {
146
+ nextActiveElement.focus({
147
+ preventScroll: true
148
+ });
178
149
  Tab.getOrCreateInstance(nextActiveElement).show();
179
150
  }
180
151
  }
181
-
182
152
  _getChildren() {
183
153
  // collection of inner elements
184
- return SelectorEngine__default.default.find(SELECTOR_INNER_ELEM, this._parent);
154
+ return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
185
155
  }
186
-
187
156
  _getActiveElem() {
188
157
  return this._getChildren().find(child => this._elemIsActive(child)) || null;
189
158
  }
190
-
191
159
  _setInitialAttributes(parent, children) {
192
160
  this._setAttributeIfNotExists(parent, 'role', 'tablist');
193
-
194
161
  for (const child of children) {
195
162
  this._setInitialAttributesOnChild(child);
196
163
  }
197
164
  }
198
-
199
165
  _setInitialAttributesOnChild(child) {
200
166
  child = this._getInnerElement(child);
201
-
202
167
  const isActive = this._elemIsActive(child);
203
-
204
168
  const outerElem = this._getOuterElement(child);
205
-
206
169
  child.setAttribute('aria-selected', isActive);
207
-
208
170
  if (outerElem !== child) {
209
171
  this._setAttributeIfNotExists(outerElem, 'role', 'presentation');
210
172
  }
211
-
212
173
  if (!isActive) {
213
174
  child.setAttribute('tabindex', '-1');
214
175
  }
176
+ this._setAttributeIfNotExists(child, 'role', 'tab');
215
177
 
216
- this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too
217
-
218
-
178
+ // set attributes to the related panel too
219
179
  this._setInitialAttributesOnTargetPanel(child);
220
180
  }
221
-
222
181
  _setInitialAttributesOnTargetPanel(child) {
223
182
  const target = index.getElementFromSelector(child);
224
-
225
183
  if (!target) {
226
184
  return;
227
185
  }
228
-
229
186
  this._setAttributeIfNotExists(target, 'role', 'tabpanel');
230
-
231
187
  if (child.id) {
232
188
  this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`);
233
189
  }
234
190
  }
235
-
236
191
  _toggleDropDown(element, open) {
237
192
  const outerElem = this._getOuterElement(element);
238
-
239
193
  if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
240
194
  return;
241
195
  }
242
-
243
196
  const toggle = (selector, className) => {
244
- const element = SelectorEngine__default.default.findOne(selector, outerElem);
245
-
197
+ const element = SelectorEngine.findOne(selector, outerElem);
246
198
  if (element) {
247
199
  element.classList.toggle(className, open);
248
200
  }
249
201
  };
250
-
251
202
  toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
252
203
  toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW);
253
- toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);
254
204
  outerElem.setAttribute('aria-expanded', open);
255
205
  }
256
-
257
206
  _setAttributeIfNotExists(element, attribute, value) {
258
207
  if (!element.hasAttribute(attribute)) {
259
208
  element.setAttribute(attribute, value);
260
209
  }
261
210
  }
262
-
263
211
  _elemIsActive(elem) {
264
212
  return elem.classList.contains(CLASS_NAME_ACTIVE);
265
- } // Try to get the inner element (usually the .nav-link)
266
-
213
+ }
267
214
 
215
+ // Try to get the inner element (usually the .nav-link)
268
216
  _getInnerElement(elem) {
269
- return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine__default.default.findOne(SELECTOR_INNER_ELEM, elem);
270
- } // Try to get the outer element (usually the .nav-item)
271
-
217
+ return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
218
+ }
272
219
 
220
+ // Try to get the outer element (usually the .nav-item)
273
221
  _getOuterElement(elem) {
274
222
  return elem.closest(SELECTOR_OUTER) || elem;
275
- } // Static
276
-
223
+ }
277
224
 
225
+ // Static
278
226
  static jQueryInterface(config) {
279
227
  return this.each(function () {
280
228
  const data = Tab.getOrCreateInstance(this);
281
-
282
229
  if (typeof config !== 'string') {
283
230
  return;
284
231
  }
285
-
286
232
  if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
287
233
  throw new TypeError(`No method named "${config}"`);
288
234
  }
289
-
290
235
  data[config]();
291
236
  });
292
237
  }
293
-
294
238
  }
239
+
295
240
  /**
296
241
  * Data API implementation
297
242
  */
298
243
 
299
-
300
- EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
244
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
301
245
  if (['A', 'AREA'].includes(this.tagName)) {
302
246
  event.preventDefault();
303
247
  }
304
-
305
248
  if (index.isDisabled(this)) {
306
249
  return;
307
250
  }
308
-
309
251
  Tab.getOrCreateInstance(this).show();
310
252
  });
253
+
311
254
  /**
312
255
  * Initialize on focus
313
256
  */
314
-
315
- EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {
316
- for (const element of SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
257
+ EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
258
+ for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
317
259
  Tab.getOrCreateInstance(element);
318
260
  }
319
261
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, getNextActiveElement, isDisabled } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst SELECTOR_DROPDOWN_ITEM = '.dropdown-item'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // todo:v6: could be only `tab`\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.focus()\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleDropDown(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleDropDown(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)\n\n if (nextActiveElement) {\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`)\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element)\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem)\n if (element) {\n element.classList.toggle(className, open)\n }\n }\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE)\n outerElem.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n"],"names":["NAME","DATA_KEY","EVENT_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","SELECTOR_DROPDOWN_ITEM","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","BaseComponent","constructor","element","_parent","_element","closest","_setInitialAttributes","_getChildren","EventHandler","on","event","_keydown","show","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","trigger","relatedTarget","showEvent","defaultPrevented","_deactivate","_activate","relatedElem","classList","add","getElementFromSelector","complete","getAttribute","focus","removeAttribute","setAttribute","_toggleDropDown","_queueCallback","contains","remove","blur","includes","key","stopPropagation","preventDefault","isNext","nextActiveElement","getNextActiveElement","filter","isDisabled","target","getOrCreateInstance","SelectorEngine","find","child","parent","children","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","id","open","toggle","selector","className","findOne","attribute","value","hasAttribute","elem","matches","jQueryInterface","config","each","data","undefined","startsWith","TypeError","document","tagName","window","defineJQueryPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"tab.js","sources":["../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, getNextActiveElement, isDisabled } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // todo:v6: could be only `tab`\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleDropDown(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleDropDown(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`)\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element)\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem)\n if (element) {\n element.classList.toggle(className, open)\n }\n }\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n outerElem.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n"],"names":["NAME","DATA_KEY","EVENT_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","BaseComponent","constructor","element","_parent","_element","closest","_setInitialAttributes","_getChildren","EventHandler","on","event","_keydown","show","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","trigger","relatedTarget","showEvent","defaultPrevented","_deactivate","_activate","relatedElem","classList","add","getElementFromSelector","complete","getAttribute","removeAttribute","setAttribute","_toggleDropDown","_queueCallback","contains","remove","blur","includes","key","stopPropagation","preventDefault","isNext","nextActiveElement","getNextActiveElement","filter","isDisabled","target","focus","preventScroll","getOrCreateInstance","SelectorEngine","find","child","parent","children","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","id","open","toggle","selector","className","findOne","attribute","value","hasAttribute","elem","matches","jQueryInterface","config","each","data","undefined","startsWith","TypeError","document","tagName","window","defineJQueryPlugin"],"mappings":"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"}
package/js/dist/toast.js CHANGED
@@ -4,17 +4,13 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Index, global.EventHandler, global.BaseComponent, global.ComponentFunctions));
5
5
  })(this, (function (index, EventHandler, BaseComponent, componentFunctions) { 'use strict';
6
6
 
7
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
8
-
9
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
10
- const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
11
-
12
7
  /**
13
8
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.2.1): toast.js
9
+ * Bootstrap (v5.2.3): toast.js
15
10
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
11
  * --------------------------------------------------------------------------
17
12
  */
13
+
18
14
  /**
19
15
  * Constants
20
16
  */
@@ -32,7 +28,6 @@
32
28
  const EVENT_SHOWN = `shown${EVENT_KEY}`;
33
29
  const CLASS_NAME_FADE = 'fade';
34
30
  const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility
35
-
36
31
  const CLASS_NAME_SHOW = 'show';
37
32
  const CLASS_NAME_SHOWING = 'showing';
38
33
  const DefaultType = {
@@ -45,181 +40,147 @@
45
40
  autohide: true,
46
41
  delay: 5000
47
42
  };
43
+
48
44
  /**
49
45
  * Class definition
50
46
  */
51
47
 
52
- class Toast extends BaseComponent__default.default {
48
+ class Toast extends BaseComponent {
53
49
  constructor(element, config) {
54
50
  super(element, config);
55
51
  this._timeout = null;
56
52
  this._hasMouseInteraction = false;
57
53
  this._hasKeyboardInteraction = false;
58
-
59
54
  this._setListeners();
60
- } // Getters
61
-
55
+ }
62
56
 
57
+ // Getters
63
58
  static get Default() {
64
59
  return Default;
65
60
  }
66
-
67
61
  static get DefaultType() {
68
62
  return DefaultType;
69
63
  }
70
-
71
64
  static get NAME() {
72
65
  return NAME;
73
- } // Public
74
-
66
+ }
75
67
 
68
+ // Public
76
69
  show() {
77
- const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW);
78
-
70
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
79
71
  if (showEvent.defaultPrevented) {
80
72
  return;
81
73
  }
82
-
83
74
  this._clearTimeout();
84
-
85
75
  if (this._config.animation) {
86
76
  this._element.classList.add(CLASS_NAME_FADE);
87
77
  }
88
-
89
78
  const complete = () => {
90
79
  this._element.classList.remove(CLASS_NAME_SHOWING);
91
-
92
- EventHandler__default.default.trigger(this._element, EVENT_SHOWN);
93
-
80
+ EventHandler.trigger(this._element, EVENT_SHOWN);
94
81
  this._maybeScheduleHide();
95
82
  };
96
-
97
83
  this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated
98
-
99
-
100
84
  index.reflow(this._element);
101
-
102
85
  this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
103
-
104
86
  this._queueCallback(complete, this._element, this._config.animation);
105
87
  }
106
-
107
88
  hide() {
108
89
  if (!this.isShown()) {
109
90
  return;
110
91
  }
111
-
112
- const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
113
-
92
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
114
93
  if (hideEvent.defaultPrevented) {
115
94
  return;
116
95
  }
117
-
118
96
  const complete = () => {
119
97
  this._element.classList.add(CLASS_NAME_HIDE); // @deprecated
120
-
121
-
122
98
  this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
123
-
124
- EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
99
+ EventHandler.trigger(this._element, EVENT_HIDDEN);
125
100
  };
126
-
127
101
  this._element.classList.add(CLASS_NAME_SHOWING);
128
-
129
102
  this._queueCallback(complete, this._element, this._config.animation);
130
103
  }
131
-
132
104
  dispose() {
133
105
  this._clearTimeout();
134
-
135
106
  if (this.isShown()) {
136
107
  this._element.classList.remove(CLASS_NAME_SHOW);
137
108
  }
138
-
139
109
  super.dispose();
140
110
  }
141
-
142
111
  isShown() {
143
112
  return this._element.classList.contains(CLASS_NAME_SHOW);
144
- } // Private
113
+ }
145
114
 
115
+ // Private
146
116
 
147
117
  _maybeScheduleHide() {
148
118
  if (!this._config.autohide) {
149
119
  return;
150
120
  }
151
-
152
121
  if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
153
122
  return;
154
123
  }
155
-
156
124
  this._timeout = setTimeout(() => {
157
125
  this.hide();
158
126
  }, this._config.delay);
159
127
  }
160
-
161
128
  _onInteraction(event, isInteracting) {
162
129
  switch (event.type) {
163
130
  case 'mouseover':
164
131
  case 'mouseout':
165
- this._hasMouseInteraction = isInteracting;
166
- break;
167
-
132
+ {
133
+ this._hasMouseInteraction = isInteracting;
134
+ break;
135
+ }
168
136
  case 'focusin':
169
137
  case 'focusout':
170
- this._hasKeyboardInteraction = isInteracting;
171
- break;
138
+ {
139
+ this._hasKeyboardInteraction = isInteracting;
140
+ break;
141
+ }
172
142
  }
173
-
174
143
  if (isInteracting) {
175
144
  this._clearTimeout();
176
-
177
145
  return;
178
146
  }
179
-
180
147
  const nextElement = event.relatedTarget;
181
-
182
148
  if (this._element === nextElement || this._element.contains(nextElement)) {
183
149
  return;
184
150
  }
185
-
186
151
  this._maybeScheduleHide();
187
152
  }
188
-
189
153
  _setListeners() {
190
- EventHandler__default.default.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
191
- EventHandler__default.default.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
192
- EventHandler__default.default.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
193
- EventHandler__default.default.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
154
+ EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
155
+ EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
156
+ EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
157
+ EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
194
158
  }
195
-
196
159
  _clearTimeout() {
197
160
  clearTimeout(this._timeout);
198
161
  this._timeout = null;
199
- } // Static
200
-
162
+ }
201
163
 
164
+ // Static
202
165
  static jQueryInterface(config) {
203
166
  return this.each(function () {
204
167
  const data = Toast.getOrCreateInstance(this, config);
205
-
206
168
  if (typeof config === 'string') {
207
169
  if (typeof data[config] === 'undefined') {
208
170
  throw new TypeError(`No method named "${config}"`);
209
171
  }
210
-
211
172
  data[config](this);
212
173
  }
213
174
  });
214
175
  }
215
-
216
176
  }
177
+
217
178
  /**
218
179
  * Data API implementation
219
180
  */
220
181
 
221
-
222
182
  componentFunctions.enableDismissTrigger(Toast);
183
+
223
184
  /**
224
185
  * jQuery
225
186
  */