bootstrap 4.3.1 → 4.4.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ })));