mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-10 22:24:19 +01:00
1 line
14 KiB
Plaintext
1 line
14 KiB
Plaintext
{"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","show","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","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","supportsTransitionEnd","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","removeClass","dropdownChild","getAttribute","setAttribute","addClass","reflow","dropdownElement","_jQueryInterface","config","each","$this","data","Error","document","on","event","preventDefault","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 if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\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"]} |