{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/vue-ripple-directive/src/ripple.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","computeJustifyContent","concat","props","align","cardHeader","fill","justified","pills","small","tabs","tag","vertical","BNav","extend","name","functional","render","h","_ref","_class","data","children","staticClass","class","_objectSpread2","_watch","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","BTab","mixins","inject","bvTabs","default","localActive","this","disabled","computed","_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","$content","directives","attrs","role","id","ref","normalizeSlot","mode","noFade","stableSort","array","compareFn","map","a","index","sort","b","bind","e","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","join","computeRowColsBreakpoint","prop","replace","rowColsPropList","generateProps","rowColsProps","reduce","alignContent","alignH","alignV","noGutters","BRow","_classList$push","classList","c","Ripple","el","binding","event","transition","setProps","modifiers","addEventListener","rippler","bg","color","zIndex","targetBorder","parseInt","getComputedStyle","rect","getBoundingClientRect","left","top","width","offsetWidth","height","offsetHeight","dx","clientX","dy","clientY","maxX","Math","max","maxY","style","window","radius","sqrt","border","ripple","document","createElement","rippleContainer","className","marginTop","marginLeft","borderRadius","pointerEvents","position","backgroundColor","overflow","storedTargetPosition","clearRipple","setTimeout","parentNode","removeChild","removeEventListener","clearPosition","childNodes","appendChild","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","direction","type","item","isNaN","Number","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","notDisabled","tab","BVTabButton","controls","noKeyNav","posInSet","setSize","tabIndex","focus","$refs","link","handleEvt","keyCode","shiftKey","indexOf","_this$tab","title","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","tabindex","on","click","keydown","navProps","contentClass","end","navClass","navWrapperClass","noNavStyle","BTabs","provide","currentTab","registeredTabs","localNavClass","classes","$tab","previousTab","nextTab","_this","$nextTick","slice","updateTabs","created","$_observer","setObserver","$t","_this2","undefined","disconnect","handler","content","childList","subtree","attributes","attributeFilter","getTabs","$tabs","$children","order","selector","$el","reverse","find","getButtonForTab","buttons","$btn","$button","$forceUpdate","result","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","focusButton","_this3","emitTabClick","clickTab","currentIndex","lastTab","_this4","$activeTab","$fallbackTab","$buttons","_on","refInFor","$nav","$empty","col","row"],"mappings":"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","file":"js/chunk-2d6bb6b8.669a25e0.js","sourcesContent":["function _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, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\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});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","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 { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","var Ripple = {\n bind: function(el, binding){\n\n // Default values.\n var props = {\n event: 'mousedown',\n transition: 600\n };\n\n setProps(Object.keys(binding.modifiers),props);\n\n el.addEventListener(props.event, function(event) {\n rippler(event, el, binding.value);\n });\n\n var bg = binding.value || Ripple.color || 'rgba(0, 0, 0, 0.35)';\n var zIndex = Ripple.zIndex || '9999';\n\n function rippler(event, el) {\n var target = el;\n // Get border to avoid offsetting on ripple container position\n var targetBorder = parseInt((getComputedStyle(target).borderWidth).replace('px', ''));\n\n // Get necessary variables\n var rect = target.getBoundingClientRect(),\n left = rect.left,\n top = rect.top,\n width = target.offsetWidth,\n height = target.offsetHeight,\n dx = event.clientX - left,\n dy = event.clientY - top,\n maxX = Math.max(dx, width - dx),\n maxY = Math.max(dy, height - dy),\n style = window.getComputedStyle(target),\n radius = Math.sqrt((maxX * maxX) + (maxY * maxY)),\n border = (targetBorder > 0 ) ? targetBorder : 0;\n\n // Create the ripple and its container\n var ripple = document.createElement(\"div\"),\n rippleContainer = document.createElement(\"div\");\n rippleContainer.className = 'ripple-container';\n ripple.className = 'ripple';\n\n //Styles for ripple\n ripple.style.marginTop= '0px';\n ripple.style.marginLeft= '0px';\n ripple.style.width= '1px';\n ripple.style.height= '1px';\n ripple.style.transition= 'all ' + props.transition + 'ms cubic-bezier(0.4, 0, 0.2, 1)';\n ripple.style.borderRadius= '50%';\n ripple.style.pointerEvents= 'none';\n ripple.style.position= 'relative';\n ripple.style.zIndex= zIndex;\n ripple.style.backgroundColor = bg;\n\n //Styles for rippleContainer\n rippleContainer.style.position= 'absolute';\n rippleContainer.style.left = 0 - border + 'px';\n rippleContainer.style.top = 0 - border + 'px';\n rippleContainer.style.height = '0';\n rippleContainer.style.width = '0';\n rippleContainer.style.pointerEvents = 'none';\n rippleContainer.style.overflow = 'hidden';\n\n // Store target position to change it after\n var storedTargetPosition = ((target.style.position).length > 0) ? target.style.position : getComputedStyle(target).position;\n // Change target position to relative to guarantee ripples correct positioning\n if (storedTargetPosition !== 'relative') {\n target.style.position = 'relative';\n }\n\n rippleContainer.appendChild(ripple);\n target.appendChild(rippleContainer);\n\n ripple.style.marginLeft = dx + \"px\";\n ripple.style.marginTop = dy + \"px\";\n\n // No need to set positioning because ripple should be child of target and to it's relative position.\n // rippleContainer.style.left = left + (((window.pageXOffset || document.scrollLeft) - (document.clientLeft || 0)) || 0) + \"px\";\n // rippleContainer.style.top = top + (((window.pageYOffset || document.scrollTop) - (document.clientTop || 0)) || 0) + \"px\";\n rippleContainer.style.width = width + \"px\";\n rippleContainer.style.height = height + \"px\";\n rippleContainer.style.borderTopLeftRadius = style.borderTopLeftRadius;\n rippleContainer.style.borderTopRightRadius = style.borderTopRightRadius;\n rippleContainer.style.borderBottomLeftRadius = style.borderBottomLeftRadius;\n rippleContainer.style.borderBottomRightRadius = style.borderBottomRightRadius;\n\n rippleContainer.style.direction = 'ltr';\n\n setTimeout(function() {\n ripple.style.width = radius * 2 + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.marginLeft = dx - radius + \"px\";\n ripple.style.marginTop = dy - radius + \"px\";\n }, 0);\n\n function clearRipple() {\n setTimeout(function() {\n ripple.style.backgroundColor = \"rgba(0, 0, 0, 0)\";\n }, 250);\n\n // Timeout set to get a smooth removal of the ripple\n setTimeout(function() {\n rippleContainer.parentNode.removeChild(rippleContainer);\n }, 850);\n\n el.removeEventListener('mouseup', clearRipple, false);\n\n // After removing event set position to target to it's original one\n // Timeout it's needed to avoid jerky effect of ripple jumping out parent target\n setTimeout(function () {\n\n var clearPosition = true;\n for(var i = 0; i < target.childNodes.length; i++) {\n if(target.childNodes[i].className === 'ripple-container') {\n clearPosition = false;\n }\n }\n\n if(clearPosition) {\n if(storedTargetPosition !== 'static') {\n target.style.position = storedTargetPosition;\n } else {\n target.style.position = '';\n }\n }\n\n }, props.transition + 250)\n }\n\n if(event.type === 'mousedown') {\n el.addEventListener('mouseup', clearRipple, false);\n } else {\n clearRipple();\n }\n }\n }\n};\n\nfunction setProps(modifiers,props) {\n modifiers.forEach(function(item) {\n if(isNaN(Number(item)))\n props.event = item;\n else\n props.transition = item;\n });\n}\n\nexport default Ripple;","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});"],"sourceRoot":""}