| 1 |
{"version":3,"file":"tab.min.js","sources":["../../src/bootstrap/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\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 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 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 * Class definition\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n // Public\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 this._element.hasAttribute('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 _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 let parent = element.parentNode\n if (parent && parent.nodeName === 'LI') {\n parent = parent.parentNode\n }\n\n if (parent && $(parent).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 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\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\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 * jQuery\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"],"names":["EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","Tab","constructor","element","_element","VERSION","show","this","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","hasAttribute","target","previous","listElement","closest","selector","Util","getSelectorFromElement","itemSelector","nodeName","makeArray","find","length","hideEvent","Event","relatedTarget","showEvent","trigger","isDefaultPrevented","document","querySelector","_activate","complete","hiddenEvent","shownEvent","dispose","removeData","container","callback","active","children","isTransitioning","_transitionComplete","transitionDuration","getTransitionDurationFromElement","removeClass","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","getAttribute","setAttribute","addClass","reflow","classList","contains","add","parent","dropdownElement","dropdownToggleList","slice","call","querySelectorAll","config","each","$this","data","TypeError","on","event","preventDefault","_jQueryInterface","Constructor","noConflict"],"mappings":"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"}
|
- |
|
| 2 |
|
1 |
{"version":3,"file":"tab.min.js","sources":["../../src/bootstrap/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport { defineJQueryPlugin, getNextActiveElement, isDisabled } from './util/index'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\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}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst HOME_KEY = 'Home'\nconst END_KEY = 'End'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_DROPDOWN = 'dropdown'\n\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`\n\nconst SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]'\nconst SELECTOR_OUTER = '.nav-item, .list-group-item'\nconst SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]' // TODO: could only be `tab` in v6\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`\n\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n constructor(element) {\n super(element)\n this._parent = this._element.closest(SELECTOR_TAB_PANEL)\n\n if (!this._parent) {\n return\n // TODO: should throw exception in v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n }\n\n // Set up initial aria attributes\n this._setInitialAttributes(this._parent, this._getChildren())\n\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() { // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element\n if (this._elemIsActive(innerElem)) {\n return\n }\n\n // Search for active tab on same parent to deactivate it\n const active = this._getActiveElem()\n\n const hideEvent = active ?\n EventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\n null\n\n const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\n\n if (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\n return\n }\n\n this._deactivate(active, innerElem)\n this._activate(innerElem, active)\n }\n\n // Private\n _activate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n\n this._activate(SelectorEngine.getElementFromSelector(element)) // Search and activate/show the proper section\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW)\n return\n }\n\n element.removeAttribute('tabindex')\n element.setAttribute('aria-selected', true)\n this._toggleDropDown(element, true)\n EventHandler.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.blur()\n\n this._deactivate(SelectorEngine.getElementFromSelector(element)) // Search and deactivate the shown section too\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW)\n return\n }\n\n element.setAttribute('aria-selected', false)\n element.setAttribute('tabindex', '-1')\n this._toggleDropDown(element, false)\n EventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem })\n }\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\n }\n\n _keydown(event) {\n if (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\n return\n }\n\n event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n event.preventDefault()\n\n const children = this._getChildren().filter(element => !isDisabled(element))\n let nextActiveElement\n\n if ([HOME_KEY, END_KEY].includes(event.key)) {\n nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]\n } else {\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\n nextActiveElement = getNextActiveElement(children, event.target, isNext, true)\n }\n\n if (nextActiveElement) {\n nextActiveElement.focus({ preventScroll: true })\n Tab.getOrCreateInstance(nextActiveElement).show()\n }\n }\n\n _getChildren() { // collection of inner elements\n return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent)\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist')\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child)\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child)\n const isActive = this._elemIsActive(child)\n const outerElem = this._getOuterElement(child)\n child.setAttribute('aria-selected', isActive)\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation')\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1')\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab')\n\n // set attributes to the related panel too\n this._setInitialAttributesOnTargetPanel(child)\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = SelectorEngine.getElementFromSelector(child)\n\n if (!target) {\n return\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel')\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element)\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine.findOne(selector, outerElem)\n if (element) {\n element.classList.toggle(className, open)\n }\n }\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\n outerElem.setAttribute('aria-expanded', open)\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value)\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n // Try to get the inner element (usually the .nav-link)\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem)\n }\n\n // Try to get the outer element (usually the .nav-item)\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n Tab.getOrCreateInstance(this).show()\n})\n\n/**\n * Initialize on focus\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element)\n }\n})\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n"],"names":["EVENT_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","BaseComponent","constructor","element","_parent","this","_element","closest","_setInitialAttributes","_getChildren","on","event","_keydown","NAME","show","innerElem","_elemIsActive","active","_getActiveElem","hideEvent","EventHandler","trigger","relatedTarget","defaultPrevented","_deactivate","_activate","relatedElem","classList","add","SelectorEngine","getElementFromSelector","_queueCallback","getAttribute","removeAttribute","setAttribute","_toggleDropDown","contains","remove","blur","includes","key","stopPropagation","preventDefault","children","filter","nextActiveElement","length","isNext","target","focus","preventScroll","getOrCreateInstance","find","child","parent","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","id","open","toggle","selector","className","findOne","attribute","value","hasAttribute","elem","matches","config","each","data","undefined","startsWith","TypeError","document","tagName","window"],"mappings":"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"}
|