aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/twbs/bootstrap/js/dist/modal.js
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/twbs/bootstrap/js/dist/modal.js')
-rw-r--r--vendor/twbs/bootstrap/js/dist/modal.js175
1 files changed, 48 insertions, 127 deletions
diff --git a/vendor/twbs/bootstrap/js/dist/modal.js b/vendor/twbs/bootstrap/js/dist/modal.js
index dfce5121f..16f894017 100644
--- a/vendor/twbs/bootstrap/js/dist/modal.js
+++ b/vendor/twbs/bootstrap/js/dist/modal.js
@@ -1,29 +1,21 @@
/*!
- * Bootstrap modal.js v5.2.2 (https://getbootstrap.com/)
+ * Bootstrap modal.js v5.3.0-alpha1 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./util/scrollbar'), require('./base-component'), require('./util/backdrop'), require('./util/focustrap'), require('./util/component-functions')) :
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/scrollbar.js'), require('./base-component.js'), require('./util/backdrop.js'), require('./util/focustrap.js'), require('./util/component-functions.js')) :
typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './util/scrollbar', './base-component', './util/backdrop', './util/focustrap', './util/component-functions'], factory) :
(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));
-})(this, (function (index, EventHandler, SelectorEngine, ScrollBarHelper, BaseComponent, Backdrop, FocusTrap, componentFunctions) { 'use strict';
-
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
-
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
- const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
- const ScrollBarHelper__default = /*#__PURE__*/_interopDefaultLegacy(ScrollBarHelper);
- const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
- const Backdrop__default = /*#__PURE__*/_interopDefaultLegacy(Backdrop);
- const FocusTrap__default = /*#__PURE__*/_interopDefaultLegacy(FocusTrap);
+})(this, (function (index_js, EventHandler, SelectorEngine, ScrollBarHelper, BaseComponent, Backdrop, FocusTrap, componentFunctions_js) { 'use strict';
/**
* --------------------------------------------------------------------------
- * Bootstrap (v5.2.2): modal.js
+ * Bootstrap (v5.3.0-alpha1): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
+
/**
* Constants
*/
@@ -61,338 +53,267 @@
focus: 'boolean',
keyboard: 'boolean'
};
+
/**
* Class definition
*/
- class Modal extends BaseComponent__default.default {
+ class Modal extends BaseComponent {
constructor(element, config) {
super(element, config);
- this._dialog = SelectorEngine__default.default.findOne(SELECTOR_DIALOG, this._element);
+ this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
this._backdrop = this._initializeBackDrop();
this._focustrap = this._initializeFocusTrap();
this._isShown = false;
this._isTransitioning = false;
- this._scrollBar = new ScrollBarHelper__default.default();
-
+ this._scrollBar = new ScrollBarHelper();
this._addEventListeners();
- } // Getters
-
+ }
+ // Getters
static get Default() {
return Default;
}
-
static get DefaultType() {
return DefaultType;
}
-
static get NAME() {
return NAME;
- } // Public
-
+ }
+ // Public
toggle(relatedTarget) {
return this._isShown ? this.hide() : this.show(relatedTarget);
}
-
show(relatedTarget) {
if (this._isShown || this._isTransitioning) {
return;
}
-
- const showEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW, {
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {
relatedTarget
});
-
if (showEvent.defaultPrevented) {
return;
}
-
this._isShown = true;
this._isTransitioning = true;
-
this._scrollBar.hide();
-
document.body.classList.add(CLASS_NAME_OPEN);
-
this._adjustDialog();
-
this._backdrop.show(() => this._showElement(relatedTarget));
}
-
hide() {
if (!this._isShown || this._isTransitioning) {
return;
}
-
- const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);
-
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
if (hideEvent.defaultPrevented) {
return;
}
-
this._isShown = false;
this._isTransitioning = true;
-
this._focustrap.deactivate();
-
this._element.classList.remove(CLASS_NAME_SHOW);
-
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
}
-
dispose() {
for (const htmlElement of [window, this._dialog]) {
- EventHandler__default.default.off(htmlElement, EVENT_KEY);
+ EventHandler.off(htmlElement, EVENT_KEY);
}
-
this._backdrop.dispose();
-
this._focustrap.deactivate();
-
super.dispose();
}
-
handleUpdate() {
this._adjustDialog();
- } // Private
-
+ }
+ // Private
_initializeBackDrop() {
- return new Backdrop__default.default({
+ return new Backdrop({
isVisible: Boolean(this._config.backdrop),
// 'static' option will be translated to true, and booleans will keep their value,
isAnimated: this._isAnimated()
});
}
-
_initializeFocusTrap() {
- return new FocusTrap__default.default({
+ return new FocusTrap({
trapElement: this._element
});
}
-
_showElement(relatedTarget) {
// try to append dynamic modal
if (!document.body.contains(this._element)) {
document.body.append(this._element);
}
-
this._element.style.display = 'block';
-
this._element.removeAttribute('aria-hidden');
-
this._element.setAttribute('aria-modal', true);
-
this._element.setAttribute('role', 'dialog');
-
this._element.scrollTop = 0;
- const modalBody = SelectorEngine__default.default.findOne(SELECTOR_MODAL_BODY, this._dialog);
-
+ const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
if (modalBody) {
modalBody.scrollTop = 0;
}
-
- index.reflow(this._element);
-
+ index_js.reflow(this._element);
this._element.classList.add(CLASS_NAME_SHOW);
-
const transitionComplete = () => {
if (this._config.focus) {
this._focustrap.activate();
}
-
this._isTransitioning = false;
- EventHandler__default.default.trigger(this._element, EVENT_SHOWN, {
+ EventHandler.trigger(this._element, EVENT_SHOWN, {
relatedTarget
});
};
-
this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
}
-
_addEventListeners() {
- EventHandler__default.default.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
if (event.key !== ESCAPE_KEY) {
return;
}
-
if (this._config.keyboard) {
event.preventDefault();
this.hide();
return;
}
-
this._triggerBackdropTransition();
});
- EventHandler__default.default.on(window, EVENT_RESIZE, () => {
+ EventHandler.on(window, EVENT_RESIZE, () => {
if (this._isShown && !this._isTransitioning) {
this._adjustDialog();
}
});
- EventHandler__default.default.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
+ EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
// a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
- EventHandler__default.default.one(this._element, EVENT_CLICK_DISMISS, event2 => {
+ EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
if (this._element !== event.target || this._element !== event2.target) {
return;
}
-
if (this._config.backdrop === 'static') {
this._triggerBackdropTransition();
-
return;
}
-
if (this._config.backdrop) {
this.hide();
}
});
});
}
-
_hideModal() {
this._element.style.display = 'none';
-
this._element.setAttribute('aria-hidden', true);
-
this._element.removeAttribute('aria-modal');
-
this._element.removeAttribute('role');
-
this._isTransitioning = false;
-
this._backdrop.hide(() => {
document.body.classList.remove(CLASS_NAME_OPEN);
-
this._resetAdjustments();
-
this._scrollBar.reset();
-
- EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);
+ EventHandler.trigger(this._element, EVENT_HIDDEN);
});
}
-
_isAnimated() {
return this._element.classList.contains(CLASS_NAME_FADE);
}
-
_triggerBackdropTransition() {
- const hideEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE_PREVENTED);
-
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
if (hideEvent.defaultPrevented) {
return;
}
-
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed
-
+ const initialOverflowY = this._element.style.overflowY;
+ // return if the following background transition hasn't yet completed
if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
return;
}
-
if (!isModalOverflowing) {
this._element.style.overflowY = 'hidden';
}
-
this._element.classList.add(CLASS_NAME_STATIC);
-
this._queueCallback(() => {
this._element.classList.remove(CLASS_NAME_STATIC);
-
this._queueCallback(() => {
this._element.style.overflowY = initialOverflowY;
}, this._dialog);
}, this._dialog);
-
this._element.focus();
}
+
/**
* The following methods are used to handle overflowing modals
*/
-
_adjustDialog() {
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
const scrollbarWidth = this._scrollBar.getWidth();
-
const isBodyOverflowing = scrollbarWidth > 0;
-
if (isBodyOverflowing && !isModalOverflowing) {
- const property = index.isRTL() ? 'paddingLeft' : 'paddingRight';
+ const property = index_js.isRTL() ? 'paddingLeft' : 'paddingRight';
this._element.style[property] = `${scrollbarWidth}px`;
}
-
if (!isBodyOverflowing && isModalOverflowing) {
- const property = index.isRTL() ? 'paddingRight' : 'paddingLeft';
+ const property = index_js.isRTL() ? 'paddingRight' : 'paddingLeft';
this._element.style[property] = `${scrollbarWidth}px`;
}
}
-
_resetAdjustments() {
this._element.style.paddingLeft = '';
this._element.style.paddingRight = '';
- } // Static
-
+ }
+ // Static
static jQueryInterface(config, relatedTarget) {
return this.each(function () {
const data = Modal.getOrCreateInstance(this, config);
-
if (typeof config !== 'string') {
return;
}
-
if (typeof data[config] === 'undefined') {
throw new TypeError(`No method named "${config}"`);
}
-
data[config](relatedTarget);
});
}
-
}
+
/**
* Data API implementation
*/
-
- EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
- const target = index.getElementFromSelector(this);
-
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ const target = SelectorEngine.getElementFromSelector(this);
if (['A', 'AREA'].includes(this.tagName)) {
event.preventDefault();
}
-
- EventHandler__default.default.one(target, EVENT_SHOW, showEvent => {
+ EventHandler.one(target, EVENT_SHOW, showEvent => {
if (showEvent.defaultPrevented) {
// only register focus restorer if modal will actually get shown
return;
}
-
- EventHandler__default.default.one(target, EVENT_HIDDEN, () => {
- if (index.isVisible(this)) {
+ EventHandler.one(target, EVENT_HIDDEN, () => {
+ if (index_js.isVisible(this)) {
this.focus();
}
});
- }); // avoid conflict when clicking modal toggler while another one is open
-
- const alreadyOpen = SelectorEngine__default.default.findOne(OPEN_SELECTOR);
+ });
+ // avoid conflict when clicking modal toggler while another one is open
+ const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
if (alreadyOpen) {
Modal.getInstance(alreadyOpen).hide();
}
-
const data = Modal.getOrCreateInstance(target);
data.toggle(this);
});
- componentFunctions.enableDismissTrigger(Modal);
+ componentFunctions_js.enableDismissTrigger(Modal);
+
/**
* jQuery
*/
- index.defineJQueryPlugin(Modal);
+ index_js.defineJQueryPlugin(Modal);
return Modal;