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