diff options
Diffstat (limited to 'js/dist/collapse.js')
| -rw-r--r-- | js/dist/collapse.js | 136 |
1 files changed, 60 insertions, 76 deletions
diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 60e08415b..1620280e5 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -1,6 +1,6 @@ /*! * Bootstrap collapse.js v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ (function (global, factory) { @@ -9,10 +9,10 @@ (global = global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine)); }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict'; - Data = Data && Data.hasOwnProperty('default') ? Data['default'] : Data; - EventHandler = EventHandler && EventHandler.hasOwnProperty('default') ? EventHandler['default'] : EventHandler; - Manipulator = Manipulator && Manipulator.hasOwnProperty('default') ? Manipulator['default'] : Manipulator; - SelectorEngine = SelectorEngine && SelectorEngine.hasOwnProperty('default') ? SelectorEngine['default'] : SelectorEngine; + Data = Data && Object.prototype.hasOwnProperty.call(Data, 'default') ? Data['default'] : Data; + EventHandler = EventHandler && Object.prototype.hasOwnProperty.call(EventHandler, 'default') ? EventHandler['default'] : EventHandler; + Manipulator = Manipulator && Object.prototype.hasOwnProperty.call(Manipulator, 'default') ? Manipulator['default'] : Manipulator; + SelectorEngine = SelectorEngine && Object.prototype.hasOwnProperty.call(SelectorEngine, 'default') ? SelectorEngine['default'] : SelectorEngine; function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { @@ -64,13 +64,13 @@ var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { - ownKeys(source, true).forEach(function (key) { + ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { - ownKeys(source).forEach(function (key) { + ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } @@ -89,6 +89,10 @@ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); }; @@ -142,9 +146,7 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - var evt = document.createEvent('HTMLEvents'); - evt.initEvent(TRANSITION_END, true, true); - element.dispatchEvent(evt); + element.dispatchEvent(new Event(TRANSITION_END)); }; var isElement = function isElement(obj) { @@ -181,14 +183,6 @@ }); }; - var makeArray = function makeArray(nodeList) { - if (!nodeList) { - return []; - } - - return [].slice.call(nodeList); - }; - var reflow = function reflow(element) { return element.offsetHeight; }; @@ -223,47 +217,37 @@ toggle: 'boolean', parent: '(string|element)' }; - var Event = { - SHOW: "show" + EVENT_KEY, - SHOWN: "shown" + EVENT_KEY, - HIDE: "hide" + EVENT_KEY, - HIDDEN: "hidden" + EVENT_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - SHOW: 'show', - COLLAPSE: 'collapse', - COLLAPSING: 'collapsing', - COLLAPSED: 'collapsed' - }; - var Dimension = { - WIDTH: 'width', - HEIGHT: 'height' - }; - var Selector = { - ACTIVES: '.show, .collapsing', - DATA_TOGGLE: '[data-toggle="collapse"]' - }; + 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-toggle="collapse"]'; /** * ------------------------------------------------------------------------ * Class Definition * ------------------------------------------------------------------------ */ - var Collapse = - /*#__PURE__*/ - function () { + var Collapse = /*#__PURE__*/function () { function Collapse(element, config) { this._isTransitioning = false; this._element = element; this._config = this._getConfig(config); - this._triggerArray = makeArray(SelectorEngine.find("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]"))); - var toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE)); + this._triggerArray = SelectorEngine.find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-target=\"#" + element.id + "\"]")); + var toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE); for (var i = 0, len = toggleList.length; i < len; i++) { var elem = toggleList[i]; var selector = getSelectorFromElement(elem); - var filterElement = makeArray(SelectorEngine.find(selector)).filter(function (foundElem) { + var filterElement = SelectorEngine.find(selector).filter(function (foundElem) { return foundElem === element; }); @@ -292,7 +276,7 @@ // Public _proto.toggle = function toggle() { - if (this._element.classList.contains(ClassName.SHOW)) { + if (this._element.classList.contains(CLASS_NAME_SHOW)) { this.hide(); } else { this.show(); @@ -302,7 +286,7 @@ _proto.show = function show() { var _this = this; - if (this._isTransitioning || this._element.classList.contains(ClassName.SHOW)) { + if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { return; } @@ -310,12 +294,12 @@ var activesData; if (this._parent) { - actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent)).filter(function (elem) { + actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { if (typeof _this._config.parent === 'string') { return elem.getAttribute('data-parent') === _this._config.parent; } - return elem.classList.contains(ClassName.COLLAPSE); + return elem.classList.contains(CLASS_NAME_COLLAPSE); }); if (actives.length === 0) { @@ -336,7 +320,7 @@ } } - var startEvent = EventHandler.trigger(this._element, Event.SHOW); + var startEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (startEvent.defaultPrevented) { return; @@ -356,15 +340,15 @@ var dimension = this._getDimension(); - this._element.classList.remove(ClassName.COLLAPSE); + this._element.classList.remove(CLASS_NAME_COLLAPSE); - this._element.classList.add(ClassName.COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.style[dimension] = 0; if (this._triggerArray.length) { this._triggerArray.forEach(function (element) { - element.classList.remove(ClassName.COLLAPSED); + element.classList.remove(CLASS_NAME_COLLAPSED); element.setAttribute('aria-expanded', true); }); } @@ -372,17 +356,17 @@ this.setTransitioning(true); var complete = function complete() { - _this._element.classList.remove(ClassName.COLLAPSING); + _this._element.classList.remove(CLASS_NAME_COLLAPSING); - _this._element.classList.add(ClassName.COLLAPSE); + _this._element.classList.add(CLASS_NAME_COLLAPSE); - _this._element.classList.add(ClassName.SHOW); + _this._element.classList.add(CLASS_NAME_SHOW); _this._element.style[dimension] = ''; _this.setTransitioning(false); - EventHandler.trigger(_this._element, Event.SHOWN); + EventHandler.trigger(_this._element, EVENT_SHOWN); }; var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); @@ -396,11 +380,11 @@ _proto.hide = function hide() { var _this2 = this; - if (this._isTransitioning || !this._element.classList.contains(ClassName.SHOW)) { + if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { return; } - var startEvent = EventHandler.trigger(this._element, Event.HIDE); + var startEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (startEvent.defaultPrevented) { return; @@ -411,11 +395,11 @@ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; reflow(this._element); - this._element.classList.add(ClassName.COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSING); - this._element.classList.remove(ClassName.COLLAPSE); + this._element.classList.remove(CLASS_NAME_COLLAPSE); - this._element.classList.remove(ClassName.SHOW); + this._element.classList.remove(CLASS_NAME_SHOW); var triggerArrayLength = this._triggerArray.length; @@ -424,8 +408,8 @@ var trigger = this._triggerArray[i]; var elem = getElementFromSelector(trigger); - if (elem && !elem.classList.contains(ClassName.SHOW)) { - trigger.classList.add(ClassName.COLLAPSED); + if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { + trigger.classList.add(CLASS_NAME_COLLAPSED); trigger.setAttribute('aria-expanded', false); } } @@ -436,11 +420,11 @@ var complete = function complete() { _this2.setTransitioning(false); - _this2._element.classList.remove(ClassName.COLLAPSING); + _this2._element.classList.remove(CLASS_NAME_COLLAPSING); - _this2._element.classList.add(ClassName.COLLAPSE); + _this2._element.classList.add(CLASS_NAME_COLLAPSE); - EventHandler.trigger(_this2._element, Event.HIDDEN); + EventHandler.trigger(_this2._element, EVENT_HIDDEN); }; this._element.style[dimension] = ''; @@ -472,9 +456,9 @@ }; _proto._getDimension = function _getDimension() { - var hasWidth = this._element.classList.contains(Dimension.WIDTH); + var hasWidth = this._element.classList.contains(WIDTH); - return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; + return hasWidth ? WIDTH : HEIGHT; }; _proto._getParent = function _getParent() { @@ -491,8 +475,8 @@ parent = SelectorEngine.findOne(parent); } - var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]"; - makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) { + var selector = SELECTOR_DATA_TOGGLE + "[data-parent=\"" + parent + "\"]"; + SelectorEngine.find(selector, parent).forEach(function (element) { var selected = getElementFromSelector(element); _this3._addAriaAndCollapsedClass(selected, [element]); @@ -502,14 +486,14 @@ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { if (element) { - var isOpen = element.classList.contains(ClassName.SHOW); + var isOpen = element.classList.contains(CLASS_NAME_SHOW); if (triggerArray.length) { triggerArray.forEach(function (elem) { if (isOpen) { - elem.classList.remove(ClassName.COLLAPSED); + elem.classList.remove(CLASS_NAME_COLLAPSED); } else { - elem.classList.add(ClassName.COLLAPSED); + elem.classList.add(CLASS_NAME_COLLAPSED); } elem.setAttribute('aria-expanded', isOpen); @@ -572,7 +556,7 @@ */ - EventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.target.tagName === 'A') { event.preventDefault(); @@ -580,7 +564,7 @@ var triggerData = Manipulator.getDataAttributes(this); var selector = getSelectorFromElement(this); - var selectorElements = makeArray(SelectorEngine.find(selector)); + var selectorElements = SelectorEngine.find(selector); selectorElements.forEach(function (element) { var data = Data.getData(element, DATA_KEY); var config; |
