bootstrap 4.3.1 → 4.4.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.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -0
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +1 -1
  5. data/assets/javascripts/bootstrap-sprockets.js +7 -7
  6. data/assets/javascripts/bootstrap.js +376 -290
  7. data/assets/javascripts/bootstrap.min.js +2 -2
  8. data/assets/javascripts/bootstrap/alert.js +9 -10
  9. data/assets/javascripts/bootstrap/button.js +72 -25
  10. data/assets/javascripts/bootstrap/carousel.js +40 -27
  11. data/assets/javascripts/bootstrap/collapse.js +36 -22
  12. data/assets/javascripts/bootstrap/dropdown.js +75 -54
  13. data/assets/javascripts/bootstrap/modal.js +94 -59
  14. data/assets/javascripts/bootstrap/popover.js +36 -22
  15. data/assets/javascripts/bootstrap/scrollspy.js +35 -21
  16. data/assets/javascripts/bootstrap/tab.js +9 -10
  17. data/assets/javascripts/bootstrap/toast.js +58 -38
  18. data/assets/javascripts/bootstrap/tooltip.js +98 -76
  19. data/assets/javascripts/bootstrap/util.js +21 -4
  20. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  21. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  22. data/assets/stylesheets/_bootstrap.scss +1 -1
  23. data/assets/stylesheets/bootstrap/_badge.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_breadcrumb.scss +2 -1
  25. data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
  26. data/assets/stylesheets/bootstrap/_buttons.scss +4 -2
  27. data/assets/stylesheets/bootstrap/_card.scss +17 -28
  28. data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
  29. data/assets/stylesheets/bootstrap/_close.scss +2 -2
  30. data/assets/stylesheets/bootstrap/_code.scss +1 -1
  31. data/assets/stylesheets/bootstrap/_custom-forms.scss +22 -8
  32. data/assets/stylesheets/bootstrap/_dropdown.scss +3 -3
  33. data/assets/stylesheets/bootstrap/_forms.scss +17 -9
  34. data/assets/stylesheets/bootstrap/_functions.scss +49 -1
  35. data/assets/stylesheets/bootstrap/_grid.scss +25 -8
  36. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_input-group.scss +2 -4
  38. data/assets/stylesheets/bootstrap/_list-group.scss +31 -22
  39. data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
  40. data/assets/stylesheets/bootstrap/_modal.scss +26 -16
  41. data/assets/stylesheets/bootstrap/_nav.scss +3 -3
  42. data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
  43. data/assets/stylesheets/bootstrap/_pagination.scss +2 -2
  44. data/assets/stylesheets/bootstrap/_popover.scss +8 -9
  45. data/assets/stylesheets/bootstrap/_print.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_progress.scss +5 -2
  47. data/assets/stylesheets/bootstrap/_reboot.scss +14 -15
  48. data/assets/stylesheets/bootstrap/_root.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_tables.scss +3 -3
  50. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  51. data/assets/stylesheets/bootstrap/_variables.scss +42 -22
  52. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +3 -2
  53. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
  54. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +5 -2
  55. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  56. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
  57. data/assets/stylesheets/bootstrap/mixins/_forms.scss +32 -47
  58. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +8 -3
  59. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
  60. data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
  61. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  62. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  63. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  64. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
  65. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  66. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
  67. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
  68. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
  69. data/assets/stylesheets/bootstrap/utilities/_background.scss +1 -1
  70. data/assets/stylesheets/bootstrap/utilities/_text.scss +2 -2
  71. data/bootstrap.gemspec +1 -1
  72. data/lib/bootstrap/version.rb +2 -2
  73. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  74. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  75. data/test/support/dummy_rails_integration.rb +3 -1
  76. data/test/test_helper.rb +18 -13
  77. metadata +8 -5
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap dropdown.js v4.3.1 (https://getbootstrap.com/)
2
+ * Bootstrap dropdown.js v4.4.1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
@@ -7,7 +7,7 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
9
9
  (global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
10
- }(this, function ($, Popper, Util) { 'use strict';
10
+ }(this, (function ($, Popper, Util) { 'use strict';
11
11
 
12
12
  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
13
  Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
@@ -44,20 +44,35 @@
44
44
  return obj;
45
45
  }
46
46
 
47
- function _objectSpread(target) {
47
+ function ownKeys(object, enumerableOnly) {
48
+ var keys = Object.keys(object);
49
+
50
+ if (Object.getOwnPropertySymbols) {
51
+ var symbols = Object.getOwnPropertySymbols(object);
52
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
53
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
54
+ });
55
+ keys.push.apply(keys, symbols);
56
+ }
57
+
58
+ return keys;
59
+ }
60
+
61
+ function _objectSpread2(target) {
48
62
  for (var i = 1; i < arguments.length; i++) {
49
63
  var source = arguments[i] != null ? arguments[i] : {};
50
- var ownKeys = Object.keys(source);
51
64
 
52
- if (typeof Object.getOwnPropertySymbols === 'function') {
53
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
54
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
55
- }));
65
+ if (i % 2) {
66
+ ownKeys(Object(source), true).forEach(function (key) {
67
+ _defineProperty(target, key, source[key]);
68
+ });
69
+ } else if (Object.getOwnPropertyDescriptors) {
70
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
71
+ } else {
72
+ ownKeys(Object(source)).forEach(function (key) {
73
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
74
+ });
56
75
  }
57
-
58
- ownKeys.forEach(function (key) {
59
- _defineProperty(target, key, source[key]);
60
- });
61
76
  }
62
77
 
63
78
  return target;
@@ -70,7 +85,7 @@
70
85
  */
71
86
 
72
87
  var NAME = 'dropdown';
73
- var VERSION = '4.3.1';
88
+ var VERSION = '4.4.1';
74
89
  var DATA_KEY = 'bs.dropdown';
75
90
  var EVENT_KEY = "." + DATA_KEY;
76
91
  var DATA_API_KEY = '.data-api';
@@ -130,21 +145,22 @@
130
145
  flip: true,
131
146
  boundary: 'scrollParent',
132
147
  reference: 'toggle',
133
- display: 'dynamic'
148
+ display: 'dynamic',
149
+ popperConfig: null
134
150
  };
135
151
  var DefaultType = {
136
152
  offset: '(number|string|function)',
137
153
  flip: 'boolean',
138
154
  boundary: '(string|element)',
139
155
  reference: '(string|element)',
140
- display: 'string'
141
- /**
142
- * ------------------------------------------------------------------------
143
- * Class Definition
144
- * ------------------------------------------------------------------------
145
- */
146
-
156
+ display: 'string',
157
+ popperConfig: '(null|object)'
147
158
  };
159
+ /**
160
+ * ------------------------------------------------------------------------
161
+ * Class Definition
162
+ * ------------------------------------------------------------------------
163
+ */
148
164
 
149
165
  var Dropdown =
150
166
  /*#__PURE__*/
@@ -168,8 +184,6 @@
168
184
  return;
169
185
  }
