@openeuropa/bcl-bootstrap 0.24.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
package/js/dist/modal.js CHANGED
@@ -1,13 +1,12 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/manipulator'), require('./dom/selector-engine'), require('./util/scrollbar'), require('./base-component'), require('./util/backdrop'), require('./util/focustrap'), require('./util/component-functions')) :
3
- typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './util/scrollbar', './base-component', './util/backdrop', './util/focustrap', './util/component-functions'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Index, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Scrollbar, global.BaseComponent, global.Backdrop, global.Focustrap, global.ComponentFunctions));
5
- })(this, (function (index, EventHandler, Manipulator, SelectorEngine, ScrollBarHelper, BaseComponent, Backdrop, FocusTrap, componentFunctions) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./util/scrollbar'), require('./base-component'), require('./util/backdrop'), require('./util/focustrap'), require('./util/component-functions')) :
3
+ typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './util/scrollbar', './base-component', './util/backdrop', './util/focustrap', './util/component-functions'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Index, global.EventHandler, global.SelectorEngine, global.Scrollbar, global.BaseComponent, global.Backdrop, global.Focustrap, global.ComponentFunctions));
5
+ })(this, (function (index, EventHandler, SelectorEngine, ScrollBarHelper, BaseComponent, Backdrop, FocusTrap, componentFunctions) { 'use strict';
6
6
 
7
7
  const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
8
8
 
9
9
  const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
10
- const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
11
10
  const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
12
11
  const ScrollBarHelper__default = /*#__PURE__*/_interopDefaultLegacy(ScrollBarHelper);
13
12
  const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
@@ -16,14 +15,12 @@
16
15
 
17
16
  /**
18
17
  * --------------------------------------------------------------------------
19
- * Bootstrap (v5.1.3): modal.js
18
+ * Bootstrap (v5.2.0): modal.js
20
19
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
20
  * --------------------------------------------------------------------------
22
21
  */
23
22
  /**
24
- * ------------------------------------------------------------------------
25
23
  * Constants
26
- * ------------------------------------------------------------------------
27
24
  */
28
25
 
29
26
  const NAME = 'modal';
@@ -31,26 +28,14 @@
31
28
  const EVENT_KEY = `.${DATA_KEY}`;
32
29
  const DATA_API_KEY = '.data-api';
33
30
  const ESCAPE_KEY = 'Escape';
34
- const Default = {
35
- backdrop: true,
36
- keyboard: true,
37
- focus: true
38
- };
39
- const DefaultType = {
40
- backdrop: '(boolean|string)',
41
- keyboard: 'boolean',
42
- focus: 'boolean'
43
- };
44
31
  const EVENT_HIDE = `hide${EVENT_KEY}`;
45
32
  const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;
46
33
  const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
47
34
  const EVENT_SHOW = `show${EVENT_KEY}`;
48
35
  const EVENT_SHOWN = `shown${EVENT_KEY}`;
49
36
  const EVENT_RESIZE = `resize${EVENT_KEY}`;
50
- const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;
51
- const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;
52
- const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`;
53
37
  const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;
38
+ const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;
54
39
  const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
55
40
  const CLASS_NAME_OPEN = 'modal-open';
56
41
  const CLASS_NAME_FADE = 'fade';
@@ -60,23 +45,31 @@
60
45
  const SELECTOR_DIALOG = '.modal-dialog';
61
46
  const SELECTOR_MODAL_BODY = '.modal-body';
62
47
  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
48
+ const Default = {
49
+ backdrop: true,
50
+ focus: true,
51
+ keyboard: true
52
+ };
53
+ const DefaultType = {
54
+ backdrop: '(boolean|string)',
55
+ focus: 'boolean',
56
+ keyboard: 'boolean'
57
+ };
63
58
  /**
64
- * ------------------------------------------------------------------------
65
- * Class Definition
66
- * ------------------------------------------------------------------------
59
+ * Class definition
67
60
  */
68
61
 
69
62
  class Modal extends BaseComponent__default.default {
70
63
  constructor(element, config) {
71
- super(element);
72
- this._config = this._getConfig(config);
64
+ super(element, config);
73
65
  this._dialog = SelectorEngine__default.default.findOne(SELECTOR_DIALOG, this._element);
74
66
  this._backdrop = this._initializeBackDrop();
75
67
  this._focustrap = this._initializeFocusTrap();
76
68
  this._isShown = false;
77
- this._ignoreBackdropClick = false;
78
69
  this._isTransitioning = false;
79
70
  this._scrollBar = new ScrollBarHelper__default.default();
71
+
72
+ this._addEventListeners();
80
73
  } // Getters
81
74
 
82
75
 
@@ -84,6 +77,10 @@
84
77
  return Default;
85
78
  }
86
79
 
80
+ static get DefaultType() {
81
+ return DefaultType;
82
+ }
83
+
87
84
  static get NAME() {
88
85
  return NAME;
89
86
  } // Public
@@ -107,10 +104,7 @@
107
104
  }
108
105
 
109
106
  this._isShown = true;
110
-
111
- if (this._isAnimated()) {
112
- this._isTransitioning = true;
113
- }
107
+ this._isTransitioning = true;
114
108
 
115
109
  this._scrollBar.hide();
116
110
 
@@ -118,19 +112,7 @@
118
112
 
119
113
  this._adjustDialog();
120
114
 
121
- this._setEscapeEvent();
122
-
123
- this._setResizeEvent();
124
-
125
- EventHandler__default.default.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {
126
- EventHandler__default.default.one(this._element, EVENT_MOUSEUP_DISMISS, event => {
127
- if (event.target === this._element) {
128
- this._ignoreBackdropClick = true;
129
- }
130
- });
131
- });
132
-
133
- this._showBackdrop(() => this._showElement(relatedTarget));
115
+ this._backdrop.show(() => this._showElement(relatedTarget));
134
116
  }
135
117
 
136
118
  hide() {
@@ -145,29 +127,19 @@
145
127
  }
146
128
 
147
129
  this._isShown = false;
148
-
149
- const isAnimated = this._isAnimated();
150
-
151
- if (isAnimated) {
152
- this._isTransitioning = true;
153
- }
154
-
155
- this._setEscapeEvent();
156
-
157
- this._setResizeEvent();
130
+ this._isTransitioning = true;
158
131
 
159
132
  this._focustrap.deactivate();
160
133
 
161
134
  this._element.classList.remove(CLASS_NAME_SHOW);
162
135
 
163
- EventHandler__default.default.off(this._element, EVENT_CLICK_DISMISS);
164
- EventHandler__default.default.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
165
-
166
- this._queueCallback(() => this._hideModal(), this._element, isAnimated);
136
+ this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
167
137
  }
168
138
 
169
139
  dispose() {
170
- [window, this._dialog].forEach(htmlElement => EventHandler__default.default.off(htmlElement, EVENT_KEY));
140
+ for (const htmlElement of [window, this._dialog]) {
141
+ EventHandler__default.default.off(htmlElement, EVENT_KEY);
142
+ }
171
143
 
172
144
  this._backdrop.dispose();
173
145
 
@@ -184,7 +156,7 @@
184
156
  _initializeBackDrop() {
185
157
  return new Backdrop__default.default({
186
158
  isVisible: Boolean(this._config.backdrop),
187
- // 'static' option will be translated to true, and booleans will keep their value
159
+ // 'static' option will be translated to true, and booleans will keep their value,
188
160
  isAnimated: this._isAnimated()
189
161
  });
190
162
  }
@@ -195,22 +167,9 @@
195
167
  });
196
168
  }
197
169
 
198
- _getConfig(config) {
199
- config = { ...Default,
200
- ...Manipulator__default.default.getDataAttributes(this._element),
201
- ...(typeof config === 'object' ? config : {})
202
- };
203
- index.typeCheckConfig(NAME, config, DefaultType);
204
- return config;
205
- }
206
-
207
170
  _showElement(relatedTarget) {
208
- const isAnimated = this._isAnimated();
209
-
210
- const modalBody = SelectorEngine__default.default.findOne(SELECTOR_MODAL_BODY, this._dialog);
211
-
212
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
213
- // Don't move modal's DOM position
171
+ // try to append dynamic modal
172
+ if (!document.body.contains(this._element)) {
214
173
  document.body.append(this._element);
215
174
  }
216
175
 
@@ -223,14 +182,13 @@
223
182
  this._element.setAttribute('role', 'dialog');
224
183
 
225
184
  this._element.scrollTop = 0;
185
+ const modalBody = SelectorEngine__default.default.findOne(SELECTOR_MODAL_BODY, this._dialog);
226
186
 
227
187
  if (modalBody) {
228
188
  modalBody.scrollTop = 0;
229
189
  }
230
190
 
231
- if (isAnimated) {
232
- index.reflow(this._element);
233
- }
191
+ index.reflow(this._element);
234
192
 
235
193
  this._element.classList.add(CLASS_NAME_SHOW);
236
194
 
@@ -245,30 +203,44 @@
245
203
  });
246
204
  };
247
205
 
248
- this._queueCallback(transitionComplete, this._dialog, isAnimated);
206
+ this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
249
207
  }
250
208
 
251
- _setEscapeEvent() {
252
- if (this._isShown) {
253
- EventHandler__default.default.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
254
- if (this._config.keyboard && event.key === ESCAPE_KEY) {
255
- event.preventDefault();
256
- this.hide();
257
- } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {
258
- this._triggerBackdropTransition();
259
- }
260
- });
261
- } else {
262
- EventHandler__default.default.off(this._element, EVENT_KEYDOWN_DISMISS);
263
- }
264
- }
209
+ _addEventListeners() {
210
+ EventHandler__default.default.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
211
+ if (event.key !== ESCAPE_KEY) {
212
+ return;
213
+ }
265
214
 
266
- _setResizeEvent() {
267
- if (this._isShown) {
268
- EventHandler__default.default.on(window, EVENT_RESIZE, () => this._adjustDialog());
269
- } else {
270
- EventHandler__default.default.off(window, EVENT_RESIZE);
271
- }
215
+ if (this._config.keyboard) {
216
+ event.preventDefault();
217
+ this.hide();
218
+ return;
219
+ }
220
+
221
+ this._triggerBackdropTransition();
222
+ });
223
+ EventHandler__default.default.on(window, EVENT_RESIZE, () => {
224
+ if (this._isShown && !this._isTransitioning) {
225
+ this._adjustDialog();
226
+ }
227
+ });
228
+ EventHandler__default.default.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
229
+ if (event.target !== event.currentTarget) {
230
+ // click is inside modal-dialog
231
+ return;
232
+ }
233
+
234
+ if (this._config.backdrop === 'static') {
235
+ this._triggerBackdropTransition();
236
+
237
+ return;
238
+ }
239
+
240
+ if (this._config.backdrop) {
241
+ this.hide();
242
+ }
243
+ });
272
244
  }
273
245
 
274
246
  _hideModal() {
@@ -293,27 +265,6 @@
293
265
  });
294
266
  }
295
267
 
296
- _showBackdrop(callback) {
297
- EventHandler__default.default.on(this._element, EVENT_CLICK_DISMISS, event => {
298
- if (this._ignoreBackdropClick) {
299
- this._ignoreBackdropClick = false;
300
- return;
301
- }
302
-
303
- if (event.target !== event.currentTarget) {
304
- return;
305
- }
306
-
307
- if (this._config.backdrop === true) {
308
- this.hide();
309
- } else if (this._config.backdrop === 'static') {
310
- this._triggerBackdropTransition();
311
- }
312
- });
313
-
314
- this._backdrop.show(callback);
315
- }
316
-
317
268
  _isAnimated() {
318
269
  return this._element.classList.contains(CLASS_NAME_FADE);
319
270
  }
@@ -325,37 +276,32 @@
325
276
  return;
326
277
  }
327
278
 
328
- const {
329
- classList,
330
- scrollHeight,
331
- style
332
- } = this._element;
333
- const isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed
279
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
280
+ const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed
334
281
 
335
- if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {
282
+ if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
336
283
  return;
337
284
  }
338
285
 
339
286
  if (!isModalOverflowing) {
340
- style.overflowY = 'hidden';
287
+ this._element.style.overflowY = 'hidden';
341
288
  }
342
289
 
343
- classList.add(CLASS_NAME_STATIC);
290
+ this._element.classList.add(CLASS_NAME_STATIC);
344
291
 
345
292
  this._queueCallback(() => {
346
- classList.remove(CLASS_NAME_STATIC);
293
+ this._element.classList.remove(CLASS_NAME_STATIC);
347
294
 
348
- if (!isModalOverflowing) {
349
- this._queueCallback(() => {
350
- style.overflowY = '';
351
- }, this._dialog);
352
- }
295
+ this._queueCallback(() => {
296
+ this._element.style.overflowY = initialOverflowY;
297
+ }, this._dialog);
353
298
  }, this._dialog);
354
299
 
355
300
  this._element.focus();
356
- } // ----------------------------------------------------------------------
357
- // the following methods are used to handle overflowing modals
358
- // ----------------------------------------------------------------------
301
+ }
302
+ /**
303
+ * The following methods are used to handle overflowing modals
304
+ */
359
305
 
360
306
 
361
307
  _adjustDialog() {
@@ -365,12 +311,14 @@
365
311
 
366
312
  const isBodyOverflowing = scrollbarWidth > 0;
367
313
 
368
- if (!isBodyOverflowing && isModalOverflowing && !index.isRTL() || isBodyOverflowing && !isModalOverflowing && index.isRTL()) {
369
- this._element.style.paddingLeft = `${scrollbarWidth}px`;
314
+ if (isBodyOverflowing && !isModalOverflowing) {
315
+ const property = index.isRTL() ? 'paddingLeft' : 'paddingRight';
316
+ this._element.style[property] = `${scrollbarWidth}px`;
370
317
  }
371
318
 
372
- if (isBodyOverflowing && !isModalOverflowing && !index.isRTL() || !isBodyOverflowing && isModalOverflowing && index.isRTL()) {
373
- this._element.style.paddingRight = `${scrollbarWidth}px`;
319
+ if (!isBodyOverflowing && isModalOverflowing) {
320
+ const property = index.isRTL() ? 'paddingRight' : 'paddingLeft';
321
+ this._element.style[property] = `${scrollbarWidth}px`;
374
322
  }
375
323
  }
376
324
 
@@ -398,9 +346,7 @@
398
346
 
399
347
  }
400
348
  /**
401
- * ------------------------------------------------------------------------
402
- * Data Api implementation
403
- * ------------------------------------------------------------------------
349
+ * Data API implementation
404
350
  */
405
351
 
406
352
 
@@ -422,12 +368,12 @@
422
368
  this.focus();
423
369
  }
424
370
  });
425
- }); // avoid conflict when clicking moddal toggler while another one is open
371
+ }); // avoid conflict when clicking modal toggler while another one is open
426
372
 
427
- const allReadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
373
+ const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
428
374
 
429
- if (allReadyOpen) {
430
- Modal.getInstance(allReadyOpen).hide();
375
+ if (alreadyOpen) {
376
+ Modal.getInstance(alreadyOpen).hide();
431
377
  }
432
378
 
433
379
  const data = Modal.getOrCreateInstance(target);
@@ -435,10 +381,7 @@
435
381
  });
436
382
  componentFunctions.enableDismissTrigger(Modal);
437
383
  /**
438
- * ------------------------------------------------------------------------
439
384
  * jQuery
440
- * ------------------------------------------------------------------------
441
- * add .Modal to jQuery only if jQuery is present
442
385
  */
443
386
 
444
387
  index.defineJQueryPlugin(Modal);
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isRTL,\n isVisible,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n this._queueCallback(() => this._hideModal(), this._element, isAnimated)\n }\n\n dispose() {\n [window, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated)\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _showBackdrop(callback) {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === true) {\n this.hide()\n } else if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n }\n })\n\n this._backdrop.show(callback)\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const { classList, scrollHeight, style } = this._element\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight\n\n // return if the following background transition hasn't yet completed\n if ((!isModalOverflowing && style.overflowY === 'hidden') || classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden'\n }\n\n classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n this._queueCallback(() => {\n style.overflowY = ''\n }, this._dialog)\n }\n }, this._dialog)\n\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if ((!isBodyOverflowing && isModalOverflowing && !isRTL()) || (isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${scrollbarWidth}px`\n }\n\n if ((isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.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](relatedTarget)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking moddal toggler while another one is open\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","Default","backdrop","keyboard","focus","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","Modal","BaseComponent","constructor","element","config","_config","_getConfig","_dialog","SelectorEngine","findOne","_element","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_isShown","_ignoreBackdropClick","_isTransitioning","_scrollBar","ScrollBarHelper","toggle","relatedTarget","hide","show","showEvent","EventHandler","trigger","defaultPrevented","_isAnimated","document","body","classList","add","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","one","event","target","_showBackdrop","_showElement","hideEvent","isAnimated","deactivate","remove","off","_queueCallback","_hideModal","dispose","window","forEach","htmlElement","handleUpdate","Backdrop","isVisible","Boolean","FocusTrap","trapElement","Manipulator","getDataAttributes","typeCheckConfig","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","append","style","display","removeAttribute","setAttribute","scrollTop","reflow","transitionComplete","activate","key","preventDefault","_triggerBackdropTransition","_resetAdjustments","reset","callback","currentTarget","contains","scrollHeight","isModalOverflowing","documentElement","clientHeight","overflowY","scrollbarWidth","getWidth","isBodyOverflowing","isRTL","paddingLeft","paddingRight","jQueryInterface","each","data","getOrCreateInstance","TypeError","getElementFromSelector","includes","tagName","allReadyOpen","getInstance","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, isRTL, isVisible, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n focus: true,\n keyboard: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n\n this._addEventListeners()\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(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._isTransitioning = true\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._backdrop.show(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n this._isTransitioning = true\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY)\n }\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n event.preventDefault()\n this.hide()\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog()\n }\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n if (event.target !== event.currentTarget) { // click is inside modal-dialog\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n if (this._config.backdrop) {\n this.hide()\n }\n })\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const initialOverflowY = this._element.style.overflowY\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY\n }, this._dialog)\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.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](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_RESIZE","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","Default","backdrop","focus","keyboard","DefaultType","Modal","BaseComponent","constructor","element","config","_dialog","SelectorEngine","findOne","_element","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_isShown","_isTransitioning","_scrollBar","ScrollBarHelper","_addEventListeners","toggle","relatedTarget","hide","show","showEvent","EventHandler","trigger","defaultPrevented","document","body","classList","add","_adjustDialog","_showElement","hideEvent","deactivate","remove","_queueCallback","_hideModal","_isAnimated","dispose","htmlElement","window","off","handleUpdate","Backdrop","isVisible","Boolean","_config","isAnimated","FocusTrap","trapElement","contains","append","style","display","removeAttribute","setAttribute","scrollTop","modalBody","reflow","transitionComplete","activate","on","event","key","preventDefault","_triggerBackdropTransition","target","currentTarget","_resetAdjustments","reset","isModalOverflowing","scrollHeight","documentElement","clientHeight","initialOverflowY","overflowY","scrollbarWidth","getWidth","isBodyOverflowing","property","isRTL","paddingLeft","paddingRight","jQueryInterface","each","data","getOrCreateInstance","TypeError","getElementFromSelector","includes","tagName","one","alreadyOpen","getInstance","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}