bootstrap 4.1.3 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/assets/javascripts/bootstrap-sprockets.js +6 -5
  6. data/assets/javascripts/bootstrap.js +3290 -2985
  7. data/assets/javascripts/bootstrap.min.js +2 -2
  8. data/assets/javascripts/bootstrap/alert.js +127 -132
  9. data/assets/javascripts/bootstrap/button.js +119 -124
  10. data/assets/javascripts/bootstrap/carousel.js +492 -393
  11. data/assets/javascripts/bootstrap/collapse.js +276 -279
  12. data/assets/javascripts/bootstrap/dropdown.js +413 -374
  13. data/assets/javascripts/bootstrap/modal.js +455 -445
  14. data/assets/javascripts/bootstrap/popover.js +155 -160
  15. data/assets/javascripts/bootstrap/scrollspy.js +246 -250
  16. data/assets/javascripts/bootstrap/tab.js +180 -192
  17. data/assets/javascripts/bootstrap/toast.js +277 -0
  18. data/assets/javascripts/bootstrap/tooltip.js +533 -522
  19. data/assets/javascripts/bootstrap/util.js +140 -116
  20. data/assets/stylesheets/_bootstrap-grid.scss +2 -5
  21. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  22. data/assets/stylesheets/_bootstrap.scss +3 -1
  23. data/assets/stylesheets/bootstrap/_alert.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_badge.scss +6 -0
  25. data/assets/stylesheets/bootstrap/_button-group.scss +9 -18
  26. data/assets/stylesheets/bootstrap/_buttons.scss +7 -10
  27. data/assets/stylesheets/bootstrap/_card.scss +30 -21
  28. data/assets/stylesheets/bootstrap/_carousel.scss +36 -74
  29. data/assets/stylesheets/bootstrap/_close.scss +15 -6
  30. data/assets/stylesheets/bootstrap/_custom-forms.scss +103 -29
  31. data/assets/stylesheets/bootstrap/_dropdown.scss +30 -5
  32. data/assets/stylesheets/bootstrap/_forms.scss +12 -11
  33. data/assets/stylesheets/bootstrap/_functions.scss +4 -4
  34. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  35. data/assets/stylesheets/bootstrap/_input-group.scss +24 -4
  36. data/assets/stylesheets/bootstrap/_list-group.scss +6 -0
  37. data/assets/stylesheets/bootstrap/_modal.scss +16 -10
  38. data/assets/stylesheets/bootstrap/_nav.scss +2 -0
  39. data/assets/stylesheets/bootstrap/_navbar.scss +4 -4
  40. data/assets/stylesheets/bootstrap/_popover.scss +1 -1
  41. data/assets/stylesheets/bootstrap/_reboot.scss +14 -35
  42. data/assets/stylesheets/bootstrap/_spinners.scss +53 -0
  43. data/assets/stylesheets/bootstrap/_tables.scss +2 -2
  44. data/assets/stylesheets/bootstrap/_toasts.scss +43 -0
  45. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_utilities.scss +1 -0
  47. data/assets/stylesheets/bootstrap/_variables.scss +220 -81
  48. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -2
  49. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +2 -2
  50. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +9 -7
  51. data/assets/stylesheets/bootstrap/mixins/_caret.scss +0 -4
  52. data/assets/stylesheets/bootstrap/mixins/_forms.scss +61 -10
  53. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +3 -4
  54. data/assets/stylesheets/bootstrap/mixins/_grid.scss +9 -10
  55. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +10 -1
  56. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +1 -1
  57. data/assets/stylesheets/bootstrap/mixins/_transition.scss +5 -2
  58. data/assets/stylesheets/bootstrap/utilities/_borders.scss +4 -0
  59. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  60. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  61. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -5
  62. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  63. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  64. data/assets/stylesheets/bootstrap/utilities/_text.scss +13 -4
  65. data/bootstrap.gemspec +6 -3
  66. data/lib/bootstrap.rb +10 -7
  67. data/lib/bootstrap/engine.rb +3 -0
  68. data/lib/bootstrap/version.rb +4 -2
  69. metadata +15 -11
@@ -1,3 +1,8 @@
1
+ /*!
2
+ * Bootstrap modal.js v4.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
1
6
  (function (global, factory) {
2
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
3
8
  typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
@@ -58,575 +63,580 @@
58
63
  }
59
64
 
60
65
  /**
61
- * --------------------------------------------------------------------------
62
- * Bootstrap (v4.1.3): modal.js
63
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
64
- * --------------------------------------------------------------------------
66
+ * ------------------------------------------------------------------------
67
+ * Constants
68
+ * ------------------------------------------------------------------------
65
69
  */
66
70
 
67
- var Modal = function ($$$1) {
71
+ var NAME = 'modal';
72
+ var VERSION = '4.2.1';
73
+ var DATA_KEY = 'bs.modal';
74
+ var EVENT_KEY = "." + DATA_KEY;
75
+ var DATA_API_KEY = '.data-api';
76
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
77
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
78
+
79
+ var Default = {
80
+ backdrop: true,
81
+ keyboard: true,
82
+ focus: true,
83
+ show: true
84
+ };
85
+ var DefaultType = {
86
+ backdrop: '(boolean|string)',
87
+ keyboard: 'boolean',
88
+ focus: 'boolean',
89
+ show: 'boolean'
90
+ };
91
+ var Event = {
92
+ HIDE: "hide" + EVENT_KEY,
93
+ HIDDEN: "hidden" + EVENT_KEY,
94
+ SHOW: "show" + EVENT_KEY,
95
+ SHOWN: "shown" + EVENT_KEY,
96
+ FOCUSIN: "focusin" + EVENT_KEY,
97
+ RESIZE: "resize" + EVENT_KEY,
98
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
99
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
100
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
101
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
102
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
103
+ };
104
+ var ClassName = {
105
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
106
+ BACKDROP: 'modal-backdrop',
107
+ OPEN: 'modal-open',
108
+ FADE: 'fade',
109
+ SHOW: 'show'
110
+ };
111
+ var Selector = {
112
+ DIALOG: '.modal-dialog',
113
+ DATA_TOGGLE: '[data-toggle="modal"]',
114
+ DATA_DISMISS: '[data-dismiss="modal"]',
115
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
116
+ STICKY_CONTENT: '.sticky-top'
68
117
  /**
69
118
  * ------------------------------------------------------------------------
70
- * Constants
119
+ * Class Definition
71
120
  * ------------------------------------------------------------------------
72
121
  */
73
- var NAME = 'modal';
74
- var VERSION = '4.1.3';
75
- var DATA_KEY = 'bs.modal';
76
- var EVENT_KEY = "." + DATA_KEY;
77
- var DATA_API_KEY = '.data-api';
78
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
79
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
80
-
81
- var Default = {
82
- backdrop: true,
83
- keyboard: true,
84
- focus: true,
85
- show: true
86
- };
87
- var DefaultType = {
88
- backdrop: '(boolean|string)',
89
- keyboard: 'boolean',
90
- focus: 'boolean',
91
- show: 'boolean'
92
- };
93
- var Event = {
94
- HIDE: "hide" + EVENT_KEY,
95
- HIDDEN: "hidden" + EVENT_KEY,
96
- SHOW: "show" + EVENT_KEY,
97
- SHOWN: "shown" + EVENT_KEY,
98
- FOCUSIN: "focusin" + EVENT_KEY,
99
- RESIZE: "resize" + EVENT_KEY,
100
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
101
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
102
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
103
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
104
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
105
- };
106
- var ClassName = {
107
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
108
- BACKDROP: 'modal-backdrop',
109
- OPEN: 'modal-open',
110
- FADE: 'fade',
111
- SHOW: 'show'
112
- };
113
- var Selector = {
114
- DIALOG: '.modal-dialog',
115
- DATA_TOGGLE: '[data-toggle="modal"]',
116
- DATA_DISMISS: '[data-dismiss="modal"]',
117
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
118
- STICKY_CONTENT: '.sticky-top'
119
- /**
120
- * ------------------------------------------------------------------------
121
- * Class Definition
122
- * ------------------------------------------------------------------------
123
- */
124
122
 
123
+ };
124
+
125
+ var Modal =
126
+ /*#__PURE__*/
127
+ function () {
128
+ function Modal(element, config) {
129
+ this._config = this._getConfig(config);
130
+ this._element = element;
131
+ this._dialog = element.querySelector(Selector.DIALOG);
132
+ this._backdrop = null;
133
+ this._isShown = false;
134
+ this._isBodyOverflowing = false;
135
+ this._ignoreBackdropClick = false;
136
+ this._isTransitioning = false;
137
+ this._scrollbarWidth = 0;
138
+ } // Getters
139
+
140
+
141
+ var _proto = Modal.prototype;
142
+
143
+ // Public
144
+ _proto.toggle = function toggle(relatedTarget) {
145
+ return this._isShown ? this.hide() : this.show(relatedTarget);
125
146
  };
126
147
 
127
- var Modal =
128
- /*#__PURE__*/
129
- function () {
130
- function Modal(element, config) {
131
- this._config = this._getConfig(config);
132
- this._element = element;
133
- this._dialog = element.querySelector(Selector.DIALOG);
134
- this._backdrop = null;
135
- this._isShown = false;
136
- this._isBodyOverflowing = false;
137
- this._ignoreBackdropClick = false;
138
- this._scrollbarWidth = 0;
139
- } // Getters
140
-
148
+ _proto.show = function show(relatedTarget) {
149
+ var _this = this;
141
150
 
142
- var _proto = Modal.prototype;
151
+ if (this._isShown || this._isTransitioning) {
152
+ return;
153
+ }
143
154
 
144
- // Public
145
- _proto.toggle = function toggle(relatedTarget) {
146
- return this._isShown ? this.hide() : this.show(relatedTarget);
147
- };
155
+ if ($(this._element).hasClass(ClassName.FADE)) {
156
+ this._isTransitioning = true;
157
+ }
148
158
 
149
- _proto.show = function show(relatedTarget) {
150
- var _this = this;
159
+ var showEvent = $.Event(Event.SHOW, {
160
+ relatedTarget: relatedTarget
161
+ });
162
+ $(this._element).trigger(showEvent);
151
163
 
152
- if (this._isTransitioning || this._isShown) {
153
- return;
154
- }
164
+ if (this._isShown || showEvent.isDefaultPrevented()) {
165
+ return;
166
+ }
155
167
 
156
- if ($$$1(this._element).hasClass(ClassName.FADE)) {
157
- this._isTransitioning = true;
158
- }
168
+ this._isShown = true;
159
169
 
160
- var showEvent = $$$1.Event(Event.SHOW, {
161
- relatedTarget: relatedTarget
162
- });
163
- $$$1(this._element).trigger(showEvent);
170
+ this._checkScrollbar();
164
171
 
165
- if (this._isShown || showEvent.isDefaultPrevented()) {
166
- return;
167
- }
172
+ this._setScrollbar();
168
173
 
169
- this._isShown = true;
174
+ this._adjustDialog();
170
175
 
171
- this._checkScrollbar();
176
+ this._setEscapeEvent();
172
177
 
173
- this._setScrollbar();
178
+ this._setResizeEvent();
174
179
 
175
- this._adjustDialog();
180
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
181
+ return _this.hide(event);
182
+ });
183
+ $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
184
+ $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
185
+ if ($(event.target).is(_this._element)) {
186
+ _this._ignoreBackdropClick = true;
187
+ }
188
+ });
189
+ });
176
190
 
177
- $$$1(document.body).addClass(ClassName.OPEN);
191
+ this._showBackdrop(function () {
192
+ return _this._showElement(relatedTarget);
193
+ });
194
+ };
178
195
 
179
- this._setEscapeEvent();
196
+ _proto.hide = function hide(event) {
197
+ var _this2 = this;
180
198
 
181
- this._setResizeEvent();
199
+ if (event) {
200
+ event.preventDefault();
201
+ }
182
202
 
183
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
184
- return _this.hide(event);
185
- });
186
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
187
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
188
- if ($$$1(event.target).is(_this._element)) {
189
- _this._ignoreBackdropClick = true;
190
- }
191
- });
192
- });
203
+ if (!this._isShown || this._isTransitioning) {
204
+ return;
205
+ }
193
206
 
194
- this._showBackdrop(function () {
195
- return _this._showElement(relatedTarget);
196
- });
197
- };
207
+ var hideEvent = $.Event(Event.HIDE);
208
+ $(this._element).trigger(hideEvent);
198
209
 
199
- _proto.hide = function hide(event) {
200
- var _this2 = this;
210
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
211
+ return;
212
+ }
201
213
 
202
- if (event) {
203
- event.preventDefault();
204
- }
214
+ this._isShown = false;
215
+ var transition = $(this._element).hasClass(ClassName.FADE);
205
216
 
206
- if (this._isTransitioning || !this._isShown) {
207
- return;
208
- }
217
+ if (transition) {
218
+ this._isTransitioning = true;
219
+ }
209
220
 
210
- var hideEvent = $$$1.Event(Event.HIDE);
211
- $$$1(this._element).trigger(hideEvent);
221
+ this._setEscapeEvent();
212
222
 
213
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
214
- return;
215
- }
223
+ this._setResizeEvent();
216
224
 
217
- this._isShown = false;
218
- var transition = $$$1(this._element).hasClass(ClassName.FADE);
225
+ $(document).off(Event.FOCUSIN);
226
+ $(this._element).removeClass(ClassName.SHOW);
227
+ $(this._element).off(Event.CLICK_DISMISS);
228
+ $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
219
229
 
220
- if (transition) {
221
- this._isTransitioning = true;
222
- }
230
+ if (transition) {
231
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
232
+ $(this._element).one(Util.TRANSITION_END, function (event) {
233
+ return _this2._hideModal(event);
234
+ }).emulateTransitionEnd(transitionDuration);
235
+ } else {
236
+ this._hideModal();
237
+ }
238
+ };
223
239
 
