bootstrap 4.4.1 → 4.6.2.1

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -1
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +7 -1
  5. data/Rakefile +16 -4
  6. data/assets/javascripts/bootstrap/alert.js +42 -53
  7. data/assets/javascripts/bootstrap/button.js +76 -81
  8. data/assets/javascripts/bootstrap/carousel.js +161 -199
  9. data/assets/javascripts/bootstrap/collapse.js +97 -142
  10. data/assets/javascripts/bootstrap/dropdown.js +130 -186
  11. data/assets/javascripts/bootstrap/modal.js +191 -213
  12. data/assets/javascripts/bootstrap/popover.js +62 -92
  13. data/assets/javascripts/bootstrap/scrollspy.js +81 -132
  14. data/assets/javascripts/bootstrap/tab.js +78 -83
  15. data/assets/javascripts/bootstrap/toast.js +83 -118
  16. data/assets/javascripts/bootstrap/tooltip.js +158 -198
  17. data/assets/javascripts/bootstrap/util.js +27 -26
  18. data/assets/javascripts/bootstrap-sprockets.js +7 -7
  19. data/assets/javascripts/bootstrap.js +1037 -1202
  20. data/assets/javascripts/bootstrap.min.js +4 -4
  21. data/assets/stylesheets/_bootstrap-grid.scss +5 -4
  22. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  23. data/assets/stylesheets/_bootstrap.scss +4 -4
  24. data/assets/stylesheets/bootstrap/_alert.scss +1 -0
  25. data/assets/stylesheets/bootstrap/_breadcrumb.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +10 -7
  27. data/assets/stylesheets/bootstrap/_card.scss +30 -22
  28. data/assets/stylesheets/bootstrap/_carousel.scss +6 -3
  29. data/assets/stylesheets/bootstrap/_close.scss +0 -1
  30. data/assets/stylesheets/bootstrap/_custom-forms.scss +23 -18
  31. data/assets/stylesheets/bootstrap/_dropdown.scss +4 -3
  32. data/assets/stylesheets/bootstrap/_forms.scss +19 -10
  33. data/assets/stylesheets/bootstrap/_functions.scss +62 -6
  34. data/assets/stylesheets/bootstrap/_grid.scss +10 -6
  35. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  36. data/assets/stylesheets/bootstrap/_input-group.scss +24 -4
  37. data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -1
  38. data/assets/stylesheets/bootstrap/_list-group.scss +10 -14
  39. data/assets/stylesheets/bootstrap/_modal.scss +4 -3
  40. data/assets/stylesheets/bootstrap/_nav.scss +9 -4
  41. data/assets/stylesheets/bootstrap/_navbar.scss +10 -2
  42. data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
  43. data/assets/stylesheets/bootstrap/_popover.scss +9 -9
  44. data/assets/stylesheets/bootstrap/_print.scss +0 -9
  45. data/assets/stylesheets/bootstrap/_progress.scss +2 -1
  46. data/assets/stylesheets/bootstrap/_reboot.scss +27 -25
  47. data/assets/stylesheets/bootstrap/_root.scss +0 -1
  48. data/assets/stylesheets/bootstrap/_spinners.scss +18 -8
  49. data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
  50. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
  51. data/assets/stylesheets/bootstrap/_transitions.scss +6 -0
  52. data/assets/stylesheets/bootstrap/_type.scss +1 -1
  53. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  54. data/assets/stylesheets/bootstrap/_variables.scss +34 -28
  55. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  56. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +27 -14
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -6
  58. data/assets/stylesheets/bootstrap/mixins/_forms.scss +23 -5
  59. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +26 -17
  60. data/assets/stylesheets/bootstrap/mixins/_grid.scss +17 -17
  61. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  62. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  63. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +2 -2
  64. data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
  65. data/assets/stylesheets/bootstrap/utilities/_background.scss +1 -1
  66. data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
  67. data/assets/stylesheets/bootstrap/utilities/_embed.scss +1 -1
  68. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  69. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +1 -1
  70. data/assets/stylesheets/bootstrap/utilities/_text.scss +2 -2
  71. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +126 -102
  72. data/bootstrap.gemspec +1 -3
  73. data/lib/bootstrap/engine.rb +17 -1
  74. data/lib/bootstrap/version.rb +2 -2
  75. data/tasks/updater/js.rb +18 -6
  76. data/tasks/updater/network.rb +8 -2
  77. data/test/gemfiles/rails_6_0.gemfile +7 -0
  78. data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
  79. data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
  80. metadata +12 -19
@@ -1,16 +1,18 @@
1
1
  /*!
2
- * Bootstrap modal.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap modal.js v4.6.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
- typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
9
- (global = global || self, global.Modal = factory(global.jQuery, global.Util));
10
- }(this, (function ($, Util) { 'use strict';
8
+ typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.jQuery, global.Util));
10
+ })(this, (function ($, Util) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
15
+ var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
14
16
 
15
17
  function _defineProperties(target, props) {
16
18
  for (var i = 0; i < props.length; i++) {
@@ -25,72 +27,66 @@
25
27
  function _createClass(Constructor, protoProps, staticProps) {
26
28
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
29
  if (staticProps) _defineProperties(Constructor, staticProps);
30
+ Object.defineProperty(Constructor, "prototype", {
31
+ writable: false
32
+ });
28
33
  return Constructor;
29
34
  }
30
35
 
31
- function _defineProperty(obj, key, value) {
32
- if (key in obj) {
33
- Object.defineProperty(obj, key, {
34
- value: value,
35
- enumerable: true,
36
- configurable: true,
37
- writable: true
38
- });
39
- } else {
40
- obj[key] = value;
41
- }
42
-
43
- return obj;
44
- }
45
-
46
- function ownKeys(object, enumerableOnly) {
47
- var keys = Object.keys(object);
48
-
49
- if (Object.getOwnPropertySymbols) {
50
- var symbols = Object.getOwnPropertySymbols(object);
51
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
- });
54
- keys.push.apply(keys, symbols);
55
- }
56
-
57
- return keys;
58
- }
59
-
60
- function _objectSpread2(target) {
61
- for (var i = 1; i < arguments.length; i++) {
62
- var source = arguments[i] != null ? arguments[i] : {};
36
+ function _extends() {
37
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
38
+ for (var i = 1; i < arguments.length; i++) {
39
+ var source = arguments[i];
63
40
 
64
- if (i % 2) {
65
- ownKeys(Object(source), true).forEach(function (key) {
66
- _defineProperty(target, key, source[key]);
67
- });
68
- } else if (Object.getOwnPropertyDescriptors) {
69
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
- } else {
71
- ownKeys(Object(source)).forEach(function (key) {
72
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
- });
41
+ for (var key in source) {
42
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
43
+ target[key] = source[key];
44
+ }
45
+ }
74
46
  }
75
- }
76
47
 
77
- return target;
48
+ return target;
49
+ };
50
+ return _extends.apply(this, arguments);
78
51
  }
79
52
 
80
53
  /**
81
- * ------------------------------------------------------------------------
82
54
  * Constants
83
- * ------------------------------------------------------------------------
84
55
  */
85
56
 
86
57
  var NAME = 'modal';
87
- var VERSION = '4.4.1';
58
+ var VERSION = '4.6.2';
88
59
  var DATA_KEY = 'bs.modal';
89
60
  var EVENT_KEY = "." + DATA_KEY;
90
61
  var DATA_API_KEY = '.data-api';
91
- var JQUERY_NO_CONFLICT = $.fn[NAME];
62
+ var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
92
63
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
93
64
 
65
+ var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
66
+ var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
67
+ var CLASS_NAME_BACKDROP = 'modal-backdrop';
68
+ var CLASS_NAME_OPEN = 'modal-open';
69
+ var CLASS_NAME_FADE = 'fade';
70
+ var CLASS_NAME_SHOW = 'show';
71
+ var CLASS_NAME_STATIC = 'modal-static';
72
+ var EVENT_HIDE = "hide" + EVENT_KEY;
73
+ var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
74
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
75
+ var EVENT_SHOW = "show" + EVENT_KEY;
76
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
77
+ var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
78
+ var EVENT_RESIZE = "resize" + EVENT_KEY;
79
+ var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
80
+ var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
81
+ var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
82
+ var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
83
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
84
+ var SELECTOR_DIALOG = '.modal-dialog';
85
+ var SELECTOR_MODAL_BODY = '.modal-body';
86
+ var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
87
+ var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
88
+ var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
89
+ var SELECTOR_STICKY_CONTENT = '.sticky-top';
94
90
  var Default = {
95
91
  backdrop: true,
96
92
  keyboard: true,
@@ -103,50 +99,15 @@
103
99
  focus: 'boolean',
104
100
  show: 'boolean'
105
101
  };
106
- var Event = {
107
- HIDE: "hide" + EVENT_KEY,
108
- HIDE_PREVENTED: "hidePrevented" + EVENT_KEY,
109
- HIDDEN: "hidden" + EVENT_KEY,
110
- SHOW: "show" + EVENT_KEY,
111
- SHOWN: "shown" + EVENT_KEY,
112
- FOCUSIN: "focusin" + EVENT_KEY,
113
- RESIZE: "resize" + EVENT_KEY,
114
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
115
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
116
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
117
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
118
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
119
- };
120
- var ClassName = {
121
- SCROLLABLE: 'modal-dialog-scrollable',
122
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
123
- BACKDROP: 'modal-backdrop',
124
- OPEN: 'modal-open',
125
- FADE: 'fade',
126
- SHOW: 'show',
127
- STATIC: 'modal-static'
128
- };
129
- var Selector = {
130
- DIALOG: '.modal-dialog',
131
- MODAL_BODY: '.modal-body',
132
- DATA_TOGGLE: '[data-toggle="modal"]',
133
- DATA_DISMISS: '[data-dismiss="modal"]',
134
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
135
- STICKY_CONTENT: '.sticky-top'
136
- };
137
102
  /**
138
- * ------------------------------------------------------------------------
139
- * Class Definition
140
- * ------------------------------------------------------------------------
103
+ * Class definition
141
104
  */
142
105
 
143
- var Modal =
144
- /*#__PURE__*/
145
- function () {
106
+ var Modal = /*#__PURE__*/function () {
146
107
  function Modal(element, config) {
147
108
  this._config = this._getConfig(config);
148
109
  this._element = element;
149
- this._dialog = element.querySelector(Selector.DIALOG);
110
+ this._dialog = element.querySelector(SELECTOR_DIALOG);
150
111
  this._backdrop = null;
151
112
  this._isShown = false;
152
113
  this._isBodyOverflowing = false;
@@ -170,21 +131,21 @@
170
131
  return;
171
132
  }
172
133
 
173
- if ($(this._element).hasClass(ClassName.FADE)) {
174
- this._isTransitioning = true;
175
- }
176
-
177
- var showEvent = $.Event(Event.SHOW, {
134
+ var showEvent = $__default["default"].Event(EVENT_SHOW, {
178
135
  relatedTarget: relatedTarget
179
136
  });
180
- $(this._element).trigger(showEvent);
137
+ $__default["default"](this._element).trigger(showEvent);
181
138
 
182
- if (this._isShown || showEvent.isDefaultPrevented()) {
139
+ if (showEvent.isDefaultPrevented()) {
183
140
  return;
184
141
  }
185
142
 
186
143
  this._isShown = true;
187
144
 
145
+ if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE)) {
146
+ this._isTransitioning = true;
147
+ }
148
+
188
149
  this._checkScrollbar();
189
150
 
190
151
  this._setScrollbar();
@@ -195,12 +156,12 @@
195
156
 
196
157
  this._setResizeEvent();
197
158
 
198
- $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
159
+ $__default["default"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
199
160
  return _this.hide(event);
200
161
  });
201
- $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
202
- $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
203
- if ($(event.target).is(_this._element)) {
162
+ $__default["default"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
163
+ $__default["default"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
164
+ if ($__default["default"](event.target).is(_this._element)) {
204
165
  _this._ignoreBackdropClick = true;
205
166
  }
206
167
  });
@@ -222,15 +183,15 @@
222
183
  return;
223
184
  }
224
185
 
225
- var hideEvent = $.Event(Event.HIDE);
226
- $(this._element).trigger(hideEvent);
186
+ var hideEvent = $__default["default"].Event(EVENT_HIDE);
187
+ $__default["default"](this._element).trigger(hideEvent);
227
188
 
228
189
  if (!this._isShown || hideEvent.isDefaultPrevented()) {
229
190
  return;
230
191
  }
231
192
 
232
193
  this._isShown = false;
233
- var transition = $(this._element).hasClass(ClassName.FADE);
194
+ var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE);
234
195
 
235
196
  if (transition) {
236
197
  this._isTransitioning = true;
@@ -240,14 +201,14 @@
240
201
 
241
202
  this._setResizeEvent();
242
203
 
243
- $(document).off(Event.FOCUSIN);
244
- $(this._element).removeClass(ClassName.SHOW);
245
- $(this._element).off(Event.CLICK_DISMISS);
246
- $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
204
+ $__default["default"](document).off(EVENT_FOCUSIN);
205
+ $__default["default"](this._element).removeClass(CLASS_NAME_SHOW);
206
+ $__default["default"](this._element).off(EVENT_CLICK_DISMISS);
207
+ $__default["default"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
247
208
 
248
209
  if (transition) {
249
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
250
- $(this._element).one(Util.TRANSITION_END, function (event) {
210
+ var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._element);
211
+ $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, function (event) {
251
212
  return _this2._hideModal(event);
252
213
  }).emulateTransitionEnd(transitionDuration);
253
214
  } else {
@@ -257,16 +218,16 @@
257
218
 
258
219
  _proto.dispose = function dispose() {
259
220
  [window, this._element, this._dialog].forEach(function (htmlElement) {
260
- return $(htmlElement).off(EVENT_KEY);
221
+ return $__default["default"](htmlElement).off(EVENT_KEY);
261
222
  });
262
223
  /**
263
- * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
224
+ * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
264
225
  * Do not move `document` in `htmlElements` array
265
- * It will remove `Event.CLICK_DATA_API` event that should remain
226
+ * It will remove `EVENT_CLICK_DATA_API` event that should remain
266
227
  */
267
228
 
268
- $(document).off(Event.FOCUSIN);
269
- $.removeData(this._element, DATA_KEY);
229
+ $__default["default"](document).off(EVENT_FOCUSIN);
230
+ $__default["default"].removeData(this._element, DATA_KEY);
270
231
  this._config = null;
271
232
  this._element = null;
272
233
  this._dialog = null;
@@ -284,40 +245,49 @@
284
245
  ;
285
246
 
286
247
  _proto._getConfig = function _getConfig(config) {
287
- config = _objectSpread2({}, Default, {}, config);
288
- Util.typeCheckConfig(NAME, config, DefaultType);
248
+ config = _extends({}, Default, config);
249
+ Util__default["default"].typeCheckConfig(NAME, config, DefaultType);
289
250
  return config;
290
251
  };
291
252
 
292
253
  _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
293
254
  var _this3 = this;
294
255
 
295
- if (this._config.backdrop === 'static') {
296
- var hideEventPrevented = $.Event(Event.HIDE_PREVENTED);
297
- $(this._element).trigger(hideEventPrevented);
256
+ var hideEventPrevented = $__default["default"].Event(EVENT_HIDE_PREVENTED);
257
+ $__default["default"](this._element).trigger(hideEventPrevented);
298
258
 
299
- if (hideEventPrevented.defaultPrevented) {
300
- return;
301
- }
302
-
303
- this._element.classList.add(ClassName.STATIC);
259
+ if (hideEventPrevented.isDefaultPrevented()) {
260
+ return;
261
+ }
304
262
 
305
- var modalTransitionDuration = Util.getTransitionDurationFromElement(this._element);
306
- $(this._element).one(Util.TRANSITION_END, function () {
307
- _this3._element.classList.remove(ClassName.STATIC);
308
- }).emulateTransitionEnd(modalTransitionDuration);
263
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
309
264
 
310
- this._element.focus();
311
- } else {
312
- this.hide();
265
+ if (!isModalOverflowing) {
266
+ this._element.style.overflowY = 'hidden';
313
267
  }
268
+
269
+ this._element.classList.add(CLASS_NAME_STATIC);
270
+
271
+ var modalTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._dialog);
272
+ $__default["default"](this._element).off(Util__default["default"].TRANSITION_END);
273
+ $__default["default"](this._element).one(Util__default["default"].TRANSITION_END, function () {
274
+ _this3._element.classList.remove(CLASS_NAME_STATIC);
275
+
276
+ if (!isModalOverflowing) {
277
+ $__default["default"](_this3._element).one(Util__default["default"].TRANSITION_END, function () {
278
+ _this3._element.style.overflowY = '';
279
+ }).emulateTransitionEnd(_this3._element, modalTransitionDuration);
280
+ }
281
+ }).emulateTransitionEnd(modalTransitionDuration);
282
+
283
+ this._element.focus();
314
284
  };
315
285
 
316
286
  _proto._showElement = function _showElement(relatedTarget) {
317
287
  var _this4 = this;
318
288
 
319
- var transition = $(this._element).hasClass(ClassName.FADE);
320
- var modalBody = this._dialog ? this._dialog.querySelector(Selector.MODAL_BODY) : null;
289
+ var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE);
290
+ var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
321
291
 
322
292
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
323
293
  // Don't move modal's DOM position
@@ -330,23 +300,25 @@
330
300
 
331
301
  this._element.setAttribute('aria-modal', true);
332
302
 
333
- if ($(this._dialog).hasClass(ClassName.SCROLLABLE) && modalBody) {
303
+ this._element.setAttribute('role', 'dialog');
304
+
305
+ if ($__default["default"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
334
306
  modalBody.scrollTop = 0;
335
307
  } else {
336
308
  this._element.scrollTop = 0;
337
309
  }
338
310
 
339
311
  if (transition) {
340
- Util.reflow(this._element);
312
+ Util__default["default"].reflow(this._element);
341
313
  }
342
314
 
343
- $(this._element).addClass(ClassName.SHOW);
315
+ $__default["default"](this._element).addClass(CLASS_NAME_SHOW);
344
316
 
345
317
  if (this._config.focus) {
346
318
  this._enforceFocus();
347
319
  }
348
320
 
349
- var shownEvent = $.Event(Event.SHOWN, {
321
+ var shownEvent = $__default["default"].Event(EVENT_SHOWN, {
350
322
  relatedTarget: relatedTarget
351
323
  });
352
324
 
@@ -356,12 +328,12 @@
356
328
  }
357
329
 
358
330
  _this4._isTransitioning = false;
359
- $(_this4._element).trigger(shownEvent);
331
+ $__default["default"](_this4._element).trigger(shownEvent);
360
332
  };
361
333
 
362
334
  if (transition) {
363
- var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
364
- $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
335
+ var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this._dialog);
336
+ $__default["default"](this._dialog).one(Util__default["default"].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
365
337
  } else {
366
338
  transitionComplete();
367
339
  }
@@ -370,9 +342,9 @@
370
342
  _proto._enforceFocus = function _enforceFocus() {
371
343
  var _this5 = this;
372
344
 
373
- $(document).off(Event.FOCUSIN) // Guard against infinite focus loop
374
- .on(Event.FOCUSIN, function (event) {
375
- if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) {
345
+ $__default["default"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
346
+ .on(EVENT_FOCUSIN, function (event) {
347
+ if (document !== event.target && _this5._element !== event.target && $__default["default"](_this5._element).has(event.target).length === 0) {
376
348
  _this5._element.focus();
377
349
  }
378
350
  });
@@ -381,14 +353,18 @@
381
353
  _proto._setEscapeEvent = function _setEscapeEvent() {
382
354
  var _this6 = this;
383
355
 
384
- if (this._isShown && this._config.keyboard) {
385
- $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
386
- if (event.which === ESCAPE_KEYCODE) {
356
+ if (this._isShown) {
357
+ $__default["default"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
358
+ if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
359
+ event.preventDefault();
360
+
361
+ _this6.hide();
362
+ } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
387
363
  _this6._triggerBackdropTransition();
388
364
  }
389
365
  });
390
366
  } else if (!this._isShown) {
391
- $(this._element).off(Event.KEYDOWN_DISMISS);
367
+ $__default["default"](this._element).off(EVENT_KEYDOWN_DISMISS);
392
368
  }
393
369
  };
394
370
 
@@ -396,11 +372,11 @@
396
372
  var _this7 = this;
397
373
 
398
374
  if (this._isShown) {
399
- $(window).on(Event.RESIZE, function (event) {
375
+ $__default["default"](window).on(EVENT_RESIZE, function (event) {
400
376
  return _this7.handleUpdate(event);
401
377
  });
402
378
  } else {
403
- $(window).off(Event.RESIZE);
379
+ $__default["default"](window).off(EVENT_RESIZE);
404
380
  }
405
381
  };
406
382
 
@@ -413,22 +389,24 @@
413
389
 
414
390
  this._element.removeAttribute('aria-modal');
415
391
 
392
+ this._element.removeAttribute('role');
393
+
416
394
  this._isTransitioning = false;
417
395
 
418
396
  this._showBackdrop(function () {
419
- $(document.body).removeClass(ClassName.OPEN);
397
+ $__default["default"](document.body).removeClass(CLASS_NAME_OPEN);
420
398
 
421
399
  _this8._resetAdjustments();
422
400
 
423
401
  _this8._resetScrollbar();
424
402
 
425
- $(_this8._element).trigger(Event.HIDDEN);
403
+ $__default["default"](_this8._element).trigger(EVENT_HIDDEN);
426
404
  });
427
405
  };
428
406
 
429
407
  _proto._removeBackdrop = function _removeBackdrop() {
430
408
  if (this._backdrop) {
431
- $(this._backdrop).remove();
409
+ $__default["default"](this._backdrop).remove();
432
410
  this._backdrop = null;
433
411
  }
434
412
  };
@@ -436,18 +414,18 @@
436
414
  _proto._showBackdrop = function _showBackdrop(callback) {
437
415
  var _this9 = this;
438
416
 
439
- var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
417
+ var animate = $__default["default"](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
440
418
 
441
419
  if (this._isShown && this._config.backdrop) {
442
420
  this._backdrop = document.createElement('div');
443
- this._backdrop.className = ClassName.BACKDROP;
421
+ this._backdrop.className = CLASS_NAME_BACKDROP;
444
422
 
445
423
  if (animate) {
446
424
  this._backdrop.classList.add(animate);
447
425
  }
448
426
 
449
- $(this._backdrop).appendTo(document.body);
450
- $(this._element).on(Event.CLICK_DISMISS, function (event) {
427
+ $__default["default"](this._backdrop).appendTo(document.body);
428
+ $__default["default"](this._element).on(EVENT_CLICK_DISMISS, function (event) {
451
429
  if (_this9._ignoreBackdropClick) {
452
430
  _this9._ignoreBackdropClick = false;
453
431
  return;
@@ -457,14 +435,18 @@
457
435
  return;
458
436
  }
459
437
 
460
- _this9._triggerBackdropTransition();
438
+ if (_this9._config.backdrop === 'static') {
439
+ _this9._triggerBackdropTransition();
440
+ } else {
441
+ _this9.hide();
442
+ }
461
443
  });
462
444
 
463
445
  if (animate) {
464
- Util.reflow(this._backdrop);
446
+ Util__default["default"].reflow(this._backdrop);
465
447
  }
466
448
 
467
- $(this._backdrop).addClass(ClassName.SHOW);
449
+ $__default["default"](this._backdrop).addClass(CLASS_NAME_SHOW);
468
450
 
469
451
  if (!callback) {
470
452
  return;
@@ -475,10 +457,10 @@
475
457
  return;
476
458
  }
477
459
 
478
- var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
479
- $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
460
+ var backdropTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._backdrop);
461
+ $__default["default"](this._backdrop).one(Util__default["default"].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
480
462
  } else if (!this._isShown && this._backdrop) {
481
- $(this._backdrop).removeClass(ClassName.SHOW);
463
+ $__default["default"](this._backdrop).removeClass(CLASS_NAME_SHOW);
482
464
 
483
465
  var callbackRemove = function callbackRemove() {
484
466
  _this9._removeBackdrop();
@@ -488,10 +470,10 @@
488
470
  }
489
471
  };
490
472
 
491
- if ($(this._element).hasClass(ClassName.FADE)) {
492
- var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
473
+ if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE)) {
474
+ var _backdropTransitionDuration = Util__default["default"].getTransitionDurationFromElement(this._backdrop);
493
475
 
494
- $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
476
+ $__default["default"](this._backdrop).one(Util__default["default"].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
495
477
  } else {
496
478
  callbackRemove();
497
479
  }
@@ -523,7 +505,7 @@
523
505
 
524
506
  _proto._checkScrollbar = function _checkScrollbar() {
525
507
  var rect = document.body.getBoundingClientRect();
526
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
508
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
527
509
  this._scrollbarWidth = this._getScrollbarWidth();
528
510
  };
529
511
 
@@ -533,56 +515,56 @@
533
515
  if (this._isBodyOverflowing) {
534
516
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
535
517
  // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
536
- var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
537
- var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding
518
+ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
519
+ var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding
538
520
 
539
- $(fixedContent).each(function (index, element) {
521
+ $__default["default"](fixedContent).each(function (index, element) {
540
522
  var actualPadding = element.style.paddingRight;
541
- var calculatedPadding = $(element).css('padding-right');
542
- $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
523
+ var calculatedPadding = $__default["default"](element).css('padding-right');
524
+ $__default["default"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
543
525
  }); // Adjust sticky content margin
544
526
 
545
- $(stickyContent).each(function (index, element) {
527
+ $__default["default"](stickyContent).each(function (index, element) {
546
528
  var actualMargin = element.style.marginRight;
547
- var calculatedMargin = $(element).css('margin-right');
548
- $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
529
+ var calculatedMargin = $__default["default"](element).css('margin-right');
530
+ $__default["default"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
549
531
  }); // Adjust body padding
550
532
 
551
533
  var actualPadding = document.body.style.paddingRight;
552
- var calculatedPadding = $(document.body).css('padding-right');
553
- $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
534
+ var calculatedPadding = $__default["default"](document.body).css('padding-right');
535
+ $__default["default"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
554
536
  }
555
537
 
556
- $(document.body).addClass(ClassName.OPEN);
538
+ $__default["default"](document.body).addClass(CLASS_NAME_OPEN);
557
539
  };
558
540
 
559
541
  _proto._resetScrollbar = function _resetScrollbar() {
560
542
  // Restore fixed content padding
561
- var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
562
- $(fixedContent).each(function (index, element) {
563
- var padding = $(element).data('padding-right');
564
- $(element).removeData('padding-right');
543
+ var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
544
+ $__default["default"](fixedContent).each(function (index, element) {
545
+ var padding = $__default["default"](element).data('padding-right');
546
+ $__default["default"](element).removeData('padding-right');
565
547
  element.style.paddingRight = padding ? padding : '';
566
548
  }); // Restore sticky content
567
549
 
568
- var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
569
- $(elements).each(function (index, element) {
570
- var margin = $(element).data('margin-right');
550
+ var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
551
+ $__default["default"](elements).each(function (index, element) {
552
+ var margin = $__default["default"](element).data('margin-right');
571
553
 
572
554
  if (typeof margin !== 'undefined') {
573
- $(element).css('margin-right', margin).removeData('margin-right');
555
+ $__default["default"](element).css('margin-right', margin).removeData('margin-right');
574
556
  }
575
557
  }); // Restore body padding
576
558
 
577
- var padding = $(document.body).data('padding-right');
578
- $(document.body).removeData('padding-right');
559
+ var padding = $__default["default"](document.body).data('padding-right');
560
+ $__default["default"](document.body).removeData('padding-right');
579
561
  document.body.style.paddingRight = padding ? padding : '';
580
562
  };
581
563
 
582
564
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
583
565
  // thx d.walsh
584
566
  var scrollDiv = document.createElement('div');
585
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
567
+ scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
586
568
  document.body.appendChild(scrollDiv);
587
569
  var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
588
570
  document.body.removeChild(scrollDiv);
@@ -592,13 +574,13 @@
592
574
 
593
575
  Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
594
576
  return this.each(function () {
595
- var data = $(this).data(DATA_KEY);
577
+ var data = $__default["default"](this).data(DATA_KEY);
596
578
 
597
- var _config = _objectSpread2({}, Default, {}, $(this).data(), {}, typeof config === 'object' && config ? config : {});
579
+ var _config = _extends({}, Default, $__default["default"](this).data(), typeof config === 'object' && config ? config : {});
598
580
 
599
581
  if (!data) {
600
582
  data = new Modal(this, _config);
601
- $(this).data(DATA_KEY, data);
583
+ $__default["default"](this).data(DATA_KEY, data);
602
584
  }
603
585
 
604
586
  if (typeof config === 'string') {
@@ -628,57 +610,53 @@
628
610
  return Modal;
629
611
  }();
630
612
  /**
631
- * ------------------------------------------------------------------------
632
- * Data Api implementation
633
- * ------------------------------------------------------------------------
613
+ * Data API implementation
634
614
  */
635
615
 
636
616
 
637
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
617
+ $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
638
618
  var _this11 = this;
639
619
 
640
620
  var target;
641
- var selector = Util.getSelectorFromElement(this);
621
+ var selector = Util__default["default"].getSelectorFromElement(this);
642
622
 
643
623
  if (selector) {
644
624
  target = document.querySelector(selector);
645
625
  }
646
626
 
647
- var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread2({}, $(target).data(), {}, $(this).data());
627
+ var config = $__default["default"](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__default["default"](target).data(), $__default["default"](this).data());
648
628
 
649
629
  if (this.tagName === 'A' || this.tagName === 'AREA') {
650
630
  event.preventDefault();
651
631
  }
652
632
 
653
- var $target = $(target).one(Event.SHOW, function (showEvent) {
633
+ var $target = $__default["default"](target).one(EVENT_SHOW, function (showEvent) {
654
634
  if (showEvent.isDefaultPrevented()) {
655
635
  // Only register focus restorer if modal will actually get shown
656
636
  return;
657
637
  }
658
638
 
659
- $target.one(Event.HIDDEN, function () {
660
- if ($(_this11).is(':visible')) {
639
+ $target.one(EVENT_HIDDEN, function () {
640
+ if ($__default["default"](_this11).is(':visible')) {
661
641
  _this11.focus();
662
642
  }
663
643
  });
664
644
  });
665
645
 
666
- Modal._jQueryInterface.call($(target), config, this);
646
+ Modal._jQueryInterface.call($__default["default"](target), config, this);
667
647
  });
668
648
  /**
669
- * ------------------------------------------------------------------------
670
649
  * jQuery
671
- * ------------------------------------------------------------------------
672
650
  */
673
651
 
674
- $.fn[NAME] = Modal._jQueryInterface;
675
- $.fn[NAME].Constructor = Modal;
652
+ $__default["default"].fn[NAME] = Modal._jQueryInterface;
653
+ $__default["default"].fn[NAME].Constructor = Modal;
676
654
 
677
- $.fn[NAME].noConflict = function () {
678
- $.fn[NAME] = JQUERY_NO_CONFLICT;
655
+ $__default["default"].fn[NAME].noConflict = function () {
656
+ $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
679
657
  return Modal._jQueryInterface;
680
658
  };
681
659
 
682
660
  return Modal;
683
661
 
684
- })));
662
+ }));