diff options
author | Mario <mario@mariovavti.com> | 2022-10-11 18:45:17 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2022-10-11 18:45:17 +0000 |
commit | a749db8d0f216491cfefb3849891d93f89b775f7 (patch) | |
tree | 30938c375526280a2114b826dbb9d9a9dae72537 /vendor/twbs/bootstrap/dist/js/bootstrap.js | |
parent | 10ba98c4f5ec4efe6272516de47f0ce128ef2902 (diff) | |
download | volse-hubzilla-a749db8d0f216491cfefb3849891d93f89b775f7.tar.gz volse-hubzilla-a749db8d0f216491cfefb3849891d93f89b775f7.tar.bz2 volse-hubzilla-a749db8d0f216491cfefb3849891d93f89b775f7.zip |
composer update twbs
Diffstat (limited to 'vendor/twbs/bootstrap/dist/js/bootstrap.js')
-rw-r--r-- | vendor/twbs/bootstrap/dist/js/bootstrap.js | 197 |
1 files changed, 102 insertions, 95 deletions
diff --git a/vendor/twbs/bootstrap/dist/js/bootstrap.js b/vendor/twbs/bootstrap/dist/js/bootstrap.js index 8620887c8..de4d5a2ec 100644 --- a/vendor/twbs/bootstrap/dist/js/bootstrap.js +++ b/vendor/twbs/bootstrap/dist/js/bootstrap.js @@ -1,5 +1,5 @@ /*! - * Bootstrap v5.2.0 (https://getbootstrap.com/) + * Bootstrap v5.2.2 (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) */ @@ -31,7 +31,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/index.js + * Bootstrap (v5.2.2): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -346,7 +346,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): dom/event-handler.js + * Bootstrap (v5.2.2): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -615,7 +615,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): dom/data.js + * Bootstrap (v5.2.2): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -667,7 +667,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): dom/manipulator.js + * Bootstrap (v5.2.2): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -737,7 +737,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/config.js + * Bootstrap (v5.2.2): util/config.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -798,7 +798,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): base-component.js + * Bootstrap (v5.2.2): base-component.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -806,7 +806,7 @@ * Constants */ - const VERSION = '5.2.0'; + const VERSION = '5.2.2'; /** * Class definition */ @@ -877,7 +877,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/component-functions.js + * Bootstrap (v5.2.2): util/component-functions.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -903,7 +903,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): alert.js + * Bootstrap (v5.2.2): alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -983,7 +983,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): button.js + * Bootstrap (v5.2.2): button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1045,7 +1045,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): dom/selector-engine.js + * Bootstrap (v5.2.2): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1116,7 +1116,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/swipe.js + * Bootstrap (v5.2.2): util/swipe.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1252,7 +1252,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): carousel.js + * Bootstrap (v5.2.2): carousel.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1700,7 +1700,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): collapse.js + * Bootstrap (v5.2.2): collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1990,7 +1990,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): dropdown.js + * Bootstrap (v5.2.2): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2060,8 +2060,9 @@ super(element, config); this._popper = null; this._parent = this._element.parentNode; // dropdown wrapper + // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/ - this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); + this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._inNavbar = this._detectNavbar(); } // Getters @@ -2377,8 +2378,9 @@ return; } - event.preventDefault(); - const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); + event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/ + + const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const instance = Dropdown.getOrCreateInstance(getToggleButton); if (isUpOrDownEvent) { @@ -2420,7 +2422,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/scrollBar.js + * Bootstrap (v5.2.2): util/scrollBar.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2539,7 +2541,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/backdrop.js + * Bootstrap (v5.2.2): util/backdrop.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2685,7 +2687,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/focustrap.js + * Bootstrap (v5.2.2): util/focustrap.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2794,7 +2796,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): modal.js + * Bootstrap (v5.2.2): modal.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2813,6 +2815,7 @@ const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; + const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; @@ -3005,20 +3008,22 @@ } }); EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { - if (event.target !== event.currentTarget) { - // click is inside modal-dialog - return; - } + // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks + 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(); + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); - return; - } + return; + } - if (this._config.backdrop) { - this.hide(); - } + if (this._config.backdrop) { + this.hide(); + } + }); }); } @@ -3167,7 +3172,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): offcanvas.js + * Bootstrap (v5.2.2): offcanvas.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -3441,7 +3446,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/sanitizer.js + * Bootstrap (v5.2.2): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -3546,7 +3551,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): util/template-factory.js + * Bootstrap (v5.2.2): util/template-factory.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -3704,7 +3709,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): tooltip.js + * Bootstrap (v5.2.2): tooltip.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -3793,7 +3798,7 @@ this._isEnabled = true; this._timeout = 0; - this._isHovered = false; + this._isHovered = null; this._activeTrigger = {}; this._popper = null; this._templateFactory = null; @@ -3802,6 +3807,10 @@ this.tip = null; this._setListeners(); + + if (!this._config.selector) { + this._fixTitle(); + } } // Getters @@ -3830,24 +3839,12 @@ this._isEnabled = !this._isEnabled; } - toggle(event) { + toggle() { if (!this._isEnabled) { return; } - if (event) { - const context = this._initializeOnDelegatedTarget(event); - - context._activeTrigger.click = !context._activeTrigger.click; - - if (context._isWithActiveTrigger()) { - context._enter(); - } else { - context._leave(); - } - - return; - } + this._activeTrigger.click = !this._activeTrigger.click; if (this._isShown()) { this._leave(); @@ -3866,6 +3863,10 @@ this.tip.remove(); } + if (this._element.getAttribute('data-bs-original-title')) { + this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')); + } + this._disposePopper(); super.dispose(); @@ -3926,13 +3927,13 @@ } const complete = () => { - const previousHoverState = this._isHovered; - this._isHovered = false; EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); - if (previousHoverState) { + if (this._isHovered === false) { this._leave(); } + + this._isHovered = false; }; this._queueCallback(complete, this.tip, this._isAnimated()); @@ -3963,7 +3964,7 @@ this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - this._isHovered = false; + this._isHovered = null; // it is a trick to support manual triggering const complete = () => { if (this._isWithActiveTrigger()) { @@ -4056,7 +4057,7 @@ } _getTitle() { - return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; + return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title'); } // Private @@ -4142,7 +4143,11 @@ for (const trigger of triggers) { if (trigger === 'click') { - EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + + context.toggle(); + }); } else if (trigger !== TRIGGER_MANUAL) { const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); @@ -4170,19 +4175,10 @@ }; EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); - - if (this._config.selector) { - this._config = { ...this._config, - trigger: 'manual', - selector: '' - }; - } else { - this._fixTitle(); - } } _fixTitle() { - const title = this._config.originalTitle; + const title = this._element.getAttribute('title'); if (!title) { return; @@ -4192,6 +4188,9 @@ this._element.setAttribute('aria-label', title); } + this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility + + this._element.removeAttribute('title'); } @@ -4263,8 +4262,6 @@ }; } - config.originalTitle = this._element.getAttribute('title') || ''; - if (typeof config.title === 'number') { config.title = config.title.toString(); } @@ -4283,11 +4280,13 @@ if (this.constructor.Default[key] !== this._config[key]) { config[key] = this._config[key]; } - } // In the future can be replaced with: + } + + config.selector = false; + config.trigger = 'manual'; // In the future can be replaced with: // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) // `Object.fromEntries(keysWithDifferentValues)` - return config; } @@ -4326,7 +4325,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): popover.js + * Bootstrap (v5.2.2): popover.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4409,7 +4408,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): scrollspy.js + * Bootstrap (v5.2.2): scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4440,14 +4439,16 @@ // TODO: v6 @deprecated, keep it for backwards compatibility reasons rootMargin: '0px 0px -25%', smoothScroll: false, - target: null + target: null, + threshold: [0.1, 0.5, 1] }; const DefaultType$1 = { offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons rootMargin: 'string', smoothScroll: 'boolean', - target: 'element' + target: 'element', + threshold: 'array' }; /** * Class definition @@ -4508,7 +4509,14 @@ _configAfterMerge(config) { // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case - config.target = getElement(config.target) || document.body; + config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only + + config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; + + if (typeof config.threshold === 'string') { + config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); + } + return config; } @@ -4544,8 +4552,8 @@ _getNewObserver() { const options = { root: this._rootElement, - threshold: [0.1, 0.5, 1], - rootMargin: this._getRootMargin() + threshold: this._config.threshold, + rootMargin: this._config.rootMargin }; return new IntersectionObserver(entries => this._observerCallback(entries), options); } // The logic of selection @@ -4590,11 +4598,6 @@ activate(entry); } } - } // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only - - - _getRootMargin() { - return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin; } _initializeTargetsAndObservables() { @@ -4696,7 +4699,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): tab.js + * Bootstrap (v5.2.2): tab.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4724,7 +4727,6 @@ const CLASS_DROPDOWN = 'dropdown'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; - const SELECTOR_DROPDOWN_ITEM = '.dropdown-item'; const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_OUTER = '.nav-item, .list-group-item'; @@ -4803,7 +4805,6 @@ return; } - element.focus(); element.removeAttribute('tabindex'); element.setAttribute('aria-selected', true); @@ -4859,6 +4860,9 @@ const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); if (nextActiveElement) { + nextActiveElement.focus({ + preventScroll: true + }); Tab.getOrCreateInstance(nextActiveElement).show(); } } @@ -4934,7 +4938,6 @@ toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); - toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE); outerElem.setAttribute('aria-expanded', open); } @@ -5009,7 +5012,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): toast.js + * Bootstrap (v5.2.2): toast.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -5160,13 +5163,17 @@ switch (event.type) { case 'mouseover': case 'mouseout': - this._hasMouseInteraction = isInteracting; - break; + { + this._hasMouseInteraction = isInteracting; + break; + } case 'focusin': case 'focusout': - this._hasKeyboardInteraction = isInteracting; - break; + { + this._hasKeyboardInteraction = isInteracting; + break; + } } if (isInteracting) { @@ -5226,7 +5233,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.0): index.umd.js + * Bootstrap (v5.2.2): index.umd.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ |