{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["BTab","extend","name","mixins","inject","bvTabs","default","props","active","type","Boolean","tag","String","buttonId","title","titleItemClass","Array","Object","titleLinkClass","titleLinkAttributes","disabled","noBody","lazy","data","localActive","this","show","computed","tabClasses","card","activeTabClass","controlledBy","safeId","computedNoFade","fade","computedLazy","_isTab","watch","newValue","$emit","oldValue","activate","deactivate","firstTab","mounted","registerTab","updated","updateButton","hasNormalizedSlot","destroyed","unregisterTab","methods","activateTab","deactivateTab","render","h","$content","ref","staticClass","class","directives","rawName","value","expression","attrs","role","id","normalizeSlot","mode","noFade","TabsPlugin","components","BTabs","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","navProps","notDisabled","tab","BVTabButton","tabs","controls","tabIndex","Number","posInSet","setSize","noKeyNav","focus","$refs","link","handleEvt","evt","keyCode","shiftKey","indexOf","_this$tab","$link","activeNavItemClass","tabindex","on","click","keydown","provide","model","prop","event","end","noNavStyle","contentClass","navClass","navWrapperClass","currentTab","registeredTabs","isMounted","localNavClass","classes","vertical","concat","newVal","index","idx","oldVal","previousTab","nextTab","_this","$nextTick","updateTabs","_this2","map","t","_uid","slice","_this3","setObserver","created","_this4","$_observer","_this5","deactivated","activated","_this6","beforeDestroy","_this7","$once","disconnect","self","handler","tabsContainer","childList","subtree","attributes","attributeFilter","getTabs","$children","order","selector","join","$el","el","a","b","reverse","find","getButtonForTab","buttons","btn","button","$forceUpdate","result","tabEvt","cancelable","vueTarget","componentId","defaultPrevented","focusButton","_this8","emitTabClick","clickTab","currentIndex","lastTab","_this9","activeTab","fallbackTab","refInFor","first","prev","next","last","nav","fill","justified","align","pills","small","cardHeader","empty","content","col","row"],"mappings":"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","file":"js/chunk-vendors~7a8621bb.be601aa6.js","sourcesContent":["import Vue from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { SLOT_NAME_TITLE } from '../../constants/slot-names';\nimport { makePropsConfigurable } from '../../utils/config';\nimport BVTransition from '../../utils/bv-transition';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot'; // @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: makePropsConfigurable({\n active: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n },\n buttonId: {\n type: String // default: ''\n\n },\n title: {\n type: String,\n default: ''\n },\n titleItemClass: {\n // Sniffed by `` and added to nav `li.nav-item`\n type: [String, Array, Object] // default: null\n\n },\n titleLinkClass: {\n // Sniffed by `` and added to nav `a.nav-link`\n type: [String, Array, Object] // default: null\n\n },\n titleLinkAttributes: {\n type: Object // default: null\n\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noBody: {\n type: Boolean,\n default: false\n },\n lazy: {\n type: Boolean,\n default: false\n }\n }, NAME_TAB),\n data: function data() {\n return {\n localActive: this.active && !this.disabled,\n show: false\n };\n },\n computed: {\n tabClasses: function tabClasses() {\n return [{\n active: this.localActive,\n disabled: this.disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n this.localActive ? 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 // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n }\n },\n watch: {\n localActive: function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit('update:active', newValue);\n },\n active: function active(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('update:active', this.localActive);\n }\n }\n }\n },\n 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 }\n },\n mounted: function mounted() {\n // Inform b-tabs of our presence\n this.registerTab(); // Initially show on mount if active and not disabled\n\n this.show = this.localActive;\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 destroyed: function destroyed() {\n // inform b-tabs 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 ref: 'panel',\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: localActive,\n expression: '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 }, // 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});","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 };","function 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_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { SLOT_NAME_TITLE } from '../../constants/slot-names';\nimport { makePropsConfigurable } from '../../utils/config';\nimport identity from '../../utils/identity';\nimport looseEqual from '../../utils/loose-equal';\nimport observeDom from '../../utils/observe-dom';\nimport stableSort from '../../utils/stable-sort';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, requestAF, selectAll } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { isEvent } from '../../utils/inspect';\nimport { mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { omit } from '../../utils/object';\nimport idMixin 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 navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']); // --- Helper methods ---\n// Filter function to filter out disabled tabs\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 /* istanbul ignore next */\n default: function _default() {\n return {};\n }\n }\n },\n props: makePropsConfigurable({\n // Reference to the child instance\n tab: {\n default: null\n },\n tabs: {\n type: Array,\n\n /* istanbul ignore next */\n default: function _default() {\n return [];\n }\n },\n id: {\n type: String,\n default: null\n },\n controls: {\n type: String,\n default: null\n },\n tabIndex: {\n type: Number,\n default: null\n },\n posInSet: {\n type: Number,\n default: null\n },\n setSize: {\n type: Number,\n default: null\n },\n noKeyNav: {\n type: Boolean,\n default: false\n }\n }, NAME_TABS),\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(evt) {\n if (this.tab.disabled) {\n /* istanbul ignore next */\n return;\n }\n\n var type = evt.type,\n keyCode = evt.keyCode,\n shiftKey = evt.shiftKey;\n\n if (type === 'click') {\n stopEvent(evt);\n this.$emit('click', evt);\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(evt);\n this.$emit('click', evt);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(evt);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit('first', evt);\n } else {\n this.$emit('prev', evt);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(evt);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit('last', evt);\n } else {\n this.$emit('next', evt);\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 ref: 'link',\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 role: 'tab',\n id: id,\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 }, [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}); // @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: _objectSpread(_objectSpread({}, navProps), {}, {\n tag: {\n type: String,\n default: 'div'\n },\n card: {\n type: Boolean,\n default: false\n },\n end: {\n // Synonym for 'bottom'\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noNavStyle: {\n type: Boolean,\n default: false\n },\n noKeyNav: {\n type: Boolean,\n default: false\n },\n lazy: {\n // This prop is sniffed by the child\n type: Boolean,\n default: false\n },\n contentClass: {\n type: [String, Array, Object] // default: null\n\n },\n navClass: {\n type: [String, Array, Object] // default: null\n\n },\n navWrapperClass: {\n type: [String, Array, Object] // default: null\n\n },\n activeNavItemClass: {\n // Only applied to the currently active \n type: [String, Array, Object] // default: null\n\n },\n activeTabClass: {\n // Only applied to the currently active \n // This prop is sniffed by the child\n type: [String, Array, Object] // default: null\n\n },\n value: {\n // v-model\n type: Number,\n default: null\n }\n }),\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this.value, -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 // Flag to know if we are mounted or not\n isMounted: false\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: {\n currentTab: function currentTab(newVal) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function (tab, idx) {\n if (newVal === idx && !tab.disabled) {\n tab.localActive = true;\n index = idx;\n } else {\n tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit('input', index);\n },\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n newVal = toInteger(newVal, -1);\n oldVal = toInteger(oldVal, 0);\n var tabs = this.tabs;\n\n if (tabs[newVal] && !tabs[newVal].disabled) {\n this.activateTab(tabs[newVal]);\n } else {\n // Try next or prev tabs\n if (newVal < oldVal) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n },\n registeredTabs: function registeredTabs() {\n var _this = this;\n\n // Each b-tab will register/unregister itself.\n // We use this to detect when tabs are added/removed\n // to trigger the update of the tabs.\n this.$nextTick(function () {\n requestAF(function () {\n _this.updateTabs();\n });\n });\n },\n tabs: function tabs(newVal, oldVal) {\n var _this2 = this;\n\n // If tabs added, removed, or re-ordered, we emit a `changed` event.\n // We use `tab._uid` instead of `tab.safeId()`, as the later is changed\n // in a nextTick if no explicit ID is provided, causing duplicate emits.\n if (!looseEqual(newVal.map(function (t) {\n return t._uid;\n }), oldVal.map(function (t) {\n return t._uid;\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, to\n // prevent users from potentially mutating the internal arrays.\n _this2.$emit('changed', newVal.slice(), oldVal.slice());\n });\n }\n },\n isMounted: function isMounted(newVal) {\n var _this3 = this;\n\n // Trigger an update after mounted. Needed for tabs inside lazy modals.\n if (newVal) {\n requestAF(function () {\n _this3.updateTabs();\n });\n } // Enable or disable the observer\n\n\n this.setObserver(newVal);\n }\n },\n created: function created() {\n var _this4 = this;\n\n // Create private non-reactive props\n this.$_observer = null;\n this.currentTab = toInteger(this.value, -1); // For SSR and to make sure only a single tab is shown on mount\n // We wrap this in a `$nextTick()` to ensure the child tabs have been created\n\n this.$nextTick(function () {\n _this4.updateTabs();\n });\n },\n mounted: function mounted() {\n var _this5 = this;\n\n // Call `updateTabs()` just in case...\n this.updateTabs();\n this.$nextTick(function () {\n // Flag we are now mounted and to switch to DOM for tab probing.\n // As this.$slots.default appears to lie about component instances\n // after b-tabs is destroyed and re-instantiated.\n // And this.$children does not respect DOM order.\n _this5.isMounted = true;\n });\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.isMounted = false;\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n var _this6 = this;\n\n this.currentTab = toInteger(this.value, -1);\n this.$nextTick(function () {\n _this6.updateTabs();\n\n _this6.isMounted = true;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.isMounted = false;\n },\n destroyed: function destroyed() {\n // Ensure no references to child instances exist\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab(tab) {\n var _this7 = this;\n\n if (!arrayIncludes(this.registeredTabs, tab)) {\n this.registeredTabs.push(tab);\n tab.$once('hook:destroyed', function () {\n _this7.unregisterTab(tab);\n });\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(on) {\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n var self = this;\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n\n var handler = function handler() {\n // We delay the update to ensure that `tab.safeId()` has\n // updated with the final ID value.\n self.$nextTick(function () {\n requestAF(function () {\n self.updateTabs();\n });\n });\n }; // Watch for changes to sub components\n\n\n this.$_observer = observeDom(this.$refs.tabsContainer, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n // We use `registeredTabs` as the source of truth for child tab components\n // We also filter out any `` components that are extended\n // `` with a root child ``\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/3260\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\n if (this.isMounted && 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 // Update list of `` children\n updateTabs: function updateTabs() {\n // Probe tabs\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 } // Set the current tab state to active\n\n\n tabs.forEach(function (tab) {\n // tab.localActive = idx === tabIndex && !tab.disabled\n tab.localActive = false;\n });\n\n if (tabs[tabIndex]) {\n tabs[tabIndex].localActive = true;\n } // Update the array of tab children\n\n\n this.tabs = tabs; // Set the currentTab index (can be -1 if no non-disabled tabs)\n\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 result = false;\n\n if (tab) {\n var index = this.tabs.indexOf(tab);\n\n if (!tab.disabled && index > -1 && index !== this.currentTab) {\n var tabEvt = new BvEvent('activate-tab', {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvt.type, index, this.currentTab, tabEvt);\n\n if (!tabEvt.defaultPrevented) {\n result = true;\n this.currentTab = index;\n }\n }\n } // Couldn't set tab, so ensure v-model is set to `this.currentTab`\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this.currentTab !== this.value) {\n this.$emit('input', this.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 _this8 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering/updating before focusing\n this.$nextTick(function () {\n attemptFocus(_this8.getButtonForTab(tab));\n });\n },\n // Emit a click event on a specified component instance\n emitTabClick: function emitTabClick(tab, evt) {\n if (isEvent(evt) && tab && tab.$emit && !tab.disabled) {\n tab.$emit('click', evt);\n }\n },\n // Click handler\n clickTab: function clickTab(tab, evt) {\n this.activateTab(tab);\n this.emitTabClick(tab, evt);\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 _this9 = this;\n\n var tabs = this.tabs,\n noKeyNav = this.noKeyNav,\n firstTab = this.firstTab,\n previousTab = this.previousTab,\n nextTab = this.nextTab,\n lastTab = this.lastTab; // 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 tabIndex = null; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if (activeTab === tab || !activeTab && fallbackTab === tab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n key: tab._uid || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true,\n props: {\n tab: tab,\n tabs: tabs,\n id: tab.controlledBy || (tab.safeId ? tab.safeId(\"_BV_tab_button_\") : null),\n controls: tab.safeId ? tab.safeId() : null,\n tabIndex: tabIndex,\n setSize: tabs.length,\n posInSet: index + 1,\n noKeyNav: noKeyNav\n },\n on: {\n click: function click(evt) {\n _this9.clickTab(tab, evt);\n },\n first: firstTab,\n prev: previousTab,\n next: nextTab,\n last: lastTab\n }\n });\n }); // Nav\n\n var nav = h(BNav, {\n ref: 'nav',\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: this.fill,\n justified: this.justified,\n align: this.align,\n tabs: !this.noNavStyle && !this.pills,\n pills: !this.noNavStyle && this.pills,\n vertical: this.vertical,\n small: this.small,\n cardHeader: this.card && !this.vertical\n }\n }, [this.normalizeSlot('tabs-start') || h(), buttons, this.normalizeSlot('tabs-end') || h()]);\n nav = h('div', {\n key: 'bv-tabs-nav',\n class: [{\n 'card-header': this.card && !this.vertical && !this.end,\n 'card-footer': this.card && !this.vertical && this.end,\n 'col-auto': this.vertical\n }, this.navWrapperClass]\n }, [nav]);\n var empty = h();\n\n if (!tabs || tabs.length === 0) {\n empty = h('div', {\n key: 'bv-empty-tab',\n class: ['tab-pane', 'active', {\n 'card-body': this.card\n }]\n }, this.normalizeSlot('empty'));\n } // Main content section\n\n\n var content = h('div', {\n ref: 'tabsContainer',\n key: 'bv-tabs-container',\n staticClass: 'tab-content',\n class: [{\n col: this.vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n }\n }, concat(this.normalizeSlot(), empty)); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: this.vertical,\n 'no-gutters': this.vertical && this.card\n },\n attrs: {\n id: this.safeId()\n }\n }, [this.end ? content : h(), [nav], this.end ? h() : content]);\n }\n});"],"sourceRoot":""}