{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/toaster.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/helpers/bv-toast.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/toast/toast.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack:///./node_modules/bootstrap-vue/esm/components/time/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/esm/components/transition/bv-transition.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/time/time.js"],"names":["TooltipPlugin","components","BTooltip","plugins","VBTooltipPlugin","DefaultTransition","mixins","data","name","methods","onAfterEnter","el","_this","this","concat","render","h","props","tag","on","afterEnter","normalizeSlot","ariaAtomic","ariaLive","undefined","role","BToaster","doRender","dead","staticName","beforeMount","hasTarget","beforeDestroy","emitOnRoot","destroyed","$el","parentNode","removeChild","$toaster","class","$target","staticClass","multiple","slim","transition","attrs","id","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","value","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","call","slice","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","PROP_NAME","PROP_NAME_PRIV","BASE_PROPS","propsToSlots","toastContent","title","filterOptions","options","reduce","memo","plugin","Vue","BVToastPop","extend","extends","mounted","handleDestroy","localShow","$nextTick","$destroy","bvParent","$once","listenOnRoot","toaster","makeToast","parent","toast","propsData","static","visible","prop","$createElement","$slots","div","document","createElement","body","appendChild","$mount","BvToast","vm","_vm","_root","content","$emit","mixin","beforeCreate","get","BVToastPlugin","ToastPlugin","BToast","_watch","_makeModelMixin","type","defaultValue","event","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","MIN_DURATION","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noCloseButton","noFade","noHoverPause","solid","toastClass","variant","inheritAttrs","isMounted","isTransitioning","isHiding","order","dismissStarted","resumeDismiss","computed","toastClasses","slotScope","hide","computedDuration","computedToaster","String","transitionHandlers","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","computedAttrs","bvAttrs","safeId","tabindex","watch","newValue","ensureToaster","created","$_dismissTimer","show","clearDismissTimer","_this2","showEvent","buildEvent","emitEvent","Date","now","_this3","hideEvent","setHoverHandler","cancelable","relatedTarget","vueTarget","componentId","bvEvent","bvEventRoot","startDismissTimer","setTimeout","clearTimeout","$refs","onPause","onUnPause","passed","onLinkClick","_this4","hiddenEvent","_this5","link","$headerContent","$title","click","$header","$body","ref","isStatic","$toast","scopedStyleAttrs","to","disabled","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","join","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","customClass","triggers","placement","fallbackPlacement","container","boundary","boundaryPadding","offset","delay","arrowPadding","interactive","html","BVTooltip","activeTrigger","hover","focus","templateType","computedId","computedDelay","computedTriggers","trim","toLowerCase","split","sort","isWithActiveTrigger","trigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","oldValue","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","bind","getTarget","scopeId","updated","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","updateData","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","$on","handleEvent","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","dropdownOpen","defaultPrevented","addAriaDescribedby","force","tip","prevHoverState","leave","replace","getTargetId","isInModal","isDropdown","clearInterval","desc","d","_this6","setRootListener","_this7","events","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","children","enter","eventTarget","currentTarget","toggle","_this10","_this11","BVTransporterTarget","abstract","nodes","updatedNodes","$nodes","text","BVTransporterVue2","immediate","handler","unmountTarget","mountTarget","$_defaultFn","$_target","updateTarget","$container","defaultFn","$scopedSlots","default","BVTransporterVue3","Teleport","BVTransporter","TimePlugin","BTime","_makePropsConfigurabl","MODEL_PROP_NAME_ENABLED","MODEL_EVENT_NAME_ENABLED","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","localTitle","localContent","noninteractive","$props","templateTitleContent","$_toolpop","updateContent","$off","doOpen","doClose","Component","getComponent","$toolpop","_scopeId","onShow","onShown","onHide","onHidden","onDisabled","onEnabled","setTitle","setContent","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","appear","mode","transProps","BVTransition","functional","_ref","appearClass","appearActiveClass","appearToClass","css","dataCopy","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","updatePopper","destroyPopper","toUpperCase","arrowOffset","width","destroy","scheduleUpdate","renderTemplate","BVTooltipTemplate","templateClasses","templateAttributes","$attrs","templateListeners","mouseenter","mouseleave","focusin","focusout","domProps","innerHTML","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_i","_s","_e","_arr","_n","_d","next","done","err","NUMERIC","padLeftZeros","parseHMS","hh","mm","ss","_value$split$map","map","v","_value$split$map2","hours","minutes","seconds","ampm","formatHMS","requireSeconds","hms","ariaLabelledby","footerTag","hidden","hideHeader","hour12","labelAm","labelAmpm","labelHours","labelMinutes","labelNoTimeSelected","labelPm","labelSeconds","labelSelected","locale","minutesStep","readonly","secondsStep","showSeconds","parsed","modelHours","modelMinutes","modelSeconds","modelAmpm","isLive","computedHMS","resolvedOptions","hour","minute","second","dtf","Intl","DateTimeFormat","resolved","hourCycle","computedLocale","computedLang","computedRTL","computedHourCycle","is12Hour","context","isRTL","formatted","formattedTimeString","valueId","computedAriaLabelledby","timeFormatter","timeZone","numberFormatter","nf","NumberFormat","style","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","format","UTC","spinScopedSlots","increment","_ref2","hasFocus","scale","decrement","_ref3","flipV","_parseHMS","newHours","oldHours","setLive","activated","spinners","blur","activeElement","formatHours","formatMinutes","formatSeconds","formatAmpm","setHours","setMinutes","setSeconds","setAmpm","onSpinLeftRight","keyCode","index","cmp","indexOf","labelIncrement","labelDecrement","focusHandler","spinIds","makeSpinbutton","classes","spinbuttonProps","placeholder","vertical","required","wrap","ariaControls","min","scopedSlots","change","makeColon","shiftV","$spinners","max","step","formatterFn","ariaLabel","keydown","$value","for","$content","$footer","lang"],"mappings":"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","file":"js/chunk-vendors~3567b4a7.a8c3eac3.4.2.0.js","sourcesContent":["import { BTooltip } from './tooltip';\nimport { VBTooltipPlugin } from '../../directives/tooltip';\nimport { pluginFactory } from '../../utils/plugins';\nvar TooltipPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTooltip: BTooltip\n },\n plugins: {\n VBTooltipPlugin: VBTooltipPlugin\n }\n});\nexport { TooltipPlugin, BTooltip };","import { PortalTarget, Wormhole } from 'portal-vue';\nimport { extend } from '../../vue';\nimport { NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_DESTROYED } from '../../constants/events';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { removeClass, requestAF } from '../../utils/dom';\nimport { getRootEventName } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { warn } from '../../utils/warn';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper components ---\n// @vue/component\n\nexport var DefaultTransition = /*#__PURE__*/extend({\n mixins: [normalizeSlotMixin],\n data: function data() {\n return {\n // Transition classes base name\n name: 'b-toaster'\n };\n },\n methods: {\n onAfterEnter: function onAfterEnter(el) {\n var _this = this;\n\n // Work around a Vue.js bug where `*-enter-to` class is not removed\n // See: https://github.com/vuejs/vue/pull/7901\n // The `*-move` class is also stuck on elements that moved,\n // but there are no JavaScript hooks to handle after move\n // See: https://github.com/vuejs/vue/pull/7906\n requestAF(function () {\n removeClass(el, \"\".concat(_this.name, \"-enter-to\"));\n });\n }\n },\n render: function render(h) {\n return h('transition-group', {\n props: {\n tag: 'div',\n name: this.name\n },\n on: {\n afterEnter: this.onAfterEnter\n }\n }, this.normalizeSlot());\n }\n}); // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Allowed: 'true' or 'false' or `null`\n ariaAtomic: makeProp(PROP_TYPE_STRING),\n ariaLive: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING, undefined, true),\n // Required\n // Aria role\n role: makeProp(PROP_TYPE_STRING)\n}, NAME_TOASTER); // --- Main component ---\n// @vue/component\n\nexport var BToaster = /*#__PURE__*/extend({\n name: NAME_TOASTER,\n mixins: [listenOnRootMixin],\n props: props,\n data: function data() {\n return {\n // We don't render on SSR or if a an existing target found\n doRender: false,\n dead: false,\n // Toaster names cannot change once created\n staticName: this.name\n };\n },\n beforeMount: function beforeMount() {\n var name = this.name;\n this.staticName = name;\n /* istanbul ignore if */\n\n if (Wormhole.hasTarget(name)) {\n warn(\"A \\\"\\\" with name \\\"\".concat(name, \"\\\" already exists in the document.\"), NAME_TOASTER);\n this.dead = true;\n } else {\n this.doRender = true;\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Let toasts made with `this.$bvToast.toast()` know that this toaster\n // is being destroyed and should should also destroy/hide themselves\n if (this.doRender) {\n this.emitOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), this.name);\n }\n },\n destroyed: function destroyed() {\n // Remove from DOM if needed\n var $el = this.$el;\n /* istanbul ignore next: difficult to test */\n\n if ($el && $el.parentNode) {\n $el.parentNode.removeChild($el);\n }\n },\n render: function render(h) {\n var $toaster = h('div', {\n class: ['d-none', {\n 'b-dead-toaster': this.dead\n }]\n });\n\n if (this.doRender) {\n var $target = h(PortalTarget, {\n staticClass: 'b-toaster-slot',\n props: {\n name: this.staticName,\n multiple: true,\n tag: 'div',\n slim: false,\n // transition: this.transition || DefaultTransition\n transition: DefaultTransition\n }\n });\n $toaster = h('div', {\n staticClass: 'b-toaster',\n class: [this.staticName],\n attrs: {\n id: this.staticName,\n // Fallback to null to make sure attribute doesn't exist\n role: this.role || null,\n 'aria-live': this.ariaLive,\n 'aria-atomic': this.ariaAtomic\n }\n }, [$target]);\n }\n\n return $toaster;\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\nimport { NAME_TOAST, NAME_TOASTER, NAME_TOAST_POP } from '../../../constants/components';\nimport { EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootEventName, getRootActionEventName } from '../../../utils/events';\nimport { isUndefined, isString } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, hasOwnProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient } from '../../../utils/warn';\nimport { createNewChildComponent } from '../../../utils/create-new-child-component';\nimport { getEventRoot } from '../../../utils/get-event-root';\nimport { BToast, props as toastProps } from '../toast'; // --- Constants ---\n\nvar PROP_NAME = '$bvToast';\nvar PROP_NAME_PRIV = '_bv__toast'; // Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(toastProps, ['static', 'visible'])))); // Map prop names to toast slot names\n\nvar propsToSlots = {\n toastContent: 'default',\n title: 'toast-title'\n}; // --- Helper methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvToast` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component constructor that\n // extends BToast and self-destructs after hidden\n // @vue/component\n var BVToastPop = Vue.extend({\n name: NAME_TOAST_POP,\n extends: BToast,\n mixins: [useParentMixin],\n destroyed: function destroyed() {\n // Make sure we not in document any more\n var $el = this.$el;\n\n if ($el && $el.parentNode) {\n $el.parentNode.removeChild($el);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Self destruct handler\n var handleDestroy = function handleDestroy() {\n // Ensure the toast has been force hidden\n _this.localShow = false;\n _this.doRender = false;\n\n _this.$nextTick(function () {\n _this.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n // and to allow the portal-target time to remove the content\n requestAF(function () {\n _this.$destroy();\n });\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.bvParent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy); // Self destruct when toaster is destroyed\n\n this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), function (toaster) {\n /* istanbul ignore next: hard to test */\n if (toaster === _this.toaster) {\n handleDestroy();\n }\n });\n }\n }); // Private method to generate the on-demand toast\n\n var makeToast = function makeToast(props, parent) {\n if (warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BVToastPop` component\n\n\n var toast = createNewChildComponent(parent, BVToastPop, {\n // We set parent as the local VM so these toasts can emit events on the\n // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n propsData: _objectSpread(_objectSpread(_objectSpread({}, filterOptions(getComponentConfig(NAME_TOAST))), omit(props, keys(propsToSlots))), {}, {\n // Props that can't be overridden\n static: false,\n visible: true\n })\n }); // Convert certain props to slots\n\n keys(propsToSlots).forEach(function (prop) {\n var value = props[prop];\n\n if (!isUndefined(value)) {\n // Can be a string, or array of VNodes\n if (prop === 'title' && isString(value)) {\n // Special case for title if it is a string, we wrap in a \n value = [parent.$createElement('strong', {\n class: 'mr-2'\n }, value)];\n }\n\n toast.$slots[propsToSlots[prop]] = concat(value);\n }\n }); // Create a mount point (a DIV) and mount it (which triggers the show)\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n toast.$mount(div);\n }; // Declare BvToast instance property class\n\n\n var BvToast = /*#__PURE__*/function () {\n function BvToast(vm) {\n _classCallCheck(this, BvToast);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: getEventRoot(vm)\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Public Instance methods ---\n // Opens a user defined toast and returns immediately\n\n\n _createClass(BvToast, [{\n key: \"toast\",\n value: function toast(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!content || warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n }\n\n makeToast(_objectSpread(_objectSpread({}, filterOptions(options)), {}, {\n toastContent: content\n }), this._vm);\n } // shows a `` component with the specified ID\n\n }, {\n key: \"show\",\n value: function show(id) {\n if (id) {\n this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id);\n }\n } // Hide a toast with specified ID, or if not ID all toasts\n\n }, {\n key: \"hide\",\n value: function hide() {\n var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id);\n }\n }]);\n\n return BvToast;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvToast` for each VM\n this[PROP_NAME_PRIV] = new BvToast(this);\n }\n }); // Define our read-only `$bvToast` instance property\n // Placed in an if just in case in HMR mode\n\n if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"\\\"\".concat(PROP_NAME, \"\\\" must be accessed from a Vue instance \\\"this\\\" context.\"), NAME_TOAST);\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVToastPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BVToastPlugin } from './helpers/bv-toast';\nimport { BToast } from './toast';\nimport { BToaster } from './toaster';\nimport { pluginFactory } from '../../utils/plugins';\nvar ToastPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BToast: BToast,\n BToaster: BToaster\n },\n // $bvToast injection\n plugins: {\n BVToastPlugin: BVToastPlugin\n }\n});\nexport { ToastPlugin, BToast, BToaster };","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Portal, Wormhole } from 'portal-vue';\nimport { COMPONENT_UID_KEY, extend } from '../../vue';\nimport { NAME_TOAST, NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_TOAST_TITLE } from '../../constants/slots';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { requestAF } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { createNewChildComponent } from '../../utils/create-new-child-component';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { BButtonClose } from '../button/button-close';\nimport { BLink, props as BLinkProps } from '../link/link';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BToaster } from './toaster'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar MIN_DURATION = 1000; // --- Props ---\n\nvar linkProps = pick(BLinkProps, ['href', 'to']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), linkProps), {}, {\n appendToast: makeProp(PROP_TYPE_BOOLEAN, false),\n autoHideDelay: makeProp(PROP_TYPE_NUMBER_STRING, 5000),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n // Switches role to 'status' and aria-live to 'polite'\n isStatus: makeProp(PROP_TYPE_BOOLEAN, false),\n noAutoHide: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseButton: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n solid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Render the toast in place, rather than in a portal-target\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n toastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toaster: makeProp(PROP_TYPE_STRING, 'b-toaster-top-right'),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_TOAST); // --- Main component ---\n// @vue/component\n\nexport var BToast = /*#__PURE__*/extend({\n name: NAME_TOAST,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n isMounted: false,\n doRender: false,\n localShow: false,\n isTransitioning: false,\n isHiding: false,\n order: 0,\n dismissStarted: 0,\n resumeDismiss: 0\n };\n },\n computed: {\n toastClasses: function toastClasses() {\n var appendToast = this.appendToast,\n variant = this.variant;\n return _defineProperty({\n 'b-toast-solid': this.solid,\n 'b-toast-append': appendToast,\n 'b-toast-prepend': !appendToast\n }, \"b-toast-\".concat(variant), variant);\n },\n slotScope: function slotScope() {\n var hide = this.hide;\n return {\n hide: hide\n };\n },\n computedDuration: function computedDuration() {\n // Minimum supported duration is 1 second\n return mathMax(toInteger(this.autoHideDelay, 0), MIN_DURATION);\n },\n computedToaster: function computedToaster() {\n return String(this.toaster);\n },\n transitionHandlers: function transitionHandlers() {\n return {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n afterLeave: this.onAfterLeave\n };\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n tabindex: '0'\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this[newValue ? 'show' : 'hide']();\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n if (newValue !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"toaster\", function toaster() {\n // If toaster target changed, make sure toaster exists\n this.$nextTick(this.ensureToaster);\n }), _defineProperty(_watch, \"static\", function _static(newValue) {\n // If static changes to true, and the toast is showing,\n // ensure the toaster target exists\n if (newValue && this.localShow) {\n this.ensureToaster();\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_dismissTimer = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.isMounted = true;\n this.$nextTick(function () {\n if (_this[MODEL_PROP_NAME]) {\n requestAF(function () {\n _this.show();\n });\n }\n }); // Listen for global $root show events\n\n this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), function (id) {\n if (id === _this.safeId()) {\n _this.show();\n }\n }); // Listen for global $root hide events\n\n this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), function (id) {\n if (!id || id === _this.safeId()) {\n _this.hide();\n }\n }); // Make sure we hide when toaster is destroyed\n\n /* istanbul ignore next: difficult to test */\n\n this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), function (toaster) {\n /* istanbul ignore next */\n if (toaster === _this.computedToaster) {\n _this.hide();\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDismissTimer();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n if (!this.localShow) {\n this.ensureToaster();\n var showEvent = this.buildEvent(EVENT_NAME_SHOW);\n this.emitEvent(showEvent);\n this.dismissStarted = this.resumeDismiss = 0;\n this.order = Date.now() * (this.appendToast ? 1 : -1);\n this.isHiding = false;\n this.doRender = true;\n this.$nextTick(function () {\n // We show the toast after we have rendered the portal and b-toast wrapper\n // so that screen readers will properly announce the toast\n requestAF(function () {\n _this2.localShow = true;\n });\n });\n }\n },\n hide: function hide() {\n var _this3 = this;\n\n if (this.localShow) {\n var hideEvent = this.buildEvent(EVENT_NAME_HIDE);\n this.emitEvent(hideEvent);\n this.setHoverHandler(false);\n this.dismissStarted = this.resumeDismiss = 0;\n this.clearDismissTimer();\n this.isHiding = true;\n requestAF(function () {\n _this3.localShow = false;\n });\n }\n },\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvEvent(type, _objectSpread(_objectSpread({\n cancelable: false,\n target: this.$el || null,\n relatedTarget: null\n }, options), {}, {\n vueTarget: this,\n componentId: this.safeId()\n }));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_TOAST, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n ensureToaster: function ensureToaster() {\n if (this.static) {\n return;\n }\n\n var computedToaster = this.computedToaster;\n\n if (!Wormhole.hasTarget(computedToaster)) {\n var div = document.createElement('div');\n document.body.appendChild(div);\n var toaster = createNewChildComponent(this.bvEventRoot, BToaster, {\n propsData: {\n name: computedToaster\n }\n });\n toaster.$mount(div);\n }\n },\n startDismissTimer: function startDismissTimer() {\n this.clearDismissTimer();\n\n if (!this.noAutoHide) {\n this.$_dismissTimer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration);\n this.dismissStarted = Date.now();\n this.resumeDismiss = 0;\n }\n },\n clearDismissTimer: function clearDismissTimer() {\n clearTimeout(this.$_dismissTimer);\n this.$_dismissTimer = null;\n },\n setHoverHandler: function setHoverHandler(on) {\n var el = this.$refs['b-toast'];\n eventOnOff(on, el, 'mouseenter', this.onPause, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, 'mouseleave', this.onUnPause, EVENT_OPTIONS_NO_CAPTURE);\n },\n onPause: function onPause() {\n // Determine time remaining, and then pause timer\n if (this.noAutoHide || this.noHoverPause || !this.$_dismissTimer || this.resumeDismiss) {\n return;\n }\n\n var passed = Date.now() - this.dismissStarted;\n\n if (passed > 0) {\n this.clearDismissTimer();\n this.resumeDismiss = mathMax(this.computedDuration - passed, MIN_DURATION);\n }\n },\n onUnPause: function onUnPause() {\n // Restart timer with max of time remaining or 1 second\n if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n this.resumeDismiss = this.dismissStarted = 0;\n return;\n }\n\n this.startDismissTimer();\n },\n onLinkClick: function onLinkClick() {\n var _this4 = this;\n\n // We delay the close to allow time for the\n // browser to process the link click\n this.$nextTick(function () {\n requestAF(function () {\n _this4.hide();\n });\n });\n },\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n },\n onAfterEnter: function onAfterEnter() {\n this.isTransitioning = false;\n var hiddenEvent = this.buildEvent(EVENT_NAME_SHOWN);\n this.emitEvent(hiddenEvent);\n this.startDismissTimer();\n this.setHoverHandler(true);\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n },\n onAfterLeave: function onAfterLeave() {\n this.isTransitioning = false;\n this.order = 0;\n this.resumeDismiss = this.dismissStarted = 0;\n var hiddenEvent = this.buildEvent(EVENT_NAME_HIDDEN);\n this.emitEvent(hiddenEvent);\n this.doRender = false;\n },\n // Render helper for generating the toast\n makeToast: function makeToast(h) {\n var _this5 = this;\n\n var title = this.title,\n slotScope = this.slotScope;\n var link = isLink(this);\n var $headerContent = [];\n var $title = this.normalizeSlot(SLOT_NAME_TOAST_TITLE, slotScope);\n\n if ($title) {\n $headerContent.push($title);\n } else if (title) {\n $headerContent.push(h('strong', {\n staticClass: 'mr-2'\n }, title));\n }\n\n if (!this.noCloseButton) {\n $headerContent.push(h(BButtonClose, {\n staticClass: 'ml-auto mb-1',\n on: {\n click: function click() {\n _this5.hide();\n }\n }\n }));\n }\n\n var $header = h();\n\n if ($headerContent.length > 0) {\n $header = h(this.headerTag, {\n staticClass: 'toast-header',\n class: this.headerClass\n }, $headerContent);\n }\n\n var $body = h(link ? BLink : 'div', {\n staticClass: 'toast-body',\n class: this.bodyClass,\n props: link ? pluckProps(linkProps, this) : {},\n on: link ? {\n click: this.onLinkClick\n } : {}\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, slotScope));\n return h('div', {\n staticClass: 'toast',\n class: this.toastClass,\n attrs: this.computedAttrs,\n key: \"toast-\".concat(this[COMPONENT_UID_KEY]),\n ref: 'toast'\n }, [$header, $body]);\n }\n },\n render: function render(h) {\n if (!this.doRender || !this.isMounted) {\n return h();\n }\n\n var order = this.order,\n isStatic = this.static,\n isHiding = this.isHiding,\n isStatus = this.isStatus;\n var name = \"b-toast-\".concat(this[COMPONENT_UID_KEY]);\n var $toast = h('div', {\n staticClass: 'b-toast',\n class: this.toastClasses,\n attrs: _objectSpread(_objectSpread({}, isStatic ? {} : this.scopedStyleAttrs), {}, {\n id: this.safeId('_toast_outer'),\n role: isHiding ? null : isStatus ? 'status' : 'alert',\n 'aria-live': isHiding ? null : isStatus ? 'polite' : 'assertive',\n 'aria-atomic': isHiding ? null : 'true'\n }),\n key: name,\n ref: 'b-toast'\n }, [h(BVTransition, {\n props: {\n noFade: this.noFade\n },\n on: this.transitionHandlers\n }, [this.localShow ? this.makeToast(h) : h()])]);\n return h(Portal, {\n props: {\n name: name,\n to: this.computedToaster,\n order: order,\n slim: true,\n disabled: isStatic\n }\n }, [$toast]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, extend } 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 { useParentMixin } from '../../../mixins/use-parent';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { getInstanceFromElement } from '../../../utils/element-to-vue-instance-registry';\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 { createNewChildComponent } from '../../../utils/create-new-child-component';\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__*/extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin, useParentMixin],\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.bvParent) {\n this.bvParent.$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.bvParent); // 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 = createNewChildComponent(this, Template, {\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 showEvent = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvent); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvent.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 hideEvent = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvent);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvent.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 loses 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 method = on ? 'listenOnRoot' : 'listenOffRoot';\n var type = this.templateType;\n this[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n this[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n this[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n this[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\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\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n var tip = _this8.getTemplateElement();\n\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[on ? 'listenOnRoot' : 'listenOffRoot'](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.bvEventRoot || !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 var instance = getInstanceFromElement(target);\n\n if (instance) {\n instance[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});","import { Vue, extend, isVue3 } from '../../vue';\nimport { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { concat } from '../../utils/array';\nimport { removeNode, select } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isString } from '../../utils/inspect';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp } from '../../utils/props';\nimport { createNewChildComponent } from '../../utils/create-new-child-component'; // --- Helper components ---\n// BVTransporter/BVTransporterTarget:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of its\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n// Transporter target used by BVTransporter\n// Supports only a single root element\n// @vue/component\n\nvar BVTransporterTarget = /*#__PURE__*/extend({\n // As an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: NAME_TRANSPORTER_TARGET,\n props: {\n // Even though we only support a single root element,\n // VNodes are always passed as an array\n nodes: makeProp(PROP_TYPE_ARRAY_FUNCTION)\n },\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n destroyed: function destroyed() {\n removeNode(this.$el);\n },\n render: function render(h) {\n var updatedNodes = this.updatedNodes;\n var $nodes = isFunction(updatedNodes) ? updatedNodes({}) : updatedNodes;\n $nodes = concat($nodes).filter(identity);\n\n if ($nodes && $nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n /* istanbul ignore next */\n\n\n return h();\n }\n}); // --- Props ---\n\nexport var props = {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n container: makeProp([HTMLElement, PROP_TYPE_STRING], 'body'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // This should be set to match the root element type\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}; // --- Main component ---\n// @vue/component\n\nvar BVTransporterVue2 = /*#__PURE__*/extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget);\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_defaultFn = null;\n this.$_target = null;\n },\n beforeMount: function beforeMount() {\n this.mountTarget();\n },\n updated: function updated() {\n // We need to make sure that all children have completed updating\n // before rendering in the target\n // `vue-simple-portal` has the this in a `$nextTick()`,\n // while `portal-vue` doesn't\n // Just trying to see if the `$nextTick()` delay is required or not\n // Since all slots in Vue 2.6.x are always functions\n this.updateTarget();\n },\n beforeDestroy: function beforeDestroy() {\n this.unmountTarget();\n this.$_defaultFn = null;\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer: function getContainer() {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n var container = this.container;\n return isString(container) ? select(container) : container;\n } else {\n return null;\n }\n },\n // Mount the target\n mountTarget: function mountTarget() {\n if (!this.$_target) {\n var $container = this.getContainer();\n\n if ($container) {\n var $el = document.createElement('div');\n $container.appendChild($el);\n this.$_target = createNewChildComponent(this, BVTransporterTarget, {\n el: $el,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot())\n }\n });\n }\n }\n },\n // Update the content of the target\n updateTarget: function updateTarget() {\n if (IS_BROWSER && this.$_target) {\n var defaultFn = this.$scopedSlots.default;\n\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this.$_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here\n this.$_target.updatedNodes = defaultFn;\n } else if (!defaultFn) {\n // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n this.$_target.updatedNodes = this.$slots.default;\n }\n } // Update the scoped slot function cache\n\n\n this.$_defaultFn = defaultFn;\n }\n },\n // Unmount the target\n unmountTarget: function unmountTarget() {\n this.$_target && this.$_target.$destroy();\n this.$_target = null;\n }\n },\n render: function render(h) {\n // This component has no root element, so only a single VNode is allowed\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n }\n\n return h();\n }\n});\nvar BVTransporterVue3 = /*#__PURE__*/extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n render: function render(h) {\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0) {\n return $nodes[0];\n }\n }\n\n return h(Vue.Teleport, {\n to: this.container\n }, this.normalizeSlot());\n }\n});\nexport var BVTransporter = isVue3 ? BVTransporterVue3 : BVTransporterVue2;","import { BTime } from './time';\nimport { pluginFactory } from '../../utils/plugins';\nvar TimePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTime: BTime\n }\n});\nexport { TimePlugin, BTime };","var _makePropsConfigurabl, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_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 { useParentMixin } from '../../mixins/use-parent';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { createNewChildComponent } from '../../utils/create-new-child-component';\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__*/extend({\n name: NAME_TOOLTIP,\n mixins: [normalizeSlotMixin, useParentMixin],\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.bvParent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = createNewChildComponent(_this2, Component, {\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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\nimport { extend, mergeData } from '../../vue';\nimport { NAME_TRANSITION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { isPlainObject } from '../../utils/inspect';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread(_objectSpread({}, NO_FADE_PROPS), {}, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}); // --- Props ---\n\n\nexport var props = {\n // Has no effect if `trans-props` provided\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n // Can be overridden by user supplied `trans-props`\n mode: makeProp(PROP_TYPE_STRING),\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // For user supplied transitions (if needed)\n transProps: makeProp(PROP_TYPE_OBJECT)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransition = /*#__PURE__*/extend({\n name: NAME_TRANSITION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread(_objectSpread({}, transProps), {}, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread(_objectSpread({\n mode: props.mode\n }, transProps), {}, {\n // We always need `css` true\n css: true\n });\n\n var dataCopy = _objectSpread({}, data);\n\n delete dataCopy.props;\n return h('transition', // Any transition event listeners will get merged here\n mergeData(dataCopy, {\n props: transProps\n }), children);\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 { extend } 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 { useParentMixin } from '../../../mixins/use-parent';\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__*/extend({\n name: NAME_POPPER,\n mixins: [useParentMixin],\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.bvParent.$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); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../../vue';\nimport { NAME_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__*/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.bvParent.bvParent.$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});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n// BTime control (not form input control)\nimport { extend, REF_FOR_KEY } from '../../vue';\nimport { NAME_TIME } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT } from '../../constants/events';\nimport { CODE_LEFT, CODE_RIGHT } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_TIME } from '../../constants/regex';\nimport { concat } from '../../utils/array';\nimport { createDate, createDateFormatter } from '../../utils/date';\nimport { attemptBlur, attemptFocus, contains, getActiveElement, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BFormSpinbutton, props as BFormSpinbuttonProps } from '../form-spinbutton/form-spinbutton';\nimport { BIconCircleFill, BIconChevronUp } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_STRING,\n defaultValue: ''\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar NUMERIC = 'numeric'; // --- Helper methods ---\n\nvar padLeftZeros = function padLeftZeros(value) {\n return \"00\".concat(value || '').slice(-2);\n};\n\nvar parseHMS = function parseHMS(value) {\n value = toString(value);\n var hh = null,\n mm = null,\n ss = null;\n\n if (RX_TIME.test(value)) {\n ;\n\n var _value$split$map = value.split(':').map(function (v) {\n return toInteger(v, null);\n });\n\n var _value$split$map2 = _slicedToArray(_value$split$map, 3);\n\n hh = _value$split$map2[0];\n mm = _value$split$map2[1];\n ss = _value$split$map2[2];\n }\n\n return {\n hours: isUndefinedOrNull(hh) ? null : hh,\n minutes: isUndefinedOrNull(mm) ? null : mm,\n seconds: isUndefinedOrNull(ss) ? null : ss,\n ampm: isUndefinedOrNull(hh) || hh < 12 ? 0 : 1\n };\n};\n\nvar formatHMS = function formatHMS(_ref) {\n var hours = _ref.hours,\n minutes = _ref.minutes,\n seconds = _ref.seconds;\n var requireSeconds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isNull(hours) || isNull(minutes) || requireSeconds && isNull(seconds)) {\n return '';\n }\n\n var hms = [hours, minutes, requireSeconds ? seconds : 0];\n return hms.map(padLeftZeros).join(':');\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), pick(BFormSpinbuttonProps, ['labelIncrement', 'labelDecrement'])), {}, {\n // ID of label element\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n footerTag: makeProp(PROP_TYPE_STRING, 'footer'),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // Explicitly force 12 or 24 hour time\n // Default is to use resolved locale for 12/24 hour display\n // Tri-state: `true` = 12, `false` = 24, `null` = auto\n hour12: makeProp(PROP_TYPE_BOOLEAN, null),\n labelAm: makeProp(PROP_TYPE_STRING, 'AM'),\n labelAmpm: makeProp(PROP_TYPE_STRING, 'AM/PM'),\n labelHours: makeProp(PROP_TYPE_STRING, 'Hours'),\n labelMinutes: makeProp(PROP_TYPE_STRING, 'Minutes'),\n labelNoTimeSelected: makeProp(PROP_TYPE_STRING, 'No time selected'),\n labelPm: makeProp(PROP_TYPE_STRING, 'PM'),\n labelSeconds: makeProp(PROP_TYPE_STRING, 'Seconds'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected time'),\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n minutesStep: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n secondsStep: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n // If `true`, show the second spinbutton\n showSeconds: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_TIME); // --- Main component ---\n// @vue/component\n\nexport var BTime = /*#__PURE__*/extend({\n name: NAME_TIME,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var parsed = parseHMS(this[MODEL_PROP_NAME] || '');\n return {\n // Spin button models\n modelHours: parsed.hours,\n modelMinutes: parsed.minutes,\n modelSeconds: parsed.seconds,\n modelAmpm: parsed.ampm,\n // Internal flag to enable aria-live regions\n isLive: false\n };\n },\n computed: {\n computedHMS: function computedHMS() {\n var hours = this.modelHours;\n var minutes = this.modelMinutes;\n var seconds = this.modelSeconds;\n return formatHMS({\n hours: hours,\n minutes: minutes,\n seconds: seconds\n }, this.showSeconds);\n },\n resolvedOptions: function resolvedOptions() {\n // Resolved locale options\n var locale = concat(this.locale).filter(identity);\n var options = {\n hour: NUMERIC,\n minute: NUMERIC,\n second: NUMERIC\n };\n\n if (!isUndefinedOrNull(this.hour12)) {\n // Force 12 or 24 hour clock\n options.hour12 = !!this.hour12;\n }\n\n var dtf = new Intl.DateTimeFormat(locale, options);\n var resolved = dtf.resolvedOptions();\n var hour12 = resolved.hour12 || false; // IE 11 doesn't resolve the hourCycle, so we make\n // an assumption and fall back to common values\n\n var hourCycle = resolved.hourCycle || (hour12 ? 'h12' : 'h23');\n return {\n locale: resolved.locale,\n hour12: hour12,\n hourCycle: hourCycle\n };\n },\n computedLocale: function computedLocale() {\n return this.resolvedOptions.locale;\n },\n computedLang: function computedLang() {\n return (this.computedLocale || '').replace(/-u-.*$/, '');\n },\n computedRTL: function computedRTL() {\n return isLocaleRTL(this.computedLang);\n },\n computedHourCycle: function computedHourCycle() {\n // h11, h12, h23, or h24\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Locale/hourCycle\n // h12 - Hour system using 1–12. Corresponds to 'h' in patterns. The 12 hour clock, with midnight starting at 12:00 am\n // h23 - Hour system using 0–23. Corresponds to 'H' in patterns. The 24 hour clock, with midnight starting at 0:00\n // h11 - Hour system using 0–11. Corresponds to 'K' in patterns. The 12 hour clock, with midnight starting at 0:00 am\n // h24 - Hour system using 1–24. Corresponds to 'k' in pattern. The 24 hour clock, with midnight starting at 24:00\n // For h12 or h24, we visually format 00 hours as 12\n return this.resolvedOptions.hourCycle;\n },\n is12Hour: function is12Hour() {\n return !!this.resolvedOptions.hour12;\n },\n context: function context() {\n return {\n locale: this.computedLocale,\n isRTL: this.computedRTL,\n hourCycle: this.computedHourCycle,\n hour12: this.is12Hour,\n hours: this.modelHours,\n minutes: this.modelMinutes,\n seconds: this.showSeconds ? this.modelSeconds : 0,\n value: this.computedHMS,\n formatted: this.formattedTimeString\n };\n },\n valueId: function valueId() {\n return this.safeId() || null;\n },\n computedAriaLabelledby: function computedAriaLabelledby() {\n return [this.ariaLabelledby, this.valueId].filter(identity).join(' ') || null;\n },\n timeFormatter: function timeFormatter() {\n // Returns a formatter function reference\n // The formatter converts the time to a localized string\n var options = {\n hour12: this.is12Hour,\n hourCycle: this.computedHourCycle,\n hour: NUMERIC,\n minute: NUMERIC,\n timeZone: 'UTC'\n };\n\n if (this.showSeconds) {\n options.second = NUMERIC;\n } // Formats the time as a localized string\n\n\n return createDateFormatter(this.computedLocale, options);\n },\n numberFormatter: function numberFormatter() {\n // Returns a formatter function reference\n // The formatter always formats as 2 digits and is localized\n var nf = new Intl.NumberFormat(this.computedLocale, {\n style: 'decimal',\n minimumIntegerDigits: 2,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n });\n return nf.format;\n },\n formattedTimeString: function formattedTimeString() {\n var hours = this.modelHours;\n var minutes = this.modelMinutes;\n var seconds = this.showSeconds ? this.modelSeconds || 0 : 0;\n\n if (this.computedHMS) {\n return this.timeFormatter(createDate(Date.UTC(0, 0, 1, hours, minutes, seconds)));\n }\n\n return this.labelNoTimeSelected || ' ';\n },\n spinScopedSlots: function spinScopedSlots() {\n var h = this.$createElement;\n return {\n increment: function increment(_ref2) {\n var hasFocus = _ref2.hasFocus;\n return h(BIconChevronUp, {\n props: {\n scale: hasFocus ? 1.5 : 1.25\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n },\n decrement: function decrement(_ref3) {\n var hasFocus = _ref3.hasFocus;\n return h(BIconChevronUp, {\n props: {\n flipV: true,\n scale: hasFocus ? 1.5 : 1.25\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue && !looseEqual(parseHMS(newValue), parseHMS(this.computedHMS))) {\n var _parseHMS = parseHMS(newValue),\n hours = _parseHMS.hours,\n minutes = _parseHMS.minutes,\n seconds = _parseHMS.seconds,\n ampm = _parseHMS.ampm;\n\n this.modelHours = hours;\n this.modelMinutes = minutes;\n this.modelSeconds = seconds;\n this.modelAmpm = ampm;\n }\n }), _defineProperty(_watch, \"computedHMS\", function computedHMS(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"modelAmpm\", function modelAmpm(newValue, oldValue) {\n var _this = this;\n\n if (newValue !== oldValue) {\n var hours = isNull(this.modelHours) ? 0 : this.modelHours;\n this.$nextTick(function () {\n if (newValue === 0 && hours > 11) {\n // Switched to AM\n _this.modelHours = hours - 12;\n } else if (newValue === 1 && hours < 12) {\n // Switched to PM\n _this.modelHours = hours + 12;\n }\n });\n }\n }), _defineProperty(_watch, \"modelHours\", function modelHours(newHours, oldHours) {\n if (newHours !== oldHours) {\n this.modelAmpm = newHours > 11 ? 1 : 0;\n }\n }), _watch),\n created: function created() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.$emit(EVENT_NAME_CONTEXT, _this2.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n // We focus the first spin button\n attemptFocus(this.$refs.spinners[0]);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n var activeElement = getActiveElement();\n\n if (contains(this.$el, activeElement)) {\n attemptBlur(activeElement);\n }\n }\n },\n // Formatters for the spin buttons\n formatHours: function formatHours(hh) {\n var hourCycle = this.computedHourCycle; // We always store 0-23, but format based on h11/h12/h23/h24 formats\n\n hh = this.is12Hour && hh > 12 ? hh - 12 : hh; // Determine how 00:00 and 12:00 are shown\n\n hh = hh === 0 && hourCycle === 'h12' ? 12 : hh === 0 && hourCycle === 'h24' ?\n /* istanbul ignore next */\n 24 : hh === 12 && hourCycle === 'h11' ?\n /* istanbul ignore next */\n 0 : hh;\n return this.numberFormatter(hh);\n },\n formatMinutes: function formatMinutes(mm) {\n return this.numberFormatter(mm);\n },\n formatSeconds: function formatSeconds(ss) {\n return this.numberFormatter(ss);\n },\n formatAmpm: function formatAmpm(ampm) {\n // These should come from label props???\n // `ampm` should always be a value of `0` or `1`\n return ampm === 0 ? this.labelAm : ampm === 1 ? this.labelPm : '';\n },\n // Spinbutton on change handlers\n setHours: function setHours(value) {\n this.modelHours = value;\n },\n setMinutes: function setMinutes(value) {\n this.modelMinutes = value;\n },\n setSeconds: function setSeconds(value) {\n this.modelSeconds = value;\n },\n setAmpm: function setAmpm(value) {\n this.modelAmpm = value;\n },\n onSpinLeftRight: function onSpinLeftRight() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var type = event.type,\n keyCode = event.keyCode;\n\n if (!this.disabled && type === 'keydown' && (keyCode === CODE_LEFT || keyCode === CODE_RIGHT)) {\n stopEvent(event);\n var spinners = this.$refs.spinners || [];\n var index = spinners.map(function (cmp) {\n return !!cmp.hasFocus;\n }).indexOf(true);\n index = index + (keyCode === CODE_LEFT ? -1 : 1);\n index = index >= spinners.length ? 0 : index < 0 ? spinners.length - 1 : index;\n attemptFocus(spinners[index]);\n }\n },\n setLive: function setLive(on) {\n var _this3 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this3.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n // If hidden, we just render a placeholder comment\n\n /* istanbul ignore if */\n if (this.hidden) {\n return h();\n }\n\n var disabled = this.disabled,\n readonly = this.readonly,\n locale = this.computedLocale,\n ariaLabelledby = this.computedAriaLabelledby,\n labelIncrement = this.labelIncrement,\n labelDecrement = this.labelDecrement,\n valueId = this.valueId,\n focusHandler = this.focus;\n var spinIds = []; // Helper method to render a spinbutton\n\n var makeSpinbutton = function makeSpinbutton(handler, key, classes) {\n var spinbuttonProps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var id = _this4.safeId(\"_spinbutton_\".concat(key, \"_\")) || null;\n spinIds.push(id);\n return h(BFormSpinbutton, _defineProperty({\n class: classes,\n props: _objectSpread({\n id: id,\n placeholder: '--',\n vertical: true,\n required: true,\n disabled: disabled,\n readonly: readonly,\n locale: locale,\n labelIncrement: labelIncrement,\n labelDecrement: labelDecrement,\n wrap: true,\n ariaControls: valueId,\n min: 0\n }, spinbuttonProps),\n scopedSlots: _this4.spinScopedSlots,\n on: {\n // We use `change` event to minimize SR verbosity\n // As the spinbutton will announce each value change\n // and we don't want the formatted time to be announced\n // on each value input if repeat is happening\n change: handler\n },\n key: key,\n ref: 'spinners'\n }, REF_FOR_KEY, true));\n }; // Helper method to return a \"colon\" separator\n\n\n var makeColon = function makeColon() {\n return h('div', {\n staticClass: 'd-flex flex-column',\n class: {\n 'text-muted': disabled || readonly\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [h(BIconCircleFill, {\n props: {\n shiftV: 4,\n scale: 0.5\n }\n }), h(BIconCircleFill, {\n props: {\n shiftV: -4,\n scale: 0.5\n }\n })]);\n };\n\n var $spinners = []; // Hours\n\n $spinners.push(makeSpinbutton(this.setHours, 'hours', 'b-time-hours', {\n value: this.modelHours,\n max: 23,\n step: 1,\n formatterFn: this.formatHours,\n ariaLabel: this.labelHours\n })); // Spacer\n\n $spinners.push(makeColon()); // Minutes\n\n $spinners.push(makeSpinbutton(this.setMinutes, 'minutes', 'b-time-minutes', {\n value: this.modelMinutes,\n max: 59,\n step: this.minutesStep || 1,\n formatterFn: this.formatMinutes,\n ariaLabel: this.labelMinutes\n }));\n\n if (this.showSeconds) {\n // Spacer\n $spinners.push(makeColon()); // Seconds\n\n $spinners.push(makeSpinbutton(this.setSeconds, 'seconds', 'b-time-seconds', {\n value: this.modelSeconds,\n max: 59,\n step: this.secondsStep || 1,\n formatterFn: this.formatSeconds,\n ariaLabel: this.labelSeconds\n }));\n } // AM/PM ?\n // depends on client settings, shouldn't be rendered on server\n\n\n if (this.isLive && this.is12Hour) {\n // TODO:\n // If locale is RTL, unshift this instead of push?\n // And switch class `ml-2` to `mr-2`\n // Note some LTR locales (i.e. zh) also place AM/PM to the left\n $spinners.push(makeSpinbutton(this.setAmpm, 'ampm', 'b-time-ampm', {\n value: this.modelAmpm,\n max: 1,\n formatterFn: this.formatAmpm,\n ariaLabel: this.labelAmpm,\n // We set `required` as `false`, since this always has a value\n required: false\n }));\n } // Assemble spinners\n\n\n $spinners = h('div', {\n staticClass: 'd-flex align-items-center justify-content-center mx-auto',\n attrs: {\n role: 'group',\n tabindex: disabled || readonly ? null : '-1',\n 'aria-labelledby': ariaLabelledby\n },\n on: {\n keydown: this.onSpinLeftRight,\n click:\n /* istanbul ignore next */\n function click(event) {\n if (event.target === event.currentTarget) {\n focusHandler();\n }\n }\n }\n }, $spinners); // Selected type display\n\n var $value = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n disabled: disabled || readonly\n },\n attrs: {\n id: valueId,\n role: 'status',\n for: spinIds.filter(identity).join(' ') || null,\n tabindex: disabled ? null : '-1',\n 'aria-live': this.isLive ? 'polite' : 'off',\n 'aria-atomic': 'true'\n },\n on: {\n // Transfer focus/click to focus hours spinner\n click: focusHandler,\n focus: focusHandler\n }\n }, [h('bdi', this.formattedTimeString), this.computedHMS ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(this.labelSelected, \") \")) : '']);\n var $header = h(this.headerTag, {\n staticClass: 'b-time-header',\n class: {\n 'sr-only': this.hideHeader\n }\n }, [$value]);\n var $content = this.normalizeSlot();\n var $footer = $content ? h(this.footerTag, {\n staticClass: 'b-time-footer'\n }, $content) : h();\n return h('div', {\n staticClass: 'b-time d-inline-flex flex-column text-center',\n attrs: {\n role: 'group',\n lang: this.computedLang || null,\n 'aria-labelledby': ariaLabelledby || null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-readonly': readonly && !disabled ? 'true' : null\n }\n }, [$header, $spinners, $footer]);\n }\n});"],"sourceRoot":""}