bootstrap 5.2.3 → 5.3.0.alpha3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/assets/javascripts/bootstrap/alert.js +21 -32
- data/assets/javascripts/bootstrap/base-component.js +21 -38
- data/assets/javascripts/bootstrap/button.js +18 -22
- data/assets/javascripts/bootstrap/carousel.js +51 -135
- data/assets/javascripts/bootstrap/collapse.js +39 -102
- data/assets/javascripts/bootstrap/dom/data.js +8 -12
- data/assets/javascripts/bootstrap/dom/event-handler.js +18 -66
- data/assets/javascripts/bootstrap/dom/manipulator.js +4 -17
- data/assets/javascripts/bootstrap/dom/selector-engine.js +41 -24
- data/assets/javascripts/bootstrap/dropdown.js +73 -145
- data/assets/javascripts/bootstrap/modal.js +52 -133
- data/assets/javascripts/bootstrap/offcanvas.js +49 -102
- data/assets/javascripts/bootstrap/popover.js +22 -29
- data/assets/javascripts/bootstrap/scrollspy.js +51 -89
- data/assets/javascripts/bootstrap/tab.js +51 -109
- data/assets/javascripts/bootstrap/toast.js +30 -73
- data/assets/javascripts/bootstrap/tooltip.js +74 -177
- data/assets/javascripts/bootstrap/util/backdrop.js +27 -54
- data/assets/javascripts/bootstrap/util/component-functions.js +13 -19
- data/assets/javascripts/bootstrap/util/config.js +14 -27
- data/assets/javascripts/bootstrap/util/focustrap.js +19 -36
- data/assets/javascripts/bootstrap/util/index.js +42 -111
- data/assets/javascripts/bootstrap/util/sanitizer.js +13 -19
- data/assets/javascripts/bootstrap/util/scrollbar.js +23 -50
- data/assets/javascripts/bootstrap/util/swipe.js +26 -48
- data/assets/javascripts/bootstrap/util/template-factory.js +24 -52
- data/assets/javascripts/bootstrap-sprockets.js +1 -1
- data/assets/javascripts/bootstrap.js +626 -1406
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +1 -3
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -0
- data/assets/stylesheets/_bootstrap.scss +1 -0
- data/assets/stylesheets/bootstrap/_accordion.scss +9 -0
- data/assets/stylesheets/bootstrap/_alert.scss +8 -11
- data/assets/stylesheets/bootstrap/_button-group.scss +2 -2
- data/assets/stylesheets/bootstrap/_buttons.scss +3 -3
- data/assets/stylesheets/bootstrap/_card.scss +5 -0
- data/assets/stylesheets/bootstrap/_carousel.scss +20 -2
- data/assets/stylesheets/bootstrap/_close.scss +32 -9
- data/assets/stylesheets/bootstrap/_dropdown.scss +1 -0
- data/assets/stylesheets/bootstrap/_functions.scss +1 -1
- data/assets/stylesheets/bootstrap/_grid.scss +6 -0
- data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +12 -7
- data/assets/stylesheets/bootstrap/_maps.scss +120 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
- data/assets/stylesheets/bootstrap/_nav.scss +40 -3
- data/assets/stylesheets/bootstrap/_navbar.scss +13 -3
- data/assets/stylesheets/bootstrap/_offcanvas.scss +4 -2
- data/assets/stylesheets/bootstrap/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/_progress.scss +10 -1
- data/assets/stylesheets/bootstrap/_reboot.scss +3 -3
- data/assets/stylesheets/bootstrap/_root.scss +125 -10
- data/assets/stylesheets/bootstrap/_tables.scss +1 -1
- data/assets/stylesheets/bootstrap/_tooltip.scss +4 -5
- data/assets/stylesheets/bootstrap/_utilities.scss +172 -13
- data/assets/stylesheets/bootstrap/_variables-dark.scss +85 -0
- data/assets/stylesheets/bootstrap/_variables.scss +260 -151
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +21 -3
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +24 -11
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +23 -3
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +11 -2
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +1 -1
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +22 -2
- data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
- data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +4 -1
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +2 -4
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
- data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +8 -7
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +5 -1
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- data/tasks/updater/scss.rb +1 -1
- metadata +10 -6
@@ -1,29 +1,21 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap modal.js v5.
|
3
|
-
* Copyright 2011-
|
2
|
+
* Bootstrap modal.js v5.3.0-alpha3 (https://getbootstrap.com/)
|
3
|
+
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
5
5
|
*/
|
6
6
|
(function (global, factory) {
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./
|
8
|
-
typeof define === 'function' && define.amd ? define(['./
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.
|
10
|
-
})(this, (function (
|
11
|
-
|
12
|
-
const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
|
13
|
-
|
14
|
-
const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
|
15
|
-
const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
|
16
|
-
const ScrollBarHelper__default = /*#__PURE__*/_interopDefaultLegacy(ScrollBarHelper);
|
17
|
-
const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
18
|
-
const Backdrop__default = /*#__PURE__*/_interopDefaultLegacy(Backdrop);
|
19
|
-
const FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/backdrop.js'), require('./util/component-functions.js'), require('./util/focustrap.js'), require('./util/index.js'), require('./util/scrollbar.js')) :
|
8
|
+
typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/selector-engine', './util/backdrop', './util/component-functions', './util/focustrap', './util/index', './util/scrollbar'], factory) :
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.BaseComponent, global.EventHandler, global.SelectorEngine, global.Backdrop, global.ComponentFunctions, global.Focustrap, global.Index, global.Scrollbar));
|
10
|
+
})(this, (function (BaseComponent, EventHandler, SelectorEngine, Backdrop, componentFunctions_js, FocusTrap, index_js, ScrollBarHelper) { 'use strict';
|
20
11
|
|
21
12
|
/**
|
22
13
|
* --------------------------------------------------------------------------
|
23
|
-
* Bootstrap
|
14
|
+
* Bootstrap modal.js
|
24
15
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
25
16
|
* --------------------------------------------------------------------------
|
26
17
|
*/
|
18
|
+
|
27
19
|
/**
|
28
20
|
* Constants
|
29
21
|
*/
|
@@ -61,338 +53,265 @@
|
|
61
53
|
focus: 'boolean',
|
62
54
|
keyboard: 'boolean'
|
63
55
|
};
|
56
|
+
|
64
57
|
/**
|
65
58
|
* Class definition
|
66
59
|
*/
|
67
60
|
|
68
|
-
class Modal extends
|
61
|
+
class Modal extends BaseComponent {
|
69
62
|
constructor(element, config) {
|
70
63
|
super(element, config);
|
71
|
-
this._dialog =
|
64
|
+
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
|
72
65
|
this._backdrop = this._initializeBackDrop();
|
73
66
|
this._focustrap = this._initializeFocusTrap();
|
74
67
|
this._isShown = false;
|
75
68
|
this._isTransitioning = false;
|
76
|
-
this._scrollBar = new
|
77
|
-
|
69
|
+
this._scrollBar = new ScrollBarHelper();
|
78
70
|
this._addEventListeners();
|
79
|
-
}
|
80
|
-
|
71
|
+
}
|
81
72
|
|
73
|
+
// Getters
|
82
74
|
static get Default() {
|
83
75
|
return Default;
|
84
76
|
}
|
85
|
-
|
86
77
|
static get DefaultType() {
|
87
78
|
return DefaultType;
|
88
79
|
}
|
89
|
-
|
90
80
|
static get NAME() {
|
91
81
|
return NAME;
|
92
|
-
}
|
93
|
-
|
82
|
+
}
|
94
83
|
|
84
|
+
// Public
|
95
85
|
toggle(relatedTarget) {
|
96
86
|
return this._isShown ? this.hide() : this.show(relatedTarget);
|
97
87
|
}
|
98
|
-
|
99
88
|
show(relatedTarget) {
|
100
89
|
if (this._isShown || this._isTransitioning) {
|
101
90
|
return;
|
102
91
|
}
|
103
|
-
|
104
|
-
const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, {
|
92
|
+
const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
|
105
93
|
relatedTarget
|
106
94
|
});
|
107
|
-
|
108
95
|
if (showEvent.defaultPrevented) {
|
109
96
|
return;
|
110
97
|
}
|
111
|
-
|
112
98
|
this._isShown = true;
|
113
99
|
this._isTransitioning = true;
|
114
|
-
|
115
100
|
this._scrollBar.hide();
|
116
|
-
|
117
101
|
document.body.classList.add(CLASS_NAME_OPEN);
|
118
|
-
|
119
102
|
this._adjustDialog();
|
120
|
-
|
121
103
|
this._backdrop.show(() => this._showElement(relatedTarget));
|
122
104
|
}
|
123
|
-
|
124
105
|
hide() {
|
125
106
|
if (!this._isShown || this._isTransitioning) {
|
126
107
|
return;
|
127
108
|
}
|
128
|
-
|
129
|
-
const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
|
130
|
-
|
109
|
+
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
|
131
110
|
if (hideEvent.defaultPrevented) {
|
132
111
|
return;
|
133
112
|
}
|
134
|
-
|
135
113
|
this._isShown = false;
|
136
114
|
this._isTransitioning = true;
|
137
|
-
|
138
115
|
this._focustrap.deactivate();
|
139
|
-
|
140
116
|
this._element.classList.remove(CLASS_NAME_SHOW);
|
141
|
-
|
142
117
|
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
|
143
118
|
}
|
144
|
-
|
145
119
|
dispose() {
|
146
|
-
|
147
|
-
|
148
|
-
}
|
149
|
-
|
120
|
+
EventHandler.off(window, EVENT_KEY);
|
121
|
+
EventHandler.off(this._dialog, EVENT_KEY);
|
150
122
|
this._backdrop.dispose();
|
151
|
-
|
152
123
|
this._focustrap.deactivate();
|
153
|
-
|
154
124
|
super.dispose();
|
155
125
|
}
|
156
|
-
|
157
126
|
handleUpdate() {
|
158
127
|
this._adjustDialog();
|
159
|
-
}
|
160
|
-
|
128
|
+
}
|
161
129
|
|
130
|
+
// Private
|
162
131
|
_initializeBackDrop() {
|
163
|
-
return new
|
132
|
+
return new Backdrop({
|
164
133
|
isVisible: Boolean(this._config.backdrop),
|
165
134
|
// 'static' option will be translated to true, and booleans will keep their value,
|
166
135
|
isAnimated: this._isAnimated()
|
167
136
|
});
|
168
137
|
}
|
169
|
-
|
170
138
|
_initializeFocusTrap() {
|
171
|
-
return new
|
139
|
+
return new FocusTrap({
|
172
140
|
trapElement: this._element
|
173
141
|
});
|
174
142
|
}
|
175
|
-
|
176
143
|
_showElement(relatedTarget) {
|
177
144
|
// try to append dynamic modal
|
178
145
|
if (!document.body.contains(this._element)) {
|
179
146
|
document.body.append(this._element);
|
180
147
|
}
|
181
|
-
|
182
148
|
this._element.style.display = 'block';
|
183
|
-
|
184
149
|
this._element.removeAttribute('aria-hidden');
|
185
|
-
|
186
150
|
this._element.setAttribute('aria-modal', true);
|
187
|
-
|
188
151
|
this._element.setAttribute('role', 'dialog');
|
189
|
-
|
190
152
|
this._element.scrollTop = 0;
|
191
|
-
const modalBody =
|
192
|
-
|
153
|
+
const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
|
193
154
|
if (modalBody) {
|
194
155
|
modalBody.scrollTop = 0;
|
195
156
|
}
|
196
|
-
|
197
|
-
index.reflow(this._element);
|
198
|
-
|
157
|
+
index_js.reflow(this._element);
|
199
158
|
this._element.classList.add(CLASS_NAME_SHOW);
|
200
|
-
|
201
159
|
const transitionComplete = () => {
|
202
160
|
if (this._config.focus) {
|
203
161
|
this._focustrap.activate();
|
204
162
|
}
|
205
|
-
|
206
163
|
this._isTransitioning = false;
|
207
|
-
|
164
|
+
EventHandler.trigger(this._element, EVENT_SHOWN, {
|
208
165
|
relatedTarget
|
209
166
|
});
|
210
167
|
};
|
211
|
-
|
212
168
|
this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
|
213
169
|
}
|
214
|
-
|
215
170
|
_addEventListeners() {
|
216
|
-
|
171
|
+
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
|
217
172
|
if (event.key !== ESCAPE_KEY) {
|
218
173
|
return;
|
219
174
|
}
|
220
|
-
|
221
175
|
if (this._config.keyboard) {
|
222
|
-
event.preventDefault();
|
223
176
|
this.hide();
|
224
177
|
return;
|
225
178
|
}
|
226
|
-
|
227
179
|
this._triggerBackdropTransition();
|
228
180
|
});
|
229
|
-
|
181
|
+
EventHandler.on(window, EVENT_RESIZE, () => {
|
230
182
|
if (this._isShown && !this._isTransitioning) {
|
231
183
|
this._adjustDialog();
|
232
184
|
}
|
233
185
|
});
|
234
|
-
|
186
|
+
EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
|
235
187
|
// a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
|
236
|
-
|
188
|
+
EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
|
237
189
|
if (this._element !== event.target || this._element !== event2.target) {
|
238
190
|
return;
|
239
191
|
}
|
240
|
-
|
241
192
|
if (this._config.backdrop === 'static') {
|
242
193
|
this._triggerBackdropTransition();
|
243
|
-
|
244
194
|
return;
|
245
195
|
}
|
246
|
-
|
247
196
|
if (this._config.backdrop) {
|
248
197
|
this.hide();
|
249
198
|
}
|
250
199
|
});
|
251
200
|
});
|
252
201
|
}
|
253
|
-
|
254
202
|
_hideModal() {
|
255
203
|
this._element.style.display = 'none';
|
256
|
-
|
257
204
|
this._element.setAttribute('aria-hidden', true);
|
258
|
-
|
259
205
|
this._element.removeAttribute('aria-modal');
|
260
|
-
|
261
206
|
this._element.removeAttribute('role');
|
262
|
-
|
263
207
|
this._isTransitioning = false;
|
264
|
-
|
265
208
|
this._backdrop.hide(() => {
|
266
209
|
document.body.classList.remove(CLASS_NAME_OPEN);
|
267
|
-
|
268
210
|
this._resetAdjustments();
|
269
|
-
|
270
211
|
this._scrollBar.reset();
|
271
|
-
|
272
|
-
EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
|
212
|
+
EventHandler.trigger(this._element, EVENT_HIDDEN);
|
273
213
|
});
|
274
214
|
}
|
275
|
-
|
276
215
|
_isAnimated() {
|
277
216
|
return this._element.classList.contains(CLASS_NAME_FADE);
|
278
217
|
}
|
279
|
-
|
280
218
|
_triggerBackdropTransition() {
|
281
|
-
const hideEvent =
|
282
|
-
|
219
|
+
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
|
283
220
|
if (hideEvent.defaultPrevented) {
|
284
221
|
return;
|
285
222
|
}
|
286
|
-
|
287
223
|
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
288
|
-
const initialOverflowY = this._element.style.overflowY;
|
289
|
-
|
224
|
+
const initialOverflowY = this._element.style.overflowY;
|
225
|
+
// return if the following background transition hasn't yet completed
|
290
226
|
if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
|
291
227
|
return;
|
292
228
|
}
|
293
|
-
|
294
229
|
if (!isModalOverflowing) {
|
295
230
|
this._element.style.overflowY = 'hidden';
|
296
231
|
}
|
297
|
-
|
298
232
|
this._element.classList.add(CLASS_NAME_STATIC);
|
299
|
-
|
300
233
|
this._queueCallback(() => {
|
301
234
|
this._element.classList.remove(CLASS_NAME_STATIC);
|
302
|
-
|
303
235
|
this._queueCallback(() => {
|
304
236
|
this._element.style.overflowY = initialOverflowY;
|
305
237
|
}, this._dialog);
|
306
238
|
}, this._dialog);
|
307
|
-
|
308
239
|
this._element.focus();
|
309
240
|
}
|
241
|
+
|
310
242
|
/**
|
311
243
|
* The following methods are used to handle overflowing modals
|
312
244
|
*/
|
313
245
|
|
314
|
-
|
315
246
|
_adjustDialog() {
|
316
247
|
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
317
|
-
|
318
248
|
const scrollbarWidth = this._scrollBar.getWidth();
|
319
|
-
|
320
249
|
const isBodyOverflowing = scrollbarWidth > 0;
|
321
|
-
|
322
250
|
if (isBodyOverflowing && !isModalOverflowing) {
|
323
|
-
const property =
|
251
|
+
const property = index_js.isRTL() ? 'paddingLeft' : 'paddingRight';
|
324
252
|
this._element.style[property] = `${scrollbarWidth}px`;
|
325
253
|
}
|
326
|
-
|
327
254
|
if (!isBodyOverflowing && isModalOverflowing) {
|
328
|
-
const property =
|
255
|
+
const property = index_js.isRTL() ? 'paddingRight' : 'paddingLeft';
|
329
256
|
this._element.style[property] = `${scrollbarWidth}px`;
|
330
257
|
}
|
331
258
|
}
|
332
|
-
|
333
259
|
_resetAdjustments() {
|
334
260
|
this._element.style.paddingLeft = '';
|
335
261
|
this._element.style.paddingRight = '';
|
336
|
-
}
|
337
|
-
|
262
|
+
}
|
338
263
|
|
264
|
+
// Static
|
339
265
|
static jQueryInterface(config, relatedTarget) {
|
340
266
|
return this.each(function () {
|
341
267
|
const data = Modal.getOrCreateInstance(this, config);
|
342
|
-
|
343
268
|
if (typeof config !== 'string') {
|
344
269
|
return;
|
345
270
|
}
|
346
|
-
|
347
271
|
if (typeof data[config] === 'undefined') {
|
348
272
|
throw new TypeError(`No method named "${config}"`);
|
349
273
|
}
|
350
|
-
|
351
274
|
data[config](relatedTarget);
|
352
275
|
});
|
353
276
|
}
|
354
|
-
|
355
277
|
}
|
278
|
+
|
356
279
|
/**
|
357
280
|
* Data API implementation
|
358
281
|
*/
|
359
282
|
|
360
|
-
|
361
|
-
|
362
|
-
const target = index.getElementFromSelector(this);
|
363
|
-
|
283
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
284
|
+
const target = SelectorEngine.getElementFromSelector(this);
|
364
285
|
if (['A', 'AREA'].includes(this.tagName)) {
|
365
286
|
event.preventDefault();
|
366
287
|
}
|
367
|
-
|
368
|
-
EventHandler__default.default.one(target, EVENT_SHOW, showEvent => {
|
288
|
+
EventHandler.one(target, EVENT_SHOW, showEvent => {
|
369
289
|
if (showEvent.defaultPrevented) {
|
370
290
|
// only register focus restorer if modal will actually get shown
|
371
291
|
return;
|
372
292
|
}
|
373
|
-
|
374
|
-
|
375
|
-
if (index.isVisible(this)) {
|
293
|
+
EventHandler.one(target, EVENT_HIDDEN, () => {
|
294
|
+
if (index_js.isVisible(this)) {
|
376
295
|
this.focus();
|
377
296
|
}
|
378
297
|
});
|
379
|
-
});
|
380
|
-
|
381
|
-
const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
|
298
|
+
});
|
382
299
|
|
300
|
+
// avoid conflict when clicking modal toggler while another one is open
|
301
|
+
const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
|
383
302
|
if (alreadyOpen) {
|
384
303
|
Modal.getInstance(alreadyOpen).hide();
|
385
304
|
}
|
386
|
-
|
387
305
|
const data = Modal.getOrCreateInstance(target);
|
388
306
|
data.toggle(this);
|
389
307
|
});
|
390
|
-
|
308
|
+
componentFunctions_js.enableDismissTrigger(Modal);
|
309
|
+
|
391
310
|
/**
|
392
311
|
* jQuery
|
393
312
|
*/
|
394
313
|
|
395
|
-
|
314
|
+
index_js.defineJQueryPlugin(Modal);
|
396
315
|
|
397
316
|
return Modal;
|
398
317
|
|