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: 88370841ec532078063a3d8d7da767813240f3e3 (plain)
1
{"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","DATA_CHILDREN","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","_parent","_getParent","_addAriaAndCollapsedClass","_selectorActives","childrenSelector","hasAttribute","getAttribute","hasClass","hide","show","Error","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","getBoundingClientRect","reflow","isTransitioning","dispose","removeData","extend","Boolean","typeCheckConfig","hasWidth","selector","each","i","_getTargetFromElement","triggerArray","isOpen","toggleClass","getSelectorFromElement","$this","test","undefined","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.6): 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.6'\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     : '.card > .show, .card > .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]',\n    DATA_CHILDREN : 'data-children'\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      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      this._selectorActives = Selector.ACTIVES\n      if (this._parent) {\n        const childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null\n        if (childrenSelector !== null) {\n          this._selectorActives = `${childrenSelector} > .show, ${childrenSelector} > .collapsing`\n        }\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        throw new Error('Collapse is transitioning')\n      }\n\n      if ($(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).find(this._selectorActives))\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      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      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        throw new Error('Collapse is transitioning')\n      }\n\n      if (!$(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      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      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        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      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 (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    const target = Collapse._getTargetFromElement(this)\n    const data   = $(target).data(DATA_KEY)\n    const 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"]}