170
186
 
171
- var parent = Dropdown._getParentFromElement(this._element);
172
-
173
187
  var isActive = $(this._menu).hasClass(ClassName.SHOW);
174
188
 
175
189
  Dropdown._clearMenus();
@@ -178,10 +192,25 @@
178
192
  return;
179
193
  }
180
194
 
195
+ this.show(true);
196
+ };
197
+
198
+ _proto.show = function show(usePopper) {
199
+ if (usePopper === void 0) {
200
+ usePopper = false;
201
+ }
202
+
203
+ if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
204
+ return;
205
+ }
206
+
181
207
  var relatedTarget = {
182
208
  relatedTarget: this._element
183
209
  };
184
210
  var showEvent = $.Event(Event.SHOW, relatedTarget);
211
+
212
+ var parent = Dropdown._getParentFromElement(this._element);
213
+
185
214
  $(parent).trigger(showEvent);
186
215
 
187
216
  if (showEvent.isDefaultPrevented()) {
@@ -189,7 +218,7 @@
189
218
  } // Disable totally Popper.js for Dropdown in Navbar
190
219
 
191
220
 
192
- if (!this._inNavbar) {
221
+ if (!this._inNavbar && usePopper) {
193
222
  /**
194
223
  * Check for Popper dependency
195
224
  * Popper - https://popper.js.org
@@ -236,28 +265,6 @@
236
265
  $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
237
266
  };
238
267
 
239
- _proto.show = function show() {
240
- if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
241
- return;
242
- }
243
-
244
- var relatedTarget = {
245
- relatedTarget: this._element
246
- };
247
- var showEvent = $.Event(Event.SHOW, relatedTarget);
248
-
249
- var parent = Dropdown._getParentFromElement(this._element);
250
-
251
- $(parent).trigger(showEvent);
252
-
253
- if (showEvent.isDefaultPrevented()) {
254
- return;
255
- }
256
-
257
- $(this._menu).toggleClass(ClassName.SHOW);
258
- $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
259
- };
260
-
261
268
  _proto.hide = function hide() {
262
269
  if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {
263
270
  return;
@@ -276,6 +283,10 @@
276
283
  return;
277
284
  }
278
285
 
286
+ if (this._popper) {
287
+ this._popper.destroy();
288
+ }
289
+
279
290
  $(this._menu).toggleClass(ClassName.SHOW);
280
291
  $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
281
292
  };
@@ -314,7 +325,7 @@
314
325
  };
315
326
 
316
327
  _proto._getConfig = function _getConfig(config) {
317
- config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
328
+ config = _objectSpread2({}, this.constructor.Default, {}, $(this._element).data(), {}, config);
318
329
  Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
319
330
  return config;
320
331
  };
@@ -363,7 +374,7 @@
363
374
 
364
375
  if (typeof this._config.offset === 'function') {
365
376
  offset.fn = function (data) {
366
- data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
377
+ data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {});
367
378
  return data;
368
379
  };
369
380
  } else {
@@ -384,9 +395,8 @@
384
395
  preventOverflow: {
385
396
  boundariesElement: this._config.boundary
386
397
  }
387
- } // Disable Popper.js if we have a static display
388
-
389
- };
398
+ }
399
+ }; // Disable Popper.js if we have a static display
390
400
 
391
401
  if (this._config.display === 'static') {
392
402
  popperConfig.modifiers.applyStyle = {
@@ -394,7 +404,7 @@
394
404
  };
395
405
  }
396
406
 
397
- return popperConfig;
407
+ return _objectSpread2({}, popperConfig, {}, this._config.popperConfig);
398
408
  } // Static
399
409
  ;
400
410
 
@@ -466,6 +476,11 @@
466
476
  }
467
477
 
468
478
  toggles[i].setAttribute('aria-expanded', 'false');
479
+
480
+ if (context._popper) {
481
+ context._popper.destroy();
482
+ }
483
+
469
484
  $(dropdownMenu).removeClass(ClassName.SHOW);
470
485
  $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
471
486
  }
@@ -506,6 +521,10 @@
506
521
 
507
522
  var isActive = $(parent).hasClass(ClassName.SHOW);
508
523
 
524
+ if (!isActive && event.which === ESCAPE_KEYCODE) {
525
+ return;
526
+ }
527
+
509
528
  if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
510
529
  if (event.which === ESCAPE_KEYCODE) {
511
530
  var toggle = parent.querySelector(Selector.DATA_TOGGLE);
@@ -516,7 +535,9 @@
516
535
  return;
517
536
  }
518
537
 
519
- var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
538
+ var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS)).filter(function (item) {
539
+ return $(item).is(':visible');
540
+ });
520
541
 
521
542
  if (items.length === 0) {
522
543
  return;
@@ -591,4 +612,4 @@
591
612
 
592
613
  return Dropdown;
593
614
 
594
- }));
615
+ })));
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap modal.js v4.3.1 (https://getbootstrap.com/)
2
+ * Bootstrap modal.js v4.4.1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
@@ -7,7 +7,7 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
9
9
  (global = global || self, global.Modal = factory(global.jQuery, global.Util));
10
- }(this, function ($, Util) { 'use strict';
10
+ }(this, (function ($, Util) { 'use strict';
11
11
 
12
12
  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
13
  Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
@@ -43,20 +43,35 @@
43
43
  return obj;
44
44
  }
45
45
 
46
- function _objectSpread(target) {
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) {
47
61
  for (var i = 1; i < arguments.length; i++) {
48
62
  var source = arguments[i] != null ? arguments[i] : {};
49
- var ownKeys = Object.keys(source);
50
63
 
51
- if (typeof Object.getOwnPropertySymbols === 'function') {
52
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54
- }));
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
+ });
55
74
  }
56
-
57
- ownKeys.forEach(function (key) {
58
- _defineProperty(target, key, source[key]);
59
- });
60
75
  }
61
76
 
62
77
  return target;
@@ -69,7 +84,7 @@
69
84
  */
70
85
 
71
86
  var NAME = 'modal';
72
- var VERSION = '4.3.1';
87
+ var VERSION = '4.4.1';
73
88
  var DATA_KEY = 'bs.modal';
74
89
  var EVENT_KEY = "." + DATA_KEY;
75
90
  var DATA_API_KEY = '.data-api';
@@ -90,6 +105,7 @@
90
105
  };
91
106
  var Event = {
92
107
  HIDE: "hide" + EVENT_KEY,
108
+ HIDE_PREVENTED: "hidePrevented" + EVENT_KEY,
93
109
  HIDDEN: "hidden" + EVENT_KEY,
94
110
  SHOW: "show" + EVENT_KEY,
95
111
  SHOWN: "shown" + EVENT_KEY,
@@ -107,7 +123,8 @@
107
123
  BACKDROP: 'modal-backdrop',
108
124
  OPEN: 'modal-open',
109
125
  FADE: 'fade',
110
- SHOW: 'show'
126
+ SHOW: 'show',
127
+ STATIC: 'modal-static'
111
128
  };
112
129
  var Selector = {
113
130
  DIALOG: '.modal-dialog',
@@ -116,13 +133,12 @@
116
133
  DATA_DISMISS: '[data-dismiss="modal"]',
117
134
  FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
118
135
  STICKY_CONTENT: '.sticky-top'
119
- /**
120
- * ------------------------------------------------------------------------
121
- * Class Definition
122
- * ------------------------------------------------------------------------
123
- */
124
-
125
136
  };
137
+ /**
138
+ * ------------------------------------------------------------------------
139
+ * Class Definition
140
+ * ------------------------------------------------------------------------
141
+ */
126
142
 
127
143
  var Modal =
128
144
  /*#__PURE__*/
@@ -268,15 +284,40 @@
268
284
  ;
269
285
 
270
286
  _proto._getConfig = function _getConfig(config) {
271
- config = _objectSpread({}, Default, config);
287
+ config = _objectSpread2({}, Default, {}, config);
272
288
  Util.typeCheckConfig(NAME, config, DefaultType);
273
289
  return config;
274
290
  };
275
291
 
276
- _proto._showElement = function _showElement(relatedTarget) {
292
+ _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
277
293
  var _this3 = this;
278
294
 
295
+ if (this._config.backdrop === 'static') {
296
+ var hideEventPrevented = $.Event(Event.HIDE_PREVENTED);
297
+ $(this._element).trigger(hideEventPrevented);
298
+
299
+ if (hideEventPrevented.defaultPrevented) {
300
+ return;
301
+ }
302
+
303
+ this._element.classList.add(ClassName.STATIC);
304
+
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);
309
+
310
+ this._element.focus();
311
+ } else {
312
+ this.hide();
313
+ }
314
+ };
315
+
316
+ _proto._showElement = function _showElement(relatedTarget) {
317
+ var _this4 = this;
318
+
279
319
  var transition = $(this._element).hasClass(ClassName.FADE);
320
+ var modalBody = this._dialog ? this._dialog.querySelector(Selector.MODAL_BODY) : null;
280
321
 
281
322
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
282
323
  // Don't move modal's DOM position
@@ -289,8 +330,8 @@
289
330
 
290
331
  this._element.setAttribute('aria-modal', true);
291
332
 
292
- if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) {
293
- this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0;
333
+ if ($(this._dialog).hasClass(ClassName.SCROLLABLE) && modalBody) {
334
+ modalBody.scrollTop = 0;
294
335
  } else {
295
336
  this._element.scrollTop = 0;
296
337
  }
@@ -310,12 +351,12 @@
310
351
  });
