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