bootstrap 4.3.1 → 4.5.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap/alert.js +26 -35
- data/assets/javascripts/bootstrap/button.js +93 -52
- data/assets/javascripts/bootstrap/carousel.js +122 -120
- data/assets/javascripts/bootstrap/collapse.js +75 -71
- data/assets/javascripts/bootstrap/dropdown.js +143 -140
- data/assets/javascripts/bootstrap/modal.js +165 -134
- data/assets/javascripts/bootstrap/popover.js +47 -39
- data/assets/javascripts/bootstrap/scrollspy.js +71 -71
- data/assets/javascripts/bootstrap/tab.js +51 -60
- data/assets/javascripts/bootstrap/toast.js +84 -72
- data/assets/javascripts/bootstrap/tooltip.js +141 -131
- data/assets/javascripts/bootstrap/util.js +28 -7
- data/assets/javascripts/bootstrap-sprockets.js +6 -6
- data/assets/javascripts/bootstrap.js +811 -826
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +3 -3
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
- data/assets/stylesheets/_bootstrap.scss +3 -3
- data/assets/stylesheets/bootstrap/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +28 -35
- data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +24 -9
- data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +60 -5
- data/assets/stylesheets/bootstrap/_grid.scss +33 -8
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +1 -2
- data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
- data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
- data/assets/stylesheets/bootstrap/_modal.scss +28 -16
- data/assets/stylesheets/bootstrap/_nav.scss +4 -3
- data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
- data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
- data/assets/stylesheets/bootstrap/_popover.scss +8 -9
- data/assets/stylesheets/bootstrap/_print.scss +2 -2
- data/assets/stylesheets/bootstrap/_progress.scss +6 -2
- data/assets/stylesheets/bootstrap/_reboot.scss +24 -27
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +46 -22
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +34 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +11 -5
@@ -1,16 +1,16 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap modal.js v4.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap modal.js v4.5.0 (https://getbootstrap.com/)
|
3
|
+
* Copyright 2011-2020 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
|
*/
|
6
6
|
(function (global, factory) {
|
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
|
-
$ = $ &&
|
13
|
-
Util = Util &&
|
12
|
+
$ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
|
13
|
+
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
14
14
|
|
15
15
|
function _defineProperties(target, props) {
|
16
16
|
for (var i = 0; i < props.length; i++) {
|
@@ -43,20 +43,35 @@
|
|
43
43
|
return obj;
|
44
44
|
}
|
45
45
|
|
46
|
-
function
|
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 (
|
52
|
-
ownKeys
|
53
|
-
|
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.
|
87
|
+
var VERSION = '4.5.0';
|
73
88
|
var DATA_KEY = 'bs.modal';
|
74
89
|
var EVENT_KEY = "." + DATA_KEY;
|
75
90
|
var DATA_API_KEY = '.data-api';
|
@@ -88,49 +103,42 @@
|
|
88
103
|
focus: 'boolean',
|
89
104
|
show: 'boolean'
|
90
105
|
};
|
91
|
-
var
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
var
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
var
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
* Class Definition
|
122
|
-
* ------------------------------------------------------------------------
|
123
|
-
*/
|
124
|
-
|
125
|
-
};
|
106
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
107
|
+
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
|
108
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
109
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
110
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
111
|
+
var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
|
112
|
+
var EVENT_RESIZE = "resize" + EVENT_KEY;
|
113
|
+
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
|
114
|
+
var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
|
115
|
+
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
|
116
|
+
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
|
117
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
118
|
+
var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
|
119
|
+
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
|
120
|
+
var CLASS_NAME_BACKDROP = 'modal-backdrop';
|
121
|
+
var CLASS_NAME_OPEN = 'modal-open';
|
122
|
+
var CLASS_NAME_FADE = 'fade';
|
123
|
+
var CLASS_NAME_SHOW = 'show';
|
124
|
+
var CLASS_NAME_STATIC = 'modal-static';
|
125
|
+
var SELECTOR_DIALOG = '.modal-dialog';
|
126
|
+
var SELECTOR_MODAL_BODY = '.modal-body';
|
127
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
|
128
|
+
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
|
129
|
+
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
|
130
|
+
var SELECTOR_STICKY_CONTENT = '.sticky-top';
|
131
|
+
/**
|
132
|
+
* ------------------------------------------------------------------------
|
133
|
+
* Class Definition
|
134
|
+
* ------------------------------------------------------------------------
|
135
|
+
*/
|
126
136
|
|
127
|
-
var Modal =
|
128
|
-
/*#__PURE__*/
|
129
|
-
function () {
|
137
|
+
var Modal = /*#__PURE__*/function () {
|
130
138
|
function Modal(element, config) {
|
131
139
|
this._config = this._getConfig(config);
|
132
140
|
this._element = element;
|
133
|
-
this._dialog = element.querySelector(
|
141
|
+
this._dialog = element.querySelector(SELECTOR_DIALOG);
|
134
142
|
this._backdrop = null;
|
135
143
|
this._isShown = false;
|
136
144
|
this._isBodyOverflowing = false;
|
@@ -154,11 +162,11 @@
|
|
154
162
|
return;
|
155
163
|
}
|
156
164
|
|
157
|
-
if ($(this._element).hasClass(
|
165
|
+
if ($(this._element).hasClass(CLASS_NAME_FADE)) {
|
158
166
|
this._isTransitioning = true;
|
159
167
|
}
|
160
168
|
|
161
|
-
var showEvent = $.Event(
|
169
|
+
var showEvent = $.Event(EVENT_SHOW, {
|
162
170
|
relatedTarget: relatedTarget
|
163
171
|
});
|
164
172
|
$(this._element).trigger(showEvent);
|
@@ -179,11 +187,11 @@
|
|
179
187
|
|
180
188
|
this._setResizeEvent();
|
181
189
|
|
182
|
-
$(this._element).on(
|
190
|
+
$(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
|
183
191
|
return _this.hide(event);
|
184
192
|
});
|
185
|
-
$(this._dialog).on(
|
186
|
-
$(_this._element).one(
|
193
|
+
$(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
|
194
|
+
$(_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
|
187
195
|
if ($(event.target).is(_this._element)) {
|
188
196
|
_this._ignoreBackdropClick = true;
|
189
197
|
}
|
@@ -206,7 +214,7 @@
|
|
206
214
|
return;
|
207
215
|
}
|
208
216
|
|
209
|
-
var hideEvent = $.Event(
|
217
|
+
var hideEvent = $.Event(EVENT_HIDE);
|
210
218
|
$(this._element).trigger(hideEvent);
|
211
219
|
|
212
220
|
if (!this._isShown || hideEvent.isDefaultPrevented()) {
|
@@ -214,7 +222,7 @@
|
|
214
222
|
}
|
215
223
|
|
216
224
|
this._isShown = false;
|
217
|
-
var transition = $(this._element).hasClass(
|
225
|
+
var transition = $(this._element).hasClass(CLASS_NAME_FADE);
|
218
226
|
|
219
227
|
if (transition) {
|
220
228
|
this._isTransitioning = true;
|
@@ -224,10 +232,10 @@
|
|
224
232
|
|
225
233
|
this._setResizeEvent();
|
226
234
|
|
227
|
-
$(document).off(
|
228
|
-
$(this._element).removeClass(
|
229
|
-
$(this._element).off(
|
230
|
-
$(this._dialog).off(
|
235
|
+
$(document).off(EVENT_FOCUSIN);
|
236
|
+
$(this._element).removeClass(CLASS_NAME_SHOW);
|
237
|
+
$(this._element).off(EVENT_CLICK_DISMISS);
|
238
|
+
$(this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
|
231
239
|
|
232
240
|
if (transition) {
|
233
241
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
@@ -244,12 +252,12 @@
|
|
244
252
|
return $(htmlElement).off(EVENT_KEY);
|
245
253
|
});
|
246
254
|
/**
|
247
|
-
* `document` has 2 events `
|
255
|
+
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
|
248
256
|
* Do not move `document` in `htmlElements` array
|
249
|
-
* It will remove `
|
257
|
+
* It will remove `EVENT_CLICK_DATA_API` event that should remain
|
250
258
|
*/
|
251
259
|
|
252
|
-
$(document).off(
|
260
|
+
$(document).off(EVENT_FOCUSIN);
|
253
261
|
$.removeData(this._element, DATA_KEY);
|
254
262
|
this._config = null;
|
255
263
|
this._element = null;
|
@@ -268,15 +276,40 @@
|
|
268
276
|
;
|
269
277
|
|
270
278
|
_proto._getConfig = function _getConfig(config) {
|
271
|
-
config =
|
279
|
+
config = _objectSpread2(_objectSpread2({}, Default), config);
|
272
280
|
Util.typeCheckConfig(NAME, config, DefaultType);
|
273
281
|
return config;
|
274
282
|
};
|
275
283
|
|
276
|
-
_proto.
|
284
|
+
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
|
277
285
|
var _this3 = this;
|
278
286
|
|
279
|
-
|
287
|
+
if (this._config.backdrop === 'static') {
|
288
|
+
var hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED);
|
289
|
+
$(this._element).trigger(hideEventPrevented);
|
290
|
+
|
291
|
+
if (hideEventPrevented.defaultPrevented) {
|
292
|
+
return;
|
293
|
+
}
|
294
|
+
|
295
|
+
this._element.classList.add(CLASS_NAME_STATIC);
|
296
|
+
|
297
|
+
var modalTransitionDuration = Util.getTransitionDurationFromElement(this._element);
|
298
|
+
$(this._element).one(Util.TRANSITION_END, function () {
|
299
|
+
_this3._element.classList.remove(CLASS_NAME_STATIC);
|
300
|
+
}).emulateTransitionEnd(modalTransitionDuration);
|
301
|
+
|
302
|
+
this._element.focus();
|
303
|
+
} else {
|
304
|
+
this.hide();
|
305
|
+
}
|
306
|
+
};
|
307
|
+
|
308
|
+
_proto._showElement = function _showElement(relatedTarget) {
|
309
|
+
var _this4 = this;
|
310
|
+
|
311
|
+
var transition = $(this._element).hasClass(CLASS_NAME_FADE);
|
312
|
+
var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
|
280
313
|
|
281
314
|
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
282
315
|
// Don't move modal's DOM position
|
@@ -289,8 +322,8 @@
|
|
289
322
|
|
290
323
|
this._element.setAttribute('aria-modal', true);
|
291
324
|
|
292
|
-
if ($(this._dialog).hasClass(
|
293
|
-
|
325
|
+
if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
|
326
|
+
modalBody.scrollTop = 0;
|
294
327
|
} else {
|
295
328
|
this._element.scrollTop = 0;
|
296
329
|
}
|
@@ -299,23 +332,23 @@
|
|
299
332
|
Util.reflow(this._element);
|
300
333
|
}
|
301
334
|
|
302
|
-
$(this._element).addClass(
|
335
|
+
$(this._element).addClass(CLASS_NAME_SHOW);
|
303
336
|
|
304
337
|
if (this._config.focus) {
|
305
338
|
this._enforceFocus();
|
306
339
|
}
|
307
340
|
|
308
|
-
var shownEvent = $.Event(
|
341
|
+
var shownEvent = $.Event(EVENT_SHOWN, {
|
309
342
|
relatedTarget: relatedTarget
|
310
343
|
});
|
311
344
|
|
312
345
|
var transitionComplete = function transitionComplete() {
|
313
|
-
if (
|
314
|
-
|
346
|
+
if (_this4._config.focus) {
|
347
|
+
_this4._element.focus();
|
315
348
|
}
|
316
349
|
|
317
|
-
|
318
|
-
$(
|
350
|
+
_this4._isTransitioning = false;
|
351
|
+
$(_this4._element).trigger(shownEvent);
|
319
352
|
};
|
320
353
|
|
321
354
|
if (transition) {
|
@@ -327,46 +360,48 @@
|
|
327
360
|
};
|
328
361
|
|
329
362
|
_proto._enforceFocus = function _enforceFocus() {
|
330
|
-
var
|
363
|
+
var _this5 = this;
|
331
364
|
|
332
|
-
$(document).off(
|
333
|
-
.on(
|
334
|
-
if (document !== event.target &&
|
335
|
-
|
365
|
+
$(document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
|
366
|
+
.on(EVENT_FOCUSIN, function (event) {
|
367
|
+
if (document !== event.target && _this5._element !== event.target && $(_this5._element).has(event.target).length === 0) {
|
368
|
+
_this5._element.focus();
|
336
369
|
}
|
337
370
|
});
|
338
371
|
};
|
339
372
|
|
340
373
|
_proto._setEscapeEvent = function _setEscapeEvent() {
|
341
|
-
var
|
374
|
+
var _this6 = this;
|
342
375
|
|
343
|
-
if (this._isShown
|
344
|
-
$(this._element).on(
|
345
|
-
if (event.which === ESCAPE_KEYCODE) {
|
376
|
+
if (this._isShown) {
|
377
|
+
$(this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
|
378
|
+
if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
|
346
379
|
event.preventDefault();
|
347
380
|
|
348
|
-
|
381
|
+
_this6.hide();
|
382
|
+
} else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
|
383
|
+
_this6._triggerBackdropTransition();
|
349
384
|
}
|
350
385
|
});
|
351
386
|
} else if (!this._isShown) {
|
352
|
-
$(this._element).off(
|
387
|
+
$(this._element).off(EVENT_KEYDOWN_DISMISS);
|
353
388
|
}
|
354
389
|
};
|
355
390
|
|
356
391
|
_proto._setResizeEvent = function _setResizeEvent() {
|
357
|
-
var
|
392
|
+
var _this7 = this;
|
358
393
|
|
359
394
|
if (this._isShown) {
|
360
|
-
$(window).on(
|
361
|
-
return
|
395
|
+
$(window).on(EVENT_RESIZE, function (event) {
|
396
|
+
return _this7.handleUpdate(event);
|
362
397
|
});
|
363
398
|
} else {
|
364
|
-
$(window).off(
|
399
|
+
$(window).off(EVENT_RESIZE);
|
365
400
|
}
|
366
401
|
};
|
367
402
|
|
368
403
|
_proto._hideModal = function _hideModal() {
|
369
|
-
var
|
404
|
+
var _this8 = this;
|
370
405
|
|
371
406
|
this._element.style.display = 'none';
|
372
407
|
|
@@ -377,13 +412,13 @@
|
|
377
412
|
this._isTransitioning = false;
|
378
413
|
|
379
414
|
this._showBackdrop(function () {
|
380
|
-
$(document.body).removeClass(
|
415
|
+
$(document.body).removeClass(CLASS_NAME_OPEN);
|
381
416
|
|
382
|
-
|
417
|
+
_this8._resetAdjustments();
|
383
418
|
|
384
|
-
|
419
|
+
_this8._resetScrollbar();
|
385
420
|
|
386
|
-
$(
|
421
|
+
$(_this8._element).trigger(EVENT_HIDDEN);
|
387
422
|
});
|
388
423
|
};
|
389
424
|
|
@@ -395,22 +430,22 @@
|
|
395
430
|
};
|
396
431
|
|
397
432
|
_proto._showBackdrop = function _showBackdrop(callback) {
|
398
|
-
var
|
433
|
+
var _this9 = this;
|
399
434
|
|
400
|
-
var animate = $(this._element).hasClass(
|
435
|
+
var animate = $(this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
|
401
436
|
|
402
437
|
if (this._isShown && this._config.backdrop) {
|
403
438
|
this._backdrop = document.createElement('div');
|
404
|
-
this._backdrop.className =
|
439
|
+
this._backdrop.className = CLASS_NAME_BACKDROP;
|
405
440
|
|
406
441
|
if (animate) {
|
407
442
|
this._backdrop.classList.add(animate);
|
408
443
|
}
|
409
444
|
|
410
445
|
$(this._backdrop).appendTo(document.body);
|
411
|
-
$(this._element).on(
|
412
|
-
if (
|
413
|
-
|
446
|
+
$(this._element).on(EVENT_CLICK_DISMISS, function (event) {
|
447
|
+
if (_this9._ignoreBackdropClick) {
|
448
|
+
_this9._ignoreBackdropClick = false;
|
414
449
|
return;
|
415
450
|
}
|
416
451
|
|
@@ -418,18 +453,14 @@
|
|
418
453
|
return;
|
419
454
|
}
|
420
455
|
|
421
|
-
|
422
|
-
_this8._element.focus();
|
423
|
-
} else {
|
424
|
-
_this8.hide();
|
425
|
-
}
|
456
|
+
_this9._triggerBackdropTransition();
|
426
457
|
});
|
427
458
|
|
428
459
|
if (animate) {
|
429
460
|
Util.reflow(this._backdrop);
|
430
461
|
}
|
431
462
|
|
432
|
-
$(this._backdrop).addClass(
|
463
|
+
$(this._backdrop).addClass(CLASS_NAME_SHOW);
|
433
464
|
|
434
465
|
if (!callback) {
|
435
466
|
return;
|
@@ -443,17 +474,17 @@
|
|
443
474
|
var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
|
444
475
|
$(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
|
445
476
|
} else if (!this._isShown && this._backdrop) {
|
446
|
-
$(this._backdrop).removeClass(
|
477
|
+
$(this._backdrop).removeClass(CLASS_NAME_SHOW);
|
447
478
|
|
448
479
|
var callbackRemove = function callbackRemove() {
|
449
|
-
|
480
|
+
_this9._removeBackdrop();
|
450
481
|
|
451
482
|
if (callback) {
|
452
483
|
callback();
|
453
484
|
}
|
454
485
|
};
|
455
486
|
|
456
|
-
if ($(this._element).hasClass(
|
487
|
+
if ($(this._element).hasClass(CLASS_NAME_FADE)) {
|
457
488
|
var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
|
458
489
|
|
459
490
|
$(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
|
@@ -488,29 +519,29 @@
|
|
488
519
|
|
489
520
|
_proto._checkScrollbar = function _checkScrollbar() {
|
490
521
|
var rect = document.body.getBoundingClientRect();
|
491
|
-
this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
|
522
|
+
this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
|
492
523
|
this._scrollbarWidth = this._getScrollbarWidth();
|
493
524
|
};
|
494
525
|
|
495
526
|
_proto._setScrollbar = function _setScrollbar() {
|
496
|
-
var
|
527
|
+
var _this10 = this;
|
497
528
|
|
498
529
|
if (this._isBodyOverflowing) {
|
499
530
|
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
|
500
531
|
// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
|
501
|
-
var fixedContent = [].slice.call(document.querySelectorAll(
|
502
|
-
var stickyContent = [].slice.call(document.querySelectorAll(
|
532
|
+
var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
|
533
|
+
var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding
|
503
534
|
|
504
535
|
$(fixedContent).each(function (index, element) {
|
505
536
|
var actualPadding = element.style.paddingRight;
|
506
537
|
var calculatedPadding = $(element).css('padding-right');
|
507
|
-
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) +
|
538
|
+
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
|
508
539
|
}); // Adjust sticky content margin
|
509
540
|
|
510
541
|
$(stickyContent).each(function (index, element) {
|
511
542
|
var actualMargin = element.style.marginRight;
|
512
543
|
var calculatedMargin = $(element).css('margin-right');
|
513
|
-
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) -
|
544
|
+
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
|
514
545
|
}); // Adjust body padding
|
515
546
|
|
516
547
|
var actualPadding = document.body.style.paddingRight;
|
@@ -518,19 +549,19 @@
|
|
518
549
|
$(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
|
519
550
|
}
|
520
551
|
|
521
|
-
$(document.body).addClass(
|
552
|
+
$(document.body).addClass(CLASS_NAME_OPEN);
|
522
553
|
};
|
523
554
|
|
524
555
|
_proto._resetScrollbar = function _resetScrollbar() {
|
525
556
|
// Restore fixed content padding
|
526
|
-
var fixedContent = [].slice.call(document.querySelectorAll(
|
557
|
+
var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
|
527
558
|
$(fixedContent).each(function (index, element) {
|
528
559
|
var padding = $(element).data('padding-right');
|
529
560
|
$(element).removeData('padding-right');
|
530
561
|
element.style.paddingRight = padding ? padding : '';
|
531
562
|
}); // Restore sticky content
|
532
563
|
|
533
|
-
var elements = [].slice.call(document.querySelectorAll("" +
|
564
|
+
var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
|
534
565
|
$(elements).each(function (index, element) {
|
535
566
|
var margin = $(element).data('margin-right');
|
536
567
|
|
@@ -547,7 +578,7 @@
|
|
547
578
|
_proto._getScrollbarWidth = function _getScrollbarWidth() {
|
548
579
|
// thx d.walsh
|
549
580
|
var scrollDiv = document.createElement('div');
|
550
|
-
scrollDiv.className =
|
581
|
+
scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
|
551
582
|
document.body.appendChild(scrollDiv);
|
552
583
|
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
553
584
|
document.body.removeChild(scrollDiv);
|
@@ -559,7 +590,7 @@
|
|
559
590
|
return this.each(function () {
|
560
591
|
var data = $(this).data(DATA_KEY);
|
561
592
|
|
562
|
-
var _config =
|
593
|
+
var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), $(this).data()), typeof config === 'object' && config ? config : {});
|
563
594
|
|
564
595
|
if (!data) {
|
565
596
|
data = new Modal(this, _config);
|
@@ -599,8 +630,8 @@
|
|
599
630
|
*/
|
600
631
|
|
601
632
|
|
602
|
-
$(document).on(
|
603
|
-
var
|
633
|
+
$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
634
|
+
var _this11 = this;
|
604
635
|
|
605
636
|
var target;
|
606
637
|
var selector = Util.getSelectorFromElement(this);
|
@@ -609,21 +640,21 @@
|
|
609
640
|
target = document.querySelector(selector);
|
610
641
|
}
|
611
642
|
|
612
|
-
var config = $(target).data(DATA_KEY) ? 'toggle' :
|
643
|
+
var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread2(_objectSpread2({}, $(target).data()), $(this).data());
|
613
644
|
|
614
645
|
if (this.tagName === 'A' || this.tagName === 'AREA') {
|
615
646
|
event.preventDefault();
|
616
647
|
}
|
617
648
|
|
618
|
-
var $target = $(target).one(
|
649
|
+
var $target = $(target).one(EVENT_SHOW, function (showEvent) {
|
619
650
|
if (showEvent.isDefaultPrevented()) {
|
620
651
|
// Only register focus restorer if modal will actually get shown
|
621
652
|
return;
|
622
653
|
}
|
623
654
|
|
624
|
-
$target.one(
|
625
|
-
if ($(
|
626
|
-
|
655
|
+
$target.one(EVENT_HIDDEN, function () {
|
656
|
+
if ($(_this11).is(':visible')) {
|
657
|
+
_this11.focus();
|
627
658
|
}
|
628
659
|
});
|
629
660
|
});
|
@@ -646,4 +677,4 @@
|
|
646
677
|
|
647
678
|
return Modal;
|
648
679
|
|
649
|
-
}));
|
680
|
+
})));
|