224
- this._setEscapeEvent();
240
+ _proto.dispose = function dispose() {
241
+ [window, this._element, this._dialog].forEach(function (htmlElement) {
242
+ return $(htmlElement).off(EVENT_KEY);
243
+ });
244
+ /**
245
+ * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
246
+ * Do not move `document` in `htmlElements` array
247
+ * It will remove `Event.CLICK_DATA_API` event that should remain
248
+ */
225
249
 
226
- this._setResizeEvent();
250
+ $(document).off(Event.FOCUSIN);
251
+ $.removeData(this._element, DATA_KEY);
252
+ this._config = null;
253
+ this._element = null;
254
+ this._dialog = null;
255
+ this._backdrop = null;
256
+ this._isShown = null;
257
+ this._isBodyOverflowing = null;
258
+ this._ignoreBackdropClick = null;
259
+ this._isTransitioning = null;
260
+ this._scrollbarWidth = null;
261
+ };
227
262
 
228
- $$$1(document).off(Event.FOCUSIN);
229
- $$$1(this._element).removeClass(ClassName.SHOW);
230
- $$$1(this._element).off(Event.CLICK_DISMISS);
231
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
263
+ _proto.handleUpdate = function handleUpdate() {
264
+ this._adjustDialog();
265
+ }; // Private
232
266
 
233
- if (transition) {
234
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
235
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
236
- return _this2._hideModal(event);
237
- }).emulateTransitionEnd(transitionDuration);
238
- } else {
239
- this._hideModal();
240
- }
241
- };
242
267
 
243
- _proto.dispose = function dispose() {
244
- $$$1.removeData(this._element, DATA_KEY);
245
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
246
- this._config = null;
247
- this._element = null;
248
- this._dialog = null;
249
- this._backdrop = null;
250
- this._isShown = null;
251
- this._isBodyOverflowing = null;
252
- this._ignoreBackdropClick = null;
253
- this._scrollbarWidth = null;
254
- };
268
+ _proto._getConfig = function _getConfig(config) {
269
+ config = _objectSpread({}, Default, config);
270
+ Util.typeCheckConfig(NAME, config, DefaultType);
271
+ return config;
272
+ };
255
273
 
256
- _proto.handleUpdate = function handleUpdate() {
257
- this._adjustDialog();
258
- }; // Private
274
+ _proto._showElement = function _showElement(relatedTarget) {
275
+ var _this3 = this;
259
276
 
277
+ var transition = $(this._element).hasClass(ClassName.FADE);
260
278
 
261
- _proto._getConfig = function _getConfig(config) {
262
- config = _objectSpread({}, Default, config);
263
- Util.typeCheckConfig(NAME, config, DefaultType);
264
- return config;
265
- };
279
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
280
+ // Don't move modal's DOM position
281
+ document.body.appendChild(this._element);
282
+ }
266
283
 
267
- _proto._showElement = function _showElement(relatedTarget) {
268
- var _this3 = this;
284
+ this._element.style.display = 'block';
269
285
 
270
- var transition = $$$1(this._element).hasClass(ClassName.FADE);
286
+ this._element.removeAttribute('aria-hidden');
271
287
 
272
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
273
- // Don't move modal's DOM position
274
- document.body.appendChild(this._element);
275
- }
288
+ this._element.setAttribute('aria-modal', true);
276
289
 
277
- this._element.style.display = 'block';
290
+ this._element.scrollTop = 0;
278
291
 
279
- this._element.removeAttribute('aria-hidden');
292
+ if (transition) {
293
+ Util.reflow(this._element);
294
+ }
280
295
 
281
- this._element.scrollTop = 0;
296
+ $(this._element).addClass(ClassName.SHOW);
282
297
 
283
- if (transition) {
284
- Util.reflow(this._element);
285
- }
298
+ if (this._config.focus) {
299
+ this._enforceFocus();
300
+ }
286
301
 
287
- $$$1(this._element).addClass(ClassName.SHOW);
302
+ var shownEvent = $.Event(Event.SHOWN, {
303
+ relatedTarget: relatedTarget
304
+ });
288
305
 
