@openeuropa/bcl-bootstrap 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/bootstrap-icons.svg +1 -1
  2. package/icons/apple.svg +2 -2
  3. package/icons/boombox-fill.svg +2 -2
  4. package/icons/cup-fill.svg +1 -1
  5. package/icons/cup.svg +1 -1
  6. package/js/dist/alert.js +3 -12
  7. package/js/dist/alert.js.map +1 -1
  8. package/js/dist/base-component.js +32 -18
  9. package/js/dist/base-component.js.map +1 -1
  10. package/js/dist/button.js +3 -12
  11. package/js/dist/button.js.map +1 -1
  12. package/js/dist/carousel.js +207 -307
  13. package/js/dist/carousel.js.map +1 -1
  14. package/js/dist/collapse.js +57 -88
  15. package/js/dist/collapse.js.map +1 -1
  16. package/js/dist/dom/data.js +1 -3
  17. package/js/dist/dom/data.js.map +1 -1
  18. package/js/dist/dom/event-handler.js +87 -106
  19. package/js/dist/dom/event-handler.js.map +1 -1
  20. package/js/dist/dom/manipulator.js +21 -25
  21. package/js/dist/dom/manipulator.js.map +1 -1
  22. package/js/dist/dom/selector-engine.js +11 -10
  23. package/js/dist/dom/selector-engine.js.map +1 -1
  24. package/js/dist/dropdown.js +83 -115
  25. package/js/dist/dropdown.js.map +1 -1
  26. package/js/dist/modal.js +95 -152
  27. package/js/dist/modal.js.map +1 -1
  28. package/js/dist/offcanvas.js +75 -58
  29. package/js/dist/offcanvas.js.map +1 -1
  30. package/js/dist/popover.js +29 -56
  31. package/js/dist/popover.js.map +1 -1
  32. package/js/dist/scrollspy.js +176 -125
  33. package/js/dist/scrollspy.js.map +1 -1
  34. package/js/dist/tab.js +207 -92
  35. package/js/dist/tab.js.map +1 -1
  36. package/js/dist/toast.js +23 -37
  37. package/js/dist/toast.js.map +1 -1
  38. package/js/dist/tooltip.js +259 -348
  39. package/js/dist/tooltip.js.map +1 -1
  40. package/js/dist/util/backdrop.js +62 -39
  41. package/js/dist/util/backdrop.js.map +1 -1
  42. package/js/dist/util/component-functions.js +1 -1
  43. package/js/dist/util/component-functions.js.map +1 -1
  44. package/js/dist/util/config.js +75 -0
  45. package/js/dist/util/config.js.map +1 -0
  46. package/js/dist/util/focustrap.js +41 -34
  47. package/js/dist/util/focustrap.js.map +1 -1
  48. package/js/dist/util/index.js +56 -52
  49. package/js/dist/util/index.js.map +1 -1
  50. package/js/dist/util/sanitizer.js +12 -19
  51. package/js/dist/util/sanitizer.js.map +1 -1
  52. package/js/dist/util/scrollbar.js +49 -34
  53. package/js/dist/util/scrollbar.js.map +1 -1
  54. package/js/dist/util/swipe.js +151 -0
  55. package/js/dist/util/swipe.js.map +1 -0
  56. package/js/dist/util/template-factory.js +173 -0
  57. package/js/dist/util/template-factory.js.map +1 -0
  58. package/js/src/alert.js +3 -15
  59. package/js/src/base-component.js +28 -18
  60. package/js/src/button.js +3 -17
  61. package/js/src/carousel.js +203 -319
  62. package/js/src/collapse.js +61 -94
  63. package/js/src/dom/data.js +1 -3
  64. package/js/src/dom/event-handler.js +80 -108
  65. package/js/src/dom/manipulator.js +22 -31
  66. package/js/src/dom/selector-engine.js +10 -19
  67. package/js/src/dropdown.js +84 -138
  68. package/js/src/modal.js +94 -158
  69. package/js/src/offcanvas.js +72 -61
  70. package/js/src/popover.js +31 -62
  71. package/js/src/scrollspy.js +166 -171
  72. package/js/src/tab.js +193 -110
  73. package/js/src/toast.js +19 -41
  74. package/js/src/tooltip.js +259 -371
  75. package/js/src/util/backdrop.js +55 -36
  76. package/js/src/util/component-functions.js +1 -1
  77. package/js/src/util/config.js +66 -0
  78. package/js/src/util/focustrap.js +38 -28
  79. package/js/src/util/index.js +67 -64
  80. package/js/src/util/sanitizer.js +11 -19
  81. package/js/src/util/scrollbar.js +47 -30
  82. package/js/src/util/swipe.js +146 -0
  83. package/js/src/util/template-factory.js +160 -0
  84. package/package.json +4 -4
  85. package/scss/_accordion.scss +52 -24
  86. package/scss/_alert.scss +18 -4
  87. package/scss/_badge.scss +14 -5
  88. package/scss/_breadcrumb.scss +22 -10
  89. package/scss/_button-group.scss +3 -0
  90. package/scss/_buttons.scss +97 -22
  91. package/scss/_card.scss +55 -37
  92. package/scss/_close.scss +1 -1
  93. package/scss/_containers.scss +1 -1
  94. package/scss/_dropdown.scss +83 -75
  95. package/scss/_functions.scss +7 -7
  96. package/scss/_grid.scss +3 -3
  97. package/scss/_helpers.scss +1 -0
  98. package/scss/_list-group.scss +44 -27
  99. package/scss/_maps.scss +54 -0
  100. package/scss/_modal.scss +71 -43
  101. package/scss/_nav.scss +53 -20
  102. package/scss/_navbar.scss +91 -150
  103. package/scss/_offcanvas.scss +119 -59
  104. package/scss/_pagination.scss +66 -21
  105. package/scss/_placeholders.scss +1 -1
  106. package/scss/_popover.scss +90 -52
  107. package/scss/_progress.scss +20 -9
  108. package/scss/_reboot.scss +25 -40
  109. package/scss/_root.scss +40 -21
  110. package/scss/_spinners.scss +38 -22
  111. package/scss/_tables.scss +32 -23
  112. package/scss/_toasts.scss +35 -16
  113. package/scss/_tooltip.scss +61 -56
  114. package/scss/_type.scss +2 -0
  115. package/scss/_utilities.scss +43 -26
  116. package/scss/_variables.scss +113 -121
  117. package/scss/bootstrap-grid.scss +3 -6
  118. package/scss/bootstrap-reboot.scss +3 -7
  119. package/scss/bootstrap-utilities.scss +3 -6
  120. package/scss/bootstrap.scss +4 -6
  121. package/scss/forms/_floating-labels.scss +14 -3
  122. package/scss/forms/_form-check.scss +28 -5
  123. package/scss/forms/_form-control.scss +12 -37
  124. package/scss/forms/_form-select.scss +0 -1
  125. package/scss/forms/_input-group.scss +15 -7
  126. package/scss/helpers/_color-bg.scss +10 -0
  127. package/scss/helpers/_colored-links.scss +2 -2
  128. package/scss/helpers/_position.scss +7 -1
  129. package/scss/helpers/_ratio.scss +2 -2
  130. package/scss/helpers/_vr.scss +1 -1
  131. package/scss/mixins/_alert.scss +7 -3
  132. package/scss/mixins/_banner.scss +9 -0
  133. package/scss/mixins/_breakpoints.scss +8 -8
  134. package/scss/mixins/_buttons.scss +32 -95
  135. package/scss/mixins/_container.scss +4 -2
  136. package/scss/mixins/_forms.scss +8 -0
  137. package/scss/mixins/_gradients.scss +1 -1
  138. package/scss/mixins/_grid.scss +12 -12
  139. package/scss/mixins/_pagination.scss +4 -25
  140. package/scss/mixins/_reset-text.scss +1 -1
  141. package/scss/mixins/_table-variants.scss +12 -9
  142. package/scss/mixins/_utilities.scss +12 -4
