From 9dc949b62c6b5e3c8872211f71b11714d9d22b22 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 20 Jan 2023 11:05:15 +0000 Subject: native dark theme initial checkin --- vendor/twbs/bootstrap/js/dist/modal.js | 175 +++++++++------------------------ 1 file changed, 48 insertions(+), 127 deletions(-) (limited to 'vendor/twbs/bootstrap/js/dist/modal.js') 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; -- cgit v1.2.3