289
- if (this._config.focus) {
290
- this._enforceFocus();
306
+ var transitionComplete = function transitionComplete() {
307
+ if (_this3._config.focus) {
308
+ _this3._element.focus();
291
309
  }
292
310
 
293
- var shownEvent = $$$1.Event(Event.SHOWN, {
294
- relatedTarget: relatedTarget
295
- });
311
+ _this3._isTransitioning = false;
312
+ $(_this3._element).trigger(shownEvent);
313
+ };
296
314
 
297
- var transitionComplete = function transitionComplete() {
298
- if (_this3._config.focus) {
299
- _this3._element.focus();
300
- }
315
+ if (transition) {
316
+ var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
317
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
318
+ } else {
319
+ transitionComplete();
320
+ }
321
+ };
301
322
 
302
- _this3._isTransitioning = false;
303
- $$$1(_this3._element).trigger(shownEvent);
304
- };
323
+ _proto._enforceFocus = function _enforceFocus() {
324
+ var _this4 = this;
305
325
 
306
- if (transition) {
307
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
308
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
309
- } else {
310
- transitionComplete();
326
+ $(document).off(Event.FOCUSIN) // Guard against infinite focus loop
327
+ .on(Event.FOCUSIN, function (event) {
328
+ if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
329
+ _this4._element.focus();
311
330
  }
312
- };
331
+ });
332
+ };
333
+
334
+ _proto._setEscapeEvent = function _setEscapeEvent() {
335
+ var _this5 = this;
313
336
 
314
- _proto._enforceFocus = function _enforceFocus() {
315
- var _this4 = this;
337
+ if (this._isShown && this._config.keyboard) {
338
+ $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
339
+ if (event.which === ESCAPE_KEYCODE) {
340
+ event.preventDefault();
316
341
 
317
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
318
- .on(Event.FOCUSIN, function (event) {
319
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
320
- _this4._element.focus();
342
+ _this5.hide();
321
343
  }
322
344
  });
323
- };
324
-
325
- _proto._setEscapeEvent = function _setEscapeEvent() {
326
- var _this5 = this;
327
-
328
- if (this._isShown && this._config.keyboard) {
329
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
330
- if (event.which === ESCAPE_KEYCODE) {
331
- event.preventDefault();
332
-
333
- _this5.hide();
334
- }
335
- });
336
- } else if (!this._isShown) {
337
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
338
- }
339
- };
340
-
341
- _proto._setResizeEvent = function _setResizeEvent() {
342
- var _this6 = this;
345
+ } else if (!this._isShown) {
346
+ $(this._element).off(Event.KEYDOWN_DISMISS);
347
+ }
348
+ };
343
349
 
344
- if (this._isShown) {
345
- $$$1(window).on(Event.RESIZE, function (event) {
346
- return _this6.handleUpdate(event);
347
- });
348
- } else {
349
- $$$1(window).off(Event.RESIZE);
350
- }
351
- };
350
+ _proto._setResizeEvent = function _setResizeEvent() {
351
+ var _this6 = this;
352
352
 
353
- _proto._hideModal = function _hideModal() {
354
- var _this7 = this;
353
+ if (this._isShown) {
354
+ $(window).on(Event.RESIZE, function (event) {
355
+ return _this6.handleUpdate(event);
356
+ });
357
+ } else {
358
+ $(window).off(Event.RESIZE);
359
+ }
360
+ };
355
361
 
356
- this._element.style.display = 'none';
362
+ _proto._hideModal = function _hideModal() {
363
+ var _this7 = this;
357
364
 
358
- this._element.setAttribute('aria-hidden', true);
365
+ this._element.style.display = 'none';
359
366
 
360
- this._isTransitioning = false;
367
+ this._element.setAttribute('aria-hidden', true);
361
368
 
362
- this._showBackdrop(function () {
363
- $$$1(document.body).removeClass(ClassName.OPEN);
369
+ this._element.removeAttribute('aria-modal');
364
370
 
365
- _this7._resetAdjustments();
371
+ this._isTransitioning = false;
366
372
 
367
- _this7._resetScrollbar();
373
+ this._showBackdrop(function () {
374
+ $(document.body).removeClass(ClassName.OPEN);
368
375
 
369
- $$$1(_this7._element).trigger(Event.HIDDEN);
370
- });
371
- };
376
+ _this7._resetAdjustments();
372
377
 
373
- _proto._removeBackdrop = function _removeBackdrop() {
374
- if (this._backdrop) {
375
- $$$1(this._backdrop).remove();
376
- this._backdrop = null;
377
- }
378
- };
378
+ _this7._resetScrollbar();
379
379
 
380
- _proto._showBackdrop = function _showBackdrop(callback) {
381
- var _this8 = this;
380
+ $(_this7._element).trigger(Event.HIDDEN);
381
+ });
382
+ };
382
383
 
383
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
384
+ _proto._removeBackdrop = function _removeBackdrop() {
385
+ if (this._backdrop) {
386
+ $(this._backdrop).remove();
387
+ this._backdrop = null;
388
+ }
389
+ };
384
390
 
385
- if (this._isShown && this._config.backdrop) {
386
- this._backdrop = document.createElement('div');
387
- this._backdrop.className = ClassName.BACKDROP;
391
+ _proto._showBackdrop = function _showBackdrop(callback) {
392
+ var _this8 = this;
388
393
 
389
- if (animate) {
390
- this._backdrop.classList.add(animate);
391
- }
394
+ var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
392
395
 
393
- $$$1(this._backdrop).appendTo(document.body);
394
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
395
- if (_this8._ignoreBackdropClick) {
396
- _this8._ignoreBackdropClick = false;
397
- return;
398
- }
399
-
400
- if (event.target !== event.currentTarget) {
401
- return;
402
- }
403
-
404
- if (_this8._config.backdrop === 'static') {
405
- _this8._element.focus();
406
- } else {
407
- _this8.hide();
408
- }
409
- });
410
-
411
- if (animate) {
412
- Util.reflow(this._backdrop);
413
- }
396
+ if (this._isShown && this._config.backdrop) {
397
+ this._backdrop = document.createElement('div');
398
+ this._backdrop.className = ClassName.BACKDROP;
414
399
 
415
- $$$1(this._backdrop).addClass(ClassName.SHOW);
400
+ if (animate) {
401
+ this._backdrop.classList.add(animate);
402
+ }
416
403
 
417
- if (!callback) {
404
+ $(this._backdrop).appendTo(document.body);
405
+ $(this._element).on(Event.CLICK_DISMISS, function (event) {
406
+ if (_this8._ignoreBackdropClick) {
407
+ _this8._ignoreBackdropClick = false;
418
408
  return;
419
409
  }
420
410
 
421
- if (!animate) {
422
- callback();
411
+ if (event.target !== event.currentTarget) {
423
412
  return;
424
413
  }
425
414
 
426
- var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
427
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
428
- } else if (!this._isShown && this._backdrop) {
429
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
415
+ if (_this8._config.backdrop === 'static') {
416
+ _this8._element.focus();
417
+ } else {
418
+ _this8.hide();
419
+ }
420
+ });
430
421
 
431
- var callbackRemove = function callbackRemove() {
432
- _this8._removeBackdrop();
422
+ if (animate) {
423
+ Util.reflow(this._backdrop);
424
+ }
433
425
 
434
- if (callback) {
435
- callback();
436
- }
437
- };
426
+ $(this._backdrop).addClass(ClassName.SHOW);
438
427
 
439
- if ($$$1(this._element).hasClass(ClassName.FADE)) {
440
- var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
428
+ if (!callback) {
429
+ return;
430
+ }
441
431
 
442
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
443
- } else {
444
- callbackRemove();
445
- }
446
- } else if (callback) {
432
+ if (!animate) {
447
433
  callback();
434
+ return;
448
435
  }
449
- }; // ----------------------------------------------------------------------
450
- // the following methods are used to handle overflowing modals
451
- // todo (fat): these should probably be refactored out of modal.js
452
- // ----------------------------------------------------------------------
453
436
 
437
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
438
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
439
+ } else if (!this._isShown && this._backdrop) {
440
+ $(this._backdrop).removeClass(ClassName.SHOW);
454
441
 
455
- _proto._adjustDialog = function _adjustDialog() {
456
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
442
+ var callbackRemove = function callbackRemove() {
443
+ _this8._removeBackdrop();
457
444
 
458
- if (!this._isBodyOverflowing && isModalOverflowing) {
459
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
460
- }
445
+ if (callback) {
446
+ callback();
447
+ }
448
+ };
449
+
450
+ if ($(this._element).hasClass(ClassName.FADE)) {
451
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
461
452
 
462
- if (this._isBodyOverflowing && !isModalOverflowing) {
463
- this._element.style.paddingRight = this._scrollbarWidth + "px";
453
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
454
+ } else {
455
+ callbackRemove();
464
456
  }
465
- };
457
+ } else if (callback) {
458
+ callback();
459
+ }
460
+ }; // ----------------------------------------------------------------------
461
+ // the following methods are used to handle overflowing modals
462
+ // todo (fat): these should probably be refactored out of modal.js
463
+ // ----------------------------------------------------------------------
466
464
 
467
- _proto._resetAdjustments = function _resetAdjustments() {
468
- this._element.style.paddingLeft = '';
469
- this._element.style.paddingRight = '';
470
- };
471
465
 
472
- _proto._checkScrollbar = function _checkScrollbar() {
473
- var rect = document.body.getBoundingClientRect();
474
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
475
- this._scrollbarWidth = this._getScrollbarWidth();
476
- };
466
+ _proto._adjustDialog = function _adjustDialog() {
467
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
477
468
 
478
- _proto._setScrollbar = function _setScrollbar() {
479
- var _this9 = this;
480
-
481
- if (this._isBodyOverflowing) {
482
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
483
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
484
- var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
485
- var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding
486
-
487
- $$$1(fixedContent).each(function (index, element) {
488
- var actualPadding = element.style.paddingRight;
489
- var calculatedPadding = $$$1(element).css('padding-right');
490
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
491
- }); // Adjust sticky content margin
492
-
493
- $$$1(stickyContent).each(function (index, element) {
494
- var actualMargin = element.style.marginRight;
495
- var calculatedMargin = $$$1(element).css('margin-right');
496
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
497
- }); // Adjust body padding
498
-
499
- var actualPadding = document.body.style.paddingRight;
500
- var calculatedPadding = $$$1(document.body).css('padding-right');
501
- $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
502
- }
503
- };
469
+ if (!this._isBodyOverflowing && isModalOverflowing) {
470
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
471
+ }
472
+
473
+ if (this._isBodyOverflowing && !isModalOverflowing) {
474
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
475
+ }
476
+ };
477
+
478
+ _proto._resetAdjustments = function _resetAdjustments() {
479
+ this._element.style.paddingLeft = '';
480
+ this._element.style.paddingRight = '';
481
+ };
482
+
483
+ _proto._checkScrollbar = function _checkScrollbar() {
484
+ var rect = document.body.getBoundingClientRect();
485
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
486
+ this._scrollbarWidth = this._getScrollbarWidth();
487
+ };
488
+
489
+ _proto._setScrollbar = function _setScrollbar() {
490
+ var _this9 = this;
504
491
 
505
- _proto._resetScrollbar = function _resetScrollbar() {
506
- // Restore fixed content padding
492
+ if (this._isBodyOverflowing) {
493
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
494
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
507
495
  var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
508
- $$$1(fixedContent).each(function (index, element) {
509
- var padding = $$$1(element).data('padding-right');
510
- $$$1(element).removeData('padding-right');
511
- element.style.paddingRight = padding ? padding : '';
512
- }); // Restore sticky content
513
-
514
- var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
515
- $$$1(elements).each(function (index, element) {
516
- var margin = $$$1(element).data('margin-right');
517
-
518
- if (typeof margin !== 'undefined') {
519
- $$$1(element).css('margin-right', margin).removeData('margin-right');
520
- }
521
- }); // Restore body padding
496
+ var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding
497
+
498
+ $(fixedContent).each(function (index, element) {
499
+ var actualPadding = element.style.paddingRight;
500
+ var calculatedPadding = $(element).css('padding-right');
501
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
502
+ }); // Adjust sticky content margin
503
+
504
+ $(stickyContent).each(function (index, element) {
505
+ var actualMargin = element.style.marginRight;
506
+ var calculatedMargin = $(element).css('margin-right');
507
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
508
+ }); // Adjust body padding
509
+
510
+ var actualPadding = document.body.style.paddingRight;
511
+ var calculatedPadding = $(document.body).css('padding-right');
512
+ $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
513
+ }
522
514
 
523
- var padding = $$$1(document.body).data('padding-right');
524
- $$$1(document.body).removeData('padding-right');
525
- document.body.style.paddingRight = padding ? padding : '';
526
- };
515
+ $(document.body).addClass(ClassName.OPEN);
516
+ };
527
517
 
528
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
529
- // thx d.walsh
530
- var scrollDiv = document.createElement('div');
531
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
532
- document.body.appendChild(scrollDiv);
533
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
534
- document.body.removeChild(scrollDiv);
535
- return scrollbarWidth;
536
- }; // Static
518
+ _proto._resetScrollbar = function _resetScrollbar() {
519
+ // Restore fixed content padding
520
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
521
+ $(fixedContent).each(function (index, element) {
522
+ var padding = $(element).data('padding-right');
523
+ $(element).removeData('padding-right');
524
+ element.style.paddingRight = padding ? padding : '';
525
+ }); // Restore sticky content
526
+
527
+ var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
528
+ $(elements).each(function (index, element) {
529
+ var margin = $(element).data('margin-right');
530
+
531
+ if (typeof margin !== 'undefined') {
532
+ $(element).css('margin-right', margin).removeData('margin-right');
533
+ }
534
+ }); // Restore body padding
537
535
 
536
+ var padding = $(document.body).data('padding-right');
537
+ $(document.body).removeData('padding-right');
538
+ document.body.style.paddingRight = padding ? padding : '';
539
+ };
538
540
 
539
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
540
- return this.each(function () {
541
- var data = $$$1(this).data(DATA_KEY);
541
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
542
+ // thx d.walsh
543
+ var scrollDiv = document.createElement('div');
544
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
545
+ document.body.appendChild(scrollDiv);
546
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
547
+ document.body.removeChild(scrollDiv);
548
+ return scrollbarWidth;
549
+ }; // Static
542
550
 
543
- var _config = _objectSpread({}, Default, $$$1(this).data(), typeof config === 'object' && config ? config : {});
544
551
 
545
- if (!data) {
546
- data = new Modal(this, _config);
547
- $$$1(this).data(DATA_KEY, data);
548
- }
552
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
553
+ return this.each(function () {
554
+ var data = $(this).data(DATA_KEY);
555
+
556
+ var _config = _objectSpread({}, Default, $(this).data(), typeof config === 'object' && config ? config : {});
549
557
 
550
- if (typeof config === 'string') {
551
- if (typeof data[config] === 'undefined') {
552
- throw new TypeError("No method named \"" + config + "\"");
553
- }
558
+ if (!data) {
559
+ data = new Modal(this, _config);
560
+ $(this).data(DATA_KEY, data);
561
+ }
554
562
 
555
- data[config](relatedTarget);
556
- } else if (_config.show) {
557
- data.show(relatedTarget);
563
+ if (typeof config === 'string') {
564
+ if (typeof data[config] === 'undefined') {
565
+ throw new TypeError("No method named \"" + config + "\"");
558
566
  }
559
- });
560
- };
561
567
 
562
- _createClass(Modal, null, [{
563
- key: "VERSION",
564
- get: function get() {
565
- return VERSION;
568
+ data[config](relatedTarget);
569
+ } else if (_config.show) {
570
+ data.show(relatedTarget);
566
571
  }
567
- }, {
568
- key: "Default",
569
- get: function get() {
570
- return Default;
571
- }
572
- }]);
572
+ });
573
+ };
573
574
 
