1{"version":3,"sources":["../../src/bootstrap/tab.js"],"names":["DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","element","_element","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","itemSelector","nodeName","makeArray","find","length","hideEvent","Event","relatedTarget","showEvent","trigger","isDefaultPrevented","document","querySelector","_activate","complete","hiddenEvent","shownEvent","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","transitionDuration","getTransitionDurationFromElement","removeClass","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","getAttribute","setAttribute","addClass","reflow","classList","contains","add","dropdownElement","dropdownToggleList","slice","call","querySelectorAll","config","each","$this","data","TypeError","on","event","preventDefault","_jQueryInterface","Constructor","noConflict"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME               = 'tab'\nconst VERSION            = '4.5.0'\nconst DATA_KEY           = 'bs.tab'\nconst EVENT_KEY          = `.${DATA_KEY}`\nconst DATA_API_KEY       = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE           = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN         = `hidden${EVENT_KEY}`\nconst EVENT_SHOW           = `show${EVENT_KEY}`\nconst EVENT_SHOWN          = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE        = 'active'\nconst CLASS_NAME_DISABLED      = 'disabled'\nconst CLASS_NAME_FADE          = 'fade'\nconst CLASS_NAME_SHOW          = 'show'\n\nconst SELECTOR_DROPDOWN              = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP        = '.nav, .list-group'\nconst SELECTOR_ACTIVE                = '.active'\nconst SELECTOR_ACTIVE_UL             = '> li > .active'\nconst SELECTOR_DATA_TOGGLE           = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE       = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n  constructor(element) {\n    this._element = element\n  }\n\n  // Getters\n\n  static get VERSION() {\n    return VERSION\n  }\n\n  // Public\n\n  show() {\n    if (this._element.parentNode &&\n        this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n        $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n        $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n      return\n    }\n\n    let target\n    let previous\n    const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n    const selector = Util.getSelectorFromElement(this._element)\n\n    if (listElement) {\n      const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n      previous = $.makeArray($(listElement).find(itemSelector))\n      previous = previous[previous.length - 1]\n    }\n\n    const hideEvent = $.Event(EVENT_HIDE, {\n      relatedTarget: this._element\n    })\n\n    const showEvent = $.Event(EVENT_SHOW, {\n      relatedTarget: previous\n    })\n\n    if (previous) {\n      $(previous).trigger(hideEvent)\n    }\n\n    $(this._element).trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() ||\n        hideEvent.isDefaultPrevented()) {\n      return\n    }\n\n    if (selector) {\n      target = document.querySelector(selector)\n    }\n\n    this._activate(\n      this._element,\n      listElement\n    )\n\n    const complete = () => {\n      const hiddenEvent = $.Event(EVENT_HIDDEN, {\n        relatedTarget: this._element\n      })\n\n      const shownEvent = $.Event(EVENT_SHOWN, {\n        relatedTarget: previous\n      })\n\n      $(previous).trigger(hiddenEvent)\n      $(this._element).trigger(shownEvent)\n    }\n\n    if (target) {\n      this._activate(target, target.parentNode, complete)\n    } else {\n      complete()\n    }\n  }\n\n  dispose() {\n    $.removeData(this._element, DATA_KEY)\n    this._element = null\n  }\n\n  // Private\n\n  _activate(element, container, callback) {\n    const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n      ? $(container).find(SELECTOR_ACTIVE_UL)\n      : $(container).children(SELECTOR_ACTIVE)\n\n    const active = activeElements[0]\n    const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n    const complete = () => this._transitionComplete(\n      element,\n      active,\n      callback\n    )\n\n    if (active && isTransitioning) {\n      const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n      $(active)\n        .removeClass(CLASS_NAME_SHOW)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      complete()\n    }\n  }\n\n  _transitionComplete(element, active, callback) {\n    if (active) {\n      $(active).removeClass(CLASS_NAME_ACTIVE)\n\n      const dropdownChild = $(active.parentNode).find(\n        SELECTOR_DROPDOWN_ACTIVE_CHILD\n      )[0]\n\n      if (dropdownChild) {\n        $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n      }\n\n      if (active.getAttribute('role') === 'tab') {\n        active.setAttribute('aria-selected', false)\n      }\n    }\n\n    $(element).addClass(CLASS_NAME_ACTIVE)\n    if (element.getAttribute('role') === 'tab') {\n      element.setAttribute('aria-selected', true)\n    }\n\n    Util.reflow(element)\n\n    if (element.classList.contains(CLASS_NAME_FADE)) {\n      element.classList.add(CLASS_NAME_SHOW)\n    }\n\n    if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n      const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n      if (dropdownElement) {\n        const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n        $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n      }\n\n      element.setAttribute('aria-expanded', true)\n    }\n\n    if (callback) {\n      callback()\n    }\n  }\n\n  // Static\n\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      const $this = $(this)\n      let data = $this.data(DATA_KEY)\n\n      if (!data) {\n        data = new Tab(this)\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)\n  .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    event.preventDefault()\n    Tab._jQueryInterface.call($(this), 'show')\n  })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Tab._jQueryInterface\n}\n\nexport default Tab\n"],"file":"tab.min.js"}