{"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","ACTIVE","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","find","length","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","setAttribute","attr","setTransitioning","complete","Util","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","offsetDimension","reflow","isTransitioning","dispose","removeData","extend","Boolean","typeCheckConfig","hasWidth","selector","each","i","_getTargetFromElement","triggerArray","isOpen","toggleClass","getSelectorFromElement","$this","test","undefined","Error","document","on","event","preventDefault","target","Constructor","noConflict","jQuery"],"mappings":"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","file":"collapse.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.5): 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-alpha.5'\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    ACTIVE     : 'active',\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     : '.card > .active, .card > .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\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.ACTIVE)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.ACTIVE)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).find(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      let 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      let dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n      this._element.setAttribute('aria-expanded', true)\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      let complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.ACTIVE)\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      let capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      let 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.ACTIVE)) {\n        return\n      }\n\n      let startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      let dimension       = this._getDimension()\n      let offsetDimension = dimension === Dimension.WIDTH ?\n        'offsetWidth' : 'offsetHeight'\n\n      this._element.style[dimension] = `${this._element[offsetDimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.ACTIVE)\n\n      this._element.setAttribute('aria-expanded', false)\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .addClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', false)\n      }\n\n      this.setTransitioning(true)\n\n      let 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      let hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent   = $(this._config.parent)[0]\n      let 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        let isOpen = $(element).hasClass(ClassName.ACTIVE)\n        element.setAttribute('aria-expanded', isOpen)\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      let selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let $this   = $(this)\n        let data    = $this.data(DATA_KEY)\n        let _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 (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    event.preventDefault()\n\n    let target = Collapse._getTargetFromElement(this)\n    let data   = $(target).data(DATA_KEY)\n    let config = data ? 'toggle' : $(this).data()\n\n    Collapse._jQueryInterface.call($(target), config)\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"]}