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: a451a4d7f621503375cffa2a5e3433fa25cd0c2b (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\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME                = 'collapse'\nconst VERSION             = '4.1.3'\nconst DATA_KEY            = 'bs.collapse'\nconst EVENT_KEY           = `.${DATA_KEY}`\nconst DATA_API_KEY        = '.data-api'\nconst JQUERY_NO_CONFLICT  = $.fn[NAME]\n\nconst Default = {\n  toggle : true,\n  parent : ''\n}\n\nconst DefaultType = {\n  toggle : 'boolean',\n  parent : '(string|element)'\n}\n\nconst 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\nconst ClassName = {\n  SHOW       : 'show',\n  COLLAPSE   : 'collapse',\n  COLLAPSING : 'collapsing',\n  COLLAPSED  : 'collapsed'\n}\n\nconst Dimension = {\n  WIDTH  : 'width',\n  HEIGHT : 'height'\n}\n\nconst Selector = {\n  ACTIVES     : '.show, .collapsing',\n  DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass 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\nexport default Collapse\n"],"names":["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","Collapse","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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"}