@@ -32,14 +32,12 @@
32
32
 
33
33
  /**
34
34
  * --------------------------------------------------------------------------
35
- * Bootstrap (v5.1.3): dropdown.js
35
+ * Bootstrap (v5.2.0): dropdown.js
36
36
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
37
37
  * --------------------------------------------------------------------------
38
38
  */
39
39
  /**
40
- * ------------------------------------------------------------------------
41
40
  * Constants
42
- * ------------------------------------------------------------------------
43
41
  */
44
42
 
45
43
  const NAME = 'dropdown';
@@ -47,13 +45,11 @@
47
45
  const EVENT_KEY = `.${DATA_KEY}`;
48
46
  const DATA_API_KEY = '.data-api';
49
47
  const ESCAPE_KEY = 'Escape';
50
- const SPACE_KEY = 'Space';
51
48
  const TAB_KEY = 'Tab';
52
49
  const ARROW_UP_KEY = 'ArrowUp';
53
50
  const ARROW_DOWN_KEY = 'ArrowDown';
54
51
  const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
55
52
 
56
- const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`);
57
53
  const EVENT_HIDE = `hide${EVENT_KEY}`;
58
54
  const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
59
55
  const EVENT_SHOW = `show${EVENT_KEY}`;
@@ -65,9 +61,12 @@
65
61
  const CLASS_NAME_DROPUP = 'dropup';
66
62
  const CLASS_NAME_DROPEND = 'dropend';
67
63
  const CLASS_NAME_DROPSTART = 'dropstart';
68
- const CLASS_NAME_NAVBAR = 'navbar';
69
- const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]';
64
+ const CLASS_NAME_DROPUP_CENTER = 'dropup-center';
65
+ const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';
66
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
67
+ const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`;
70
68
  const SELECTOR_MENU = '.dropdown-menu';
