bootstrap 4.3.0 → 4.5.3
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.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +1186 -1056
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +45 -65
- data/assets/javascripts/bootstrap/button.js +114 -80
- data/assets/javascripts/bootstrap/carousel.js +131 -186
- data/assets/javascripts/bootstrap/collapse.js +86 -140
- data/assets/javascripts/bootstrap/dropdown.js +152 -207
- data/assets/javascripts/bootstrap/modal.js +204 -214
- data/assets/javascripts/bootstrap/popover.js +41 -95
- data/assets/javascripts/bootstrap/scrollspy.js +69 -127
- data/assets/javascripts/bootstrap/tab.js +75 -95
- data/assets/javascripts/bootstrap/toast.js +87 -127
- data/assets/javascripts/bootstrap/tooltip.js +298 -198
- data/assets/javascripts/bootstrap/util.js +41 -20
- data/assets/stylesheets/_bootstrap-grid.scss +4 -4
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +4 -4
- data/assets/stylesheets/bootstrap/_alert.scss +1 -0
- 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 +42 -45
- 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 +34 -17
- data/assets/stylesheets/bootstrap/_dropdown.scss +6 -5
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +63 -5
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- 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 +26 -15
- data/assets/stylesheets/bootstrap/_nav.scss +6 -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 +32 -31
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +3 -2
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +51 -32
- 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 +27 -14
- 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 +35 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +29 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +25 -7
- 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 +4 -3
- 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 +18 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +0 -8
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- 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,67 +1,24 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap modal.js v4.3
|
|
3
|
-
* Copyright 2011-
|
|
4
|
-
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/
|
|
2
|
+
* Bootstrap modal.js v4.5.3 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
7
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
|
8
8
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
|
9
|
-
(global = global || self, global.Modal = factory(global.jQuery, global.Util));
|
|
10
|
-
}(this, function ($, Util) { 'use strict';
|
|
11
|
-
|
|
12
|
-
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
13
|
-
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
14
|
-
|
|
15
|
-
function _defineProperties(target, props) {
|
|
16
|
-
for (var i = 0; i < props.length; i++) {
|
|
17
|
-
var descriptor = props[i];
|
|
18
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
19
|
-
descriptor.configurable = true;
|
|
20
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
21
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
26
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
27
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
-
return Constructor;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function _defineProperty(obj, key, value) {
|
|
32
|
-
if (key in obj) {
|
|
33
|
-
Object.defineProperty(obj, key, {
|
|
34
|
-
value: value,
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true
|
|
38
|
-
});
|
|
39
|
-
} else {
|
|
40
|
-
obj[key] = value;
|
|
41
|
-
}
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.jQuery, global.Util));
|
|
10
|
+
}(this, (function ($, Util) { 'use strict';
|
|
42
11
|
|
|
43
|
-
|
|
44
|
-
}
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
45
13
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
49
|
-
var ownKeys = Object.keys(source);
|
|
14
|
+
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
|
15
|
+
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
|
|
50
16
|
|
|
51
|
-
|
|
52
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
53
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
ownKeys.forEach(function (key) {
|
|
58
|
-
_defineProperty(target, key, source[key]);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
17
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
61
18
|
|
|
62
|
-
|
|
63
|
-
}
|
|
19
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
64
20
|
|
|
21
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
65
22
|
/**
|
|
66
23
|
* ------------------------------------------------------------------------
|
|
67
24
|
* Constants
|
|
@@ -69,11 +26,11 @@
|
|
|
69
26
|
*/
|
|
70
27
|
|
|
71
28
|
var NAME = 'modal';
|
|
72
|
-
var VERSION = '4.3
|
|
29
|
+
var VERSION = '4.5.3';
|
|
73
30
|
var DATA_KEY = 'bs.modal';
|
|
74
31
|
var EVENT_KEY = "." + DATA_KEY;
|
|
75
32
|
var DATA_API_KEY = '.data-api';
|
|
76
|
-
var JQUERY_NO_CONFLICT =
|
|
33
|
+
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
|
|
77
34
|
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
|
78
35
|
|
|
79
36
|
var Default = {
|
|
@@ -88,49 +45,42 @@
|
|
|
88
45
|
focus: 'boolean',
|
|
89
46
|
show: 'boolean'
|
|
90
47
|
};
|
|
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
|
-
};
|
|
48
|
+
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
49
|
+
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
|
|
50
|
+
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
|
|
51
|
+
var EVENT_SHOW = "show" + EVENT_KEY;
|
|
52
|
+
var EVENT_SHOWN = "shown" + EVENT_KEY;
|
|
53
|
+
var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
|
|
54
|
+
var EVENT_RESIZE = "resize" + EVENT_KEY;
|
|
55
|
+
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
|
|
56
|
+
var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
|
|
57
|
+
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
|
|
58
|
+
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
|
|
59
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
60
|
+
var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
|
|
61
|
+
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
|
|
62
|
+
var CLASS_NAME_BACKDROP = 'modal-backdrop';
|
|
63
|
+
var CLASS_NAME_OPEN = 'modal-open';
|
|
64
|
+
var CLASS_NAME_FADE = 'fade';
|
|
65
|
+
var CLASS_NAME_SHOW = 'show';
|
|
66
|
+
var CLASS_NAME_STATIC = 'modal-static';
|
|
67
|
+
var SELECTOR_DIALOG = '.modal-dialog';
|
|
68
|
+
var SELECTOR_MODAL_BODY = '.modal-body';
|
|
69
|
+
var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
|
|
70
|
+
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
|
|
71
|
+
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
|
|
72
|
+
var SELECTOR_STICKY_CONTENT = '.sticky-top';
|
|
73
|
+
/**
|
|
74
|
+
* ------------------------------------------------------------------------
|
|
75
|
+
* Class Definition
|
|
76
|
+
* ------------------------------------------------------------------------
|
|
77
|
+
*/
|
|
126
78
|
|
|
127
|
-
var Modal =
|
|
128
|
-
/*#__PURE__*/
|
|
129
|
-
function () {
|
|
79
|
+
var Modal = /*#__PURE__*/function () {
|
|
130
80
|
function Modal(element, config) {
|
|
131
81
|
this._config = this._getConfig(config);
|
|
132
82
|
this._element = element;
|
|
133
|
-
this._dialog = element.querySelector(
|
|
83
|
+
this._dialog = element.querySelector(SELECTOR_DIALOG);
|
|
134
84
|
this._backdrop = null;
|
|
135
85
|
this._isShown = false;
|
|
136
86
|
this._isBodyOverflowing = false;
|
|
@@ -154,14 +104,14 @@
|
|
|
154
104
|
return;
|
|
155
105
|
}
|
|
156
106
|
|
|
157
|
-
if ($(this._element).hasClass(
|
|
107
|
+
if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {
|
|
158
108
|
this._isTransitioning = true;
|
|
159
109
|
}
|
|
160
110
|
|
|
161
|
-
var showEvent =
|
|
111
|
+
var showEvent = $__default['default'].Event(EVENT_SHOW, {
|
|
162
112
|
relatedTarget: relatedTarget
|
|
163
113
|
});
|
|
164
|
-
$(this._element).trigger(showEvent);
|
|
114
|
+
$__default['default'](this._element).trigger(showEvent);
|
|
165
115
|
|
|
166
116
|
if (this._isShown || showEvent.isDefaultPrevented()) {
|
|
167
117
|
return;
|
|
@@ -179,12 +129,12 @@
|
|
|
179
129
|
|
|
180
130
|
this._setResizeEvent();
|
|
181
131
|
|
|
182
|
-
$(this._element).on(
|
|
132
|
+
$__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
|
|
183
133
|
return _this.hide(event);
|
|
184
134
|
});
|
|
185
|
-
$(this._dialog).on(
|
|
186
|
-
$(_this._element).one(
|
|
187
|
-
if ($(event.target).is(_this._element)) {
|
|
135
|
+
$__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {
|
|
136
|
+
$__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {
|
|
137
|
+
if ($__default['default'](event.target).is(_this._element)) {
|
|
188
138
|
_this._ignoreBackdropClick = true;
|
|
189
139
|
}
|
|
190
140
|
});
|
|
@@ -206,15 +156,15 @@
|
|
|
206
156
|
return;
|
|
207
157
|
}
|
|
208
158
|
|
|
209
|
-
var hideEvent =
|
|
210
|
-
$(this._element).trigger(hideEvent);
|
|
159
|
+
var hideEvent = $__default['default'].Event(EVENT_HIDE);
|
|
160
|
+
$__default['default'](this._element).trigger(hideEvent);
|
|
211
161
|
|
|
212
162
|
if (!this._isShown || hideEvent.isDefaultPrevented()) {
|
|
213
163
|
return;
|
|
214
164
|
}
|
|
215
165
|
|
|
216
166
|
this._isShown = false;
|
|
217
|
-
var transition = $(this._element).hasClass(
|
|
167
|
+
var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);
|
|
218
168
|
|
|
219
169
|
if (transition) {
|
|
220
170
|
this._isTransitioning = true;
|
|
@@ -224,14 +174,14 @@
|
|
|
224
174
|
|
|
225
175
|
this._setResizeEvent();
|
|
226
176
|
|
|
227
|
-
$(document).off(
|
|
228
|
-
$(this._element).removeClass(
|
|
229
|
-
$(this._element).off(
|
|
230
|
-
$(this._dialog).off(
|
|
177
|
+
$__default['default'](document).off(EVENT_FOCUSIN);
|
|
178
|
+
$__default['default'](this._element).removeClass(CLASS_NAME_SHOW);
|
|
179
|
+
$__default['default'](this._element).off(EVENT_CLICK_DISMISS);
|
|
180
|
+
$__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);
|
|
231
181
|
|
|
232
182
|
if (transition) {
|
|
233
|
-
var transitionDuration =
|
|
234
|
-
$(this._element).one(
|
|
183
|
+
var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
|
|
184
|
+
$__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function (event) {
|
|
235
185
|
return _this2._hideModal(event);
|
|
236
186
|
}).emulateTransitionEnd(transitionDuration);
|
|
237
187
|
} else {
|
|
@@ -241,16 +191,16 @@
|
|
|
241
191
|
|
|
242
192
|
_proto.dispose = function dispose() {
|
|
243
193
|
[window, this._element, this._dialog].forEach(function (htmlElement) {
|
|
244
|
-
return $(htmlElement).off(EVENT_KEY);
|
|
194
|
+
return $__default['default'](htmlElement).off(EVENT_KEY);
|
|
245
195
|
});
|
|
246
196
|
/**
|
|
247
|
-
* `document` has 2 events `
|
|
197
|
+
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
|
|
248
198
|
* Do not move `document` in `htmlElements` array
|
|
249
|
-
* It will remove `
|
|
199
|
+
* It will remove `EVENT_CLICK_DATA_API` event that should remain
|
|
250
200
|
*/
|
|
251
201
|
|
|
252
|
-
$(document).off(
|
|
253
|
-
|
|
202
|
+
$__default['default'](document).off(EVENT_FOCUSIN);
|
|
203
|
+
$__default['default'].removeData(this._element, DATA_KEY);
|
|
254
204
|
this._config = null;
|
|
255
205
|
this._element = null;
|
|
256
206
|
this._dialog = null;
|
|
@@ -268,15 +218,53 @@
|
|
|
268
218
|
;
|
|
269
219
|
|
|
270
220
|
_proto._getConfig = function _getConfig(config) {
|
|
271
|
-
config =
|
|
272
|
-
|
|
221
|
+
config = _extends({}, Default, config);
|
|
222
|
+
Util__default['default'].typeCheckConfig(NAME, config, DefaultType);
|
|
273
223
|
return config;
|
|
274
224
|
};
|
|
275
225
|
|
|
276
|
-
_proto.
|
|
226
|
+
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
|
|
277
227
|
var _this3 = this;
|
|
278
228
|
|
|
279
|
-
|
|
229
|
+
if (this._config.backdrop === 'static') {
|
|
230
|
+
var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);
|
|
231
|
+
$__default['default'](this._element).trigger(hideEventPrevented);
|
|
232
|
+
|
|
233
|
+
if (hideEventPrevented.isDefaultPrevented()) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
|
238
|
+
|
|
239
|
+
if (!isModalOverflowing) {
|
|
240
|
+
this._element.style.overflowY = 'hidden';
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
this._element.classList.add(CLASS_NAME_STATIC);
|
|
244
|
+
|
|
245
|
+
var modalTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog);
|
|
246
|
+
$__default['default'](this._element).off(Util__default['default'].TRANSITION_END);
|
|
247
|
+
$__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function () {
|
|
248
|
+
_this3._element.classList.remove(CLASS_NAME_STATIC);
|
|
249
|
+
|
|
250
|
+
if (!isModalOverflowing) {
|
|
251
|
+
$__default['default'](_this3._element).one(Util__default['default'].TRANSITION_END, function () {
|
|
252
|
+
_this3._element.style.overflowY = '';
|
|
253
|
+
}).emulateTransitionEnd(_this3._element, modalTransitionDuration);
|
|
254
|
+
}
|
|
255
|
+
}).emulateTransitionEnd(modalTransitionDuration);
|
|
256
|
+
|
|
257
|
+
this._element.focus();
|
|
258
|
+
} else {
|
|
259
|
+
this.hide();
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
_proto._showElement = function _showElement(relatedTarget) {
|
|
264
|
+
var _this4 = this;
|
|
265
|
+
|
|
266
|
+
var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);
|
|
267
|
+
var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;
|
|
280
268
|
|
|
281
269
|
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
|
282
270
|
// Don't move modal's DOM position
|
|
@@ -289,84 +277,88 @@
|
|
|
289
277
|
|
|
290
278
|
this._element.setAttribute('aria-modal', true);
|
|
291
279
|
|
|
292
|
-
|
|
293
|
-
|
|
280
|
+
this._element.setAttribute('role', 'dialog');
|
|
281
|
+
|
|
282
|
+
if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {
|
|
283
|
+
modalBody.scrollTop = 0;
|
|
294
284
|
} else {
|
|
295
285
|
this._element.scrollTop = 0;
|
|
296
286
|
}
|
|
297
287
|
|
|
298
288
|
if (transition) {
|
|
299
|
-
|
|
289
|
+
Util__default['default'].reflow(this._element);
|
|
300
290
|
}
|
|
301
291
|
|
|
302
|
-
$(this._element).addClass(
|
|
292
|
+
$__default['default'](this._element).addClass(CLASS_NAME_SHOW);
|
|
303
293
|
|
|
304
294
|
if (this._config.focus) {
|
|
305
295
|
this._enforceFocus();
|
|
306
296
|
}
|
|
307
297
|
|
|
308
|
-
var shownEvent =
|
|
298
|
+
var shownEvent = $__default['default'].Event(EVENT_SHOWN, {
|
|
309
299
|
relatedTarget: relatedTarget
|
|
310
300
|
});
|
|
311
301
|
|
|
312
302
|
var transitionComplete = function transitionComplete() {
|
|
313
|
-
if (
|
|
314
|
-
|
|
303
|
+
if (_this4._config.focus) {
|
|
304
|
+
_this4._element.focus();
|
|
315
305
|
}
|
|
316
306
|
|
|
317
|
-
|
|
318
|
-
$(
|
|
307
|
+
_this4._isTransitioning = false;
|
|
308
|
+
$__default['default'](_this4._element).trigger(shownEvent);
|
|
319
309
|
};
|
|
320
310
|
|
|
321
311
|
if (transition) {
|
|
322
|
-
var transitionDuration =
|
|
323
|
-
$(this._dialog).one(
|
|
312
|
+
var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog);
|
|
313
|
+
$__default['default'](this._dialog).one(Util__default['default'].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
|
|
324
314
|
} else {
|
|
325
315
|
transitionComplete();
|
|
326
316
|
}
|
|
327
317
|
};
|
|
328
318
|
|
|
329
319
|
_proto._enforceFocus = function _enforceFocus() {
|
|
330
|
-
var
|
|
320
|
+
var _this5 = this;
|
|
331
321
|
|
|
332
|
-
$(document).off(
|
|
333
|
-
.on(
|
|
334
|
-
if (document !== event.target &&
|
|
335
|
-
|
|
322
|
+
$__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop
|
|
323
|
+
.on(EVENT_FOCUSIN, function (event) {
|
|
324
|
+
if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {
|
|
325
|
+
_this5._element.focus();
|
|
336
326
|
}
|
|
337
327
|
});
|
|
338
328
|
};
|
|
339
329
|
|
|
340
330
|
_proto._setEscapeEvent = function _setEscapeEvent() {
|
|
341
|
-
var
|
|
331
|
+
var _this6 = this;
|
|
342
332
|
|
|
343
|
-
if (this._isShown
|
|
344
|
-
$(this._element).on(
|
|
345
|
-
if (event.which === ESCAPE_KEYCODE) {
|
|
333
|
+
if (this._isShown) {
|
|
334
|
+
$__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {
|
|
335
|
+
if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
|
|
346
336
|
event.preventDefault();
|
|
347
337
|
|
|
348
|
-
|
|
338
|
+
_this6.hide();
|
|
339
|
+
} else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {
|
|
340
|
+
_this6._triggerBackdropTransition();
|
|
349
341
|
}
|
|
350
342
|
});
|
|
351
343
|
} else if (!this._isShown) {
|
|
352
|
-
$(this._element).off(
|
|
344
|
+
$__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);
|
|
353
345
|
}
|
|
354
346
|
};
|
|
355
347
|
|
|
356
348
|
_proto._setResizeEvent = function _setResizeEvent() {
|
|
357
|
-
var
|
|
349
|
+
var _this7 = this;
|
|
358
350
|
|
|
359
351
|
if (this._isShown) {
|
|
360
|
-
$(window).on(
|
|
361
|
-
return
|
|
352
|
+
$__default['default'](window).on(EVENT_RESIZE, function (event) {
|
|
353
|
+
return _this7.handleUpdate(event);
|
|
362
354
|
});
|
|
363
355
|
} else {
|
|
364
|
-
$(window).off(
|
|
356
|
+
$__default['default'](window).off(EVENT_RESIZE);
|
|
365
357
|
}
|
|
366
358
|
};
|
|
367
359
|
|
|
368
360
|
_proto._hideModal = function _hideModal() {
|
|
369
|
-
var
|
|
361
|
+
var _this8 = this;
|
|
370
362
|
|
|
371
363
|
this._element.style.display = 'none';
|
|
372
364
|
|
|
@@ -374,43 +366,45 @@
|
|
|
374
366
|
|
|
375
367
|
this._element.removeAttribute('aria-modal');
|
|
376
368
|
|
|
369
|
+
this._element.removeAttribute('role');
|
|
370
|
+
|
|
377
371
|
this._isTransitioning = false;
|
|
378
372
|
|
|
379
373
|
this._showBackdrop(function () {
|
|
380
|
-
$(document.body).removeClass(
|
|
374
|
+
$__default['default'](document.body).removeClass(CLASS_NAME_OPEN);
|
|
381
375
|
|
|
382
|
-
|
|
376
|
+
_this8._resetAdjustments();
|
|
383
377
|
|
|
384
|
-
|
|
378
|
+
_this8._resetScrollbar();
|
|
385
379
|
|
|
386
|
-
$(
|
|
380
|
+
$__default['default'](_this8._element).trigger(EVENT_HIDDEN);
|
|
387
381
|
});
|
|
388
382
|
};
|
|
389
383
|
|
|
390
384
|
_proto._removeBackdrop = function _removeBackdrop() {
|
|
391
385
|
if (this._backdrop) {
|
|
392
|
-
$(this._backdrop).remove();
|
|
386
|
+
$__default['default'](this._backdrop).remove();
|
|
393
387
|
this._backdrop = null;
|
|
394
388
|
}
|
|
395
389
|
};
|
|
396
390
|
|
|
397
391
|
_proto._showBackdrop = function _showBackdrop(callback) {
|
|
398
|
-
var
|
|
392
|
+
var _this9 = this;
|
|
399
393
|
|
|
400
|
-
var animate = $(this._element).hasClass(
|
|
394
|
+
var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
|
|
401
395
|
|
|
402
396
|
if (this._isShown && this._config.backdrop) {
|
|
403
397
|
this._backdrop = document.createElement('div');
|
|
404
|
-
this._backdrop.className =
|
|
398
|
+
this._backdrop.className = CLASS_NAME_BACKDROP;
|
|
405
399
|
|
|
406
400
|
if (animate) {
|
|
407
401
|
this._backdrop.classList.add(animate);
|
|
408
402
|
}
|
|
409
403
|
|
|
410
|
-
$(this._backdrop).appendTo(document.body);
|
|
411
|
-
$(this._element).on(
|
|
412
|
-
if (
|
|
413
|
-
|
|
404
|
+
$__default['default'](this._backdrop).appendTo(document.body);
|
|
405
|
+
$__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {
|
|
406
|
+
if (_this9._ignoreBackdropClick) {
|
|
407
|
+
_this9._ignoreBackdropClick = false;
|
|
414
408
|
return;
|
|
415
409
|
}
|
|
416
410
|
|
|
@@ -418,18 +412,14 @@
|
|
|
418
412
|
return;
|
|
419
413
|
}
|
|
420
414
|
|
|
421
|
-
|
|
422
|
-
_this8._element.focus();
|
|
423
|
-
} else {
|
|
424
|
-
_this8.hide();
|
|
425
|
-
}
|
|
415
|
+
_this9._triggerBackdropTransition();
|
|
426
416
|
});
|
|
427
417
|
|
|
428
418
|
if (animate) {
|
|
429
|
-
|
|
419
|
+
Util__default['default'].reflow(this._backdrop);
|
|
430
420
|
}
|
|
431
421
|
|
|
432
|
-
$(this._backdrop).addClass(
|
|
422
|
+
$__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW);
|
|
433
423
|
|
|
434
424
|
if (!callback) {
|
|
435
425
|
return;
|
|
@@ -440,23 +430,23 @@
|
|
|
440
430
|
return;
|
|
441
431
|
}
|
|
442
432
|
|
|
443
|
-
var backdropTransitionDuration =
|
|
444
|
-
$(this._backdrop).one(
|
|
433
|
+
var backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);
|
|
434
|
+
$__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
|
|
445
435
|
} else if (!this._isShown && this._backdrop) {
|
|
446
|
-
$(this._backdrop).removeClass(
|
|
436
|
+
$__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW);
|
|
447
437
|
|
|
448
438
|
var callbackRemove = function callbackRemove() {
|
|
449
|
-
|
|
439
|
+
_this9._removeBackdrop();
|
|
450
440
|
|
|
451
441
|
if (callback) {
|
|
452
442
|
callback();
|
|
453
443
|
}
|
|
454
444
|
};
|
|
455
445
|
|
|
456
|
-
if ($(this._element).hasClass(
|
|
457
|
-
var _backdropTransitionDuration =
|
|
446
|
+
if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {
|
|
447
|
+
var _backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);
|
|
458
448
|
|
|
459
|
-
$(this._backdrop).one(
|
|
449
|
+
$__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
|
|
460
450
|
} else {
|
|
461
451
|
callbackRemove();
|
|
462
452
|
}
|
|
@@ -488,66 +478,66 @@
|
|
|
488
478
|
|
|
489
479
|
_proto._checkScrollbar = function _checkScrollbar() {
|
|
490
480
|
var rect = document.body.getBoundingClientRect();
|
|
491
|
-
this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
|
|
481
|
+
this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
|
|
492
482
|
this._scrollbarWidth = this._getScrollbarWidth();
|
|
493
483
|
};
|
|
494
484
|
|
|
495
485
|
_proto._setScrollbar = function _setScrollbar() {
|
|
496
|
-
var
|
|
486
|
+
var _this10 = this;
|
|
497
487
|
|
|
498
488
|
if (this._isBodyOverflowing) {
|
|
499
489
|
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
|
|
500
490
|
// 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(
|
|
491
|
+
var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
|
|
492
|
+
var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding
|
|
503
493
|
|
|
504
|
-
$(fixedContent).each(function (index, element) {
|
|
494
|
+
$__default['default'](fixedContent).each(function (index, element) {
|
|
505
495
|
var actualPadding = element.style.paddingRight;
|
|
506
|
-
var calculatedPadding = $(element).css('padding-right');
|
|
507
|
-
$(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) +
|
|
496
|
+
var calculatedPadding = $__default['default'](element).css('padding-right');
|
|
497
|
+
$__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px");
|
|
508
498
|
}); // Adjust sticky content margin
|
|
509
499
|
|
|
510
|
-
$(stickyContent).each(function (index, element) {
|
|
500
|
+
$__default['default'](stickyContent).each(function (index, element) {
|
|
511
501
|
var actualMargin = element.style.marginRight;
|
|
512
|
-
var calculatedMargin = $(element).css('margin-right');
|
|
513
|
-
$(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) -
|
|
502
|
+
var calculatedMargin = $__default['default'](element).css('margin-right');
|
|
503
|
+
$__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px");
|
|
514
504
|
}); // Adjust body padding
|
|
515
505
|
|
|
516
506
|
var actualPadding = document.body.style.paddingRight;
|
|
517
|
-
var calculatedPadding = $(document.body).css('padding-right');
|
|
518
|
-
$(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
|
|
507
|
+
var calculatedPadding = $__default['default'](document.body).css('padding-right');
|
|
508
|
+
$__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
|
|
519
509
|
}
|
|
520
510
|
|
|
521
|
-
$(document.body).addClass(
|
|
511
|
+
$__default['default'](document.body).addClass(CLASS_NAME_OPEN);
|
|
522
512
|
};
|
|
523
513
|
|
|
524
514
|
_proto._resetScrollbar = function _resetScrollbar() {
|
|
525
515
|
// Restore fixed content padding
|
|
526
|
-
var fixedContent = [].slice.call(document.querySelectorAll(
|
|
527
|
-
$(fixedContent).each(function (index, element) {
|
|
528
|
-
var padding = $(element).data('padding-right');
|
|
529
|
-
$(element).removeData('padding-right');
|
|
516
|
+
var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));
|
|
517
|
+
$__default['default'](fixedContent).each(function (index, element) {
|
|
518
|
+
var padding = $__default['default'](element).data('padding-right');
|
|
519
|
+
$__default['default'](element).removeData('padding-right');
|
|
530
520
|
element.style.paddingRight = padding ? padding : '';
|
|
531
521
|
}); // Restore sticky content
|
|
532
522
|
|
|
533
|
-
var elements = [].slice.call(document.querySelectorAll("" +
|
|
534
|
-
$(elements).each(function (index, element) {
|
|
535
|
-
var margin = $(element).data('margin-right');
|
|
523
|
+
var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT));
|
|
524
|
+
$__default['default'](elements).each(function (index, element) {
|
|
525
|
+
var margin = $__default['default'](element).data('margin-right');
|
|
536
526
|
|
|
537
527
|
if (typeof margin !== 'undefined') {
|
|
538
|
-
$(element).css('margin-right', margin).removeData('margin-right');
|
|
528
|
+
$__default['default'](element).css('margin-right', margin).removeData('margin-right');
|
|
539
529
|
}
|
|
540
530
|
}); // Restore body padding
|
|
541
531
|
|
|
542
|
-
var padding = $(document.body).data('padding-right');
|
|
543
|
-
$(document.body).removeData('padding-right');
|
|
532
|
+
var padding = $__default['default'](document.body).data('padding-right');
|
|
533
|
+
$__default['default'](document.body).removeData('padding-right');
|
|
544
534
|
document.body.style.paddingRight = padding ? padding : '';
|
|
545
535
|
};
|
|
546
536
|
|
|
547
537
|
_proto._getScrollbarWidth = function _getScrollbarWidth() {
|
|
548
538
|
// thx d.walsh
|
|
549
539
|
var scrollDiv = document.createElement('div');
|
|
550
|
-
scrollDiv.className =
|
|
540
|
+
scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
|
|
551
541
|
document.body.appendChild(scrollDiv);
|
|
552
542
|
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
|
553
543
|
document.body.removeChild(scrollDiv);
|
|
@@ -557,13 +547,13 @@
|
|
|
557
547
|
|
|
558
548
|
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
|
|
559
549
|
return this.each(function () {
|
|
560
|
-
var data = $(this).data(DATA_KEY);
|
|
550
|
+
var data = $__default['default'](this).data(DATA_KEY);
|
|
561
551
|
|
|
562
|
-
var _config =
|
|
552
|
+
var _config = _extends({}, Default, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});
|
|
563
553
|
|
|
564
554
|
if (!data) {
|
|
565
555
|
data = new Modal(this, _config);
|
|
566
|
-
$(this).data(DATA_KEY, data);
|
|
556
|
+
$__default['default'](this).data(DATA_KEY, data);
|
|
567
557
|
}
|
|
568
558
|
|
|
569
559
|
if (typeof config === 'string') {
|
|
@@ -599,36 +589,36 @@
|
|
|
599
589
|
*/
|
|
600
590
|
|
|
601
591
|
|
|
602
|
-
$(document).on(
|
|
603
|
-
var
|
|
592
|
+
$__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
593
|
+
var _this11 = this;
|
|
604
594
|
|
|
605
595
|
var target;
|
|
606
|
-
var selector =
|
|
596
|
+
var selector = Util__default['default'].getSelectorFromElement(this);
|
|
607
597
|
|
|
608
598
|
if (selector) {
|
|
609
599
|
target = document.querySelector(selector);
|
|
610
600
|
}
|
|
611
601
|
|
|
612
|
-
var config = $(target).data(DATA_KEY) ? 'toggle' :
|
|
602
|
+
var config = $__default['default'](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());
|
|
613
603
|
|
|
614
604
|
if (this.tagName === 'A' || this.tagName === 'AREA') {
|
|
615
605
|
event.preventDefault();
|
|
616
606
|
}
|
|
617
607
|
|
|
618
|
-
var $target = $(target).one(
|
|
608
|
+
var $target = $__default['default'](target).one(EVENT_SHOW, function (showEvent) {
|
|
619
609
|
if (showEvent.isDefaultPrevented()) {
|
|
620
610
|
// Only register focus restorer if modal will actually get shown
|
|
621
611
|
return;
|
|
622
612
|
}
|
|
623
613
|
|
|
624
|
-
$target.one(
|
|
625
|
-
if ($(
|
|
626
|
-
|
|
614
|
+
$target.one(EVENT_HIDDEN, function () {
|
|
615
|
+
if ($__default['default'](_this11).is(':visible')) {
|
|
616
|
+
_this11.focus();
|
|
627
617
|
}
|
|
628
618
|
});
|
|
629
619
|
});
|
|
630
620
|
|
|
631
|
-
Modal._jQueryInterface.call($(target), config, this);
|
|
621
|
+
Modal._jQueryInterface.call($__default['default'](target), config, this);
|
|
632
622
|
});
|
|
633
623
|
/**
|
|
634
624
|
* ------------------------------------------------------------------------
|
|
@@ -636,14 +626,14 @@
|
|
|
636
626
|
* ------------------------------------------------------------------------
|
|
637
627
|
*/
|
|
638
628
|
|
|
639
|
-
|
|
640
|
-
|
|
629
|
+
$__default['default'].fn[NAME] = Modal._jQueryInterface;
|
|
630
|
+
$__default['default'].fn[NAME].Constructor = Modal;
|
|
641
631
|
|
|
642
|
-
|
|
643
|
-
|
|
632
|
+
$__default['default'].fn[NAME].noConflict = function () {
|
|
633
|
+
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
644
634
|
return Modal._jQueryInterface;
|
|
645
635
|
};
|
|
646
636
|
|
|
647
637
|
return Modal;
|
|
648
638
|
|
|
649
|
-
}));
|
|
639
|
+
})));
|