{"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":["_objectSpread2","_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","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","props","BTab","name","mixins","inject","getBvTabs","default","data","localActive","this","disabled","computed","bvTabs","_isTab","tabClasses","active","card","noBody","activeTabClass","controlledBy","buttonId","safeId","computedNoFade","fade","computedLazy","lazy","watch","newValue","oldValue","activate","deactivate","$emit","firstTab","mounted","registerTab","updated","updateButton","hasNormalizedSlot","beforeDestroy","unregisterTab","methods","activateTab","deactivateTab","render","h","$content","tag","staticClass","class","directives","attrs","role","id","ref","normalizeSlot","mode","noFade","TabsPlugin","components","BTabs","_makeModelMixin","type","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","notDisabled","tab","BVTabButton","controls","noKeyNav","posInSet","setSize","tabIndex","focus","$refs","link","handleEvent","keyCode","shiftKey","indexOf","_this$tab","title","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","tabindex","on","click","keydown","navProps","contentClass","end","navClass","navWrapperClass","noNavStyle","provide","_this","currentTab","tabs","registeredTabs","localNavClass","classes","vertical","concat","$tab","previousTab","nextTab","index","_this2","map","$nextTick","slice","updateTabs","created","$_observer","setObserver","$t","_this3","undefined","disconnect","handler","content","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","selector","join","$el","a","b","reverse","find","getButtonForTab","buttons","$btn","$button","$forceUpdate","result","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","focusButton","_this4","emitTabClick","clickTab","currentIndex","lastTab","_this5","align","fill","justified","pills","small","$activeTab","$fallbackTab","$buttons","_on","$nav","cardHeader","$children","$empty","col","row"],"mappings":"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","file":"js/chunk-vendors~7a8621bb.8b90f6bd.js","sourcesContent":["var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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 { extend } 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__*/extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n getBvTabs: {\n default: function _default() {\n return function () {\n return {};\n };\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 bvTabs: function bvTabs() {\n return this.getBvTabs();\n },\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});","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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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, REF_FOR_KEY, extend } 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__*/extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n getBvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return function () {\n return {};\n };\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 computed: {\n bvTabs: function bvTabs() {\n return this.getBvTabs();\n }\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvent: function handleEvent(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 handleEvent = this.handleEvent;\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: handleEvent,\n keydown: handleEvent\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__*/extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n var _this = this;\n\n return {\n getBvTabs: function getBvTabs() {\n return _this;\n }\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 _this2 = 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 _this2.$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 _this3 = 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 _this3.$nextTick(function () {\n requestAF(function () {\n _this3.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; // Dropped intentionally\n // .filter(\n // $tab => $tab.$children.filter($t => $t && $t._isTab).length === 0\n // )\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 _this4 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this4.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 _this5 = 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, _defineProperty({\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 _this5.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 }, REF_FOR_KEY, true));\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});"],"sourceRoot":""}