{"version":3,"sources":["webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/tabs/tabs.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/tabs/tab.js"],"names":["TabsPlugin","components","BTabs","BTab","_watch","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","_makeModelMixin","type","modelMixin","mixin","modelProps","props","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","notDisabled","tab","disabled","BVTabButton","extend","name","inject","bvTabs","default","controls","id","noKeyNav","posInSet","setSize","tabIndex","methods","focus","this","$refs","link","handleEvt","keyCode","shiftKey","$emit","indexOf","render","h","_this$tab","title","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","staticClass","class","active","activeNavItemClass","attrs","role","tabindex","on","click","keydown","ref","normalizeSlot","navProps","activeTabClass","card","contentClass","end","lazy","navClass","navWrapperClass","noFade","noNavStyle","tag","mixins","provide","data","currentTab","tabs","registeredTabs","computed","fade","localNavClass","classes","vertical","concat","watch","newValue","oldValue","$tab","activateTab","previousTab","nextTab","index","_this","map","$nextTick","slice","updateTabs","created","$_observer","mounted","setObserver","beforeDestroy","registerTab","unregisterTab","$t","_this2","undefined","disconnect","handler","content","childList","subtree","attributes","attributeFilter","getTabs","$tabs","$children","_isTab","order","selector","safeId","join","$el","a","b","reverse","find","getButtonForTab","buttons","$btn","updateButton","$button","$forceUpdate","result","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","deactivateTab","focusButton","_this3","emitTabClick","clickTab","firstTab","currentIndex","lastTab","_this4","align","fill","justified","pills","small","$activeTab","$fallbackTab","$buttons","_on","controlledBy","refInFor","$nav","cardHeader","$empty","$content","col","row","_objectSpread2","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","tabClasses","noBody","buttonId","computedNoFade","computedLazy","activate","deactivate","updated","hasNormalizedSlot","directives","mode"],"mappings":"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","file":"js/chunk-vendors~336510e2.2e2f97c4.js","sourcesContent":["import { BTabs } from './tabs';\nimport { BTab } from './tab';\nimport { pluginFactory } from '../../utils/plugins';\nvar TabsPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTabs: BTabs,\n BTab: BTab\n }\n});\nexport { TabsPlugin, BTabs, BTab };","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});","var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});"],"sourceRoot":""}