574
- return Modal;
575
- }();
576
- /**
577
- * ------------------------------------------------------------------------
578
- * Data Api implementation
579
- * ------------------------------------------------------------------------
580
- */
575
+ _createClass(Modal, null, [{
576
+ key: "VERSION",
577
+ get: function get() {
578
+ return VERSION;
579
+ }
580
+ }, {
581
+ key: "Default",
582
+ get: function get() {
583
+ return Default;
584
+ }
585
+ }]);
586
+
587
+ return Modal;
588
+ }();
589
+ /**
590
+ * ------------------------------------------------------------------------
591
+ * Data Api implementation
592
+ * ------------------------------------------------------------------------
593
+ */
581
594
 
582
595
 
583
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
584
- var _this10 = this;
596
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
597
+ var _this10 = this;
585
598
 
586
- var target;
587
- var selector = Util.getSelectorFromElement(this);
599
+ var target;
600
+ var selector = Util.getSelectorFromElement(this);
588
601
 
589
- if (selector) {
590
- target = document.querySelector(selector);
591
- }
602
+ if (selector) {
603
+ target = document.querySelector(selector);
604
+ }
592
605
 
593
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
606
+ var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
594
607
 
595
- if (this.tagName === 'A' || this.tagName === 'AREA') {
596
- event.preventDefault();
608
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
609
+ event.preventDefault();
610
+ }
611
+
612
+ var $target = $(target).one(Event.SHOW, function (showEvent) {
613
+ if (showEvent.isDefaultPrevented()) {
614
+ // Only register focus restorer if modal will actually get shown
615
+ return;
597
616
  }
598
617
 
599
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
600
- if (showEvent.isDefaultPrevented()) {
601
- // Only register focus restorer if modal will actually get shown
602
- return;
618
+ $target.one(Event.HIDDEN, function () {
619
+ if ($(_this10).is(':visible')) {
620
+ _this10.focus();
603
621
  }
604
-
605
- $target.one(Event.HIDDEN, function () {
606
- if ($$$1(_this10).is(':visible')) {
607
- _this10.focus();
608
- }
609
- });
610
622
  });
611
-
612
- Modal._jQueryInterface.call($$$1(target), config, this);
613
623
  });
614
- /**
615
- * ------------------------------------------------------------------------
616
- * jQuery
617
- * ------------------------------------------------------------------------
618
- */
619
624
 
620
- $$$1.fn[NAME] = Modal._jQueryInterface;
621
- $$$1.fn[NAME].Constructor = Modal;
625
+ Modal._jQueryInterface.call($(target), config, this);
626
+ });
627
+ /**
628
+ * ------------------------------------------------------------------------
629
+ * jQuery
630
+ * ------------------------------------------------------------------------
631
+ */
622
632
 
623
- $$$1.fn[NAME].noConflict = function () {
624
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
625
- return Modal._jQueryInterface;
626
- };
633
+ $.fn[NAME] = Modal._jQueryInterface;
634
+ $.fn[NAME].Constructor = Modal;
627
635
 
628
- return Modal;
629
- }($);
636
+ $.fn[NAME].noConflict = function () {
637
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
638
+ return Modal._jQueryInterface;
639
+ };
630
640
 
631
641
  return Modal;
632
642