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