311
352
 
312
353
  var transitionComplete = function transitionComplete() {
313
- if (_this3._config.focus) {
314
- _this3._element.focus();
354
+ if (_this4._config.focus) {
355
+ _this4._element.focus();
315
356
  }
316
357
 
317
- _this3._isTransitioning = false;
318
- $(_this3._element).trigger(shownEvent);
358
+ _this4._isTransitioning = false;
359
+ $(_this4._element).trigger(shownEvent);
319
360
  };
320
361
 
321
362
  if (transition) {
@@ -327,25 +368,23 @@
327
368
  };
328
369
 
329
370
  _proto._enforceFocus = function _enforceFocus() {
330
- var _this4 = this;
371
+ var _this5 = this;
331
372
 
332
373
  $(document).off(Event.FOCUSIN) // Guard against infinite focus loop
333
374
  .on(Event.FOCUSIN, function (event) {
334
- if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
335
- _this4._element.focus();
375
+ if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) {
376
+ _this5._element.focus();
336
377
  }
337
378
  });
338
379
  };
339
380
 
340
381
  _proto._setEscapeEvent = function _setEscapeEvent() {
341
- var _this5 = this;
382
+ var _this6 = this;
342
383
 
343
384
  if (this._isShown && this._config.keyboard) {
344
385
  $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
345
386
  if (event.which === ESCAPE_KEYCODE) {
346
- event.preventDefault();
347
-
348
- _this5.hide();
387
+ _this6._triggerBackdropTransition();
349
388
  }
350
389
  });
