diff options
Diffstat (limited to 'vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js')
-rw-r--r-- | vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js | 306 |
1 files changed, 144 insertions, 162 deletions
diff --git a/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js b/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js index 47e85e41b..d5183e608 100644 --- a/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js +++ b/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js @@ -1,5 +1,5 @@ /*! - * Bootstrap v5.2.2 (https://getbootstrap.com/) + * Bootstrap v5.2.0 (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) */ @@ -11,7 +11,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/index.js + * Bootstrap (v5.2.0): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -326,7 +326,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): dom/event-handler.js + * Bootstrap (v5.2.0): dom/event-handler.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -595,7 +595,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): dom/data.js + * Bootstrap (v5.2.0): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -647,7 +647,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): dom/manipulator.js + * Bootstrap (v5.2.0): dom/manipulator.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -717,7 +717,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/config.js + * Bootstrap (v5.2.0): util/config.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -778,7 +778,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): base-component.js + * Bootstrap (v5.2.0): base-component.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -786,7 +786,7 @@ * Constants */ - const VERSION = '5.2.2'; + const VERSION = '5.2.0'; /** * Class definition */ @@ -857,7 +857,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/component-functions.js + * Bootstrap (v5.2.0): util/component-functions.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -883,7 +883,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): alert.js + * Bootstrap (v5.2.0): alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -963,7 +963,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): button.js + * Bootstrap (v5.2.0): button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1025,7 +1025,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): dom/selector-engine.js + * Bootstrap (v5.2.0): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1096,7 +1096,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/swipe.js + * Bootstrap (v5.2.0): util/swipe.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1232,7 +1232,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): carousel.js + * Bootstrap (v5.2.0): carousel.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -1680,7 +1680,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): collapse.js + * Bootstrap (v5.2.0): collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -2128,57 +2128,38 @@ var min = Math.min; var round = Math.round; - function getUAString() { - var uaData = navigator.userAgentData; - - if (uaData != null && uaData.brands) { - return uaData.brands.map(function (item) { - return item.brand + "/" + item.version; - }).join(' '); - } - - return navigator.userAgent; - } - - function isLayoutViewport() { - return !/^((?!chrome|android).)*safari/i.test(getUAString()); - } - - function getBoundingClientRect(element, includeScale, isFixedStrategy) { + function getBoundingClientRect(element, includeScale) { if (includeScale === void 0) { includeScale = false; } - if (isFixedStrategy === void 0) { - isFixedStrategy = false; - } - - var clientRect = element.getBoundingClientRect(); + var rect = element.getBoundingClientRect(); var scaleX = 1; var scaleY = 1; - if (includeScale && isHTMLElement(element)) { - scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; - scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; - } + if (isHTMLElement(element) && includeScale) { + var offsetHeight = element.offsetHeight; + var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale + // Fallback to 1 in case both values are `0` + + if (offsetWidth > 0) { + scaleX = round(rect.width) / offsetWidth || 1; + } - var _ref = isElement(element) ? getWindow(element) : window, - visualViewport = _ref.visualViewport; + if (offsetHeight > 0) { + scaleY = round(rect.height) / offsetHeight || 1; + } + } - var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; - var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; - var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; - var width = clientRect.width / scaleX; - var height = clientRect.height / scaleY; return { - width: width, - height: height, - top: y, - right: x + width, - bottom: y + height, - left: x, - x: x, - y: y + width: rect.width / scaleX, + height: rect.height / scaleY, + top: rect.top / scaleY, + right: rect.right / scaleX, + bottom: rect.bottom / scaleY, + left: rect.left / scaleX, + x: rect.left / scaleX, + y: rect.top / scaleY }; } @@ -2273,8 +2254,8 @@ function getContainingBlock(element) { - var isFirefox = /firefox/i.test(getUAString()); - var isIE = /Trident/i.test(getUAString()); + var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; + var isIE = navigator.userAgent.indexOf('Trident') !== -1; if (isIE && isHTMLElement(element)) { // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport @@ -2695,21 +2676,31 @@ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; } - function getViewportRect(element, strategy) { + function getViewportRect(element) { var win = getWindow(element); var html = getDocumentElement(element); var visualViewport = win.visualViewport; var width = html.clientWidth; var height = html.clientHeight; var x = 0; - var y = 0; + var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper + // can be obscured underneath it. + // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even + // if it isn't open, so if this isn't available, the popper will be detected + // to overflow the bottom of the screen too early. if (visualViewport) { width = visualViewport.width; - height = visualViewport.height; - var layoutViewport = isLayoutViewport(); - - if (layoutViewport || !layoutViewport && strategy === 'fixed') { + height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently) + // In Chrome, it returns a value very close to 0 (+/-) but contains rounding + // errors due to floating point numbers, so we need to check precision. + // Safari returns a number <= 0, usually < -1 when pinch-zoomed + // Feature detection fails in mobile emulation mode in Chrome. + // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < + // 0.001 + // Fallback here: "Not Safari" userAgent + + if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { x = visualViewport.offsetLeft; y = visualViewport.offsetTop; } @@ -2803,8 +2794,8 @@ }); } - function getInnerBoundingClientRect(element, strategy) { - var rect = getBoundingClientRect(element, false, strategy === 'fixed'); + function getInnerBoundingClientRect(element) { + var rect = getBoundingClientRect(element); rect.top = rect.top + element.clientTop; rect.left = rect.left + element.clientLeft; rect.bottom = rect.top + element.clientHeight; @@ -2816,8 +2807,8 @@ return rect; } - function getClientRectFromMixedType(element, clippingParent, strategy) { - return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + function getClientRectFromMixedType(element, clippingParent) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); } // A "clipping parent" is an overflowable container with the characteristic of // clipping (or hiding) overflowing elements with a position different from // `initial` @@ -2840,18 +2831,18 @@ // clipping parents - function getClippingRect(element, boundary, rootBoundary, strategy) { + function getClippingRect(element, boundary, rootBoundary) { var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); var clippingParents = [].concat(mainClippingParents, [rootBoundary]); var firstClippingParent = clippingParents[0]; var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { - var rect = getClientRectFromMixedType(element, clippingParent, strategy); + var rect = getClientRectFromMixedType(element, clippingParent); accRect.top = max(rect.top, accRect.top); accRect.right = min(rect.right, accRect.right); accRect.bottom = min(rect.bottom, accRect.bottom); accRect.left = max(rect.left, accRect.left); return accRect; - }, getClientRectFromMixedType(element, firstClippingParent, strategy)); + }, getClientRectFromMixedType(element, firstClippingParent)); clippingRect.width = clippingRect.right - clippingRect.left; clippingRect.height = clippingRect.bottom - clippingRect.top; clippingRect.x = clippingRect.left; @@ -2932,8 +2923,6 @@ var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, - _options$strategy = _options.strategy, - strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, @@ -2948,7 +2937,7 @@ var altContext = elementContext === popper ? reference : popper; var popperRect = state.rects.popper; var element = state.elements[altBoundary ? altContext : elementContext]; - var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); var referenceClientRect = getBoundingClientRect(state.elements.reference); var popperOffsets = computeOffsets({ reference: referenceClientRect, @@ -3462,7 +3451,7 @@ var isOffsetParentAnElement = isHTMLElement(offsetParent); var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); var documentElement = getDocumentElement(offsetParent); - var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); var scroll = { scrollLeft: 0, scrollTop: 0 @@ -3816,7 +3805,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): dropdown.js + * Bootstrap (v5.2.0): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -3886,9 +3875,8 @@ 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.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); + this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._inNavbar = this._detectNavbar(); } // Getters @@ -4204,9 +4192,8 @@ return; } - 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); + event.preventDefault(); + const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const instance = Dropdown.getOrCreateInstance(getToggleButton); if (isUpOrDownEvent) { @@ -4248,7 +4235,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/scrollBar.js + * Bootstrap (v5.2.0): util/scrollBar.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4367,7 +4354,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/backdrop.js + * Bootstrap (v5.2.0): util/backdrop.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4513,7 +4500,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/focustrap.js + * Bootstrap (v5.2.0): util/focustrap.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4622,7 +4609,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): modal.js + * Bootstrap (v5.2.0): modal.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -4641,7 +4628,6 @@ 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}`; @@ -4834,22 +4820,20 @@ } }); 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.one(this._element, EVENT_CLICK_DISMISS, event2 => { - if (this._element !== event.target || this._element !== event2.target) { - return; - } + if (event.target !== event.currentTarget) { + // click is inside modal-dialog + 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(); + } }); } @@ -4998,7 +4982,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): offcanvas.js + * Bootstrap (v5.2.0): offcanvas.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -5272,7 +5256,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/sanitizer.js + * Bootstrap (v5.2.0): util/sanitizer.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -5377,7 +5361,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): util/template-factory.js + * Bootstrap (v5.2.0): util/template-factory.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -5535,7 +5519,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): tooltip.js + * Bootstrap (v5.2.0): tooltip.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -5624,7 +5608,7 @@ this._isEnabled = true; this._timeout = 0; - this._isHovered = null; + this._isHovered = false; this._activeTrigger = {}; this._popper = null; this._templateFactory = null; @@ -5633,10 +5617,6 @@ this.tip = null; this._setListeners(); - - if (!this._config.selector) { - this._fixTitle(); - } } // Getters @@ -5665,12 +5645,24 @@ this._isEnabled = !this._isEnabled; } - toggle() { + toggle(event) { if (!this._isEnabled) { return; } - this._activeTrigger.click = !this._activeTrigger.click; + if (event) { + const context = this._initializeOnDelegatedTarget(event); + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(); + } else { + context._leave(); + } + + return; + } if (this._isShown()) { this._leave(); @@ -5689,10 +5681,6 @@ 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(); @@ -5753,13 +5741,13 @@ } const complete = () => { + const previousHoverState = this._isHovered; + this._isHovered = false; EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); - if (this._isHovered === false) { + if (previousHoverState) { this._leave(); } - - this._isHovered = false; }; this._queueCallback(complete, this.tip, this._isAnimated()); @@ -5790,7 +5778,7 @@ this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_HOVER] = false; - this._isHovered = null; // it is a trick to support manual triggering + this._isHovered = false; const complete = () => { if (this._isWithActiveTrigger()) { @@ -5883,7 +5871,7 @@ } _getTitle() { - return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title'); + return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; } // Private @@ -5969,11 +5957,7 @@ for (const trigger of triggers) { if (trigger === 'click') { - EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { - const context = this._initializeOnDelegatedTarget(event); - - context.toggle(); - }); + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); } 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); @@ -6001,10 +5985,19 @@ }; 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._element.getAttribute('title'); + const title = this._config.originalTitle; if (!title) { return; @@ -6014,9 +6007,6 @@ 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'); } @@ -6088,6 +6078,8 @@ }; } + config.originalTitle = this._element.getAttribute('title') || ''; + if (typeof config.title === 'number') { config.title = config.title.toString(); } @@ -6106,13 +6098,11 @@ if (this.constructor.Default[key] !== this._config[key]) { config[key] = this._config[key]; } - } - - config.selector = false; - config.trigger = 'manual'; // In the future can be replaced with: + } // 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; } @@ -6151,7 +6141,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): popover.js + * Bootstrap (v5.2.0): popover.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -6234,7 +6224,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): scrollspy.js + * Bootstrap (v5.2.0): scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -6265,16 +6255,14 @@ // TODO: v6 @deprecated, keep it for backwards compatibility reasons rootMargin: '0px 0px -25%', smoothScroll: false, - target: null, - threshold: [0.1, 0.5, 1] + target: null }; const DefaultType$1 = { offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons rootMargin: 'string', smoothScroll: 'boolean', - target: 'element', - threshold: 'array' + target: 'element' }; /** * Class definition @@ -6335,14 +6323,7 @@ _configAfterMerge(config) { // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case - 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)); - } - + config.target = getElement(config.target) || document.body; return config; } @@ -6378,8 +6359,8 @@ _getNewObserver() { const options = { root: this._rootElement, - threshold: this._config.threshold, - rootMargin: this._config.rootMargin + threshold: [0.1, 0.5, 1], + rootMargin: this._getRootMargin() }; return new IntersectionObserver(entries => this._observerCallback(entries), options); } // The logic of selection @@ -6424,6 +6405,11 @@ 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() { @@ -6525,7 +6511,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): tab.js + * Bootstrap (v5.2.0): tab.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -6553,6 +6539,7 @@ 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'; @@ -6631,6 +6618,7 @@ return; } + element.focus(); element.removeAttribute('tabindex'); element.setAttribute('aria-selected', true); @@ -6686,9 +6674,6 @@ const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); if (nextActiveElement) { - nextActiveElement.focus({ - preventScroll: true - }); Tab.getOrCreateInstance(nextActiveElement).show(); } } @@ -6764,6 +6749,7 @@ 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); } @@ -6838,7 +6824,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): toast.js + * Bootstrap (v5.2.0): toast.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ @@ -6989,17 +6975,13 @@ 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) { @@ -7059,7 +7041,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v5.2.2): index.umd.js + * Bootstrap (v5.2.0): index.umd.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ |