1
|
{"version":3,"sources":["../src/tab.js"],"names":["Tab","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","DROPDOWN","NAV_LIST_GROUP","ACTIVE_UL","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","element","_element","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","itemSelector","nodeName","makeArray","find","length","hideEvent","relatedTarget","showEvent","trigger","isDefaultPrevented","_activate","complete","hiddenEvent","shownEvent","removeData","container","callback","activeElements","children","active","isTransitioning","supportsTransitionEnd","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","removeClass","dropdownChild","setAttribute","addClass","reflow","dropdownElement","config","each","$this","data","Error","document","on","event","preventDefault","_jQueryInterface","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"tab.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (() => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0-beta'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.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' ? 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 = $(selector)[0]\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\n // private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback\n && Util.supportsTransitionEnd()\n && (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.SHOW)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n element.setAttribute('aria-expanded', true)\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\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 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)\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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})(jQuery)\n\nexport default Tab\n"]}
|