bootstrap 5.0.0.beta2 → 5.0.0.beta3

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap-sprockets.js +1 -0
  4. data/assets/javascripts/bootstrap.js +2051 -2009
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +75 -118
  7. data/assets/javascripts/bootstrap/base-component.js +23 -37
  8. data/assets/javascripts/bootstrap/button.js +39 -78
  9. data/assets/javascripts/bootstrap/carousel.js +284 -364
  10. data/assets/javascripts/bootstrap/collapse.js +178 -247
  11. data/assets/javascripts/bootstrap/dom/data.js +34 -47
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +71 -77
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +23 -21
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +20 -28
  15. data/assets/javascripts/bootstrap/dropdown.js +195 -265
  16. data/assets/javascripts/bootstrap/modal.js +256 -344
  17. data/assets/javascripts/bootstrap/offcanvas.js +508 -0
  18. data/assets/javascripts/bootstrap/popover.js +88 -157
  19. data/assets/javascripts/bootstrap/scrollspy.js +134 -212
  20. data/assets/javascripts/bootstrap/tab.js +108 -142
  21. data/assets/javascripts/bootstrap/toast.js +113 -183
  22. data/assets/javascripts/bootstrap/tooltip.js +297 -392
  23. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  24. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  25. data/assets/stylesheets/_bootstrap.scss +2 -1
  26. data/assets/stylesheets/bootstrap/_accordion.scss +22 -32
  27. data/assets/stylesheets/bootstrap/_buttons.scss +2 -0
  28. data/assets/stylesheets/bootstrap/_card.scss +1 -1
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +3 -6
  30. data/assets/stylesheets/bootstrap/_list-group.scss +11 -0
  31. data/assets/stylesheets/bootstrap/_modal.scss +2 -0
  32. data/assets/stylesheets/bootstrap/_nav.scss +7 -0
  33. data/assets/stylesheets/bootstrap/_navbar.scss +2 -0
  34. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  35. data/assets/stylesheets/bootstrap/_progress.scss +3 -0
  36. data/assets/stylesheets/bootstrap/_reboot.scss +7 -21
  37. data/assets/stylesheets/bootstrap/_spinners.scss +4 -0
  38. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  39. data/assets/stylesheets/bootstrap/_utilities.scss +65 -37
  40. data/assets/stylesheets/bootstrap/_variables.scss +138 -30
  41. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  42. data/assets/stylesheets/bootstrap/forms/_form-control.scss +0 -4
  43. data/assets/stylesheets/bootstrap/mixins/_alert.scss +2 -0
  44. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +2 -0
  45. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -1
  46. data/assets/stylesheets/bootstrap/mixins/_caret.scss +2 -0
  47. data/assets/stylesheets/bootstrap/mixins/_forms.scss +11 -1
  48. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  49. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -0
  50. data/bootstrap.gemspec +1 -1
  51. data/lib/bootstrap/version.rb +2 -2
  52. data/tasks/updater/js.rb +1 -1
  53. data/tasks/updater/network.rb +7 -1
  54. metadata +6 -4
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap modal.js v5.0.0-beta2 (https://getbootstrap.com/)
2
+ * Bootstrap modal.js v5.0.0-beta3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
@@ -17,78 +17,28 @@
17
17
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
18
  var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
19
 
20
- function _defineProperties(target, props) {
21
- for (var i = 0; i < props.length; i++) {
22
- var descriptor = props[i];
23
- descriptor.enumerable = descriptor.enumerable || false;
24
- descriptor.configurable = true;
25
- if ("value" in descriptor) descriptor.writable = true;
26
- Object.defineProperty(target, descriptor.key, descriptor);
27
- }
28
- }
29
-
30
- function _createClass(Constructor, protoProps, staticProps) {
31
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
- if (staticProps) _defineProperties(Constructor, staticProps);
33
- return Constructor;
34
- }
35
-
36
- function _extends() {
37
- _extends = Object.assign || function (target) {
38
- for (var i = 1; i < arguments.length; i++) {
39
- var source = arguments[i];
40
-
41
- for (var key in source) {
42
- if (Object.prototype.hasOwnProperty.call(source, key)) {
43
- target[key] = source[key];
44
- }
45
- }
46
- }
47
-
48
- return target;
49
- };
50
-
51
- return _extends.apply(this, arguments);
52
- }
53
-
54
- function _inheritsLoose(subClass, superClass) {
55
- subClass.prototype = Object.create(superClass.prototype);
56
- subClass.prototype.constructor = subClass;
57
-
58
- _setPrototypeOf(subClass, superClass);
59
- }
60
-
61
- function _setPrototypeOf(o, p) {
62
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
63
- o.__proto__ = p;
64
- return o;
65
- };
66
-
67
- return _setPrototypeOf(o, p);
68
- }
69
-
70
20
  /**
71
21
  * --------------------------------------------------------------------------
72
- * Bootstrap (v5.0.0-beta2): util/index.js
22
+ * Bootstrap (v5.0.0-beta3): util/index.js
73
23
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
74
24
  * --------------------------------------------------------------------------
75
25
  */
76
- var MILLISECONDS_MULTIPLIER = 1000;
77
- var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
26
+ const MILLISECONDS_MULTIPLIER = 1000;
27
+ const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
78
28
 
79
- var toType = function toType(obj) {
29
+ const toType = obj => {
80
30
  if (obj === null || obj === undefined) {
81
- return "" + obj;
31
+ return `${obj}`;
82
32
  }
83
33
 
84
34
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
85
35
  };
86
36
 
87
- var getSelector = function getSelector(element) {
88
- var selector = element.getAttribute('data-bs-target');
37
+ const getSelector = element => {
38
+ let selector = element.getAttribute('data-bs-target');
89
39
 
90
40
  if (!selector || selector === '#') {
91
- var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
41
+ let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
92
42
  // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
93
43
  // `document.querySelector` will rightfully complain it is invalid.
94
44
  // See https://github.com/twbs/bootstrap/issues/32273
@@ -108,23 +58,23 @@
108
58
  return selector;
109
59
  };
110
60
 
111
- var getElementFromSelector = function getElementFromSelector(element) {
112
- var selector = getSelector(element);
61
+ const getElementFromSelector = element => {
62
+ const selector = getSelector(element);
113
63
  return selector ? document.querySelector(selector) : null;
114
64
  };
115
65
 
116
- var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
66
+ const getTransitionDurationFromElement = element => {
117
67
  if (!element) {
118
68
  return 0;
119
69
  } // Get transition-duration of the element
120
70
 
121
71
 
122
- var _window$getComputedSt = window.getComputedStyle(element),
123
- transitionDuration = _window$getComputedSt.transitionDuration,
124
- transitionDelay = _window$getComputedSt.transitionDelay;
125
-
126
- var floatTransitionDuration = Number.parseFloat(transitionDuration);
127
- var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
72
+ let {
73
+ transitionDuration,
74
+ transitionDelay
75
+ } = window.getComputedStyle(element);
76
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
77
+ const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
128
78
 
129
79
  if (!floatTransitionDuration && !floatTransitionDelay) {
130
80
  return 0;
@@ -136,18 +86,16 @@
136
86
  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
137
87
  };
138
88
 
139
- var triggerTransitionEnd = function triggerTransitionEnd(element) {
89
+ const triggerTransitionEnd = element => {
140
90
  element.dispatchEvent(new Event(TRANSITION_END));
141
91
  };
142
92
 
143
- var isElement = function isElement(obj) {
144
- return (obj[0] || obj).nodeType;
145
- };
93
+ const isElement = obj => (obj[0] || obj).nodeType;
146
94
 
147
- var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
148
- var called = false;
149
- var durationPadding = 5;
150
- var emulatedDuration = duration + durationPadding;
95
+ const emulateTransitionEnd = (element, duration) => {
96
+ let called = false;
97
+ const durationPadding = 5;
98
+ const emulatedDuration = duration + durationPadding;
151
99
 
152
100
  function listener() {
153
101
  called = true;
@@ -155,46 +103,45 @@
155
103
  }
156
104
 
157
105
  element.addEventListener(TRANSITION_END, listener);
158
- setTimeout(function () {
106
+ setTimeout(() => {
159
107
  if (!called) {
160
108
  triggerTransitionEnd(element);
161
109
  }
162
110
  }, emulatedDuration);
163
111
  };
164
112
 
165
- var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
166
- Object.keys(configTypes).forEach(function (property) {
167
- var expectedTypes = configTypes[property];
168
- var value = config[property];
169
- var valueType = value && isElement(value) ? 'element' : toType(value);
113
+ const typeCheckConfig = (componentName, config, configTypes) => {
114
+ Object.keys(configTypes).forEach(property => {
115
+ const expectedTypes = configTypes[property];
116
+ const value = config[property];
117
+ const valueType = value && isElement(value) ? 'element' : toType(value);
170
118
 
171
119
  if (!new RegExp(expectedTypes).test(valueType)) {
172
- throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
120
+ throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
173
121
  }
174
122
  });
175
123
  };
176
124
 
177
- var isVisible = function isVisible(element) {
125
+ const isVisible = element => {
178
126
  if (!element) {
179
127
  return false;
180
128
  }
181
129
 
182
130
  if (element.style && element.parentNode && element.parentNode.style) {
183
- var elementStyle = getComputedStyle(element);
184
- var parentNodeStyle = getComputedStyle(element.parentNode);
131
+ const elementStyle = getComputedStyle(element);
132
+ const parentNodeStyle = getComputedStyle(element.parentNode);
185
133
  return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
186
134
  }
187
135
 
188
136
  return false;
189
137
  };
190
138
 
191
- var reflow = function reflow(element) {
192
- return element.offsetHeight;
193
- };
139
+ const reflow = element => element.offsetHeight;
194
140
 
195
- var getjQuery = function getjQuery() {
196
- var _window = window,
197
- jQuery = _window.jQuery;
141
+ const getjQuery = () => {
142
+ const {
143
+ jQuery
144
+ } = window;
198
145
 
199
146
  if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
200
147
  return jQuery;
@@ -203,7 +150,7 @@
203
150
  return null;
204
151
  };
205
152
 
206
- var onDOMContentLoaded = function onDOMContentLoaded(callback) {
153
+ const onDOMContentLoaded = callback => {
207
154
  if (document.readyState === 'loading') {
208
155
  document.addEventListener('DOMContentLoaded', callback);
209
156
  } else {
@@ -211,19 +158,19 @@
211
158
  }
212
159
  };
213
160
 
214
- var isRTL = document.documentElement.dir === 'rtl';
161
+ const isRTL = () => document.documentElement.dir === 'rtl';
215
162
 
216
- var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
217
- onDOMContentLoaded(function () {
218
- var $ = getjQuery();
163
+ const defineJQueryPlugin = (name, plugin) => {
164
+ onDOMContentLoaded(() => {
165
+ const $ = getjQuery();
219
166
  /* istanbul ignore if */
220
167
 
221
168
  if ($) {
222
- var JQUERY_NO_CONFLICT = $.fn[name];
169
+ const JQUERY_NO_CONFLICT = $.fn[name];
223
170
  $.fn[name] = plugin.jQueryInterface;
224
171
  $.fn[name].Constructor = plugin;
225
172
 
226
- $.fn[name].noConflict = function () {
173
+ $.fn[name].noConflict = () => {
227
174
  $.fn[name] = JQUERY_NO_CONFLICT;
228
175
  return plugin.jQueryInterface;
229
176
  };
@@ -231,96 +178,101 @@
231
178
  });
232
179
  };
233
180
 
181
+ /**
182
+ * --------------------------------------------------------------------------
183
+ * Bootstrap (v5.0.0-beta3): modal.js
184
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
185
+ * --------------------------------------------------------------------------
186
+ */
234
187
  /**
235
188
  * ------------------------------------------------------------------------
236
189
  * Constants
237
190
  * ------------------------------------------------------------------------
238
191
  */
239
192
 
240
- var NAME = 'modal';
241
- var DATA_KEY = 'bs.modal';
242
- var EVENT_KEY = "." + DATA_KEY;
243
- var DATA_API_KEY = '.data-api';
244
- var ESCAPE_KEY = 'Escape';
245
- var Default = {
193
+ const NAME = 'modal';
194
+ const DATA_KEY = 'bs.modal';
195
+ const EVENT_KEY = `.${DATA_KEY}`;
196
+ const DATA_API_KEY = '.data-api';
197
+ const ESCAPE_KEY = 'Escape';
198
+ const Default = {
246
199
  backdrop: true,
247
200
  keyboard: true,
248
201
  focus: true
249
202
  };
250
- var DefaultType = {
203
+ const DefaultType = {
251
204
  backdrop: '(boolean|string)',
252
205
  keyboard: 'boolean',
253
206
  focus: 'boolean'
254
207
  };
255
- var EVENT_HIDE = "hide" + EVENT_KEY;
256
- var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
257
- var EVENT_HIDDEN = "hidden" + EVENT_KEY;
258
- var EVENT_SHOW = "show" + EVENT_KEY;
259
- var EVENT_SHOWN = "shown" + EVENT_KEY;
260
- var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
261
- var EVENT_RESIZE = "resize" + EVENT_KEY;
262
- var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
263
- var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
264
- var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
265
- var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
266
- var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
267
- var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
268
- var CLASS_NAME_BACKDROP = 'modal-backdrop';
269
- var CLASS_NAME_OPEN = 'modal-open';
270
- var CLASS_NAME_FADE = 'fade';
271
- var CLASS_NAME_SHOW = 'show';
272
- var CLASS_NAME_STATIC = 'modal-static';
273
- var SELECTOR_DIALOG = '.modal-dialog';
274
- var SELECTOR_MODAL_BODY = '.modal-body';
275
- var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
276
- var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
277
- var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
278
- var SELECTOR_STICKY_CONTENT = '.sticky-top';
208
+ const EVENT_HIDE = `hide${EVENT_KEY}`;
209
+ const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;
210
+ const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
211
+ const EVENT_SHOW = `show${EVENT_KEY}`;
212
+ const EVENT_SHOWN = `shown${EVENT_KEY}`;
213
+ const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
214
+ const EVENT_RESIZE = `resize${EVENT_KEY}`;
215
+ const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;
216
+ const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;
217
+ const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`;
218
+ const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;
219
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
220
+ const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
221
+ const CLASS_NAME_BACKDROP = 'modal-backdrop';
222
+ const CLASS_NAME_OPEN = 'modal-open';
223
+ const CLASS_NAME_FADE = 'fade';
224
+ const CLASS_NAME_SHOW = 'show';
225
+ const CLASS_NAME_STATIC = 'modal-static';
226
+ const SELECTOR_DIALOG = '.modal-dialog';
227
+ const SELECTOR_MODAL_BODY = '.modal-body';
228
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
229
+ const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
230
+ const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
231
+ const SELECTOR_STICKY_CONTENT = '.sticky-top';
279
232
  /**
280
233
  * ------------------------------------------------------------------------
281
234
  * Class Definition
282
235
  * ------------------------------------------------------------------------
283
236
  */
284
237
 
285
- var Modal = /*#__PURE__*/function (_BaseComponent) {
286
- _inheritsLoose(Modal, _BaseComponent);
287
-
288
- function Modal(element, config) {
289
- var _this;
290
-
291
- _this = _BaseComponent.call(this, element) || this;
292
- _this._config = _this._getConfig(config);
293
- _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
294
- _this._backdrop = null;
295
- _this._isShown = false;
296
- _this._isBodyOverflowing = false;
297
- _this._ignoreBackdropClick = false;
298
- _this._isTransitioning = false;
299
- _this._scrollbarWidth = 0;
300
- return _this;
238
+ class Modal extends BaseComponent__default['default'] {
239
+ constructor(element, config) {
240
+ super(element);
241
+ this._config = this._getConfig(config);
242
+ this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, this._element);
243
+ this._backdrop = null;
244
+ this._isShown = false;
245
+ this._isBodyOverflowing = false;
246
+ this._ignoreBackdropClick = false;
247
+ this._isTransitioning = false;
248
+ this._scrollbarWidth = 0;
301
249
  } // Getters
302
250
 
303
251
 
304
- var _proto = Modal.prototype;
252
+ static get Default() {
253
+ return Default;
254
+ }
305
255
 
306
- // Public
307
- _proto.toggle = function toggle(relatedTarget) {
308
- return this._isShown ? this.hide() : this.show(relatedTarget);
309
- };
256
+ static get DATA_KEY() {
257
+ return DATA_KEY;
258
+ } // Public
310
259
 
311
- _proto.show = function show(relatedTarget) {
312
- var _this2 = this;
313
260
 
261
+ toggle(relatedTarget) {
262
+ return this._isShown ? this.hide() : this.show(relatedTarget);
263
+ }
264
+
265
+ show(relatedTarget) {
314
266
  if (this._isShown || this._isTransitioning) {
315
267
  return;
316
268
  }
317
269
 
318
- if (this._element.classList.contains(CLASS_NAME_FADE)) {
270
+ if (this._isAnimated()) {
319
271
  this._isTransitioning = true;
320
272
  }
321
273
 
322
- var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
323
- relatedTarget: relatedTarget
274
+ const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
275
+ relatedTarget
324
276
  });
325
277
 
326
278
  if (this._isShown || showEvent.defaultPrevented) {
@@ -339,25 +291,19 @@
339
291
 
340
292
  this._setResizeEvent();
341
293
 
342
- EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
343
- return _this2.hide(event);
344
- });
345
- EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
346
- EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
347
- if (event.target === _this2._element) {
348
- _this2._ignoreBackdropClick = true;
294
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event));
295
+ EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {
296
+ EventHandler__default['default'].one(this._element, EVENT_MOUSEUP_DISMISS, event => {
297
+ if (event.target === this._element) {
298
+ this._ignoreBackdropClick = true;
349
299
  }
350
300
  });
351
301
  });
352
302
 
353
- this._showBackdrop(function () {
354
- return _this2._showElement(relatedTarget);
355
- });
356
- };
357
-
358
- _proto.hide = function hide(event) {
359
- var _this3 = this;
303
+ this._showBackdrop(() => this._showElement(relatedTarget));
304
+ }
360
305
 
306
+ hide(event) {
361
307
  if (event) {
362
308
  event.preventDefault();
363
309
  }
@@ -366,7 +312,7 @@
366
312
  return;
367
313
  }
368
314
 
369
- var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
315
+ const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
370
316
 
371
317
  if (hideEvent.defaultPrevented) {
372
318
  return;
@@ -374,9 +320,9 @@
374
320
 
375
321
  this._isShown = false;
376
322
 
377
- var transition = this._element.classList.contains(CLASS_NAME_FADE);
323
+ const isAnimated = this._isAnimated();
378
324
 
379
- if (transition) {
325
+ if (isAnimated) {
380
326
  this._isTransitioning = true;
381
327
  }
382
328
 
@@ -391,30 +337,24 @@
391
337
  EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
392
338
  EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
393
339
 
394
- if (transition) {
395
- var transitionDuration = getTransitionDurationFromElement(this._element);
396
- EventHandler__default['default'].one(this._element, 'transitionend', function (event) {
397
- return _this3._hideModal(event);
398
- });
340
+ if (isAnimated) {
341
+ const transitionDuration = getTransitionDurationFromElement(this._element);
342
+ EventHandler__default['default'].one(this._element, 'transitionend', event => this._hideModal(event));
399
343
  emulateTransitionEnd(this._element, transitionDuration);
400
344
  } else {
401
345
  this._hideModal();
402
346
  }
403
- };
404
-
405
- _proto.dispose = function dispose() {
406
- [window, this._element, this._dialog].forEach(function (htmlElement) {
407
- return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
408
- });
347
+ }
409
348
 
410
- _BaseComponent.prototype.dispose.call(this);
349
+ dispose() {
350
+ [window, this._element, this._dialog].forEach(htmlElement => EventHandler__default['default'].off(htmlElement, EVENT_KEY));
351
+ super.dispose();
411
352
  /**
412
353
  * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
413
354
  * Do not move `document` in `htmlElements` array
414
355
  * It will remove `EVENT_CLICK_DATA_API` event that should remain
415
356
  */
416
357
 
417
-
418
358
  EventHandler__default['default'].off(document, EVENT_FOCUSIN);
419
359
  this._config = null;
420
360
  this._dialog = null;
@@ -424,25 +364,25 @@
424
364
  this._ignoreBackdropClick = null;
425
365
  this._isTransitioning = null;
426
366
  this._scrollbarWidth = null;
427
- };
367
+ }
428
368
 
429
- _proto.handleUpdate = function handleUpdate() {
369
+ handleUpdate() {
430
370
  this._adjustDialog();
431
371
  } // Private
432
- ;
433
372
 
434
- _proto._getConfig = function _getConfig(config) {
435
- config = _extends({}, Default, config);
373
+
374
+ _getConfig(config) {
375
+ config = { ...Default,
376
+ ...config
377
+ };
436
378
  typeCheckConfig(NAME, config, DefaultType);
437
379
  return config;
438
- };
439
-
440
- _proto._showElement = function _showElement(relatedTarget) {
441
- var _this4 = this;
380
+ }
442
381
 
443
- var transition = this._element.classList.contains(CLASS_NAME_FADE);
382
+ _showElement(relatedTarget) {
383
+ const isAnimated = this._isAnimated();
444
384
 
445
- var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);
385
+ const modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);
446
386
 
447
387
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
448
388
  // Don't move modal's DOM position
@@ -463,7 +403,7 @@
463
403
  modalBody.scrollTop = 0;
464
404
  }
465
405
 
466
- if (transition) {
406
+ if (isAnimated) {
467
407
  reflow(this._element);
468
408
  }
469
409
 
@@ -473,71 +413,60 @@
473
413
  this._enforceFocus();
474
414
  }
475
415
 
476
- var transitionComplete = function transitionComplete() {
477
- if (_this4._config.focus) {
478
- _this4._element.focus();
416
+ const transitionComplete = () => {
417
+ if (this._config.focus) {
418
+ this._element.focus();
479
419
  }
480
420
 
481
- _this4._isTransitioning = false;
482
- EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
483
- relatedTarget: relatedTarget
421
+ this._isTransitioning = false;
422
+ EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, {
423
+ relatedTarget
484
424
  });
485
425
  };
486
426
 
487
- if (transition) {
488
- var transitionDuration = getTransitionDurationFromElement(this._dialog);
427
+ if (isAnimated) {
428
+ const transitionDuration = getTransitionDurationFromElement(this._dialog);
489
429
  EventHandler__default['default'].one(this._dialog, 'transitionend', transitionComplete);
490
430
  emulateTransitionEnd(this._dialog, transitionDuration);
491
431
  } else {
492
432
  transitionComplete();
493
433
  }
494
- };
495
-
496
- _proto._enforceFocus = function _enforceFocus() {
497
- var _this5 = this;
434
+ }
498
435
 
436
+ _enforceFocus() {
499
437
  EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
500
438
 
501
- EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
502
- if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
503
- _this5._element.focus();
439
+ EventHandler__default['default'].on(document, EVENT_FOCUSIN, event => {
440
+ if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) {
441
+ this._element.focus();
504
442
  }
505
443
  });
506
- };
507
-
508
- _proto._setEscapeEvent = function _setEscapeEvent() {
509
- var _this6 = this;
444
+ }
510
445
 
446
+ _setEscapeEvent() {
511
447
  if (this._isShown) {
512
- EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
513
- if (_this6._config.keyboard && event.key === ESCAPE_KEY) {
448
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, event => {
449
+ if (this._config.keyboard && event.key === ESCAPE_KEY) {
514
450
  event.preventDefault();
515
-
516
- _this6.hide();
517
- } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
518
- _this6._triggerBackdropTransition();
451
+ this.hide();
452
+ } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {
453
+ this._triggerBackdropTransition();
519
454
  }
520
455
  });
521
456
  } else {
522
457
  EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);
523
458
  }
524
- };
525
-
526
- _proto._setResizeEvent = function _setResizeEvent() {
527
- var _this7 = this;
459
+ }
528
460
 
461
+ _setResizeEvent() {
529
462
  if (this._isShown) {
530
- EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
531
- return _this7._adjustDialog();
532
- });
463
+ EventHandler__default['default'].on(window, EVENT_RESIZE, () => this._adjustDialog());
533
464
  } else {
534
465
  EventHandler__default['default'].off(window, EVENT_RESIZE);
535
466
  }
536
- };
537
-
538
- _proto._hideModal = function _hideModal() {
539
- var _this8 = this;
467
+ }
540
468
 
469
+ _hideModal() {
541
470
  this._element.style.display = 'none';
542
471
 
543
472
  this._element.setAttribute('aria-hidden', true);
@@ -548,40 +477,38 @@
548
477
 
549
478
  this._isTransitioning = false;
550
479
 
551
- this._showBackdrop(function () {
480
+ this._showBackdrop(() => {
552
481
  document.body.classList.remove(CLASS_NAME_OPEN);
553
482
 
554
- _this8._resetAdjustments();
483
+ this._resetAdjustments();
555
484
 
556
- _this8._resetScrollbar();
485
+ this._resetScrollbar();
557
486
 
558
- EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);
487
+ EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);
559
488
  });
560
- };
489
+ }
561
490
 
562
- _proto._removeBackdrop = function _removeBackdrop() {
491
+ _removeBackdrop() {
563
492
  this._backdrop.parentNode.removeChild(this._backdrop);
564
493
 
565
494
  this._backdrop = null;
566
- };
567
-
568
- _proto._showBackdrop = function _showBackdrop(callback) {
569
- var _this9 = this;
495
+ }
570
496
 
571
- var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
497
+ _showBackdrop(callback) {
498
+ const isAnimated = this._isAnimated();
572
499
 
573
500
  if (this._isShown && this._config.backdrop) {
574
501
  this._backdrop = document.createElement('div');
575
502
  this._backdrop.className = CLASS_NAME_BACKDROP;
576
503
 
577
- if (animate) {
578
- this._backdrop.classList.add(animate);
504
+ if (isAnimated) {
505
+ this._backdrop.classList.add(CLASS_NAME_FADE);
579
506
  }
580
507
 
581
508
  document.body.appendChild(this._backdrop);
582
- EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
583
- if (_this9._ignoreBackdropClick) {
584
- _this9._ignoreBackdropClick = false;
509
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, event => {
510
+ if (this._ignoreBackdropClick) {
511
+ this._ignoreBackdropClick = false;
585
512
  return;
586
513
  }
587
514
 
@@ -589,59 +516,60 @@
589
516
  return;
590
517
  }
591
518
 
592
- if (_this9._config.backdrop === 'static') {
593
- _this9._triggerBackdropTransition();
519
+ if (this._config.backdrop === 'static') {
520
+ this._triggerBackdropTransition();
594
521
  } else {
595
- _this9.hide();
522
+ this.hide();
596
523
  }
597
524
  });
598
525
 
599
- if (animate) {
526
+ if (isAnimated) {
600
527
  reflow(this._backdrop);
601
528
  }
602
529
 
603
530
  this._backdrop.classList.add(CLASS_NAME_SHOW);
604
531
 
605
- if (!animate) {
532
+ if (!isAnimated) {
606
533
  callback();
607
534
  return;
608
535
  }
609
536
 
610
- var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
537
+ const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
611
538
  EventHandler__default['default'].one(this._backdrop, 'transitionend', callback);
612
539
  emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
613
540
  } else if (!this._isShown && this._backdrop) {
614
541
  this._backdrop.classList.remove(CLASS_NAME_SHOW);
615
542
 
616
- var callbackRemove = function callbackRemove() {
617
- _this9._removeBackdrop();
543
+ const callbackRemove = () => {
544
+ this._removeBackdrop();
618
545
 
619
546
  callback();
620
547
  };
621
548
 
622
- if (this._element.classList.contains(CLASS_NAME_FADE)) {
623
- var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
624
-
549
+ if (isAnimated) {
550
+ const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
625
551
  EventHandler__default['default'].one(this._backdrop, 'transitionend', callbackRemove);
626
- emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
552
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
627
553
  } else {
628
554
  callbackRemove();
629
555
  }
630
556
  } else {
631
557
  callback();
632
558
  }
633
- };
559
+ }
634
560
 
635
- _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
636
- var _this10 = this;
561
+ _isAnimated() {
562
+ return this._element.classList.contains(CLASS_NAME_FADE);
563
+ }
637
564
 
638
- var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
565
+ _triggerBackdropTransition() {
566
+ const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
639
567
 
640
568
  if (hideEvent.defaultPrevented) {
641
569
  return;
642
570
  }
643
571
 
644
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
572
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
645
573
 
646
574
  if (!isModalOverflowing) {
647
575
  this._element.style.overflowY = 'hidden';
@@ -649,16 +577,16 @@
649
577
 
650
578
  this._element.classList.add(CLASS_NAME_STATIC);
651
579
 
652
- var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
580
+ const modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
653
581
  EventHandler__default['default'].off(this._element, 'transitionend');
654
- EventHandler__default['default'].one(this._element, 'transitionend', function () {
655
- _this10._element.classList.remove(CLASS_NAME_STATIC);
582
+ EventHandler__default['default'].one(this._element, 'transitionend', () => {
583
+ this._element.classList.remove(CLASS_NAME_STATIC);
656
584
 
657
585
  if (!isModalOverflowing) {
658
- EventHandler__default['default'].one(_this10._element, 'transitionend', function () {
659
- _this10._element.style.overflowY = '';
586
+ EventHandler__default['default'].one(this._element, 'transitionend', () => {
587
+ this._element.style.overflowY = '';
660
588
  });
661
- emulateTransitionEnd(_this10._element, modalTransitionDuration);
589
+ emulateTransitionEnd(this._element, modalTransitionDuration);
662
590
  }
663
591
  });
664
592
  emulateTransitionEnd(this._element, modalTransitionDuration);
@@ -667,71 +595,67 @@
667
595
  } // ----------------------------------------------------------------------
668
596
  // the following methods are used to handle overflowing modals
669
597
  // ----------------------------------------------------------------------
670
- ;
671
598
 
672
- _proto._adjustDialog = function _adjustDialog() {
673
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
674
599
 
675
- if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
676
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
600
+ _adjustDialog() {
601
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
602
+
603
+ if (!this._isBodyOverflowing && isModalOverflowing && !isRTL() || this._isBodyOverflowing && !isModalOverflowing && isRTL()) {
604
+ this._element.style.paddingLeft = `${this._scrollbarWidth}px`;
677
605
  }
678
606
 
679
- if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
680
- this._element.style.paddingRight = this._scrollbarWidth + "px";
607
+ if (this._isBodyOverflowing && !isModalOverflowing && !isRTL() || !this._isBodyOverflowing && isModalOverflowing && isRTL()) {
608
+ this._element.style.paddingRight = `${this._scrollbarWidth}px`;
681
609
  }
682
- };
610
+ }
683
611
 
684
- _proto._resetAdjustments = function _resetAdjustments() {
612
+ _resetAdjustments() {
685
613
  this._element.style.paddingLeft = '';
686
614
  this._element.style.paddingRight = '';
687
- };
615
+ }
688
616
 
689
- _proto._checkScrollbar = function _checkScrollbar() {
690
- var rect = document.body.getBoundingClientRect();
617
+ _checkScrollbar() {
618
+ const rect = document.body.getBoundingClientRect();
691
619
  this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
692
620
  this._scrollbarWidth = this._getScrollbarWidth();
693
- };
694
-
695
- _proto._setScrollbar = function _setScrollbar() {
696
- var _this11 = this;
621
+ }
697
622
 
623
+ _setScrollbar() {
698
624
  if (this._isBodyOverflowing) {
699
- this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {
700
- return calculatedValue + _this11._scrollbarWidth;
701
- });
625
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth);
702
626
 
703
- this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {
704
- return calculatedValue - _this11._scrollbarWidth;
705
- });
627
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth);
706
628
 
707
- this._setElementAttributes('body', 'paddingRight', function (calculatedValue) {
708
- return calculatedValue + _this11._scrollbarWidth;
709
- });
629
+ this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth);
710
630
  }
711
631
 
712
632
  document.body.classList.add(CLASS_NAME_OPEN);
713
- };
633
+ }
714
634
 
715
- _proto._setElementAttributes = function _setElementAttributes(selector, styleProp, callback) {
716
- SelectorEngine__default['default'].find(selector).forEach(function (element) {
717
- var actualValue = element.style[styleProp];
718
- var calculatedValue = window.getComputedStyle(element)[styleProp];
635
+ _setElementAttributes(selector, styleProp, callback) {
636
+ SelectorEngine__default['default'].find(selector).forEach(element => {
637
+ if (element !== document.body && window.innerWidth > element.clientWidth + this._scrollbarWidth) {
638
+ return;
639
+ }
640
+
641
+ const actualValue = element.style[styleProp];
642
+ const calculatedValue = window.getComputedStyle(element)[styleProp];
719
643
  Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);
720
644
  element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
721
645
  });
722
- };
646
+ }
723
647
 
724
- _proto._resetScrollbar = function _resetScrollbar() {
648
+ _resetScrollbar() {
725
649
  this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
726
650
 
727
651
  this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
728
652
 
729
653
  this._resetElementAttributes('body', 'paddingRight');
730
- };
654
+ }
731
655
 
732
- _proto._resetElementAttributes = function _resetElementAttributes(selector, styleProp) {
733
- SelectorEngine__default['default'].find(selector).forEach(function (element) {
734
- var value = Manipulator__default['default'].getDataAttribute(element, styleProp);
656
+ _resetElementAttributes(selector, styleProp) {
657
+ SelectorEngine__default['default'].find(selector).forEach(element => {
658
+ const value = Manipulator__default['default'].getDataAttribute(element, styleProp);
735
659
 
736
660
  if (typeof value === 'undefined' && element === document.body) {
737
661
  element.style[styleProp] = '';
@@ -740,24 +664,26 @@
740
664
  element.style[styleProp] = value;
741
665
  }
742
666
  });
743
- };
667
+ }
744
668
 
745
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
669
+ _getScrollbarWidth() {
746
670
  // thx d.walsh
747
- var scrollDiv = document.createElement('div');
671
+ const scrollDiv = document.createElement('div');
748
672
  scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
749
673
  document.body.appendChild(scrollDiv);
750
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
674
+ const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
751
675
  document.body.removeChild(scrollDiv);
752
676
  return scrollbarWidth;
753
677
  } // Static
754
- ;
755
678
 
756
- Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
757
- return this.each(function () {
758
- var data = Data__default['default'].getData(this, DATA_KEY);
759
679
 
760
- var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});
680
+ static jQueryInterface(config, relatedTarget) {
681
+ return this.each(function () {
682
+ let data = Data__default['default'].get(this, DATA_KEY);
683
+ const _config = { ...Default,
684
+ ...Manipulator__default['default'].getDataAttributes(this),
685
+ ...(typeof config === 'object' && config ? config : {})
686
+ };
761
687
 
762
688
  if (!data) {
763
689
  data = new Modal(this, _config);
@@ -765,28 +691,15 @@
765
691
 
766
692
  if (typeof config === 'string') {
767
693
  if (typeof data[config] === 'undefined') {
768
- throw new TypeError("No method named \"" + config + "\"");
694
+ throw new TypeError(`No method named "${config}"`);
769
695
  }
770
696
 
771
697
  data[config](relatedTarget);
772
698
  }
773
699
  });
774
- };
775
-
776
- _createClass(Modal, null, [{
777
- key: "Default",
778
- get: function get() {
779
- return Default;
780
- }
781
- }, {
782
- key: "DATA_KEY",
783
- get: function get() {
784
- return DATA_KEY;
785
- }
786
- }]);
700
+ }
787
701
 
788
- return Modal;
789
- }(BaseComponent__default['default']);
702
+ }
790
703
  /**
791
704
  * ------------------------------------------------------------------------
792
705
  * Data Api implementation
@@ -795,31 +708,30 @@
795
708
 
796
709
 
797
710
  EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
798
- var _this12 = this;
799
-
800
- var target = getElementFromSelector(this);
711
+ const target = getElementFromSelector(this);
801
712
 
802
713
  if (this.tagName === 'A' || this.tagName === 'AREA') {
803
714
  event.preventDefault();
804
715
  }
805
716
 
806
- EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {
717
+ EventHandler__default['default'].one(target, EVENT_SHOW, showEvent => {
807
718
  if (showEvent.defaultPrevented) {
808
719
  // only register focus restorer if modal will actually get shown
809
720
  return;
810
721
  }
811
722
 
812
- EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
813
- if (isVisible(_this12)) {
814
- _this12.focus();
723
+ EventHandler__default['default'].one(target, EVENT_HIDDEN, () => {
724
+ if (isVisible(this)) {
725
+ this.focus();
815
726
  }
816
727
  });
817
728
  });
818
- var data = Data__default['default'].getData(target, DATA_KEY);
729
+ let data = Data__default['default'].get(target, DATA_KEY);
819
730
 
820
731
  if (!data) {
821
- var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
822
-
732
+ const config = { ...Manipulator__default['default'].getDataAttributes(target),
733
+ ...Manipulator__default['default'].getDataAttributes(this)
734
+ };
823
735
  data = new Modal(target, config);
824
736
  }
825
737