diff options
Diffstat (limited to 'js/dist/collapse.js')
| -rw-r--r-- | js/dist/collapse.js | 586 |
1 files changed, 230 insertions, 356 deletions
diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 29f47f900..a0898e68d 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.1.0 (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,26 @@ 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.1.0): 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) - 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 @@ -99,7 +47,7 @@ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { - hrefAttr = '#' + hrefAttr.split('#')[1]; + hrefAttr = `#${hrefAttr.split('#')[1]}`; } selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; @@ -108,8 +56,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,79 +66,66 @@ 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) { - 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 - - if (!floatTransitionDuration && !floatTransitionDelay) { - return 0; - } // If multiple durations are defined, take the first - - - transitionDuration = transitionDuration.split(',')[0]; - transitionDelay = transitionDelay.split(',')[0]; - return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; - }; + const isElement = obj => { + if (!obj || typeof obj !== 'object') { + return false; + } - var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); - }; + if (typeof obj.jquery !== 'undefined') { + obj = obj[0]; + } - var isElement = function isElement(obj) { - return (obj[0] || obj).nodeType; + return typeof obj.nodeType !== 'undefined'; }; - var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { - var called = false; - var durationPadding = 5; - var emulatedDuration = duration + durationPadding; + const getElement = obj => { + if (isElement(obj)) { + // it's a jQuery object or a node element + return obj.jquery ? obj[0] : obj; + } - function listener() { - called = true; - element.removeEventListener(TRANSITION_END, listener); + if (typeof obj === 'string' && obj.length > 0) { + return document.querySelector(obj); } - element.addEventListener(TRANSITION_END, listener); - setTimeout(function () { - if (!called) { - triggerTransitionEnd(element); - } - }, emulatedDuration); + return null; }; - 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}".`); } }); }; + /** + * Trick to restart an element's animation + * + * @param {HTMLElement} element + * @return void + * + * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation + */ - var reflow = function reflow(element) { - return element.offsetHeight; + + const reflow = element => { + // eslint-disable-next-line no-unused-expressions + 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,27 +134,35 @@ return null; }; - var onDOMContentLoaded = function onDOMContentLoaded(callback) { + const DOMContentLoadedCallbacks = []; + + const onDOMContentLoaded = callback => { if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', callback); + // add listener on the first call when the document is in loading state + if (!DOMContentLoadedCallbacks.length) { + document.addEventListener('DOMContentLoaded', () => { + DOMContentLoadedCallbacks.forEach(callback => callback()); + }); + } + + DOMContentLoadedCallbacks.push(callback); } else { callback(); } }; - document.documentElement.dir === 'rtl'; - - var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { - onDOMContentLoaded(function () { - var $ = getjQuery(); + const defineJQueryPlugin = plugin => { + onDOMContentLoaded(() => { + const $ = getjQuery(); /* istanbul ignore if */ if ($) { - var JQUERY_NO_CONFLICT = $.fn[name]; + const name = plugin.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,149 +171,141 @@ }; /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.1.0): 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: '' + parent: null }; - var DefaultType = { + const DefaultType = { toggle: 'boolean', - parent: '(string|element)' + parent: '(null|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 CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; + 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); + class Collapse extends BaseComponent__default['default'] { + constructor(element, config) { + super(element); + this._isTransitioning = false; + this._config = this._getConfig(config); + this._triggerArray = []; + const toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE); - function Collapse(element, config) { - var _this; - - _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._initializeChildren(); - if (!_this._config.parent) { - _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); } - 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 NAME() { + return NAME; + } // Public + - // Public - _proto.toggle = function toggle() { - if (this._element.classList.contains(CLASS_NAME_SHOW)) { + toggle() { + if (this._isShown()) { this.hide(); } else { this.show(); } - }; - - _proto.show = function show() { - var _this2 = this; + } - if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { + show() { + if (this._isTransitioning || this._isShown()) { 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; - } - - return elem.classList.contains(CLASS_NAME_COLLAPSE); - }); - - if (actives.length === 0) { - actives = null; - } + if (this._config.parent) { + const children = SelectorEngine__default['default'].find(`.${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`, this._config.parent); + actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); // remove children if greater depth } - 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; + if (actives.length) { + const tempActiveData = actives.find(elem => container !== elem); + activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : 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) { - if (container !== elemActive) { - Collapse.collapseInterface(elemActive, 'hide'); - } + actives.forEach(elemActive => { + if (container !== elemActive) { + Collapse.getOrCreateInstance(elemActive, { + toggle: false + }).hide(); + } - if (!activesData) { - Data__default['default'].setData(elemActive, DATA_KEY, null); - } - }); - } + if (!activesData) { + Data__default['default'].set(elemActive, DATA_KEY, null); + } + }); - var dimension = this._getDimension(); + const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); @@ -378,145 +313,119 @@ this._element.style[dimension] = 0; - if (this._triggerArray.length) { - this._triggerArray.forEach(function (element) { - element.classList.remove(CLASS_NAME_COLLAPSED); - element.setAttribute('aria-expanded', true); - }); - } - - this.setTransitioning(true); + this._addAriaAndCollapsedClass(this._triggerArray, true); - var complete = function complete() { - _this2._element.classList.remove(CLASS_NAME_COLLAPSING); + this._isTransitioning = true; - _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + const complete = () => { + this._isTransitioning = false; - _this2._element.style[dimension] = ''; + this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2.setTransitioning(false); + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); - EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN); + this._element.style[dimension] = ''; + 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); - EventHandler__default['default'].one(this._element, 'transitionend', complete); - emulateTransitionEnd(this._element, transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; - _proto.hide = function hide() { - var _this3 = this; + this._queueCallback(complete, this._element, true); + + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } - if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { + hide() { + if (this._isTransitioning || !this._isShown()) { 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); - trigger.setAttribute('aria-expanded', false); - } + if (elem && !this._isShown(elem)) { + this._addAriaAndCollapsedClass([trigger], false); } } - this.setTransitioning(true); + this._isTransitioning = true; - var complete = function complete() { - _this3.setTransitioning(false); + const complete = () => { + this._isTransitioning = 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); - EventHandler__default['default'].one(this._element, 'transitionend', complete); - emulateTransitionEnd(this._element, transitionDuration); - }; - - _proto.setTransitioning = function setTransitioning(isTransitioning) { - this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - _BaseComponent.prototype.dispose.call(this); - - this._config = null; - this._parent = null; - this._triggerArray = null; - this._isTransitioning = null; + + this._queueCallback(complete, this._element, true); + } + + _isShown(element = this._element) { + return element.classList.contains(CLASS_NAME_SHOW); } // Private - ; - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); + + _getConfig(config) { + config = { ...Default, + ...Manipulator__default['default'].getDataAttributes(this._element), + ...config + }; config.toggle = Boolean(config.toggle); // Coerce string values + config.parent = getElement(config.parent); typeCheckConfig(NAME, config, DefaultType); return config; - }; - - _proto._getDimension = function _getDimension() { - return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this4 = this; + } - var parent = this._config.parent; + _getDimension() { + return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; + } - if (isElement(parent)) { - // it's a jQuery object - if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') { - parent = parent[0]; - } - } else { - parent = SelectorEngine__default['default'].findOne(parent); + _initializeChildren() { + if (!this._config.parent) { + return; } - var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]"; - SelectorEngine__default['default'].find(selector, parent).forEach(function (element) { - var selected = getElementFromSelector(element); + const children = SelectorEngine__default['default'].find(`.${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`, this._config.parent); + SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => { + const selected = getElementFromSelector(element); - _this4._addAriaAndCollapsedClass(selected, [element]); + if (selected) { + this._addAriaAndCollapsedClass([element], this._isShown(selected)); + } }); - return parent; - }; + } - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { - if (!element || !triggerArray.length) { + _addAriaAndCollapsedClass(triggerArray, isOpen) { + if (!triggerArray.length) { return; } - var isOpen = element.classList.contains(CLASS_NAME_SHOW); - triggerArray.forEach(function (elem) { + triggerArray.forEach(elem => { if (isOpen) { elem.classList.remove(CLASS_NAME_COLLAPSED); } else { @@ -526,50 +435,29 @@ 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 : {}); - if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { - _config.toggle = false; - } - - if (!data) { - data = new Collapse(element, _config); - } + static jQueryInterface(config) { + return this.each(function () { + const _config = {}; - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); + if (typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; } - data[config](); - } - }; + const data = Collapse.getOrCreateInstance(this, _config); - Collapse.jQueryInterface = function jQueryInterface(config) { - return this.each(function () { - Collapse.collapseInterface(this, config); - }); - }; + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } - _createClass(Collapse, null, [{ - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY; - } - }]); + data[config](); + } + }); + } - return Collapse; - }(BaseComponent__default['default']); + } /** * ------------------------------------------------------------------------ * Data Api implementation @@ -583,26 +471,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; - - if (data) { - // update parent attribute - if (data._parent === null && typeof triggerData.parent === 'string') { - data._config.parent = triggerData.parent; - data._parent = data._getParent(); - } - - config = 'toggle'; - } else { - config = triggerData; - } - - Collapse.collapseInterface(element, config); + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine__default['default'].find(selector); + selectorElements.forEach(element => { + Collapse.getOrCreateInstance(element, { + toggle: false + }).toggle(); }); }); /** @@ -612,7 +486,7 @@ * add .Collapse to jQuery only if jQuery is present */ - defineJQueryPlugin(NAME, Collapse); + defineJQueryPlugin(Collapse); return Collapse; |
