@openeuropa/bcl-bootstrap 0.28.1 → 1.0.0
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.
- package/bootstrap-icons.svg +1 -1
- package/icons/0-circle-fill.svg +4 -0
- package/icons/0-circle.svg +4 -0
- package/icons/0-square-fill.svg +4 -0
- package/icons/0-square.svg +4 -0
- package/icons/1-circle-fill.svg +1 -1
- package/icons/amd.svg +3 -0
- package/icons/arrow-bar-left.svg +1 -1
- package/icons/arrow-bar-right.svg +1 -1
- package/icons/arrows-collapse.svg +1 -1
- package/icons/arrows-expand.svg +1 -1
- package/icons/building-add.svg +5 -0
- package/icons/building-check.svg +5 -0
- package/icons/building-dash.svg +5 -0
- package/icons/building-down.svg +5 -0
- package/icons/building-exclamation.svg +4 -0
- package/icons/building-fill-add.svg +4 -0
- package/icons/building-fill-check.svg +4 -0
- package/icons/building-fill-dash.svg +4 -0
- package/icons/building-fill-down.svg +4 -0
- package/icons/building-fill-exclamation.svg +4 -0
- package/icons/building-fill-gear.svg +4 -0
- package/icons/building-fill-lock.svg +4 -0
- package/icons/building-fill-slash.svg +4 -0
- package/icons/building-fill-up.svg +4 -0
- package/icons/building-fill-x.svg +4 -0
- package/icons/building-fill.svg +3 -0
- package/icons/building-gear.svg +4 -0
- package/icons/building-lock.svg +4 -0
- package/icons/building-slash.svg +5 -0
- package/icons/building-up.svg +5 -0
- package/icons/building-x.svg +4 -0
- package/icons/building.svg +2 -2
- package/icons/buildings-fill.svg +3 -0
- package/icons/buildings.svg +4 -0
- package/icons/bus-front-fill.svg +3 -0
- package/icons/bus-front.svg +4 -0
- package/icons/capsule-pill.svg +1 -1
- package/icons/capsule.svg +1 -1
- package/icons/car-front-fill.svg +1 -1
- package/icons/car-front.svg +1 -1
- package/icons/database-add.svg +4 -0
- package/icons/database-check.svg +4 -0
- package/icons/database-dash.svg +4 -0
- package/icons/database-down.svg +4 -0
- package/icons/database-exclamation.svg +4 -0
- package/icons/database-fill-add.svg +4 -0
- package/icons/database-fill-check.svg +4 -0
- package/icons/database-fill-dash.svg +4 -0
- package/icons/database-fill-down.svg +4 -0
- package/icons/database-fill-exclamation.svg +5 -0
- package/icons/database-fill-gear.svg +4 -0
- package/icons/database-fill-lock.svg +5 -0
- package/icons/database-fill-slash.svg +4 -0
- package/icons/database-fill-up.svg +4 -0
- package/icons/database-fill-x.svg +5 -0
- package/icons/database-fill.svg +6 -0
- package/icons/database-gear.svg +4 -0
- package/icons/database-lock.svg +4 -0
- package/icons/database-slash.svg +4 -0
- package/icons/database-up.svg +4 -0
- package/icons/database-x.svg +4 -0
- package/icons/database.svg +3 -0
- package/icons/envelope-at-fill.svg +4 -0
- package/icons/envelope-at.svg +4 -0
- package/icons/ev-front-fill.svg +3 -0
- package/icons/ev-front.svg +4 -0
- package/icons/globe-americas.svg +3 -0
- package/icons/globe-asia-australia.svg +4 -0
- package/icons/globe-central-south-asia.svg +3 -0
- package/icons/globe-europe-africa.svg +3 -0
- package/icons/heart-pulse-fill.svg +2 -1
- package/icons/heart-pulse.svg +2 -1
- package/icons/heartbreak-fill.svg +1 -1
- package/icons/heartbreak.svg +1 -1
- package/icons/house-add-fill.svg +5 -0
- package/icons/house-add.svg +4 -0
- package/icons/house-check-fill.svg +5 -0
- package/icons/house-check.svg +4 -0
- package/icons/house-dash-fill.svg +5 -0
- package/icons/house-dash.svg +4 -0
- package/icons/house-door-fill.svg +1 -1
- package/icons/house-door.svg +1 -1
- package/icons/house-down-fill.svg +5 -0
- package/icons/house-down.svg +4 -0
- package/icons/house-exclamation-fill.svg +5 -0
- package/icons/house-exclamation.svg +4 -0
- package/icons/house-fill.svg +2 -2
- package/icons/house-gear-fill.svg +5 -0
- package/icons/house-gear.svg +4 -0
- package/icons/house-lock-fill.svg +5 -0
- package/icons/house-lock.svg +4 -0
- package/icons/house-slash-fill.svg +5 -0
- package/icons/house-slash.svg +4 -0
- package/icons/house-up-fill.svg +5 -0
- package/icons/house-up.svg +4 -0
- package/icons/house-x-fill.svg +5 -0
- package/icons/house-x.svg +4 -0
- package/icons/house.svg +1 -2
- package/icons/houses-fill.svg +4 -0
- package/icons/houses.svg +3 -0
- package/icons/lungs-fill.svg +1 -1
- package/icons/nvidia.svg +3 -0
- package/icons/people-fill.svg +1 -3
- package/icons/people.svg +1 -1
- package/icons/person-add.svg +4 -0
- package/icons/person-check.svg +2 -2
- package/icons/person-dash.svg +2 -2
- package/icons/person-down.svg +4 -0
- package/icons/person-exclamation.svg +4 -0
- package/icons/person-fill-add.svg +4 -0
- package/icons/person-fill-check.svg +4 -0
- package/icons/person-fill-dash.svg +4 -0
- package/icons/person-fill-down.svg +4 -0
- package/icons/person-fill-exclamation.svg +4 -0
- package/icons/person-fill-gear.svg +3 -0
- package/icons/person-fill-lock.svg +3 -0
- package/icons/person-fill-slash.svg +3 -0
- package/icons/person-fill-up.svg +4 -0
- package/icons/person-fill-x.svg +4 -0
- package/icons/person-fill.svg +1 -1
- package/icons/person-gear.svg +3 -0
- package/icons/person-lock.svg +3 -0
- package/icons/person-slash.svg +3 -0
- package/icons/person-up.svg +4 -0
- package/icons/person-vcard-fill.svg +3 -0
- package/icons/person-vcard.svg +4 -0
- package/icons/person-x.svg +2 -2
- package/icons/person.svg +1 -1
- package/icons/prescription.svg +2 -2
- package/icons/prescription2.svg +1 -1
- package/icons/regex.svg +3 -0
- package/icons/rocket-fill.svg +4 -0
- package/icons/rocket-takeoff-fill.svg +4 -0
- package/icons/rocket-takeoff.svg +5 -0
- package/icons/rocket.svg +5 -0
- package/icons/scooter.svg +3 -0
- package/icons/sign-dead-end-fill.svg +4 -0
- package/icons/sign-dead-end.svg +4 -0
- package/icons/sign-do-not-enter-fill.svg +4 -0
- package/icons/sign-do-not-enter.svg +4 -0
- package/icons/sign-intersection-fill.svg +3 -0
- package/icons/sign-intersection-side-fill.svg +3 -0
- package/icons/sign-intersection-side.svg +4 -0
- package/icons/sign-intersection-t-fill.svg +3 -0
- package/icons/sign-intersection-t.svg +4 -0
- package/icons/sign-intersection-y-fill.svg +3 -0
- package/icons/sign-intersection-y.svg +4 -0
- package/icons/sign-intersection.svg +4 -0
- package/icons/sign-merge-left-fill.svg +3 -0
- package/icons/sign-merge-left.svg +4 -0
- package/icons/sign-merge-right-fill.svg +3 -0
- package/icons/sign-merge-right.svg +4 -0
- package/icons/sign-no-left-turn-fill.svg +4 -0
- package/icons/sign-no-left-turn.svg +3 -0
- package/icons/sign-no-parking-fill.svg +4 -0
- package/icons/sign-no-parking.svg +3 -0
- package/icons/sign-no-right-turn-fill.svg +4 -0
- package/icons/sign-no-right-turn.svg +3 -0
- package/icons/sign-railroad-fill.svg +5 -0
- package/icons/sign-railroad.svg +4 -0
- package/icons/sign-stop-fill.svg +1 -1
- package/icons/sign-stop-lights-fill.svg +1 -1
- package/icons/sign-turn-left-fill.svg +1 -1
- package/icons/sign-turn-right-fill.svg +1 -1
- package/icons/sign-turn-slight-left-fill.svg +1 -1
- package/icons/sign-turn-slight-right-fill.svg +1 -1
- package/icons/sign-yield-fill.svg +1 -1
- package/icons/sina-weibo.svg +4 -0
- package/icons/stripe.svg +3 -0
- package/icons/subscript.svg +3 -0
- package/icons/superscript.svg +3 -0
- package/icons/taxi-front-fill.svg +3 -0
- package/icons/taxi-front.svg +4 -0
- package/icons/tencent-qq.svg +4 -0
- package/icons/text-wrap.svg +3 -0
- package/icons/train-freight-front-fill.svg +1 -1
- package/icons/train-freight-front.svg +1 -1
- package/icons/train-front-fill.svg +1 -1
- package/icons/train-front.svg +1 -1
- package/icons/train-lightrail-front-fill.svg +1 -1
- package/icons/train-lightrail-front.svg +1 -1
- package/icons/trello.svg +3 -0
- package/icons/truck-front-fill.svg +1 -1
- package/icons/truck-front.svg +2 -3
- package/icons/virus.svg +1 -1
- package/icons/virus2.svg +1 -1
- package/icons/wikipedia.svg +3 -0
- package/js/dist/alert.js +14 -25
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +13 -30
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +11 -15
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +36 -120
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +27 -88
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dependency/manipulator.js +72 -0
- package/js/dist/dependency/manipulator.js.map +1 -0
- package/js/dist/dom/data.js +6 -10
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +7 -52
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +2 -15
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +2 -16
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +52 -124
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +40 -119
- package/js/dist/modal.js.map +1 -1
- package/js/dist/offcanvas.js +36 -89
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +15 -22
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy-legacy.js +216 -0
- package/js/dist/scrollspy-legacy.js.map +1 -0
- package/js/dist/scrollspy.js +42 -80
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/tab.js +40 -98
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +30 -69
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +74 -196
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +13 -40
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +5 -11
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +6 -18
- package/js/dist/util/config.js.map +1 -1
- package/js/dist/util/focustrap.js +16 -33
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +28 -75
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +7 -17
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +16 -43
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +18 -40
- package/js/dist/util/swipe.js.map +1 -1
- package/js/dist/util/template-factory.js +13 -41
- package/js/dist/util/template-factory.js.map +1 -1
- package/js/src/alert.js +1 -1
- package/js/src/base-component.js +2 -2
- package/js/src/button.js +1 -1
- package/js/src/carousel.js +1 -1
- package/js/src/collapse.js +1 -1
- package/js/src/dependency/manipulator.js +80 -0
- package/js/src/dom/data.js +1 -1
- package/js/src/dom/event-handler.js +1 -1
- package/js/src/dom/manipulator.js +1 -1
- package/js/src/dom/selector-engine.js +1 -1
- package/js/src/dropdown.js +10 -3
- package/js/src/modal.js +3 -3
- package/js/src/offcanvas.js +1 -1
- package/js/src/popover.js +1 -1
- package/js/src/scrollspy-legacy.js +294 -0
- package/js/src/scrollspy.js +1 -1
- package/js/src/tab.js +2 -4
- package/js/src/toast.js +9 -4
- package/js/src/tooltip.js +27 -48
- package/js/src/util/backdrop.js +1 -1
- package/js/src/util/component-functions.js +1 -1
- package/js/src/util/config.js +1 -1
- package/js/src/util/focustrap.js +1 -1
- package/js/src/util/index.js +1 -1
- package/js/src/util/sanitizer.js +1 -1
- package/js/src/util/scrollbar.js +1 -1
- package/js/src/util/swipe.js +1 -1
- package/js/src/util/template-factory.js +1 -1
- package/legacy/dependency/manipulator.js +80 -0
- package/legacy/scrollspy-legacy.js +294 -0
- package/package.json +6 -6
- package/scss/_buttons.scss +8 -2
- package/scss/_carousel.scss +0 -3
- package/scss/_functions.scss +1 -1
- package/scss/_toasts.scss +2 -0
- package/scss/_variables.scss +1 -1
- package/scss/bootstrap-utilities.scss +3 -0
- package/scss/mixins/_banner.scss +1 -1
- package/scss/mixins/_table-variants.scss +2 -2
package/js/dist/modal.js
CHANGED
|
@@ -4,21 +4,13 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Index, global.EventHandler, global.SelectorEngine, global.Scrollbar, global.BaseComponent, global.Backdrop, global.Focustrap, global.ComponentFunctions));
|
|
5
5
|
})(this, (function (index, EventHandler, SelectorEngine, ScrollBarHelper, BaseComponent, Backdrop, FocusTrap, componentFunctions) { 'use strict';
|
|
6
6
|
|
|
7
|
-
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
|
8
|
-
|
|
9
|
-
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
|
10
|
-
const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
|
11
|
-
const ScrollBarHelper__default = /*#__PURE__*/_interopDefaultLegacy(ScrollBarHelper);
|
|
12
|
-
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
13
|
-
const Backdrop__default = /*#__PURE__*/_interopDefaultLegacy(Backdrop);
|
|
14
|
-
const FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
|
|
15
|
-
|
|
16
7
|
/**
|
|
17
8
|
* --------------------------------------------------------------------------
|
|
18
|
-
* Bootstrap (v5.2.
|
|
9
|
+
* Bootstrap (v5.2.3): modal.js
|
|
19
10
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
20
11
|
* --------------------------------------------------------------------------
|
|
21
12
|
*/
|
|
13
|
+
|
|
22
14
|
/**
|
|
23
15
|
* Constants
|
|
24
16
|
*/
|
|
@@ -56,333 +48,262 @@
|
|
|
56
48
|
focus: 'boolean',
|
|
57
49
|
keyboard: 'boolean'
|
|
58
50
|
};
|
|
51
|
+
|
|
59
52
|
/**
|
|
60
53
|
* Class definition
|
|
61
54
|
*/
|
|
62
55
|
|
|
63
|
-
class Modal extends
|
|
56
|
+
class Modal extends BaseComponent {
|
|
64
57
|
constructor(element, config) {
|
|
65
58
|
super(element, config);
|
|
66
|
-
this._dialog =
|
|
59
|
+
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
|
|
67
60
|
this._backdrop = this._initializeBackDrop();
|
|
68
61
|
this._focustrap = this._initializeFocusTrap();
|
|
69
62
|
this._isShown = false;
|
|
70
63
|
this._isTransitioning = false;
|
|
71
|
-
this._scrollBar = new
|
|
72
|
-
|
|
64
|
+
this._scrollBar = new ScrollBarHelper();
|
|
73
65
|
this._addEventListeners();
|
|
74
|
-
}
|
|
75
|
-
|
|
66
|
+
}
|
|
76
67
|
|
|
68
|
+
// Getters
|
|
77
69
|
static get Default() {
|
|
78
70
|
return Default;
|
|
79
71
|
}
|
|
80
|
-
|
|
81
72
|
static get DefaultType() {
|
|
82
73
|
return DefaultType;
|
|
83
74
|
}
|
|
84
|
-
|
|
85
75
|
static get NAME() {
|
|
86
76
|
return NAME;
|
|
87
|
-
}
|
|
88
|
-
|
|
77
|
+
}
|
|
89
78
|
|
|
79
|
+
// Public
|
|
90
80
|
toggle(relatedTarget) {
|
|
91
81
|
return this._isShown ? this.hide() : this.show(relatedTarget);
|
|
92
82
|
}
|
|
93
|
-
|
|
94
83
|
show(relatedTarget) {
|
|
95
84
|
if (this._isShown || this._isTransitioning) {
|
|
96
85
|
return;
|
|
97
86
|
}
|
|
98
|
-
|
|
99
|
-
const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, {
|
|
87
|
+
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
|
|
100
88
|
relatedTarget
|
|
101
89
|
});
|
|
102
|
-
|
|
103
90
|
if (showEvent.defaultPrevented) {
|
|
104
91
|
return;
|
|
105
92
|
}
|
|
106
|
-
|
|
107
93
|
this._isShown = true;
|
|
108
94
|
this._isTransitioning = true;
|
|
109
|
-
|
|
110
95
|
this._scrollBar.hide();
|
|
111
|
-
|
|
112
96
|
document.body.classList.add(CLASS_NAME_OPEN);
|
|
113
|
-
|
|
114
97
|
this._adjustDialog();
|
|
115
|
-
|
|
116
98
|
this._backdrop.show(() => this._showElement(relatedTarget));
|
|
117
99
|
}
|
|
118
|
-
|
|
119
100
|
hide() {
|
|
120
101
|
if (!this._isShown || this._isTransitioning) {
|
|
121
102
|
return;
|
|
122
103
|
}
|
|
123
|
-
|
|
124
|
-
const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
|
|
125
|
-
|
|
104
|
+
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
|
|
126
105
|
if (hideEvent.defaultPrevented) {
|
|
127
106
|
return;
|
|
128
107
|
}
|
|
129
|
-
|
|
130
108
|
this._isShown = false;
|
|
131
109
|
this._isTransitioning = true;
|
|
132
|
-
|
|
133
110
|
this._focustrap.deactivate();
|
|
134
|
-
|
|
135
111
|
this._element.classList.remove(CLASS_NAME_SHOW);
|
|
136
|
-
|
|
137
112
|
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
|
|
138
113
|
}
|
|
139
|
-
|
|
140
114
|
dispose() {
|
|
141
115
|
for (const htmlElement of [window, this._dialog]) {
|
|
142
|
-
|
|
116
|
+
EventHandler.off(htmlElement, EVENT_KEY);
|
|
143
117
|
}
|
|
144
|
-
|
|
145
118
|
this._backdrop.dispose();
|
|
146
|
-
|
|
147
119
|
this._focustrap.deactivate();
|
|
148
|
-
|
|
149
120
|
super.dispose();
|
|
150
121
|
}
|
|
151
|
-
|
|
152
122
|
handleUpdate() {
|
|
153
123
|
this._adjustDialog();
|
|
154
|
-
}
|
|
155
|
-
|
|
124
|
+
}
|
|
156
125
|
|
|
126
|
+
// Private
|
|
157
127
|
_initializeBackDrop() {
|
|
158
|
-
return new
|
|
128
|
+
return new Backdrop({
|
|
159
129
|
isVisible: Boolean(this._config.backdrop),
|
|
160
130
|
// 'static' option will be translated to true, and booleans will keep their value,
|
|
161
131
|
isAnimated: this._isAnimated()
|
|
162
132
|
});
|
|
163
133
|
}
|
|
164
|
-
|
|
165
134
|
_initializeFocusTrap() {
|
|
166
|
-
return new
|
|
135
|
+
return new FocusTrap({
|
|
167
136
|
trapElement: this._element
|
|
168
137
|
});
|
|
169
138
|
}
|
|
170
|
-
|
|
171
139
|
_showElement(relatedTarget) {
|
|
172
140
|
// try to append dynamic modal
|
|
173
141
|
if (!document.body.contains(this._element)) {
|
|
174
142
|
document.body.append(this._element);
|
|
175
143
|
}
|
|
176
|
-
|
|
177
144
|
this._element.style.display = 'block';
|
|
178
|
-
|
|
179
145
|
this._element.removeAttribute('aria-hidden');
|
|
180
|
-
|
|
181
146
|
this._element.setAttribute('aria-modal', true);
|
|
182
|
-
|
|
183
147
|
this._element.setAttribute('role', 'dialog');
|
|
184
|
-
|
|
185
148
|
this._element.scrollTop = 0;
|
|
186
|
-
const modalBody =
|
|
187
|
-
|
|
149
|
+
const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
|
|
188
150
|
if (modalBody) {
|
|
189
151
|
modalBody.scrollTop = 0;
|
|
190
152
|
}
|
|
191
|
-
|
|
192
153
|
index.reflow(this._element);
|
|
193
|
-
|
|
194
154
|
this._element.classList.add(CLASS_NAME_SHOW);
|
|
195
|
-
|
|
196
155
|
const transitionComplete = () => {
|
|
197
156
|
if (this._config.focus) {
|
|
198
157
|
this._focustrap.activate();
|
|
199
158
|
}
|
|
200
|
-
|
|
201
159
|
this._isTransitioning = false;
|
|
202
|
-
|
|
160
|
+
EventHandler.trigger(this._element, EVENT_SHOWN, {
|
|
203
161
|
relatedTarget
|
|
204
162
|
});
|
|
205
163
|
};
|
|
206
|
-
|
|
207
164
|
this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
|
|
208
165
|
}
|
|
209
|
-
|
|
210
166
|
_addEventListeners() {
|
|
211
|
-
|
|
167
|
+
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
|
212
168
|
if (event.key !== ESCAPE_KEY) {
|
|
213
169
|
return;
|
|
214
170
|
}
|
|
215
|
-
|
|
216
171
|
if (this._config.keyboard) {
|
|
217
172
|
event.preventDefault();
|
|
218
173
|
this.hide();
|
|
219
174
|
return;
|
|
220
175
|
}
|
|
221
|
-
|
|
222
176
|
this._triggerBackdropTransition();
|
|
223
177
|
});
|
|
224
|
-
|
|
178
|
+
EventHandler.on(window, EVENT_RESIZE, () => {
|
|
225
179
|
if (this._isShown && !this._isTransitioning) {
|
|
226
180
|
this._adjustDialog();
|
|
227
181
|
}
|
|
228
182
|
});
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (this.
|
|
183
|
+
EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
|
|
184
|
+
// a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
|
|
185
|
+
EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
|
|
186
|
+
if (this._element !== event.target || this._element !== event2.target) {
|
|
233
187
|
return;
|
|
234
188
|
}
|
|
235
|
-
|
|
236
189
|
if (this._config.backdrop === 'static') {
|
|
237
190
|
this._triggerBackdropTransition();
|
|
238
|
-
|
|
239
191
|
return;
|
|
240
192
|
}
|
|
241
|
-
|
|
242
193
|
if (this._config.backdrop) {
|
|
243
194
|
this.hide();
|
|
244
195
|
}
|
|
245
196
|
});
|
|
246
197
|
});
|
|
247
198
|
}
|
|
248
|
-
|
|
249
199
|
_hideModal() {
|
|
250
200
|
this._element.style.display = 'none';
|
|
251
|
-
|
|
252
201
|
this._element.setAttribute('aria-hidden', true);
|
|
253
|
-
|
|
254
202
|
this._element.removeAttribute('aria-modal');
|
|
255
|
-
|
|
256
203
|
this._element.removeAttribute('role');
|
|
257
|
-
|
|
258
204
|
this._isTransitioning = false;
|
|
259
|
-
|
|
260
205
|
this._backdrop.hide(() => {
|
|
261
206
|
document.body.classList.remove(CLASS_NAME_OPEN);
|
|
262
|
-
|
|
263
207
|
this._resetAdjustments();
|
|
264
|
-
|
|
265
208
|
this._scrollBar.reset();
|
|
266
|
-
|
|
267
|
-
EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
|
|
209
|
+
EventHandler.trigger(this._element, EVENT_HIDDEN);
|
|
268
210
|
});
|
|
269
211
|
}
|
|
270
|
-
|
|
271
212
|
_isAnimated() {
|
|
272
213
|
return this._element.classList.contains(CLASS_NAME_FADE);
|
|
273
214
|
}
|
|
274
|
-
|
|
275
215
|
_triggerBackdropTransition() {
|
|
276
|
-
const hideEvent =
|
|
277
|
-
|
|
216
|
+
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
|
|
278
217
|
if (hideEvent.defaultPrevented) {
|
|
279
218
|
return;
|
|
280
219
|
}
|
|
281
|
-
|
|
282
220
|
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
|
283
|
-
const initialOverflowY = this._element.style.overflowY;
|
|
284
|
-
|
|
221
|
+
const initialOverflowY = this._element.style.overflowY;
|
|
222
|
+
// return if the following background transition hasn't yet completed
|
|
285
223
|
if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
|
|
286
224
|
return;
|
|
287
225
|
}
|
|
288
|
-
|
|
289
226
|
if (!isModalOverflowing) {
|
|
290
227
|
this._element.style.overflowY = 'hidden';
|
|
291
228
|
}
|
|
292
|
-
|
|
293
229
|
this._element.classList.add(CLASS_NAME_STATIC);
|
|
294
|
-
|
|
295
230
|
this._queueCallback(() => {
|
|
296
231
|
this._element.classList.remove(CLASS_NAME_STATIC);
|
|
297
|
-
|
|
298
232
|
this._queueCallback(() => {
|
|
299
233
|
this._element.style.overflowY = initialOverflowY;
|
|
300
234
|
}, this._dialog);
|
|
301
235
|
}, this._dialog);
|
|
302
|
-
|
|
303
236
|
this._element.focus();
|
|
304
237
|
}
|
|
238
|
+
|
|
305
239
|
/**
|
|
306
240
|
* The following methods are used to handle overflowing modals
|
|
307
241
|
*/
|
|
308
242
|
|
|
309
|
-
|
|
310
243
|
_adjustDialog() {
|
|
311
244
|
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
|
312
|
-
|
|
313
245
|
const scrollbarWidth = this._scrollBar.getWidth();
|
|
314
|
-
|
|
315
246
|
const isBodyOverflowing = scrollbarWidth > 0;
|
|
316
|
-
|
|
317
247
|
if (isBodyOverflowing && !isModalOverflowing) {
|
|
318
248
|
const property = index.isRTL() ? 'paddingLeft' : 'paddingRight';
|
|
319
249
|
this._element.style[property] = `${scrollbarWidth}px`;
|
|
320
250
|
}
|
|
321
|
-
|
|
322
251
|
if (!isBodyOverflowing && isModalOverflowing) {
|
|
323
252
|
const property = index.isRTL() ? 'paddingRight' : 'paddingLeft';
|
|
324
253
|
this._element.style[property] = `${scrollbarWidth}px`;
|
|
325
254
|
}
|
|
326
255
|
}
|
|
327
|
-
|
|
328
256
|
_resetAdjustments() {
|
|
329
257
|
this._element.style.paddingLeft = '';
|
|
330
258
|
this._element.style.paddingRight = '';
|
|
331
|
-
}
|
|
332
|
-
|
|
259
|
+
}
|
|
333
260
|
|
|
261
|
+
// Static
|
|
334
262
|
static jQueryInterface(config, relatedTarget) {
|
|
335
263
|
return this.each(function () {
|
|
336
264
|
const data = Modal.getOrCreateInstance(this, config);
|
|
337
|
-
|
|
338
265
|
if (typeof config !== 'string') {
|
|
339
266
|
return;
|
|
340
267
|
}
|
|
341
|
-
|
|
342
268
|
if (typeof data[config] === 'undefined') {
|
|
343
269
|
throw new TypeError(`No method named "${config}"`);
|
|
344
270
|
}
|
|
345
|
-
|
|
346
271
|
data[config](relatedTarget);
|
|
347
272
|
});
|
|
348
273
|
}
|
|
349
|
-
|
|
350
274
|
}
|
|
275
|
+
|
|
351
276
|
/**
|
|
352
277
|
* Data API implementation
|
|
353
278
|
*/
|
|
354
279
|
|
|
355
|
-
|
|
356
|
-
EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
280
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
357
281
|
const target = index.getElementFromSelector(this);
|
|
358
|
-
|
|
359
282
|
if (['A', 'AREA'].includes(this.tagName)) {
|
|
360
283
|
event.preventDefault();
|
|
361
284
|
}
|
|
362
|
-
|
|
363
|
-
EventHandler__default.default.one(target, EVENT_SHOW, showEvent => {
|
|
285
|
+
EventHandler.one(target, EVENT_SHOW, showEvent => {
|
|
364
286
|
if (showEvent.defaultPrevented) {
|
|
365
287
|
// only register focus restorer if modal will actually get shown
|
|
366
288
|
return;
|
|
367
289
|
}
|
|
368
|
-
|
|
369
|
-
EventHandler__default.default.one(target, EVENT_HIDDEN, () => {
|
|
290
|
+
EventHandler.one(target, EVENT_HIDDEN, () => {
|
|
370
291
|
if (index.isVisible(this)) {
|
|
371
292
|
this.focus();
|
|
372
293
|
}
|
|
373
294
|
});
|
|
374
|
-
});
|
|
375
|
-
|
|
376
|
-
const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
|
|
295
|
+
});
|
|
377
296
|
|
|
297
|
+
// avoid conflict when clicking modal toggler while another one is open
|
|
298
|
+
const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
|
|
378
299
|
if (alreadyOpen) {
|
|
379
300
|
Modal.getInstance(alreadyOpen).hide();
|
|
380
301
|
}
|
|
381
|
-
|
|
382
302
|
const data = Modal.getOrCreateInstance(target);
|
|
383
303
|
data.toggle(this);
|
|
384
304
|
});
|
|
385
305
|
componentFunctions.enableDismissTrigger(Modal);
|
|
306
|
+
|
|
386
307
|
/**
|
|
387
308
|
* jQuery
|
|
388
309
|
*/
|
package/js/dist/modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, isRTL, isVisible, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n focus: true,\n keyboard: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._isTransitioning = true\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._backdrop.show(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n this._isTransitioning = true\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY)\n }\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n event.preventDefault()\n this.hide()\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog()\n }\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n if (this._dialog.contains(event.target) || this._dialog.contains(event2.target)) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n if (this._config.backdrop) {\n this.hide()\n }\n })\n })\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const initialOverflowY = this._element.style.overflowY\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY\n }, this._dialog)\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","Default","backdrop","focus","keyboard","DefaultType","Modal","BaseComponent","constructor","element","config","_dialog","SelectorEngine","findOne","_element","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_isShown","_isTransitioning","_scrollBar","ScrollBarHelper","_addEventListeners","toggle","relatedTarget","hide","show","showEvent","EventHandler","trigger","defaultPrevented","document","body","classList","add","_adjustDialog","_showElement","hideEvent","deactivate","remove","_queueCallback","_hideModal","_isAnimated","dispose","htmlElement","window","off","handleUpdate","Backdrop","isVisible","Boolean","_config","isAnimated","FocusTrap","trapElement","contains","append","style","display","removeAttribute","setAttribute","scrollTop","modalBody","reflow","transitionComplete","activate","on","event","key","preventDefault","_triggerBackdropTransition","one","event2","target","_resetAdjustments","reset","isModalOverflowing","scrollHeight","documentElement","clientHeight","initialOverflowY","overflowY","scrollbarWidth","getWidth","isBodyOverflowing","property","isRTL","paddingLeft","paddingRight","jQueryInterface","each","data","getOrCreateInstance","TypeError","getElementFromSelector","includes","tagName","alreadyOpen","getInstance","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.js","sources":["../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin, getElementFromSelector, isRTL, isVisible, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n focus: true,\n keyboard: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._isTransitioning = true\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._backdrop.show(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n this._isTransitioning = true\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY)\n }\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n event.preventDefault()\n this.hide()\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog()\n }\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n if (this._config.backdrop) {\n this.hide()\n }\n })\n })\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const initialOverflowY = this._element.style.overflowY\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY\n }, this._dialog)\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","OPEN_SELECTOR","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","Default","backdrop","focus","keyboard","DefaultType","Modal","BaseComponent","constructor","element","config","_dialog","SelectorEngine","findOne","_element","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_isShown","_isTransitioning","_scrollBar","ScrollBarHelper","_addEventListeners","toggle","relatedTarget","hide","show","showEvent","EventHandler","trigger","defaultPrevented","document","body","classList","add","_adjustDialog","_showElement","hideEvent","deactivate","remove","_queueCallback","_hideModal","_isAnimated","dispose","htmlElement","window","off","handleUpdate","Backdrop","isVisible","Boolean","_config","isAnimated","FocusTrap","trapElement","contains","append","style","display","removeAttribute","setAttribute","scrollTop","modalBody","reflow","transitionComplete","activate","on","event","key","preventDefault","_triggerBackdropTransition","one","event2","target","_resetAdjustments","reset","isModalOverflowing","scrollHeight","documentElement","clientHeight","initialOverflowY","overflowY","scrollbarWidth","getWidth","isBodyOverflowing","property","isRTL","paddingLeft","paddingRight","jQueryInterface","each","data","getOrCreateInstance","TypeError","getElementFromSelector","includes","tagName","alreadyOpen","getInstance","enableDismissTrigger","defineJQueryPlugin"],"mappings":"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"}
|