diff options
Diffstat (limited to 'js/dist/collapse.js')
-rw-r--r-- | js/dist/collapse.js | 425 |
1 files changed, 178 insertions, 247 deletions
diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 29f47f9002..4ee22b79f7 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -1,5 +1,5 @@ /*! - * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/) + * Bootstrap collapse.js v5.0.0-beta3 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -17,78 +17,28 @@ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - - _setPrototypeOf(subClass, superClass); - } - - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); - } - /** * -------------------------------------------------------------------------- - * Bootstrap (v5.0.0-beta2): util/index.js + * Bootstrap (v5.0.0-beta3): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ - var MILLISECONDS_MULTIPLIER = 1000; - var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + const MILLISECONDS_MULTIPLIER = 1000; + const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) - var toType = function toType(obj) { + const toType = obj => { if (obj === null || obj === undefined) { - return "" + obj; + return `${obj}`; } return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); }; - var getSelector = function getSelector(element) { - var selector = element.getAttribute('data-bs-target'); + const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); if (!selector || selector === '#') { - var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, // so everything starting with `#` or `.`. If a "real" URL is used as the selector, // `document.querySelector` will rightfully complain it is invalid. // See https://github.com/twbs/bootstrap/issues/32273 @@ -108,8 +58,8 @@ return selector; }; - var getSelectorFromElement = function getSelectorFromElement(element) { - var selector = getSelector(element); + const getSelectorFromElement = element => { + const selector = getSelector(element); if (selector) { return document.querySelector(selector) ? selector : null; @@ -118,23 +68,23 @@ return null; }; - var getElementFromSelector = function getElementFromSelector(element) { - var selector = getSelector(element); + const getElementFromSelector = element => { + const selector = getSelector(element); return selector ? document.querySelector(selector) : null; }; - var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + const getTransitionDurationFromElement = element => { if (!element) { return 0; } // Get transition-duration of the element - var _window$getComputedSt = window.getComputedStyle(element), - transitionDuration = _window$getComputedSt.transitionDuration, - transitionDelay = _window$getComputedSt.transitionDelay; - - var floatTransitionDuration = Number.parseFloat(transitionDuration); - var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found if (!floatTransitionDuration && !floatTransitionDelay) { return 0; @@ -146,18 +96,16 @@ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; }; - var triggerTransitionEnd = function triggerTransitionEnd(element) { + const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; - var isElement = function isElement(obj) { - return (obj[0] || obj).nodeType; - }; + const isElement = obj => (obj[0] || obj).nodeType; - var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { - var called = false; - var durationPadding = 5; - var emulatedDuration = duration + durationPadding; + const emulateTransitionEnd = (element, duration) => { + let called = false; + const durationPadding = 5; + const emulatedDuration = duration + durationPadding; function listener() { called = true; @@ -165,32 +113,31 @@ } element.addEventListener(TRANSITION_END, listener); - setTimeout(function () { + setTimeout(() => { if (!called) { triggerTransitionEnd(element); } }, emulatedDuration); }; - var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { - Object.keys(configTypes).forEach(function (property) { - var expectedTypes = configTypes[property]; - var value = config[property]; - var valueType = value && isElement(value) ? 'element' : toType(value); + const typeCheckConfig = (componentName, config, configTypes) => { + Object.keys(configTypes).forEach(property => { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = value && isElement(value) ? 'element' : toType(value); if (!new RegExp(expectedTypes).test(valueType)) { - throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`); } }); }; - var reflow = function reflow(element) { - return element.offsetHeight; - }; + const reflow = element => element.offsetHeight; - var getjQuery = function getjQuery() { - var _window = window, - jQuery = _window.jQuery; + const getjQuery = () => { + const { + jQuery + } = window; if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { return jQuery; @@ -199,7 +146,7 @@ return null; }; - var onDOMContentLoaded = function onDOMContentLoaded(callback) { + const onDOMContentLoaded = callback => { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', callback); } else { @@ -207,19 +154,17 @@ } }; - document.documentElement.dir === 'rtl'; - - var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { - onDOMContentLoaded(function () { - var $ = getjQuery(); + const defineJQueryPlugin = (name, plugin) => { + onDOMContentLoaded(() => { + const $ = getjQuery(); /* istanbul ignore if */ if ($) { - var JQUERY_NO_CONFLICT = $.fn[name]; + const JQUERY_NO_CONFLICT = $.fn[name]; $.fn[name] = plugin.jQueryInterface; $.fn[name].Constructor = plugin; - $.fn[name].noConflict = function () { + $.fn[name].noConflict = () => { $.fn[name] = JQUERY_NO_CONFLICT; return plugin.jQueryInterface; }; @@ -228,107 +173,109 @@ }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta3): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ - var NAME = 'collapse'; - var DATA_KEY = 'bs.collapse'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var Default = { + const NAME = 'collapse'; + const DATA_KEY = 'bs.collapse'; + const EVENT_KEY = `.${DATA_KEY}`; + const DATA_API_KEY = '.data-api'; + const Default = { toggle: true, parent: '' }; - var DefaultType = { + const DefaultType = { toggle: 'boolean', parent: '(string|element)' }; - var EVENT_SHOW = "show" + EVENT_KEY; - var EVENT_SHOWN = "shown" + EVENT_KEY; - var EVENT_HIDE = "hide" + EVENT_KEY; - var EVENT_HIDDEN = "hidden" + EVENT_KEY; - var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; - var CLASS_NAME_SHOW = 'show'; - var CLASS_NAME_COLLAPSE = 'collapse'; - var CLASS_NAME_COLLAPSING = 'collapsing'; - var CLASS_NAME_COLLAPSED = 'collapsed'; - var WIDTH = 'width'; - var HEIGHT = 'height'; - var SELECTOR_ACTIVES = '.show, .collapsing'; - var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'; + const EVENT_SHOW = `show${EVENT_KEY}`; + const EVENT_SHOWN = `shown${EVENT_KEY}`; + const EVENT_HIDE = `hide${EVENT_KEY}`; + const EVENT_HIDDEN = `hidden${EVENT_KEY}`; + const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; + const CLASS_NAME_SHOW = 'show'; + const CLASS_NAME_COLLAPSE = 'collapse'; + const CLASS_NAME_COLLAPSING = 'collapsing'; + const CLASS_NAME_COLLAPSED = 'collapsed'; + const WIDTH = 'width'; + const HEIGHT = 'height'; + const SELECTOR_ACTIVES = '.show, .collapsing'; + const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Collapse = /*#__PURE__*/function (_BaseComponent) { - _inheritsLoose(Collapse, _BaseComponent); - - function Collapse(element, config) { - var _this; + class Collapse extends BaseComponent__default['default'] { + constructor(element, config) { + super(element); + this._isTransitioning = false; + this._config = this._getConfig(config); + this._triggerArray = SelectorEngine__default['default'].find(`${SELECTOR_DATA_TOGGLE}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE}[data-bs-target="#${this._element.id}"]`); + const toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE); - _this = _BaseComponent.call(this, element) || this; - _this._isTransitioning = false; - _this._config = _this._getConfig(config); - _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]")); - var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE); - - for (var i = 0, len = toggleList.length; i < len; i++) { - var elem = toggleList[i]; - var selector = getSelectorFromElement(elem); - var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) { - return foundElem === element; - }); + for (let i = 0, len = toggleList.length; i < len; i++) { + const elem = toggleList[i]; + const selector = getSelectorFromElement(elem); + const filterElement = SelectorEngine__default['default'].find(selector).filter(foundElem => foundElem === this._element); if (selector !== null && filterElement.length) { - _this._selector = selector; + this._selector = selector; - _this._triggerArray.push(elem); + this._triggerArray.push(elem); } } - _this._parent = _this._config.parent ? _this._getParent() : null; + this._parent = this._config.parent ? this._getParent() : null; - if (!_this._config.parent) { - _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); } - if (_this._config.toggle) { - _this.toggle(); + if (this._config.toggle) { + this.toggle(); } - - return _this; } // Getters - var _proto = Collapse.prototype; + static get Default() { + return Default; + } + + static get DATA_KEY() { + return DATA_KEY; + } // Public + - // Public - _proto.toggle = function toggle() { + toggle() { if (this._element.classList.contains(CLASS_NAME_SHOW)) { this.hide(); } else { this.show(); } - }; - - _proto.show = function show() { - var _this2 = this; + } + show() { if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { return; } - var actives; - var activesData; + let actives; + let activesData; if (this._parent) { - actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { - if (typeof _this2._config.parent === 'string') { - return elem.getAttribute('data-bs-parent') === _this2._config.parent; + actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(elem => { + if (typeof this._config.parent === 'string') { + return elem.getAttribute('data-bs-parent') === this._config.parent; } return elem.classList.contains(CLASS_NAME_COLLAPSE); @@ -339,38 +286,36 @@ } } - var container = SelectorEngine__default['default'].findOne(this._selector); + const container = SelectorEngine__default['default'].findOne(this._selector); if (actives) { - var tempActiveData = actives.find(function (elem) { - return container !== elem; - }); - activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null; + const tempActiveData = actives.find(elem => container !== elem); + activesData = tempActiveData ? Data__default['default'].get(tempActiveData, DATA_KEY) : null; if (activesData && activesData._isTransitioning) { return; } } - var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW); + const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW); if (startEvent.defaultPrevented) { return; } if (actives) { - actives.forEach(function (elemActive) { + actives.forEach(elemActive => { if (container !== elemActive) { Collapse.collapseInterface(elemActive, 'hide'); } if (!activesData) { - Data__default['default'].setData(elemActive, DATA_KEY, null); + Data__default['default'].set(elemActive, DATA_KEY, null); } }); } - var dimension = this._getDimension(); + const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); @@ -379,7 +324,7 @@ this._element.style[dimension] = 0; if (this._triggerArray.length) { - this._triggerArray.forEach(function (element) { + this._triggerArray.forEach(element => { element.classList.remove(CLASS_NAME_COLLAPSED); element.setAttribute('aria-expanded', true); }); @@ -387,54 +332,50 @@ this.setTransitioning(true); - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_COLLAPSING); - - _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + const complete = () => { + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2._element.style[dimension] = ''; + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); - _this2.setTransitioning(false); - - EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN); + this._element.style[dimension] = ''; + this.setTransitioning(false); + EventHandler__default['default'].trigger(this._element, EVENT_SHOWN); }; - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = getTransitionDurationFromElement(this._element); + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + const transitionDuration = getTransitionDurationFromElement(this._element); EventHandler__default['default'].one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; - - _proto.hide = function hide() { - var _this3 = this; + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } + hide() { if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { return; } - var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE); + const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE); if (startEvent.defaultPrevented) { return; } - var dimension = this._getDimension(); + const dimension = this._getDimension(); - this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); - var triggerArrayLength = this._triggerArray.length; + const triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { - for (var i = 0; i < triggerArrayLength; i++) { - var trigger = this._triggerArray[i]; - var elem = getElementFromSelector(trigger); + for (let i = 0; i < triggerArrayLength; i++) { + const trigger = this._triggerArray[i]; + const elem = getElementFromSelector(trigger); if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { trigger.classList.add(CLASS_NAME_COLLAPSED); @@ -445,52 +386,53 @@ this.setTransitioning(true); - var complete = function complete() { - _this3.setTransitioning(false); + const complete = () => { + this.setTransitioning(false); - _this3._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this3._element.classList.add(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN); + EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN); }; this._element.style[dimension] = ''; - var transitionDuration = getTransitionDurationFromElement(this._element); + const transitionDuration = getTransitionDurationFromElement(this._element); EventHandler__default['default'].one(this._element, 'transitionend', complete); emulateTransitionEnd(this._element, transitionDuration); - }; + } - _proto.setTransitioning = function setTransitioning(isTransitioning) { + setTransitioning(isTransitioning) { this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); + } + dispose() { + super.dispose(); this._config = null; this._parent = null; this._triggerArray = null; this._isTransitioning = null; } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); + + _getConfig(config) { + config = { ...Default, + ...config + }; config.toggle = Boolean(config.toggle); // Coerce string values typeCheckConfig(NAME, config, DefaultType); return config; - }; + } - _proto._getDimension = function _getDimension() { + _getDimension() { return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this4 = this; + } - var parent = this._config.parent; + _getParent() { + let { + parent + } = this._config; if (isElement(parent)) { // it's a jQuery object @@ -501,22 +443,22 @@ parent = SelectorEngine__default['default'].findOne(parent); } - var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]"; - SelectorEngine__default['default'].find(selector, parent).forEach(function (element) { - var selected = getElementFromSelector(element); + const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent="${parent}"]`; + SelectorEngine__default['default'].find(selector, parent).forEach(element => { + const selected = getElementFromSelector(element); - _this4._addAriaAndCollapsedClass(selected, [element]); + this._addAriaAndCollapsedClass(selected, [element]); }); return parent; - }; + } - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + _addAriaAndCollapsedClass(element, triggerArray) { if (!element || !triggerArray.length) { return; } - var isOpen = element.classList.contains(CLASS_NAME_SHOW); - triggerArray.forEach(function (elem) { + const isOpen = element.classList.contains(CLASS_NAME_SHOW); + triggerArray.forEach(elem => { if (isOpen) { elem.classList.remove(CLASS_NAME_COLLAPSED); } else { @@ -526,12 +468,14 @@ elem.setAttribute('aria-expanded', isOpen); }); } // Static - ; - Collapse.collapseInterface = function collapseInterface(element, config) { - var data = Data__default['default'].getData(element, DATA_KEY); - var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {}); + static collapseInterface(element, config) { + let data = Data__default['default'].get(element, DATA_KEY); + const _config = { ...Default, + ...Manipulator__default['default'].getDataAttributes(element), + ...(typeof config === 'object' && config ? config : {}) + }; if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; @@ -543,33 +487,20 @@ if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + throw new TypeError(`No method named "${config}"`); } data[config](); } - }; + } - Collapse.jQueryInterface = function jQueryInterface(config) { + static jQueryInterface(config) { return this.each(function () { Collapse.collapseInterface(this, config); }); - }; - - _createClass(Collapse, null, [{ - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY; - } - }]); + } - return Collapse; - }(BaseComponent__default['default']); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -583,12 +514,12 @@ event.preventDefault(); } - var triggerData = Manipulator__default['default'].getDataAttributes(this); - var selector = getSelectorFromElement(this); - var selectorElements = SelectorEngine__default['default'].find(selector); - selectorElements.forEach(function (element) { - var data = Data__default['default'].getData(element, DATA_KEY); - var config; + const triggerData = Manipulator__default['default'].getDataAttributes(this); + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine__default['default'].find(selector); + selectorElements.forEach(element => { + const data = Data__default['default'].get(element, DATA_KEY); + let config; if (data) { // update parent attribute |