69
+ const SELECTOR_NAVBAR = '.navbar';
71
70
  const SELECTOR_NAVBAR_NAV = '.navbar-nav';
72
71
  const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
73
72
  const PLACEMENT_TOP = index.isRTL() ? 'top-end' : 'top-start';
@@ -76,34 +75,35 @@
76
75
  const PLACEMENT_BOTTOMEND = index.isRTL() ? 'bottom-start' : 'bottom-end';
77
76
  const PLACEMENT_RIGHT = index.isRTL() ? 'left-start' : 'right-start';
78
77
  const PLACEMENT_LEFT = index.isRTL() ? 'right-start' : 'left-start';
78
+ const PLACEMENT_TOPCENTER = 'top';
79
+ const PLACEMENT_BOTTOMCENTER = 'bottom';
79
80
  const Default = {
80
- offset: [0, 2],
81
+ autoClose: true,
81
82
  boundary: 'clippingParents',
82
- reference: 'toggle',
83
83
  display: 'dynamic',
84
+ offset: [0, 2],
84
85
  popperConfig: null,
85
- autoClose: true
86
+ reference: 'toggle'
86
87
  };
87
88
  const DefaultType = {
88
- offset: '(array|string|function)',
89
+ autoClose: '(boolean|string)',
89
90
  boundary: '(string|element)',
90
- reference: '(string|element|object)',
91
91
  display: 'string',
92
+ offset: '(array|string|function)',
92
93
  popperConfig: '(null|object|function)',
93
- autoClose: '(boolean|string)'
94
+ reference: '(string|element|object)'
94
95
  };
95
96
  /**
96
- * ------------------------------------------------------------------------
97
- * Class Definition
98
- * ------------------------------------------------------------------------
97
+ * Class definition
99
98
  */
100
99
 
101
100
  class Dropdown extends BaseComponent__default.default {
102
101
  constructor(element, config) {
103
- super(element);
102
+ super(element, config);
104
103
  this._popper = null;
105
- this._config = this._getConfig(config);
106
- this._menu = this._getMenuElement();
104
+ this._parent = this._element.parentNode; // dropdown wrapper
105
+
106
+ this._menu = SelectorEngine__default.default.findOne(SELECTOR_MENU, this._parent);
107
107
  this._inNavbar = this._detectNavbar();
108
108
  } // Getters
109
109
 
@@ -126,7 +126,7 @@
126
126
  }
127
127
 
128
128
  show() {
129
- if (index.isDisabled(this._element) || this._isShown(this._menu)) {
129
+ if (index.isDisabled(this._element) || this._isShown()) {
130
130
  return;
131
131
  }
132
132
 
@@ -139,20 +139,16 @@
139
139
  return;
140
140
  }
141
141
 
142
- const parent = Dropdown.getParentFromElement(this._element); // Totally disable Popper for Dropdowns in Navbar
143
-
144
- if (this._inNavbar) {
145
- Manipulator__default.default.setDataAttribute(this._menu, 'popper', 'none');
146
- } else {
147
- this._createPopper(parent);
148
- } // If this is a touch-enabled device we add extra
142
+ this._createPopper(); // If this is a touch-enabled device we add extra
149
143
  // empty mouseover listeners to the body's immediate children;
150
144
  // only needed because of broken event delegation on iOS
151
145
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
152
146
 
153
147
 
154
- if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
155
- [].concat(...document.body.children).forEach(elem => EventHandler__default.default.on(elem, 'mouseover', index.noop));
148
+ if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
149
+ for (const element of [].concat(...document.body.children)) {
150
+ EventHandler__default.default.on(element, 'mouseover', index.noop);
151
+ }
156
152
  }
157
153
 
158
154
  this._element.focus();
@@ -167,7 +163,7 @@
167
163
  }
168
164
 
169
165
  hide() {
170
- if (index.isDisabled(this._element) || !this._isShown(this._menu)) {
166
+ if (index.isDisabled(this._element) || !this._isShown()) {
171
167
  return;
172
168
  }
173
169
 
@@ -205,7 +201,9 @@
205
201
 
206
202
 
207
203
  if ('ontouchstart' in document.documentElement) {
208
- [].concat(...document.body.children).forEach(elem => EventHandler__default.default.off(elem, 'mouseover', index.noop));
204
+ for (const element of [].concat(...document.body.children)) {
205
+ EventHandler__default.default.off(element, 'mouseover', index.noop);
206
+ }
209
207
  }
210
208
 
211
209
  if (this._popper) {
@@ -223,11 +221,7 @@
223
221
  }
224
222
 
225
223
  _getConfig(config) {
226
- config = { ...this.constructor.Default,
227
- ...Manipulator__default.default.getDataAttributes(this._element),
228
- ...config
229
- };
230
- index.typeCheckConfig(NAME, config, this.constructor.DefaultType);
224
+ config = super._getConfig(config);
231
225
 
232
226
  if (typeof config.reference === 'object' && !index.isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
233
227
  // Popper virtual elements require a getBoundingClientRect method
@@ -237,7 +231,7 @@
237
231
  return config;
238
232
  }
239
233
 
240
- _createPopper(parent) {
234
+ _createPopper() {
241
235
  if (typeof Popper__namespace === 'undefined') {
242
236
  throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
243
237
  }
@@ -245,7 +239,7 @@
245
239
  let referenceElement = this._element;
246
240
 
247
241
  if (this._config.reference === 'parent') {
248
- referenceElement = parent;
242
+ referenceElement = this._parent;
249
243
  } else if (index.isElement(this._config.reference)) {
250
244
  referenceElement = index.getElement(this._config.reference);
251
245
  } else if (typeof this._config.reference === 'object') {
@@ -254,24 +248,15 @@
254
248
 
255
249
  const popperConfig = this._getPopperConfig();
256
250
 
257
- const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false);
258
251
  this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);
259
-
260
- if (isDisplayStatic) {
261
- Manipulator__default.default.setDataAttribute(this._menu, 'popper', 'static');
262
- }
263
252
  }
264
253
 
265
- _isShown(element = this._element) {
266
- return element.classList.contains(CLASS_NAME_SHOW);
267
- }
268
-
269
- _getMenuElement() {
270
- return SelectorEngine__default.default.next(this._element, SELECTOR_MENU)[0];
254
+ _isShown() {
255
+ return this._menu.classList.contains(CLASS_NAME_SHOW);
271
256
  }
272
257
 
273
258
  _getPlacement() {
274
- const parentDropdown = this._element.parentNode;
259
+ const parentDropdown = this._parent;
275
260
 
276
261
  if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
277
262
  return PLACEMENT_RIGHT;
@@ -279,6 +264,14 @@
279
264
 
280
265
  if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
281
266
  return PLACEMENT_LEFT;
267
+ }
268
+
269
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
270
+ return PLACEMENT_TOPCENTER;
271
+ }
272
+
273
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
274
+ return PLACEMENT_BOTTOMCENTER;
282
275
  } // We need to trim the value because custom properties can also include spaces
283
276
 
284
277
 
@@ -292,7 +285,7 @@
292
285
  }
293
286
 
294
287
  _detectNavbar() {
295
- return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null;
288
+ return this._element.closest(SELECTOR_NAVBAR) !== null;
296
289
  }
297
290
 
298
291
  _getOffset() {
@@ -301,7 +294,7 @@
301
294
  } = this._config;
302
295
 
303
296
  if (typeof offset === 'string') {
304
- return offset.split(',').map(val => Number.parseInt(val, 10));
297
+ return offset.split(',').map(value => Number.parseInt(value, 10));
305
298
  }
306
299
 
307
300
  if (typeof offset === 'function') {
@@ -325,9 +318,11 @@
325
318
  offset: this._getOffset()
326
319
  }
327
320
  }]
328
- }; // Disable Popper if we have a static display
321
+ }; // Disable Popper if we have a static display or Dropdown is in Navbar
322
+
323
+ if (this._inNavbar || this._config.display === 'static') {
324
+ Manipulator__default.default.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove
329
325
 
330
- if (this._config.display === 'static') {
331
326
  defaultBsPopperConfig.modifiers = [{
332
327
  name: 'applyStyles',
333
328
  enabled: false
@@ -343,7 +338,7 @@
343
338
  key,
344
339
  target
345
340
  }) {
346
- const items = SelectorEngine__default.default.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(index.isVisible);
341
+ const items = SelectorEngine__default.default.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => index.isVisible(element));
347
342
 
348
343
  if (!items.length) {
349
344
  return;
@@ -372,20 +367,28 @@
372
367
  }
373
368
 
374
369
  static clearMenus(event) {
375
- if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
370
+ if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY) {
376
371
  return;
377
372
  }
378
373
 
379
- const toggles = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);
374
+ const openToggles = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE_SHOWN);
380
375
 
381
- for (let i = 0, len = toggles.length; i < len; i++) {
382
- const context = Dropdown.getInstance(toggles[i]);
376
+ for (const toggle of openToggles) {
377
+ const context = Dropdown.getInstance(toggle);
383
378
 
384
379
  if (!context || context._config.autoClose === false) {
385
380
  continue;
386
381
  }
387
382
 
388
- if (!context._isShown()) {
383
+ const composedPath = event.composedPath();
384
+ const isMenuTarget = composedPath.includes(context._menu);
385
+
386
+ if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
387
+ continue;
388
+ } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
389
+
390
+
391
+ if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) {
389
392
  continue;
390
393
  }
391
394
 
@@ -393,85 +396,53 @@
393
396
  relatedTarget: context._element
394
397
  };
395
398
 
396
- if (event) {
397
- const composedPath = event.composedPath();
398
- const isMenuTarget = composedPath.includes(context._menu);
399
-
400
- if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
401
- continue;
402
- } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
403
-
404
-
405
- if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) {
406
- continue;
407
- }
408
-
409
- if (event.type === 'click') {
410
- relatedTarget.clickEvent = event;
411
- }
399
+ if (event.type === 'click') {
400
+ relatedTarget.clickEvent = event;
412
401
  }
413
402
 
414
403
  context._completeHide(relatedTarget);
415
404
  }
416
405
  }
417
406
 
418
- static getParentFromElement(element) {
419
- return index.getElementFromSelector(element) || element.parentNode;
420
- }
421
-
422
407
  static dataApiKeydownHandler(event) {
423
- // If not input/textarea:
424
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
425
- // If input/textarea:
426
- // - If space key => not a dropdown command
427
- // - If key is other than escape
428
- // - If key is not up or down => not a dropdown command
429
- // - If trigger inside the menu => not a dropdown command
430
- if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
431
- return;
432
- }
408
+ // If not an UP | DOWN | ESCAPE key => not a dropdown command
409
+ // If input/textarea && if key is other than ESCAPE => not a dropdown command
410
+ const isInput = /input|textarea/i.test(event.target.tagName);
411
+ const isEscapeEvent = event.key === ESCAPE_KEY;
412
+ const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key);
433
413
 
434
- const isActive = this.classList.contains(CLASS_NAME_SHOW);
435
-
436
- if (!isActive && event.key === ESCAPE_KEY) {
414
+ if (!isUpOrDownEvent && !isEscapeEvent) {
437
415
  return;
438
416
  }
439
417
 
440
- event.preventDefault();
441
- event.stopPropagation();
442
-
443
- if (index.isDisabled(this)) {
418
+ if (isInput && !isEscapeEvent) {
444
419
  return;
445
420
  }
446
421
 
447
- const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default.default.prev(this, SELECTOR_DATA_TOGGLE)[0];
422
+ event.preventDefault();
423
+ const getToggleButton = SelectorEngine__default.default.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode);
448
424
  const instance = Dropdown.getOrCreateInstance(getToggleButton);
449
425
 
450
- if (event.key === ESCAPE_KEY) {
451
- instance.hide();
452
- return;
453
- }
454
-
455
- if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {
456
- if (!isActive) {
457
- instance.show();
458
- }
426
+ if (isUpOrDownEvent) {
427
+ event.stopPropagation();
428
+ instance.show();
459
429
 
460
430
  instance._selectMenuItem(event);
461
431
 
462
432
  return;
463
433
  }
464
434
 
465
- if (!isActive || event.key === SPACE_KEY) {
466
- Dropdown.clearMenus();
435
+ if (instance._isShown()) {
436
+ // else is escape and we check if it is shown
437
+ event.stopPropagation();
438
+ instance.hide();
439
+ getToggleButton.focus();
467
440
  }
468
441
  }
469
442
 
470
443
  }
471
444
  /**
472
- * ------------------------------------------------------------------------
473
- * Data Api implementation
474
- * ------------------------------------------------------------------------
445
+ * Data API implementation
475
446
  */
476
447
 
477
448
 
@@ -484,10 +455,7 @@
484
455
  Dropdown.getOrCreateInstance(this).toggle();
485
456
  });
486
457
  /**
487
- * ------------------------------------------------------------------------
488
458
  * jQuery
489
- * ------------------------------------------------------------------------
490
- * add .Dropdown to jQuery only if jQuery is present
491
459
  */
492
460
 
493
461
  index.defineJQueryPlugin(Dropdown);
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\n\nimport {\n defineJQueryPlugin,\n getElement,\n getElementFromSelector,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_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}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\n this._createPopper(parent)\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', noop))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', noop))\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Dropdown.getInstance(toggles[i])\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n if (!context._isShown()) {\n continue\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n }\n\n if (event) {\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (isDisabled(this)) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (event.key === ESCAPE_KEY) {\n instance.hide()\n return\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show()\n }\n\n instance._selectMenuItem(event)\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","RegExp","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_NAVBAR","SELECTOR_DATA_TOGGLE","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","isRTL","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","offset","boundary","reference","display","popperConfig","autoClose","DefaultType","Dropdown","BaseComponent","constructor","element","config","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","toggle","_isShown","hide","show","isDisabled","_element","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","parent","getParentFromElement","Manipulator","setDataAttribute","_createPopper","document","documentElement","closest","concat","body","children","forEach","elem","on","noop","focus","setAttribute","classList","add","_completeHide","dispose","destroy","update","hideEvent","off","remove","removeDataAttribute","getDataAttributes","typeCheckConfig","isElement","getBoundingClientRect","TypeError","toUpperCase","Popper","referenceElement","getElement","_getPopperConfig","isDisplayStatic","modifiers","find","modifier","name","enabled","createPopper","contains","SelectorEngine","next","_getPlacement","parentDropdown","parentNode","isEnd","getComputedStyle","getPropertyValue","trim","_getOffset","split","map","val","Number","parseInt","popperData","defaultBsPopperConfig","placement","options","_selectMenuItem","key","target","items","filter","isVisible","length","getNextActiveElement","includes","jQueryInterface","each","data","getOrCreateInstance","clearMenus","event","button","type","toggles","i","len","context","getInstance","composedPath","isMenuTarget","test","tagName","clickEvent","getElementFromSelector","dataApiKeydownHandler","isActive","preventDefault","stopPropagation","getToggleButton","matches","prev","instance","defineJQueryPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sources":["../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport {\n defineJQueryPlugin,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\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}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._popper = null\n this._parent = this._element.parentNode // dropdown wrapper\n this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._createPopper()\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const parentDropdown = this._parent\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static') // todo:v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle)\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: context._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n event.preventDefault()\n\n const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode)\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (isUpOrDownEvent) {\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (instance._isShown()) { // else is escape and we check if it is shown\n event.stopPropagation()\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_DROPUP_CENTER","CLASS_NAME_DROPDOWN_CENTER","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLE_SHOWN","SELECTOR_MENU","SELECTOR_NAVBAR","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","isRTL","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","PLACEMENT_TOPCENTER","PLACEMENT_BOTTOMCENTER","Default","autoClose","boundary","display","offset","popperConfig","reference","DefaultType","Dropdown","BaseComponent","constructor","element","config","_popper","_parent","_element","parentNode","_menu","SelectorEngine","findOne","_inNavbar","_detectNavbar","toggle","_isShown","hide","show","isDisabled","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","_createPopper","document","documentElement","closest","concat","body","children","on","noop","focus","setAttribute","classList","add","_completeHide","dispose","destroy","update","hideEvent","off","remove","Manipulator","removeDataAttribute","_getConfig","isElement","getBoundingClientRect","TypeError","toUpperCase","Popper","referenceElement","_config","getElement","_getPopperConfig","createPopper","contains","_getPlacement","parentDropdown","isEnd","getComputedStyle","getPropertyValue","trim","_getOffset","split","map","value","Number","parseInt","popperData","defaultBsPopperConfig","placement","modifiers","name","options","setDataAttribute","enabled","_selectMenuItem","key","target","items","find","filter","isVisible","length","getNextActiveElement","includes","jQueryInterface","each","data","getOrCreateInstance","clearMenus","event","button","type","openToggles","context","getInstance","composedPath","isMenuTarget","test","tagName","clickEvent","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","preventDefault","getToggleButton","delegateTarget","instance","stopPropagation","defineJQueryPlugin"],"mappings":"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"}