{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js"],"names":["$","call","isCallable","anObject","toString","DELEGATES_TO_EXEC","execCalled","re","exec","apply","this","arguments","test","nativeTest","target","proto","forced","S","R","string","result","_unsupportedIterableToArray","r","a","arrayLikeToArray","t","slice","constructor","name","Array","from","_arrayWithoutHoles","isArray","_iterableToArray","Symbol","iterator","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","module","exports","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","length","mapfn","undefined","mapping","step","next","value","iteratorMethod","index","done","_arrayLikeToArray","e","n","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","join","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","title","content","variant","customClass","triggers","placement","fallbackPlacement","container","noFade","boundary","boundaryPadding","offset","delay","arrowPadding","interactive","disabled","id","html","BVTooltip","extend","mixins","data","activeTrigger","hover","click","focus","localShow","computed","templateType","computedId","concat","computedDelay","show","hide","computedTriggers","trim","toLowerCase","split","sort","isWithActiveTrigger","trigger","computedTemplateData","watch","newTriggers","oldTriggers","_this","$nextTick","unListen","listen","handleTemplateUpdate","newValue","oldValue","disable","enable","created","_this2","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","$parent","$once","$destroy","getTarget","document","body","scopeId","updated","deactivated","forceHide","beforeDestroy","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","methods","getTemplate","updateData","_this3","titleUpdated","prop","fixTitle","createTemplateAndShow","getContainer","Template","$tip","parent","propsData","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","$on","handleEvent","$mount","appendChild","createElement","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","$el","_this4","props","dropdownOpen","showEvt","buildEvent","cancelable","emitEvent","defaultPrevented","addAriaDescribedby","force","tip","hideEvt","prevHoverState","leave","replace","getTargetId","isInModal","isDropdown","clearTimeout","clearInterval","desc","_this5","d","type","options","relatedTarget","componentId","vueTarget","bvEvent","emitOnRoot","$emit","_this6","el","setRootListener","_this7","events","event","on","$root","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","parentNode","_this9","documentElement","children","__vue__","enter","eventTarget","currentTarget","toggle","_this10","setTimeout","_this11","iteratorClose","fn","ENTRIES","error","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","stat","_makePropsConfigurabl","_watch","MODEL_PROP_NAME_ENABLED","MODEL_EVENT_NAME_ENABLED","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","BTooltip","inheritAttrs","localTitle","localContent","noninteractive","$props","templateTitleContent","$_toolpop","updateContent","$off","doOpen","doClose","mounted","Component","getComponent","$toolpop","_scopeId","onShow","onShown","onHide","onHidden","onDisabled","onEnabled","setTitle","normalizeSlot","setContent","render","h","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","BVPopper","attachment","getAttachment","popperConfig","modifiers","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","$_popper","popperCreate","handleDestroy","beforeMount","updatePopper","destroyPopper","destroyed","removeChild","String","toUpperCase","$refs","arrowOffset","width","destroy","scheduleUpdate","renderTemplate","appear","beforeEnter","afterEnter","beforeLeave","afterLeave","BVTooltipTemplate","extends","templateClasses","_ref","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","mouseleave","focusin","focusout","$title","domProps","innerHTML","staticClass","class","attrs","ref","linkProps","href","default","to","pill","tag","BBadge","functional","active","link"],"mappings":"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","file":"js/chunk-7edf8e57.98b36652.js","sourcesContent":["'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\n});\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","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\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var _makePropsConfigurabl, _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_TOOLTIP } from '../../constants/components';\nimport { EVENT_NAME_CLOSE, EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OPEN, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_OBJECT_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement, SVGElement } from '../../constants/safe-types';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTooltip } from './helpers/bv-tooltip'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ENABLED = 'disabled';\nvar MODEL_EVENT_NAME_ENABLED = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ENABLED;\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nexport var props = makePropsConfigurable((_makePropsConfigurabl = {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n boundary: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING], 'scrollParent'),\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 50),\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n container: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n customClass: makeProp(PROP_TYPE_STRING),\n delay: makeProp(PROP_TYPE_NUMBER_OBJECT_STRING, 50)\n}, _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_ENABLED, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"fallbackPlacement\", makeProp(PROP_TYPE_ARRAY_STRING, 'flip')), _defineProperty(_makePropsConfigurabl, \"id\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"noFade\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"noninteractive\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"offset\", makeProp(PROP_TYPE_NUMBER_STRING, 0)), _defineProperty(_makePropsConfigurabl, \"placement\", makeProp(PROP_TYPE_STRING, 'top')), _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"target\", makeProp([HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING], undefined, true)), _defineProperty(_makePropsConfigurabl, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"triggers\", makeProp(PROP_TYPE_ARRAY_STRING, 'hover focus')), _defineProperty(_makePropsConfigurabl, \"variant\", makeProp(PROP_TYPE_STRING)), _makePropsConfigurabl), NAME_TOOLTIP); // --- Main component ---\n// @vue/component\n\nexport var BTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP,\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localShow: this[MODEL_PROP_NAME_SHOW],\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n // Data that will be passed to the template and popper\n templateData: function templateData() {\n return _objectSpread({\n title: this.localTitle,\n content: this.localContent,\n interactive: !this.noninteractive\n }, pick(this.$props, ['boundary', 'boundaryPadding', 'container', 'customClass', 'delay', 'fallbackPlacement', 'id', 'noFade', 'offset', 'placement', 'target', 'target', 'triggers', 'variant', MODEL_PROP_NAME_ENABLED]));\n },\n // Used to watch for changes to the title and content props\n templateTitleContent: function templateTitleContent() {\n var title = this.title,\n content = this.content;\n return {\n title: title,\n content: content\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue && newValue !== this.localShow && this.$_toolpop) {\n if (newValue) {\n this.$_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_toolpop.forceHide();\n }\n }\n }), _defineProperty(_watch, MODEL_PROP_NAME_ENABLED, function (newValue) {\n if (newValue) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit(MODEL_EVENT_NAME_SHOW, newValue);\n }), _defineProperty(_watch, \"templateData\", function templateData() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.$_toolpop) {\n _this.$_toolpop.updateData(_this.templateData);\n }\n });\n }), _defineProperty(_watch, \"templateTitleContent\", function templateTitleContent() {\n this.$nextTick(this.updateContent);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_toolpop = null;\n },\n updated: function updated() {\n // Update the `propData` object\n // Done in a `$nextTick()` to ensure slot(s) have updated\n this.$nextTick(this.updateContent);\n },\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off(EVENT_NAME_OPEN, this.doOpen);\n this.$off(EVENT_NAME_CLOSE, this.doClose);\n this.$off(EVENT_NAME_DISABLE, this.doDisable);\n this.$off(EVENT_NAME_ENABLE, this.doEnable); // Destroy the tip instance\n\n if (this.$_toolpop) {\n this.$_toolpop.$destroy();\n this.$_toolpop = null;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n // Instantiate a new BVTooltip instance\n // Done in a `$nextTick()` to ensure DOM has completed rendering\n // so that target can be found\n this.$nextTick(function () {\n // Load the on demand child instance\n var Component = _this2.getComponent(); // Ensure we have initial content\n\n\n _this2.updateContent(); // Pass down the scoped style attribute if available\n\n\n var scopeId = getScopeId(_this2) || getScopeId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on(EVENT_NAME_SHOW, _this2.onShow);\n $toolpop.$on(EVENT_NAME_SHOWN, _this2.onShown);\n $toolpop.$on(EVENT_NAME_HIDE, _this2.onHide);\n $toolpop.$on(EVENT_NAME_HIDDEN, _this2.onHidden);\n $toolpop.$on(EVENT_NAME_DISABLED, _this2.onDisabled);\n $toolpop.$on(EVENT_NAME_ENABLED, _this2.onEnabled); // Initially disabled?\n\n if (_this2[MODEL_PROP_NAME_ENABLED]) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on(EVENT_NAME_OPEN, _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on(EVENT_NAME_CLOSE, _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on(EVENT_NAME_DISABLE, _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on(EVENT_NAME_ENABLE, _this2.doEnable); // Initially show tooltip?\n\n\n if (_this2.localShow) {\n $toolpop.show();\n }\n });\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVTooltip;\n },\n updateContent: function updateContent() {\n // Overridden by BPopover\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function reference by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setTitle(this.normalizeSlot() || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localTitle !== value) {\n this.localTitle = value;\n }\n },\n setContent: function setContent(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localContent !== value) {\n this.localContent = value;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvent) {\n // Placeholder\n this.$emit(EVENT_NAME_SHOW, bvEvent);\n\n if (bvEvent) {\n this.localShow = !bvEvent.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvent) {\n // Tip is now showing\n this.localShow = true;\n this.$emit(EVENT_NAME_SHOWN, bvEvent);\n },\n onHide: function onHide(bvEvent) {\n this.$emit(EVENT_NAME_HIDE, bvEvent);\n },\n onHidden: function onHidden(bvEvent) {\n // Tip is no longer showing\n this.$emit(EVENT_NAME_HIDDEN, bvEvent);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvent && bvEvent.type === EVENT_NAME_DISABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, true);\n this.$emit(EVENT_NAME_DISABLED, bvEvent);\n }\n },\n onEnabled: function onEnabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvent && bvEvent.type === EVENT_NAME_ENABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, false);\n this.$emit(EVENT_NAME_ENABLED, bvEvent);\n }\n },\n // --- Local event listeners ---\n doOpen: function doOpen() {\n !this.localShow && this.$_toolpop && this.$_toolpop.show();\n },\n doClose: function doClose() {\n this.localShow && this.$_toolpop && this.$_toolpop.hide();\n },\n doDisable: function doDisable() {\n this.$_toolpop && this.$_toolpop.disable();\n },\n doEnable: function doEnable() {\n this.$_toolpop && this.$_toolpop.enable();\n }\n },\n render: function render(h) {\n // Always renders a comment node\n // TODO:\n // Future: Possibly render a target slot (single root element)\n // which we can apply the listeners to (pass `this.$el` to BVTooltip)\n return h();\n }\n});","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\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 { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\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 { Vue, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});"],"sourceRoot":""}