Welcome to mirror list, hosted at ThFree Co, Russian Federation.

collapse.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 94c46f5a06355ba3a18ee185a5618c4ba302ab96 (plain)
1
{"version":3,"file":"collapse.js","sources":["../src/collapse.js"],"sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.1.3'\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\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\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   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray(document.querySelectorAll(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n      for (let i = 0, len = toggleList.length; i < len; i++) {\n        const elem = toggleList[i]\n        const selector = Util.getSelectorFromElement(elem)\n        const filterElement = [].slice.call(document.querySelectorAll(selector))\n          .filter((foundElem) => foundElem === element)\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector\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    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\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 = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n          .filter((elem) => {\n            if (typeof this._config.parent === 'string') {\n              return elem.getAttribute('data-parent') === this._config.parent\n            }\n\n            return elem.classList.contains(ClassName.COLLAPSE)\n          })\n\n        if (actives.length === 0) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).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).not(this._selector), '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      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize = `scroll${capitalizedDimension}`\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\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      const triggerArrayLength = this._triggerArray.length\n      if (triggerArrayLength > 0) {\n        for (let i = 0; i < triggerArrayLength; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $([].slice.call(document.querySelectorAll(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      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\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    // Private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\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      let parent\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // It's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = document.querySelector(this._config.parent)\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      const children = [].slice.call(parent.querySelectorAll(selector))\n      $(children).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      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    // Static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? document.querySelector(selector) : 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 = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config ? 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 TypeError(`No method named \"${config}\"`)\n          }\n          data[config]()\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 <a> 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    const selectors = [].slice.call(document.querySelectorAll(selector))\n    $(selectors).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   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict = () => {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n})($)\n\nexport default Collapse\n"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","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","document","querySelectorAll","id","toggleList","slice","call","i","len","length","elem","selector","Util","getSelectorFromElement","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","getAttribute","classList","contains","not","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","capitalizedDimension","toUpperCase","scrollSize","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","triggerArrayLength","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","querySelector","children","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","TypeError","on","event","currentTarget","tagName","preventDefault","$trigger","selectors","$target","Constructor","noConflict"],"mappings":"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"}