{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","tabToggles","i","length","elem","selector","Util","getSelectorFromElement","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","children","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","$elem","isTransitioning","removeData","extend","Boolean","typeCheckConfig","hasWidth","find","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","Error","document","on","event","currentTarget","tagName","preventDefault","$trigger","$target","Constructor","noConflict","jQuery"],"mappings":"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","file":"collapse.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (() => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0-beta'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : 'string'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n if (!actives.length) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n config.toggle = Boolean(config.toggle) // coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n const parent = $(this._config.parent)[0]\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n\n // static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = $.extend(\n {},\n Default,\n $this.data(),\n typeof config === 'object' && config\n )\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n\n})(jQuery)\n\nexport default Collapse\n"]}