351
390
  } else if (!this._isShown) {
@@ -354,11 +393,11 @@
354
393
  };
355
394
 
356
395
  _proto._setResizeEvent = function _setResizeEvent() {
357
- var _this6 = this;
396
+ var _this7 = this;
358
397
 
359
398
  if (this._isShown) {
360
399
  $(window).on(Event.RESIZE, function (event) {
361
- return _this6.handleUpdate(event);
400
+ return _this7.handleUpdate(event);
362
401
  });
363
402
  } else {
364
403
  $(window).off(Event.RESIZE);
@@ -366,7 +405,7 @@
366
405
  };
367
406
 
368
407
  _proto._hideModal = function _hideModal() {
369
- var _this7 = this;
408
+ var _this8 = this;
370
409
 
371
410
  this._element.style.display = 'none';
372
411
 
@@ -379,11 +418,11 @@
379
418
  this._showBackdrop(function () {
380
419
  $(document.body).removeClass(ClassName.OPEN);
381
420
 
382
- _this7._resetAdjustments();
421
+ _this8._resetAdjustments();
383
422
 
384
- _this7._resetScrollbar();
423
+ _this8._resetScrollbar();
385
424
 
386
- $(_this7._element).trigger(Event.HIDDEN);
425
+ $(_this8._element).trigger(Event.HIDDEN);
387
426
  });
388
427
  };
389
428
 
@@ -395,7 +434,7 @@
395
434
  };
396
435
 
397
436
  _proto._showBackdrop = function _showBackdrop(callback) {
398
- var _this8 = this;
437
+ var _this9 = this;
399
438
 
400
439
  var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
401
440
 
@@ -409,8 +448,8 @@
409
448
 
410
449
  $(this._backdrop).appendTo(document.body);
411
450
  $(this._element).on(Event.CLICK_DISMISS, function (event) {
412
- if (_this8._ignoreBackdropClick) {
413
- _this8._ignoreBackdropClick = false;
451
+ if (_this9._ignoreBackdropClick) {
452
+ _this9._ignoreBackdropClick = false;
414
453
  return;
415
454
  }
416
455
 
@@ -418,11 +457,7 @@
418
457
  return;
419
458
  }
420
459
 
421
- if (_this8._config.backdrop === 'static') {
422
- _this8._element.focus();
423
- } else {
424
- _this8.hide();
425
- }
460
+ _this9._triggerBackdropTransition();
426
461
  });
427
462
 
428
463
  if (animate) {
@@ -446,7 +481,7 @@
446
481
  $(this._backdrop).removeClass(ClassName.SHOW);
447
482
 
448
483
  var callbackRemove = function callbackRemove() {
449
- _this8._removeBackdrop();
484
+ _this9._removeBackdrop();
450
485
 
451
486
  if (callback) {
452
487
  callback();
@@ -493,7 +528,7 @@
493
528
  };
494
529
 
495
530
  _proto._setScrollbar = function _setScrollbar() {
496
- var _this9 = this;
531
+ var _this10 = this;
497
532
 
498
533
  if (this._isBodyOverflowing) {
499
534
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@@ -504,13 +539,13 @@
504
539
  $(fixedContent).each(function (index, element) {
505
540
  var actualPadding = element.style.paddingRight;
506
541
  var calculatedPadding = $(element).css('padding-right');
507
- $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
542
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
508
543
  }); // Adjust sticky content margin
509
544
 
510
545
  $(stickyContent).each(function (index, element) {
511
546
  var actualMargin = element.style.marginRight;
512
547
  var calculatedMargin = $(element).css('margin-right');
513
- $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
548
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
514
549
  }); // Adjust body padding
515
550
 
516
551
  var actualPadding = document.body.style.paddingRight;
@@ -559,7 +594,7 @@
559
594
  return this.each(function () {
560
595
  var data = $(this).data(DATA_KEY);
561
596
 
562
- var _config = _objectSpread({}, Default, $(this).data(), typeof config === 'object' && config ? config : {});
597
+ var _config = _objectSpread2({}, Default, {}, $(this).data(), {}, typeof config === 'object' && config ? config : {});
563
598
 
564
599
  if (!data) {
565
600
  data = new Modal(this, _config);
@@ -600,7 +635,7 @@
600
635
 
601
636
 
602
637
  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
603
- var _this10 = this;
638
+ var _this11 = this;
604
639
 
605
640
  var target;
606
641
  var selector = Util.getSelectorFromElement(this);
@@ -609,7 +644,7 @@
609
644
  target = document.querySelector(selector);
610
645
  }
611
646
 
612
- var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
647
+ var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread2({}, $(target).data(), {}, $(this).data());
613
648
 
614
649
  if (this.tagName === 'A' || this.tagName === 'AREA') {
615
650
  event.preventDefault();
@@ -622,8 +657,8 @@
622
657
  }
623
658
 
624
659
  $target.one(Event.HIDDEN, function () {
625
- if ($(_this10).is(':visible')) {
626
- _this10.focus();
660
+ if ($(_this11).is(':visible')) {
661
+ _this11.focus();
627
662
  }
628
663
  });
629
664
  });
@@ -646,4 +681,4 @@
646
681
 
647
682
  return Modal;
648
683
 
649
- }));
684
+ })));