bootstrap 4.5.2 → 5.0.0.beta1
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 +1 -1
- data/README.md +5 -2
- data/assets/javascripts/bootstrap-sprockets.js +11 -8
- data/assets/javascripts/bootstrap.js +2170 -1572
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +195 -66
- data/assets/javascripts/bootstrap/button.js +120 -136
- data/assets/javascripts/bootstrap/carousel.js +390 -184
- data/assets/javascripts/bootstrap/collapse.js +364 -133
- data/assets/javascripts/bootstrap/dom/data.js +81 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +309 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
- data/assets/javascripts/bootstrap/dropdown.js +357 -232
- data/assets/javascripts/bootstrap/modal.js +406 -211
- data/assets/javascripts/bootstrap/popover.js +82 -50
- data/assets/javascripts/bootstrap/scrollspy.js +226 -80
- data/assets/javascripts/bootstrap/tab.js +215 -77
- data/assets/javascripts/bootstrap/toast.js +239 -79
- data/assets/javascripts/bootstrap/tooltip.js +529 -258
- data/assets/stylesheets/_bootstrap-grid.scss +51 -15
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +15 -8
- data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -9
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -20
- data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
- data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
- data/assets/stylesheets/bootstrap/_card.scss +25 -96
- data/assets/stylesheets/bootstrap/_carousel.scss +54 -28
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +74 -31
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +87 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +18 -9
- data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
- data/assets/stylesheets/bootstrap/_modal.scss +41 -46
- data/assets/stylesheets/bootstrap/_nav.scss +12 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +23 -20
- data/assets/stylesheets/bootstrap/_progress.scss +3 -5
- data/assets/stylesheets/bootstrap/_reboot.scss +328 -173
- data/assets/stylesheets/bootstrap/_root.scss +5 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +14 -5
- data/assets/stylesheets/bootstrap/_tables.scss +79 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +19 -15
- data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
- data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +560 -18
- data/assets/stylesheets/bootstrap/_variables.scss +652 -459
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +151 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +68 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +9 -9
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +17 -78
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -33
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +28 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +6 -4
- metadata +33 -41
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -523
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
|
@@ -1,18 +1,153 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap modal.js
|
|
2
|
+
* Bootstrap modal.js v5.0.0-beta1 (https://getbootstrap.com/)
|
|
3
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/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.
|
|
10
|
-
}(this, (function (
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
|
|
10
|
+
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
|
|
15
|
+
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
16
|
+
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
|
|
17
|
+
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* --------------------------------------------------------------------------
|
|
21
|
+
* Bootstrap (v5.0.0-beta1): util/index.js
|
|
22
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
23
|
+
* --------------------------------------------------------------------------
|
|
24
|
+
*/
|
|
25
|
+
var MILLISECONDS_MULTIPLIER = 1000;
|
|
26
|
+
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
27
|
+
|
|
28
|
+
var toType = function toType(obj) {
|
|
29
|
+
if (obj === null || obj === undefined) {
|
|
30
|
+
return "" + obj;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var getSelector = function getSelector(element) {
|
|
37
|
+
var selector = element.getAttribute('data-bs-target');
|
|
38
|
+
|
|
39
|
+
if (!selector || selector === '#') {
|
|
40
|
+
var hrefAttr = element.getAttribute('href');
|
|
41
|
+
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return selector;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var getElementFromSelector = function getElementFromSelector(element) {
|
|
48
|
+
var selector = getSelector(element);
|
|
49
|
+
return selector ? document.querySelector(selector) : null;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
|
|
53
|
+
if (!element) {
|
|
54
|
+
return 0;
|
|
55
|
+
} // Get transition-duration of the element
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
var _window$getComputedSt = window.getComputedStyle(element),
|
|
59
|
+
transitionDuration = _window$getComputedSt.transitionDuration,
|
|
60
|
+
transitionDelay = _window$getComputedSt.transitionDelay;
|
|
61
|
+
|
|
62
|
+
var floatTransitionDuration = Number.parseFloat(transitionDuration);
|
|
63
|
+
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
|
|
64
|
+
|
|
65
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
66
|
+
return 0;
|
|
67
|
+
} // If multiple durations are defined, take the first
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
71
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
72
|
+
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var triggerTransitionEnd = function triggerTransitionEnd(element) {
|
|
76
|
+
element.dispatchEvent(new Event(TRANSITION_END));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var isElement = function isElement(obj) {
|
|
80
|
+
return (obj[0] || obj).nodeType;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
|
|
84
|
+
var called = false;
|
|
85
|
+
var durationPadding = 5;
|
|
86
|
+
var emulatedDuration = duration + durationPadding;
|
|
87
|
+
|
|
88
|
+
function listener() {
|
|
89
|
+
called = true;
|
|
90
|
+
element.removeEventListener(TRANSITION_END, listener);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
element.addEventListener(TRANSITION_END, listener);
|
|
94
|
+
setTimeout(function () {
|
|
95
|
+
if (!called) {
|
|
96
|
+
triggerTransitionEnd(element);
|
|
97
|
+
}
|
|
98
|
+
}, emulatedDuration);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
|
|
102
|
+
Object.keys(configTypes).forEach(function (property) {
|
|
103
|
+
var expectedTypes = configTypes[property];
|
|
104
|
+
var value = config[property];
|
|
105
|
+
var valueType = value && isElement(value) ? 'element' : toType(value);
|
|
106
|
+
|
|
107
|
+
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
108
|
+
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var isVisible = function isVisible(element) {
|
|
114
|
+
if (!element) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (element.style && element.parentNode && element.parentNode.style) {
|
|
119
|
+
var elementStyle = getComputedStyle(element);
|
|
120
|
+
var parentNodeStyle = getComputedStyle(element.parentNode);
|
|
121
|
+
return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return false;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var reflow = function reflow(element) {
|
|
128
|
+
return element.offsetHeight;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
var getjQuery = function getjQuery() {
|
|
132
|
+
var _window = window,
|
|
133
|
+
jQuery = _window.jQuery;
|
|
134
|
+
|
|
135
|
+
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
|
|
136
|
+
return jQuery;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return null;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
|
|
143
|
+
if (document.readyState === 'loading') {
|
|
144
|
+
document.addEventListener('DOMContentLoaded', callback);
|
|
145
|
+
} else {
|
|
146
|
+
callback();
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
var isRTL = document.documentElement.dir === 'rtl';
|
|
16
151
|
|
|
17
152
|
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); } }
|
|
18
153
|
|
|
@@ -23,25 +158,68 @@
|
|
|
23
158
|
* ------------------------------------------------------------------------
|
|
24
159
|
*/
|
|
25
160
|
|
|
161
|
+
var VERSION = '5.0.0-beta1';
|
|
162
|
+
|
|
163
|
+
var BaseComponent = /*#__PURE__*/function () {
|
|
164
|
+
function BaseComponent(element) {
|
|
165
|
+
if (!element) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
this._element = element;
|
|
170
|
+
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
var _proto = BaseComponent.prototype;
|
|
174
|
+
|
|
175
|
+
_proto.dispose = function dispose() {
|
|
176
|
+
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
|
|
177
|
+
this._element = null;
|
|
178
|
+
}
|
|
179
|
+
/** Static */
|
|
180
|
+
;
|
|
181
|
+
|
|
182
|
+
BaseComponent.getInstance = function getInstance(element) {
|
|
183
|
+
return Data__default['default'].getData(element, this.DATA_KEY);
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
_createClass(BaseComponent, null, [{
|
|
187
|
+
key: "VERSION",
|
|
188
|
+
get: function get() {
|
|
189
|
+
return VERSION;
|
|
190
|
+
}
|
|
191
|
+
}]);
|
|
192
|
+
|
|
193
|
+
return BaseComponent;
|
|
194
|
+
}();
|
|
195
|
+
|
|
196
|
+
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); }
|
|
197
|
+
|
|
198
|
+
function _defineProperties$1(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); } }
|
|
199
|
+
|
|
200
|
+
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
|
|
201
|
+
|
|
202
|
+
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
|
203
|
+
/**
|
|
204
|
+
* ------------------------------------------------------------------------
|
|
205
|
+
* Constants
|
|
206
|
+
* ------------------------------------------------------------------------
|
|
207
|
+
*/
|
|
208
|
+
|
|
26
209
|
var NAME = 'modal';
|
|
27
|
-
var VERSION = '4.5.2';
|
|
28
210
|
var DATA_KEY = 'bs.modal';
|
|
29
211
|
var EVENT_KEY = "." + DATA_KEY;
|
|
30
212
|
var DATA_API_KEY = '.data-api';
|
|
31
|
-
var
|
|
32
|
-
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
|
33
|
-
|
|
213
|
+
var ESCAPE_KEY = 'Escape';
|
|
34
214
|
var Default = {
|
|
35
215
|
backdrop: true,
|
|
36
216
|
keyboard: true,
|
|
37
|
-
focus: true
|
|
38
|
-
show: true
|
|
217
|
+
focus: true
|
|
39
218
|
};
|
|
40
219
|
var DefaultType = {
|
|
41
220
|
backdrop: '(boolean|string)',
|
|
42
221
|
keyboard: 'boolean',
|
|
43
|
-
focus: 'boolean'
|
|
44
|
-
show: 'boolean'
|
|
222
|
+
focus: 'boolean'
|
|
45
223
|
};
|
|
46
224
|
var EVENT_HIDE = "hide" + EVENT_KEY;
|
|
47
225
|
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
|
|
@@ -55,7 +233,6 @@
|
|
|
55
233
|
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
|
|
56
234
|
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
|
|
57
235
|
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
58
|
-
var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
|
|
59
236
|
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
|
|
60
237
|
var CLASS_NAME_BACKDROP = 'modal-backdrop';
|
|
61
238
|
var CLASS_NAME_OPEN = 'modal-open';
|
|
@@ -64,8 +241,8 @@
|
|
|
64
241
|
var CLASS_NAME_STATIC = 'modal-static';
|
|
65
242
|
var SELECTOR_DIALOG = '.modal-dialog';
|
|
66
243
|
var SELECTOR_MODAL_BODY = '.modal-body';
|
|
67
|
-
var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
|
|
68
|
-
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
|
|
244
|
+
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
|
|
245
|
+
var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
|
|
69
246
|
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
|
|
70
247
|
var SELECTOR_STICKY_CONTENT = '.sticky-top';
|
|
71
248
|
/**
|
|
@@ -74,17 +251,22 @@
|
|
|
74
251
|
* ------------------------------------------------------------------------
|
|
75
252
|
*/
|
|
76
253
|
|
|
77
|
-
var Modal = /*#__PURE__*/function () {
|
|
254
|
+
var Modal = /*#__PURE__*/function (_BaseComponent) {
|
|
255
|
+
_inheritsLoose(Modal, _BaseComponent);
|
|
256
|
+
|
|
78
257
|
function Modal(element, config) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
258
|
+
var _this;
|
|
259
|
+
|
|
260
|
+
_this = _BaseComponent.call(this, element) || this;
|
|
261
|
+
_this._config = _this._getConfig(config);
|
|
262
|
+
_this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
|
|
263
|
+
_this._backdrop = null;
|
|
264
|
+
_this._isShown = false;
|
|
265
|
+
_this._isBodyOverflowing = false;
|
|
266
|
+
_this._ignoreBackdropClick = false;
|
|
267
|
+
_this._isTransitioning = false;
|
|
268
|
+
_this._scrollbarWidth = 0;
|
|
269
|
+
return _this;
|
|
88
270
|
} // Getters
|
|
89
271
|
|
|
90
272
|
|
|
@@ -96,22 +278,21 @@
|
|
|
96
278
|
};
|
|
97
279
|
|
|
98
280
|
_proto.show = function show(relatedTarget) {
|
|
99
|
-
var
|
|
281
|
+
var _this2 = this;
|
|
100
282
|
|
|
101
283
|
if (this._isShown || this._isTransitioning) {
|
|
102
284
|
return;
|
|
103
285
|
}
|
|
104
286
|
|
|
105
|
-
if (
|
|
287
|
+
if (this._element.classList.contains(CLASS_NAME_FADE)) {
|
|
106
288
|
this._isTransitioning = true;
|
|
107
289
|
}
|
|
108
290
|
|
|
109
|
-
var showEvent =
|
|
291
|
+
var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
|
|
110
292
|
relatedTarget: relatedTarget
|
|
111
293
|
});
|
|
112
|
-
$(this._element).trigger(showEvent);
|
|
113
294
|
|
|
114
|
-
if (this._isShown || showEvent.
|
|
295
|
+
if (this._isShown || showEvent.defaultPrevented) {
|
|
115
296
|
return;
|
|
116
297
|
}
|
|
117
298
|
|
|
@@ -127,24 +308,24 @@
|
|
|
127
308
|
|
|
128
309
|
this._setResizeEvent();
|
|
129
310
|
|
|
130
|
-
|
|
131
|
-
return
|
|
311
|
+
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
|
|
312
|
+
return _this2.hide(event);
|
|
132
313
|
});
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (
|
|
136
|
-
|
|
314
|
+
EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
|
|
315
|
+
EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
|
|
316
|
+
if (event.target === _this2._element) {
|
|
317
|
+
_this2._ignoreBackdropClick = true;
|
|
137
318
|
}
|
|
138
319
|
});
|
|
139
320
|
});
|
|
140
321
|
|
|
141
322
|
this._showBackdrop(function () {
|
|
142
|
-
return
|
|
323
|
+
return _this2._showElement(relatedTarget);
|
|
143
324
|
});
|
|
144
325
|
};
|
|
145
326
|
|
|
146
327
|
_proto.hide = function hide(event) {
|
|
147
|
-
var
|
|
328
|
+
var _this3 = this;
|
|
148
329
|
|
|
149
330
|
if (event) {
|
|
150
331
|
event.preventDefault();
|
|
@@ -154,15 +335,15 @@
|
|
|
154
335
|
return;
|
|
155
336
|
}
|
|
156
337
|
|
|
157
|
-
var hideEvent =
|
|
158
|
-
$(this._element).trigger(hideEvent);
|
|
338
|
+
var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
|
|
159
339
|
|
|
160
|
-
if (
|
|
340
|
+
if (hideEvent.defaultPrevented) {
|
|
161
341
|
return;
|
|
162
342
|
}
|
|
163
343
|
|
|
164
344
|
this._isShown = false;
|
|
165
|
-
|
|
345
|
+
|
|
346
|
+
var transition = this._element.classList.contains(CLASS_NAME_FADE);
|
|
166
347
|
|
|
167
348
|
if (transition) {
|
|
168
349
|
this._isTransitioning = true;
|
|
@@ -172,16 +353,19 @@
|
|
|
172
353
|
|
|
173
354
|
this._setResizeEvent();
|
|
174
355
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
356
|
+
EventHandler__default['default'].off(document, EVENT_FOCUSIN);
|
|
357
|
+
|
|
358
|
+
this._element.classList.remove(CLASS_NAME_SHOW);
|
|
359
|
+
|
|
360
|
+
EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
|
|
361
|
+
EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
|
|
179
362
|
|
|
180
363
|
if (transition) {
|
|
181
|
-
var transitionDuration =
|
|
182
|
-
|
|
183
|
-
return
|
|
184
|
-
})
|
|
364
|
+
var transitionDuration = getTransitionDurationFromElement(this._element);
|
|
365
|
+
EventHandler__default['default'].one(this._element, TRANSITION_END, function (event) {
|
|
366
|
+
return _this3._hideModal(event);
|
|
367
|
+
});
|
|
368
|
+
emulateTransitionEnd(this._element, transitionDuration);
|
|
185
369
|
} else {
|
|
186
370
|
this._hideModal();
|
|
187
371
|
}
|
|
@@ -189,18 +373,19 @@
|
|
|
189
373
|
|
|
190
374
|
_proto.dispose = function dispose() {
|
|
191
375
|
[window, this._element, this._dialog].forEach(function (htmlElement) {
|
|
192
|
-
return
|
|
376
|
+
return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
|
|
193
377
|
});
|
|
378
|
+
|
|
379
|
+
_BaseComponent.prototype.dispose.call(this);
|
|
194
380
|
/**
|
|
195
381
|
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
|
|
196
382
|
* Do not move `document` in `htmlElements` array
|
|
197
383
|
* It will remove `EVENT_CLICK_DATA_API` event that should remain
|
|
198
384
|
*/
|
|
199
385
|
|
|
200
|
-
|
|
201
|
-
|
|
386
|
+
|
|
387
|
+
EventHandler__default['default'].off(document, EVENT_FOCUSIN);
|
|
202
388
|
this._config = null;
|
|
203
|
-
this._element = null;
|
|
204
389
|
this._dialog = null;
|
|
205
390
|
this._backdrop = null;
|
|
206
391
|
this._isShown = null;
|
|
@@ -217,52 +402,16 @@
|
|
|
217
402
|
|
|
218
403
|
_proto._getConfig = function _getConfig(config) {
|
|
219
404
|
config = _extends({}, Default, config);
|
|
220
|
-
|
|
405
|
+
typeCheckConfig(NAME, config, DefaultType);
|
|
221
406
|
return config;
|
|
222
407
|
};
|
|
223
408
|
|
|
224
|
-
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
|
|
225
|
-
var _this3 = this;
|
|
226
|
-
|
|
227
|
-
if (this._config.backdrop === 'static') {
|
|
228
|
-
var hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED);
|
|
229
|
-
$(this._element).trigger(hideEventPrevented);
|
|
230
|
-
|
|
231
|
-
if (hideEventPrevented.defaultPrevented) {
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
|
236
|
-
|
|
237
|
-
if (!isModalOverflowing) {
|
|
238
|
-
this._element.style.overflowY = 'hidden';
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
this._element.classList.add(CLASS_NAME_STATIC);
|
|
242
|
-
|
|
243
|
-
var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);
|
|
244
|
-
$(this._element).off(Util.TRANSITION_END);
|
|
245
|
-
$(this._element).one(Util.TRANSITION_END, function () {
|
|
246
|
-
_this3._element.classList.remove(CLASS_NAME_STATIC);
|
|
247
|
-
|
|
248
|
-
if (!isModalOverflowing) {
|
|
249
|
-
$(_this3._element).one(Util.TRANSITION_END, function () {
|
|
250
|
-
_this3._element.style.overflowY = '';
|
|
251
|
-
}).emulateTransitionEnd(_this3._element, modalTransitionDuration);
|
|
252
|
-
}
|
|
253
|
-
}).emulateTransitionEnd(modalTransitionDuration);
|
|
254
|
-
|
|
255
|
-
this._element.focus();
|
|
256
|
-
} else {
|
|
257
|
-
this.hide();
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
|
|
261
409
|
_proto._showElement = function _showElement(relatedTarget) {
|
|
262
410
|
var _this4 = this;
|
|
263
411
|
|
|
264
|
-
var transition =
|
|
265
|
-
|
|
412
|
+
var transition = this._element.classList.contains(CLASS_NAME_FADE);
|
|
413
|
+
|
|
414
|
+
var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);
|
|
266
415
|
|
|
267
416
|
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
|
268
417
|
// Don't move modal's DOM position
|
|
@@ -277,38 +426,37 @@
|
|
|
277
426
|
|
|
278
427
|
this._element.setAttribute('role', 'dialog');
|
|
279
428
|
|
|
280
|
-
|
|
429
|
+
this._element.scrollTop = 0;
|
|
430
|
+
|
|
431
|
+
if (modalBody) {
|
|
281
432
|
modalBody.scrollTop = 0;
|
|
282
|
-
} else {
|
|
283
|
-
this._element.scrollTop = 0;
|
|
284
433
|
}
|
|
285
434
|
|
|
286
435
|
if (transition) {
|
|
287
|
-
|
|
436
|
+
reflow(this._element);
|
|
288
437
|
}
|
|
289
438
|
|
|
290
|
-
|
|
439
|
+
this._element.classList.add(CLASS_NAME_SHOW);
|
|
291
440
|
|
|
292
441
|
if (this._config.focus) {
|
|
293
442
|
this._enforceFocus();
|
|
294
443
|
}
|
|
295
444
|
|
|
296
|
-
var shownEvent = $.Event(EVENT_SHOWN, {
|
|
297
|
-
relatedTarget: relatedTarget
|
|
298
|
-
});
|
|
299
|
-
|
|
300
445
|
var transitionComplete = function transitionComplete() {
|
|
301
446
|
if (_this4._config.focus) {
|
|
302
447
|
_this4._element.focus();
|
|
303
448
|
}
|
|
304
449
|
|
|
305
450
|
_this4._isTransitioning = false;
|
|
306
|
-
|
|
451
|
+
EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
|
|
452
|
+
relatedTarget: relatedTarget
|
|
453
|
+
});
|
|
307
454
|
};
|
|
308
455
|
|
|
309
456
|
if (transition) {
|
|
310
|
-
var transitionDuration =
|
|
311
|
-
|
|
457
|
+
var transitionDuration = getTransitionDurationFromElement(this._dialog);
|
|
458
|
+
EventHandler__default['default'].one(this._dialog, TRANSITION_END, transitionComplete);
|
|
459
|
+
emulateTransitionEnd(this._dialog, transitionDuration);
|
|
312
460
|
} else {
|
|
313
461
|
transitionComplete();
|
|
314
462
|
}
|
|
@@ -317,9 +465,10 @@
|
|
|
317
465
|
_proto._enforceFocus = function _enforceFocus() {
|
|
318
466
|
var _this5 = this;
|
|
319
467
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
468
|
+
EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
|
|
469
|
+
|
|
470
|
+
EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
|
|
471
|
+
if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
|
|
323
472
|
_this5._element.focus();
|
|
324
473
|
}
|
|
325
474
|
});
|
|
@@ -329,17 +478,17 @@
|
|
|
329
478
|
var _this6 = this;
|
|
330
479
|
|
|
331
480
|
if (this._isShown) {
|
|
332
|
-
|
|
333
|
-
if (_this6._config.keyboard && event.
|
|
481
|
+
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
|
|
482
|
+
if (_this6._config.keyboard && event.key === ESCAPE_KEY) {
|
|
334
483
|
event.preventDefault();
|
|
335
484
|
|
|
336
485
|
_this6.hide();
|
|
337
|
-
} else if (!_this6._config.keyboard && event.
|
|
486
|
+
} else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
|
|
338
487
|
_this6._triggerBackdropTransition();
|
|
339
488
|
}
|
|
340
489
|
});
|
|
341
|
-
} else
|
|
342
|
-
|
|
490
|
+
} else {
|
|
491
|
+
EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);
|
|
343
492
|
}
|
|
344
493
|
};
|
|
345
494
|
|
|
@@ -347,11 +496,11 @@
|
|
|
347
496
|
var _this7 = this;
|
|
348
497
|
|
|
349
498
|
if (this._isShown) {
|
|
350
|
-
|
|
351
|
-
return _this7.
|
|
499
|
+
EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
|
|
500
|
+
return _this7._adjustDialog();
|
|
352
501
|
});
|
|
353
502
|
} else {
|
|
354
|
-
|
|
503
|
+
EventHandler__default['default'].off(window, EVENT_RESIZE);
|
|
355
504
|
}
|
|
356
505
|
};
|
|
357
506
|
|
|
@@ -369,27 +518,26 @@
|
|
|
369
518
|
this._isTransitioning = false;
|
|
370
519
|
|
|
371
520
|
this._showBackdrop(function () {
|
|
372
|
-
|
|
521
|
+
document.body.classList.remove(CLASS_NAME_OPEN);
|
|
373
522
|
|
|
374
523
|
_this8._resetAdjustments();
|
|
375
524
|
|
|
376
525
|
_this8._resetScrollbar();
|
|
377
526
|
|
|
378
|
-
|
|
527
|
+
EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);
|
|
379
528
|
});
|
|
380
529
|
};
|
|
381
530
|
|
|
382
531
|
_proto._removeBackdrop = function _removeBackdrop() {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
}
|
|
532
|
+
this._backdrop.parentNode.removeChild(this._backdrop);
|
|
533
|
+
|
|
534
|
+
this._backdrop = null;
|
|
387
535
|
};
|
|
388
536
|
|
|
389
537
|
_proto._showBackdrop = function _showBackdrop(callback) {
|
|
390
538
|
var _this9 = this;
|
|
391
539
|
|
|
392
|
-
var animate =
|
|
540
|
+
var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
|
|
393
541
|
|
|
394
542
|
if (this._isShown && this._config.backdrop) {
|
|
395
543
|
this._backdrop = document.createElement('div');
|
|
@@ -399,8 +547,8 @@
|
|
|
399
547
|
this._backdrop.classList.add(animate);
|
|
400
548
|
}
|
|
401
549
|
|
|
402
|
-
|
|
403
|
-
|
|
550
|
+
document.body.appendChild(this._backdrop);
|
|
551
|
+
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
|
|
404
552
|
if (_this9._ignoreBackdropClick) {
|
|
405
553
|
_this9._ignoreBackdropClick = false;
|
|
406
554
|
return;
|
|
@@ -410,61 +558,94 @@
|
|
|
410
558
|
return;
|
|
411
559
|
}
|
|
412
560
|
|
|
413
|
-
_this9.
|
|
561
|
+
if (_this9._config.backdrop === 'static') {
|
|
562
|
+
_this9._triggerBackdropTransition();
|
|
563
|
+
} else {
|
|
564
|
+
_this9.hide();
|
|
565
|
+
}
|
|
414
566
|
});
|
|
415
567
|
|
|
416
568
|
if (animate) {
|
|
417
|
-
|
|
569
|
+
reflow(this._backdrop);
|
|
418
570
|
}
|
|
419
571
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
if (!callback) {
|
|
423
|
-
return;
|
|
424
|
-
}
|
|
572
|
+
this._backdrop.classList.add(CLASS_NAME_SHOW);
|
|
425
573
|
|
|
426
574
|
if (!animate) {
|
|
427
575
|
callback();
|
|
428
576
|
return;
|
|
429
577
|
}
|
|
430
578
|
|
|
431
|
-
var backdropTransitionDuration =
|
|
432
|
-
|
|
579
|
+
var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
|
|
580
|
+
EventHandler__default['default'].one(this._backdrop, TRANSITION_END, callback);
|
|
581
|
+
emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
|
|
433
582
|
} else if (!this._isShown && this._backdrop) {
|
|
434
|
-
|
|
583
|
+
this._backdrop.classList.remove(CLASS_NAME_SHOW);
|
|
435
584
|
|
|
436
585
|
var callbackRemove = function callbackRemove() {
|
|
437
586
|
_this9._removeBackdrop();
|
|
438
587
|
|
|
439
|
-
|
|
440
|
-
callback();
|
|
441
|
-
}
|
|
588
|
+
callback();
|
|
442
589
|
};
|
|
443
590
|
|
|
444
|
-
if (
|
|
445
|
-
var _backdropTransitionDuration =
|
|
591
|
+
if (this._element.classList.contains(CLASS_NAME_FADE)) {
|
|
592
|
+
var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
|
|
446
593
|
|
|
447
|
-
|
|
594
|
+
EventHandler__default['default'].one(this._backdrop, TRANSITION_END, callbackRemove);
|
|
595
|
+
emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
|
|
448
596
|
} else {
|
|
449
597
|
callbackRemove();
|
|
450
598
|
}
|
|
451
|
-
} else
|
|
599
|
+
} else {
|
|
452
600
|
callback();
|
|
453
601
|
}
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
|
|
605
|
+
var _this10 = this;
|
|
606
|
+
|
|
607
|
+
var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
608
|
+
|
|
609
|
+
if (hideEvent.defaultPrevented) {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
|
614
|
+
|
|
615
|
+
if (!isModalOverflowing) {
|
|
616
|
+
this._element.style.overflowY = 'hidden';
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
this._element.classList.add(CLASS_NAME_STATIC);
|
|
620
|
+
|
|
621
|
+
var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
|
|
622
|
+
EventHandler__default['default'].off(this._element, TRANSITION_END);
|
|
623
|
+
EventHandler__default['default'].one(this._element, TRANSITION_END, function () {
|
|
624
|
+
_this10._element.classList.remove(CLASS_NAME_STATIC);
|
|
625
|
+
|
|
626
|
+
if (!isModalOverflowing) {
|
|
627
|
+
EventHandler__default['default'].one(_this10._element, TRANSITION_END, function () {
|
|
628
|
+
_this10._element.style.overflowY = '';
|
|
629
|
+
});
|
|
630
|
+
emulateTransitionEnd(_this10._element, modalTransitionDuration);
|
|
631
|
+
}
|
|
632
|
+
});
|
|
633
|
+
emulateTransitionEnd(this._element, modalTransitionDuration);
|
|
634
|
+
|
|
635
|
+
this._element.focus();
|
|
454
636
|
} // ----------------------------------------------------------------------
|
|
455
637
|
// the following methods are used to handle overflowing modals
|
|
456
|
-
// todo (fat): these should probably be refactored out of modal.js
|
|
457
638
|
// ----------------------------------------------------------------------
|
|
458
639
|
;
|
|
459
640
|
|
|
460
641
|
_proto._adjustDialog = function _adjustDialog() {
|
|
461
642
|
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
|
462
643
|
|
|
463
|
-
if (!this._isBodyOverflowing && isModalOverflowing) {
|
|
644
|
+
if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
|
|
464
645
|
this._element.style.paddingLeft = this._scrollbarWidth + "px";
|
|
465
646
|
}
|
|
466
647
|
|
|
467
|
-
if (this._isBodyOverflowing && !isModalOverflowing) {
|
|
648
|
+
if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
|
|
468
649
|
this._element.style.paddingRight = this._scrollbarWidth + "px";
|
|
469
650
|
}
|
|
470
651
|
};
|
|
@@ -481,55 +662,63 @@
|
|
|
481
662
|
};
|
|
482
663
|
|
|
483
664
|
_proto._setScrollbar = function _setScrollbar() {
|
|
484
|
-
var
|
|
665
|
+
var _this11 = this;
|
|
485
666
|
|
|
486
667
|
if (this._isBodyOverflowing) {
|
|
487
668
|
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
|
|
488
669
|
// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
$(fixedContent).each(function (index, element) {
|
|
670
|
+
// Adjust fixed content padding
|
|
671
|
+
SelectorEngine__default['default'].find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
|
|
493
672
|
var actualPadding = element.style.paddingRight;
|
|
494
|
-
var calculatedPadding =
|
|
495
|
-
|
|
673
|
+
var calculatedPadding = window.getComputedStyle(element)['padding-right'];
|
|
674
|
+
Manipulator__default['default'].setDataAttribute(element, 'padding-right', actualPadding);
|
|
675
|
+
element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px";
|
|
496
676
|
}); // Adjust sticky content margin
|
|
497
677
|
|
|
498
|
-
|
|
678
|
+
SelectorEngine__default['default'].find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
|
|
499
679
|
var actualMargin = element.style.marginRight;
|
|
500
|
-
var calculatedMargin =
|
|
501
|
-
|
|
680
|
+
var calculatedMargin = window.getComputedStyle(element)['margin-right'];
|
|
681
|
+
Manipulator__default['default'].setDataAttribute(element, 'margin-right', actualMargin);
|
|
682
|
+
element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px";
|
|
502
683
|
}); // Adjust body padding
|
|
503
684
|
|
|
504
685
|
var actualPadding = document.body.style.paddingRight;
|
|
505
|
-
var calculatedPadding =
|
|
506
|
-
|
|
686
|
+
var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
|
|
687
|
+
Manipulator__default['default'].setDataAttribute(document.body, 'padding-right', actualPadding);
|
|
688
|
+
document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
|
|
507
689
|
}
|
|
508
690
|
|
|
509
|
-
|
|
691
|
+
document.body.classList.add(CLASS_NAME_OPEN);
|
|
510
692
|
};
|
|
511
693
|
|
|
512
694
|
_proto._resetScrollbar = function _resetScrollbar() {
|
|
513
695
|
// Restore fixed content padding
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
var padding = $(element).data('padding-right');
|
|
517
|
-
$(element).removeData('padding-right');
|
|
518
|
-
element.style.paddingRight = padding ? padding : '';
|
|
519
|
-
}); // Restore sticky content
|
|
696
|
+
SelectorEngine__default['default'].find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
|
|
697
|
+
var padding = Manipulator__default['default'].getDataAttribute(element, 'padding-right');
|
|
520
698
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
699
|
+
if (typeof padding !== 'undefined') {
|
|
700
|
+
Manipulator__default['default'].removeDataAttribute(element, 'padding-right');
|
|
701
|
+
element.style.paddingRight = padding;
|
|
702
|
+
}
|
|
703
|
+
}); // Restore sticky content and navbar-toggler margin
|
|
704
|
+
|
|
705
|
+
SelectorEngine__default['default'].find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
|
|
706
|
+
var margin = Manipulator__default['default'].getDataAttribute(element, 'margin-right');
|
|
524
707
|
|
|
525
708
|
if (typeof margin !== 'undefined') {
|
|
526
|
-
|
|
709
|
+
Manipulator__default['default'].removeDataAttribute(element, 'margin-right');
|
|
710
|
+
element.style.marginRight = margin;
|
|
527
711
|
}
|
|
528
712
|
}); // Restore body padding
|
|
529
713
|
|
|
530
|
-
var padding =
|
|
531
|
-
|
|
532
|
-
|
|
714
|
+
var padding = Manipulator__default['default'].getDataAttribute(document.body, 'padding-right');
|
|
715
|
+
|
|
716
|
+
if (typeof padding === 'undefined') {
|
|
717
|
+
document.body.style.paddingRight = '';
|
|
718
|
+
} else {
|
|
719
|
+
Manipulator__default['default'].removeDataAttribute(document.body, 'padding-right');
|
|
720
|
+
document.body.style.paddingRight = padding;
|
|
721
|
+
}
|
|
533
722
|
};
|
|
534
723
|
|
|
535
724
|
_proto._getScrollbarWidth = function _getScrollbarWidth() {
|
|
@@ -543,15 +732,14 @@
|
|
|
543
732
|
} // Static
|
|
544
733
|
;
|
|
545
734
|
|
|
546
|
-
Modal.
|
|
735
|
+
Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
|
|
547
736
|
return this.each(function () {
|
|
548
|
-
var data =
|
|
737
|
+
var data = Data__default['default'].getData(this, DATA_KEY);
|
|
549
738
|
|
|
550
|
-
var _config = _extends({}, Default,
|
|
739
|
+
var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});
|
|
551
740
|
|
|
552
741
|
if (!data) {
|
|
553
742
|
data = new Modal(this, _config);
|
|
554
|
-
$(this).data(DATA_KEY, data);
|
|
555
743
|
}
|
|
556
744
|
|
|
557
745
|
if (typeof config === 'string') {
|
|
@@ -560,26 +748,24 @@
|
|
|
560
748
|
}
|
|
561
749
|
|
|
562
750
|
data[config](relatedTarget);
|
|
563
|
-
} else if (_config.show) {
|
|
564
|
-
data.show(relatedTarget);
|
|
565
751
|
}
|
|
566
752
|
});
|
|
567
753
|
};
|
|
568
754
|
|
|
569
|
-
_createClass(Modal, null, [{
|
|
570
|
-
key: "
|
|
755
|
+
_createClass$1(Modal, null, [{
|
|
756
|
+
key: "Default",
|
|
571
757
|
get: function get() {
|
|
572
|
-
return
|
|
758
|
+
return Default;
|
|
573
759
|
}
|
|
574
760
|
}, {
|
|
575
|
-
key: "
|
|
761
|
+
key: "DATA_KEY",
|
|
576
762
|
get: function get() {
|
|
577
|
-
return
|
|
763
|
+
return DATA_KEY;
|
|
578
764
|
}
|
|
579
765
|
}]);
|
|
580
766
|
|
|
581
767
|
return Modal;
|
|
582
|
-
}();
|
|
768
|
+
}(BaseComponent);
|
|
583
769
|
/**
|
|
584
770
|
* ------------------------------------------------------------------------
|
|
585
771
|
* Data Api implementation
|
|
@@ -587,50 +773,59 @@
|
|
|
587
773
|
*/
|
|
588
774
|
|
|
589
775
|
|
|
590
|
-
|
|
591
|
-
var
|
|
776
|
+
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
777
|
+
var _this12 = this;
|
|
592
778
|
|
|
593
|
-
var target;
|
|
594
|
-
var selector = Util.getSelectorFromElement(this);
|
|
595
|
-
|
|
596
|
-
if (selector) {
|
|
597
|
-
target = document.querySelector(selector);
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
var config = $(target).data(DATA_KEY) ? 'toggle' : _extends({}, $(target).data(), $(this).data());
|
|
779
|
+
var target = getElementFromSelector(this);
|
|
601
780
|
|
|
602
781
|
if (this.tagName === 'A' || this.tagName === 'AREA') {
|
|
603
782
|
event.preventDefault();
|
|
604
783
|
}
|
|
605
784
|
|
|
606
|
-
|
|
607
|
-
if (showEvent.
|
|
608
|
-
//
|
|
785
|
+
EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {
|
|
786
|
+
if (showEvent.defaultPrevented) {
|
|
787
|
+
// only register focus restorer if modal will actually get shown
|
|
609
788
|
return;
|
|
610
789
|
}
|
|
611
790
|
|
|
612
|
-
|
|
613
|
-
if (
|
|
614
|
-
|
|
791
|
+
EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
|
|
792
|
+
if (isVisible(_this12)) {
|
|
793
|
+
_this12.focus();
|
|
615
794
|
}
|
|
616
795
|
});
|
|
617
796
|
});
|
|
797
|
+
var data = Data__default['default'].getData(target, DATA_KEY);
|
|
798
|
+
|
|
799
|
+
if (!data) {
|
|
800
|
+
var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
|
|
801
|
+
|
|
802
|
+
data = new Modal(target, config);
|
|
803
|
+
}
|
|
618
804
|
|
|
619
|
-
|
|
805
|
+
data.show(this);
|
|
620
806
|
});
|
|
621
807
|
/**
|
|
622
808
|
* ------------------------------------------------------------------------
|
|
623
809
|
* jQuery
|
|
624
810
|
* ------------------------------------------------------------------------
|
|
811
|
+
* add .Modal to jQuery only if jQuery is present
|
|
625
812
|
*/
|
|
626
813
|
|
|
627
|
-
|
|
628
|
-
|
|
814
|
+
onDOMContentLoaded(function () {
|
|
815
|
+
var $ = getjQuery();
|
|
816
|
+
/* istanbul ignore if */
|
|
629
817
|
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
818
|
+
if ($) {
|
|
819
|
+
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
820
|
+
$.fn[NAME] = Modal.jQueryInterface;
|
|
821
|
+
$.fn[NAME].Constructor = Modal;
|
|
822
|
+
|
|
823
|
+
$.fn[NAME].noConflict = function () {
|
|
824
|
+
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
825
|
+
return Modal.jQueryInterface;
|
|
826
|
+
};
|
|
827
|
+
}
|
|
828
|
+
});
|
|
634
829
|
|
|
635
830
|
return Modal;
|
|
636
831
|
|