{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/constants/events.js","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/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/constants/config.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/constants/slot-names.js","webpack:///./node_modules/bootstrap-vue/esm/constants/date.js","webpack:///./node_modules/bootstrap-vue/esm/constants/regex.js","webpack:///./node_modules/bootstrap-vue/esm/constants/key-codes.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/constants/components.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":["EVENT_OPTIONS_PASSIVE","passive","EVENT_OPTIONS_NO_CAPTURE","capture","TooltipPlugin","components","BTooltip","plugins","VBTooltipPlugin","props","name","type","String","required","ariaLive","default","undefined","ariaAtomic","role","DefaultTransition","extend","data","methods","onAfterEnter","el","_this","this","concat","render","h","tag","on","afterEnter","$slots","BToaster","doRender","dead","staticName","beforeMount","_this2","hasTarget","$once","$root","$emit","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","extends","mounted","handleDestroy","localShow","$nextTick","$destroy","$parent","listenOnRoot","toaster","makeToast","toast","parent","propsData","static","visible","prop","$createElement","div","document","createElement","body","appendChild","$mount","BvToast","vm","_vm","_root","content","mixin","beforeCreate","get","BVToastPlugin","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","NAME","DEFAULT_BREAKPOINT","ToastPlugin","BToast","MIN_DURATION","linkProps","Boolean","variant","isStatus","appendToast","noAutoHide","autoHideDelay","Number","noCloseButton","noFade","noHoverPause","solid","toastClass","headerClass","bodyClass","mixins","inheritAttrs","model","event","isMounted","isTransitioning","isHiding","order","dismissStarted","resumeDismiss","computed","bToastClasses","slotScope","hide","computedDuration","computedToaster","transitionHandlers","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","afterLeave","onAfterLeave","computedAttrs","bvAttrs","safeId","tabindex","watch","newVal","show","ensureToaster","created","$_dismissTimer","beforeDestroy","clearDismissTimer","showEvt","buildEvent","emitEvent","Date","now","_this3","hideEvt","setHoverHandler","cancelable","relatedTarget","vueTarget","componentId","bvEvt","emitOnRoot","startDismissTimer","setTimeout","clearTimeout","$refs","onPause","onUnPause","passed","onLinkClick","_this4","hiddenEvt","_this5","$headerContent","$title","normalizeSlot","click","$header","link","$body","$toast","_uid","ref","scopedStyleAttrs","to","disabled","MODAL_SELECTOR","MODAL_CLOSE_EVENT","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","newValue","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","evtName","_this6","setRootListener","_this7","events","evt","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","children","__vue__","enter","evtTarget","currentTarget","toggle","_this10","_this11","SLOT_NAME_APPEND","SLOT_NAME_BUTTON_CONTENT","SLOT_NAME_DEFAULT","SLOT_NAME_DESCRIPTION","SLOT_NAME_FIRST","SLOT_NAME_FOOTER","SLOT_NAME_HEADER","SLOT_NAME_LABEL","SLOT_NAME_LEAD","SLOT_NAME_PREPEND","SLOT_NAME_TEXT","SLOT_NAME_TITLE","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","RX_ARRAY_NOTATION","RX_DIGITS","RX_EXTENSION","RX_HASH","RX_HASH_ID","RX_HTML_TAGS","RX_HYPHENATE","RX_LOWER_UPPER","RX_NUMBER","RX_PLUS","RX_REGEXP_REPLACE","RX_SPACES","RX_SPACE_SPLIT","RX_STAR","RX_START_SPACE_WORD","RX_TRIM_LEFT","RX_TRIM_RIGHT","RX_UNDERSCORE","RX_UN_KEBAB","RX_DATE","RX_DATE_SPLIT","RX_TIME","RX_HREF","RX_ENCODED_COMMA","RX_ENCODE_REVERSE","RX_QUERY_START","RX_ASPECT","RX_ASPECT_SEPARATOR","RX_COL_CLASS","RX_ICON_PREFIX","RX_STRIP_LOCALE_MODS","CODE_BACKSPACE","CODE_DELETE","CODE_DOWN","CODE_END","CODE_ENTER","CODE_ESC","CODE_HOME","CODE_LEFT","CODE_PAGEDOWN","CODE_PAGEUP","CODE_RIGHT","CODE_SPACE","CODE_UP","TimePlugin","BTime","Function","validator","every","v","noninteractive","localTitle","localContent","templateTitleContent","_show","oldVal","$_toolpop","updateContent","$off","doOpen","doClose","Component","getComponent","$toolpop","_scopeId","onShow","onShown","onHide","onHidden","onDisabled","onEnabled","setTitle","$scopedSlots","val","setContent","NAME_ALERT","NAME_ASPECT","NAME_AVATAR","NAME_AVATAR_GROUP","NAME_BADGE","NAME_BREADCRUMB","NAME_BREADCRUMB_ITEM","NAME_BREADCRUMB_LINK","NAME_BUTTON","NAME_BUTTON_CLOSE","NAME_BUTTON_GROUP","NAME_BUTTON_TOOLBAR","NAME_CALENDAR","NAME_CARD","NAME_CARD_BODY","NAME_CARD_FOOTER","NAME_CARD_GROUP","NAME_CARD_HEADER","NAME_CARD_IMG","NAME_CARD_IMG_LAZY","NAME_CARD_SUB_TITLE","NAME_CARD_TEXT","NAME_CARD_TITLE","NAME_CAROUSEL","NAME_CAROUSEL_SLIDE","NAME_COL","NAME_COLLAPSE","NAME_COLLAPSE_HELPER","NAME_CONTAINER","NAME_DROPDOWN","NAME_DROPDOWN_DIVIDER","NAME_DROPDOWN_FORM","NAME_DROPDOWN_GROUP","NAME_DROPDOWN_HEADER","NAME_DROPDOWN_ITEM","NAME_DROPDOWN_ITEM_BUTTON","NAME_DROPDOWN_TEXT","NAME_EMBED","NAME_FORM","NAME_FORM_BUTTON_LABEL_CONTROL","NAME_FORM_CHECKBOX","NAME_FORM_CHECKBOX_GROUP","NAME_FORM_DATALIST","NAME_FORM_DATEPICKER","NAME_FORM_FILE","NAME_FORM_GROUP","NAME_FORM_INPUT","NAME_FORM_INVALID_FEEDBACK","NAME_FORM_RADIO","NAME_FORM_RADIO_GROUP","NAME_FORM_RATING","NAME_FORM_RATING_STAR","NAME_FORM_ROW","NAME_FORM_SELECT","NAME_FORM_SELECT_OPTION","NAME_FORM_SELECT_OPTION_GROUP","NAME_FORM_SPINBUTTON","NAME_FORM_TAG","NAME_FORM_TAGS","NAME_FORM_TEXT","NAME_FORM_TEXTAREA","NAME_FORM_TIMEPICKER","NAME_FORM_VALID_FEEDBACK","NAME_ICON","NAME_ICON_BASE","NAME_IMG","NAME_IMG_LAZY","NAME_INPUT_GROUP","NAME_INPUT_GROUP_ADDON","NAME_INPUT_GROUP_APPEND","NAME_INPUT_GROUP_PREPEND","NAME_INPUT_GROUP_TEXT","NAME_JUMBOTRON","NAME_LINK","NAME_LIST_GROUP","NAME_LIST_GROUP_ITEM","NAME_MEDIA","NAME_MEDIA_ASIDE","NAME_MEDIA_BODY","NAME_MODAL","NAME_MSG_BOX","NAME_NAV","NAME_NAVBAR","NAME_NAVBAR_BRAND","NAME_NAVBAR_NAV","NAME_NAVBAR_TOGGLE","NAME_NAV_FORM","NAME_NAV_ITEM","NAME_NAV_ITEM_DROPDOWN","NAME_NAV_TEXT","NAME_OVERLAY","NAME_PAGINATION","NAME_PAGINATION_NAV","NAME_POPOVER","NAME_POPOVER_HELPER","NAME_POPOVER_TEMPLATE","NAME_POPPER","NAME_PROGRESS","NAME_PROGRESS_BAR","NAME_ROW","NAME_SIDEBAR","NAME_SKELETON","NAME_SKELETON_ICON","NAME_SKELETON_IMG","NAME_SKELETON_TABLE","NAME_SKELETON_WRAPPER","NAME_SPINNER","NAME_TAB","NAME_TABLE","NAME_TABLE_CELL","NAME_TABLE_LITE","NAME_TABLE_SIMPLE","NAME_TABS","NAME_TAB_BUTTON_HELPER","NAME_TBODY","NAME_TFOOT","NAME_TH","NAME_THEAD","NAME_TIME","NAME_TOAST","NAME_TOASTER","NAME_TOAST_POP","NAME_TOOLTIP","NAME_TOOLTIP_HELPER","NAME_TOOLTIP_TEMPLATE","NAME_TR","NAME_TRANSITION","NAME_TRANSPORTER_SINGLE","NAME_TRANSPORTER_TARGET_SINGLE","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","appear","BVTooltipTemplate","templateClasses","_ref","templateAttributes","$attrs","templateListeners","mouseenter","mouseleave","focusin","focusout","domProps","innerHTML","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","_i","next","done","err","NUMERIC","padLeftZeros","num","parseHMS","hms","hh","mm","ss","_hms$split$map","map","_hms$split$map2","hours","minutes","seconds","ampm","formatHMS","requireSeconds","showSeconds","hour12","locale","ariaLabelledby","secondsStep","minutesStep","readonly","hideHeader","labelNoTimeSelected","labelSelected","labelHours","labelMinutes","labelSeconds","labelAmpm","labelAm","labelPm","hidden","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","spinIds","makeSpinbutton","handler","classes","spinbuttonProps","refInFor","placeholder","vertical","labelIncrement","labelDecrement","wrap","ariaControls","min","scopedSlots","change","makeColon","shiftV","$spinners","max","step","formatterFn","ariaLabel","keydown","$value","for","$slot","lang"],"mappings":"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","file":"js/chunk-vendors~df25b021.011eb01c.js","sourcesContent":["export var EVENT_OPTIONS_PASSIVE = {\n passive: true\n};\nexport var EVENT_OPTIONS_NO_CAPTURE = {\n passive: true,\n capture: false\n};","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 Vue from '../../vue';\nimport { NAME_TOASTER } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/config';\nimport { removeClass, requestAF } from '../../utils/dom';\nimport { warn } from '../../utils/warn'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n name: {\n type: String,\n required: true\n },\n ariaLive: {\n type: String,\n default: undefined\n },\n // Allowed: 'true' or 'false' or null\n ariaAtomic: {\n type: String // default: undefined\n\n },\n role: {\n // Aria role\n type: String // default: undefined\n\n }\n}, NAME_TOASTER); // @vue/component\n\nexport var DefaultTransition = /*#__PURE__*/Vue.extend({\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.$slots.default);\n }\n}); // @vue/component\n\nexport var BToaster = /*#__PURE__*/Vue.extend({\n name: NAME_TOASTER,\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 _this2 = this;\n\n this.staticName = this.name;\n /* istanbul ignore if */\n\n if (Wormhole.hasTarget(this.staticName)) {\n warn(\"A \\\"\\\" with name \\\"\".concat(this.name, \"\\\" already exists in the document.\"), NAME_TOASTER);\n this.dead = true;\n } else {\n this.doRender = true;\n this.$once('hook:beforeDestroy', function () {\n // Let toasts made with `this.$bvToast.toast()` know that this toaster\n // is being destroyed and should should also destroy/hide themselves\n _this2.$root.$emit('bv::toaster::destroyed', _this2.staticName);\n });\n }\n },\n destroyed: function destroyed() {\n // Remove from DOM if needed\n\n /* istanbul ignore next: difficult to test */\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$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 role: this.role || null,\n // Fallback to null to make sure attribute doesn't exist\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); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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\" && Symbol.iterator in Object(iter)) 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_TOAST_POP } from '../../../constants/components';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\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 { 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}; // --- Utility 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 destroyed: function destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$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.$parent.$once('hook:destroyed', handleDestroy); // Self destruct after hidden\n\n this.$once('hidden', handleDestroy); // Self destruct when toaster is destroyed\n\n this.listenOnRoot('bv::toaster::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 = new 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 parent: $parent,\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: vm.$root\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('bv::show::toast', 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('bv::hide::toast', 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});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","export var NAME = 'BvConfig';\nexport var PROP_NAME = '$bvConfig';\nexport var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl'];","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 };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Portal, Wormhole } from 'portal-vue';\nimport Vue from '../../vue';\nimport { NAME_TOAST } from '../../constants/components';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slot-names';\nimport BVTransition from '../../utils/bv-transition';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { makePropsConfigurable } from '../../utils/config';\nimport { requestAF } from '../../utils/dom';\nimport { eventOnOff } from '../../utils/events';\nimport { mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { pick } from '../../utils/object';\nimport { pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport attrsMixin from '../../mixins/attrs';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport scopedStyleAttrsMixin from '../../mixins/scoped-style-attrs';\nimport { BToaster } from './toaster';\nimport { BButtonClose } from '../button/button-close';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar MIN_DURATION = 1000; // --- Props ---\n\nvar linkProps = pick(BLinkProps, ['href', 'to']);\nexport var props = makePropsConfigurable(_objectSpread({\n id: {\n // Even though the ID prop is provided by idMixin, we\n // add it here for $bvToast props filtering\n type: String // default: null\n\n },\n title: {\n type: String // default: null\n\n },\n toaster: {\n type: String,\n default: 'b-toaster-top-right'\n },\n visible: {\n type: Boolean,\n default: false\n },\n variant: {\n type: String // default: null\n\n },\n isStatus: {\n // Switches role to 'status' and aria-live to 'polite'\n type: Boolean,\n default: false\n },\n appendToast: {\n type: Boolean,\n default: false\n },\n noAutoHide: {\n type: Boolean,\n default: false\n },\n autoHideDelay: {\n type: [Number, String],\n default: 5000\n },\n noCloseButton: {\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noHoverPause: {\n type: Boolean,\n default: false\n },\n solid: {\n type: Boolean,\n default: false\n },\n toastClass: {\n type: [String, Object, Array] // default: undefined\n\n },\n headerClass: {\n type: [String, Object, Array] // default: undefined\n\n },\n bodyClass: {\n type: [String, Object, Array] // default: undefined\n\n },\n static: {\n // Render the toast in place, rather than in a portal-target\n type: Boolean,\n default: false\n }\n}, linkProps), NAME_TOAST); // @vue/component\n\nexport var BToast = /*#__PURE__*/Vue.extend({\n name: NAME_TOAST,\n mixins: [attrsMixin, idMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleAttrsMixin],\n inheritAttrs: false,\n model: {\n prop: 'visible',\n event: 'change'\n },\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 bToastClasses: function bToastClasses() {\n return _defineProperty({\n 'b-toast-solid': this.solid,\n 'b-toast-append': this.appendToast,\n 'b-toast-prepend': !this.appendToast\n }, \"b-toast-\".concat(this.variant), this.variant);\n },\n slotScope: function slotScope() {\n return {\n hide: this.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: {\n visible: function visible(newVal) {\n newVal ? this.show() : this.hide();\n },\n localShow: function localShow(newVal) {\n if (newVal !== this.visible) {\n this.$emit('change', newVal);\n }\n },\n\n /* istanbul ignore next */\n toaster: function toaster() {\n // If toaster target changed, make sure toaster exists\n this.$nextTick(this.ensureToaster);\n },\n\n /* istanbul ignore next */\n static: function _static(newVal) {\n // If static changes to true, and the toast is showing,\n // ensure the toaster target exists\n if (newVal && this.localShow) {\n this.ensureToaster();\n }\n }\n },\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.visible) {\n requestAF(function () {\n _this.show();\n });\n }\n }); // Listen for global $root show events\n\n this.listenOnRoot('bv::show::toast', function (id) {\n if (id === _this.safeId()) {\n _this.show();\n }\n }); // Listen for global $root hide events\n\n this.listenOnRoot('bv::hide::toast', 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('bv::toaster::destroyed', function (toaster) {\n /* istanbul ignore next */\n if (toaster === _this.computedToaster) {\n /* istanbul ignore next */\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 showEvt = this.buildEvent('show');\n this.emitEvent(showEvt);\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 hideEvt = this.buildEvent('hide');\n this.emitEvent(hideEvt);\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(bvEvt) {\n var type = bvEvt.type;\n this.emitOnRoot(\"bv::toast:\".concat(type), bvEvt);\n this.$emit(type, bvEvt);\n },\n ensureToaster: function ensureToaster() {\n if (this.static) {\n return;\n }\n\n if (!Wormhole.hasTarget(this.computedToaster)) {\n var div = document.createElement('div');\n document.body.appendChild(div);\n var toaster = new BToaster({\n parent: this.$root,\n propsData: {\n name: this.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 hiddenEvt = this.buildEvent('shown');\n this.emitEvent(hiddenEvt);\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 hiddenEvt = this.buildEvent('hidden');\n this.emitEvent(hiddenEvt);\n this.doRender = false;\n },\n makeToast: function makeToast(h) {\n var _this5 = this;\n\n // Render helper for generating the toast\n // Assemble the header content\n var $headerContent = [];\n var $title = this.normalizeSlot('toast-title', this.slotScope);\n\n if ($title) {\n $headerContent.push($title);\n } else if (this.title) {\n $headerContent.push(h('strong', {\n staticClass: 'mr-2'\n }, this.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 } // Assemble the header (if needed)\n\n\n var $header = h();\n\n if ($headerContent.length > 0) {\n $header = h('header', {\n staticClass: 'toast-header',\n class: this.headerClass\n }, $headerContent);\n } // Toast body\n\n\n var link = isLink(this);\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, this.slotScope) || h()]); // Build the toast\n\n var $toast = h('div', {\n key: \"toast-\".concat(this._uid),\n ref: 'toast',\n staticClass: 'toast',\n class: this.toastClass,\n attrs: this.computedAttrs\n }, [$header, $body]);\n return $toast;\n }\n },\n render: function render(h) {\n if (!this.doRender || !this.isMounted) {\n return h();\n }\n\n var name = \"b-toast-\".concat(this._uid); // If scoped styles are applied and the toast is not static,\n // make sure the scoped style data attribute is applied\n\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {};\n return h(Portal, {\n props: {\n name: name,\n to: this.computedToaster,\n order: this.order,\n slim: true,\n disabled: this.static\n }\n }, [h('div', {\n key: name,\n ref: 'b-toast',\n staticClass: 'b-toast',\n class: this.bToastClasses,\n attrs: _objectSpread(_objectSpread({}, scopedStyleAttrs), {}, {\n id: this.safeId('_toast_outer'),\n role: this.isHiding ? null : this.isStatus ? 'status' : 'alert',\n 'aria-live': this.isHiding ? null : this.isStatus ? 'polite' : 'assertive',\n 'aria-atomic': this.isHiding ? null : 'true'\n })\n }, [h(BVTransition, {\n props: {\n noFade: this.noFade\n },\n on: this.transitionHandlers\n }, [this.localShow ? this.makeToast(h) : h()])])]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport Vue from '../../../vue';\nimport { NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../../constants/events';\nimport getScopId from '../../../utils/get-scope-id';\nimport looseEqual from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport noop from '../../../utils/noop';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOn, eventOff, eventOnOff } from '../../../utils/events';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar MODAL_CLOSE_EVENT = 'bv::modal::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}; // @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\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._uid, \"__\");\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(Boolean).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 return {\n title: this.title,\n content: this.content,\n variant: this.variant,\n customClass: this.customClass,\n noFade: this.noFade,\n interactive: this.interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once('hook:beforeDestroy', 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 = getScopId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once('show', this.onTemplateShow); // When the template has completed showing\n\n $tip.$once('shown', this.onTemplateShown); // When the template has started to hide\n\n $tip.$once('hide', this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once('hidden', this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once('hook: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('focusin', this.handleEvent);\n $tip.$on('focusout', this.handleEvent);\n $tip.$on('mouseenter', this.handleEvent);\n $tip.$on('mouseleave', this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent('show', {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent('hide', {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` evt 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('enabled'));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent('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('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('hidden'));\n },\n // --- Utility 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(bvEvt) {\n // Emits a BvEvent on $root and this instance\n var evtName = bvEvt.type;\n var $root = this.$root;\n\n if ($root && $root.$emit) {\n // Emit an event on $root\n $root.$emit(\"bv::\".concat(this.templateType, \"::\").concat(evtName), bvEvt);\n }\n\n this.$emit(evtName, bvEvt);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (evt) {\n target && eventOff(target, evt, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](\"bv::hide::\".concat(type), this.doHide);\n $root[method](\"bv::show::\".concat(type), this.doShow);\n $root[method](\"bv::disable::\".concat(type), this.doDisable);\n $root[method](\"bv::enable::\".concat(type), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off']('shown', this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(evt) {\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 = evt.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(evt);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(evt);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `evt` includes `relatedTarget` (element losing focus)\n this.enter(evt);\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(); // `evtTarget` is the element which is losing focus/hover and\n\n var evtTarget = evt.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = evt.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, evtTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, evtTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, evtTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, evtTarget) && 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(evt);\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(evt) {\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(evt.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 evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with evt === null\n if (evt) {\n this.activeTrigger[evt.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 evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with evt === null\n if (evt) {\n this.activeTrigger[evt.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (evt.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});","export var SLOT_NAME_APPEND = 'append';\nexport var SLOT_NAME_BUTTON_CONTENT = 'button-content';\nexport var SLOT_NAME_DEFAULT = 'default';\nexport var SLOT_NAME_DESCRIPTION = 'description';\nexport var SLOT_NAME_FIRST = 'first';\nexport var SLOT_NAME_FOOTER = 'footer';\nexport var SLOT_NAME_HEADER = 'header';\nexport var SLOT_NAME_LABEL = 'label';\nexport var SLOT_NAME_LEAD = 'lead';\nexport var SLOT_NAME_PREPEND = 'prepend';\nexport var SLOT_NAME_TEXT = 'text';\nexport var SLOT_NAME_TITLE = 'title';","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","// --- General ---\nexport var RX_ARRAY_NOTATION = /\\[(\\d+)]/g;\nexport var RX_DIGITS = /^\\d+$/;\nexport var RX_EXTENSION = /^\\..+/;\nexport var RX_HASH = /^#/;\nexport var RX_HASH_ID = /^#[A-Za-z]+[\\w\\-:.]*$/;\nexport var RX_HTML_TAGS = /(<([^>]+)>)/gi;\nexport var RX_HYPHENATE = /\\B([A-Z])/g;\nexport var RX_LOWER_UPPER = /([a-z])([A-Z])/g;\nexport var RX_NUMBER = /^[0-9]*\\.?[0-9]+$/;\nexport var RX_PLUS = /\\+/g;\nexport var RX_REGEXP_REPLACE = /[-/\\\\^$*+?.()|[\\]{}]/g;\nexport var RX_SPACES = /[\\s\\uFEFF\\xA0]+/g;\nexport var RX_SPACE_SPLIT = /\\s+/;\nexport var RX_STAR = /\\/\\*$/;\nexport var RX_START_SPACE_WORD = /(\\s|^)(\\w)/g;\nexport var RX_TRIM_LEFT = /^\\s+/;\nexport var RX_TRIM_RIGHT = /\\s+$/;\nexport var RX_UNDERSCORE = /_/g;\nexport var RX_UN_KEBAB = /-(\\w)/g; // --- Date ---\n// Loose YYYY-MM-DD matching, ignores any appended time inforation\n// Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00'\n\nexport var RX_DATE = /^\\d+-\\d\\d?-\\d\\d?(?:\\s|T|$)/; // Used to split off the date parts of the YYYY-MM-DD string\n\nexport var RX_DATE_SPLIT = /-|\\s|T/; // Time string RegEx (optional seconds)\n\nexport var RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/; // --- URL ---\n// HREFs must end with a hash followed by at least one non-hash character\n\nexport var RX_HREF = /^.*(#[^#]+)$/;\nexport var RX_ENCODED_COMMA = /%2C/g;\nexport var RX_ENCODE_REVERSE = /[!'()*]/g;\nexport var RX_QUERY_START = /^(\\?|#|&)/; // --- Aspect ---\n\nexport var RX_ASPECT = /^\\d+(\\.\\d*)?[/:]\\d+(\\.\\d*)?$/;\nexport var RX_ASPECT_SEPARATOR = /[/:]/; // --- Grid ---\n\nexport var RX_COL_CLASS = /^col-/; // --- Icon ---\n\nexport var RX_ICON_PREFIX = /^BIcon/; // --- Locale ---\n\nexport var RX_STRIP_LOCALE_MODS = /-u-.+/;","export var CODE_BACKSPACE = 8;\nexport var CODE_BREAK = 19;\nexport var CODE_DELETE = 46;\nexport var CODE_DOWN = 40;\nexport var CODE_END = 35;\nexport var CODE_ENTER = 13;\nexport var CODE_ESC = 27;\nexport var CODE_HOME = 36;\nexport var CODE_LEFT = 37;\nexport var CODE_PAGEDOWN = 34;\nexport var CODE_PAGEUP = 33;\nexport var CODE_RIGHT = 39;\nexport var CODE_SPACE = 32;\nexport var CODE_UP = 38;","import { BTime } from './time';\nimport { pluginFactory } from '../../utils/plugins';\nvar TimePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTime: BTime\n }\n});\nexport { TimePlugin, BTime };","import Vue from '../../vue';\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport getScopId from '../../utils/get-scope-id';\nimport { arrayIncludes } from '../../utils/array';\nimport { makePropsConfigurable } from '../../utils/config';\nimport { isArray, isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { HTMLElement, SVGElement } from '../../utils/safe-types';\nimport { BVTooltip } from './helpers/bv-tooltip'; // @vue/component\n\nexport var BTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP,\n inheritAttrs: false,\n props: makePropsConfigurable({\n title: {\n type: String // default: undefined\n\n },\n // Added in by BPopover\n // content: {\n // type: String,\n // default: undefined\n // },\n target: {\n // String ID of element, or element/component reference\n // Or function that returns one of the above\n type: [String, HTMLElement, SVGElement, Function, Object],\n required: true\n },\n triggers: {\n type: [String, Array],\n default: 'hover focus'\n },\n placement: {\n type: String,\n default: 'top'\n },\n fallbackPlacement: {\n type: [String, Array],\n default: 'flip',\n validator: function validator(value) {\n return isArray(value) && value.every(function (v) {\n return isString(v);\n }) || arrayIncludes(['flip', 'clockwise', 'counterclockwise'], value);\n }\n },\n variant: {\n type: String // default: undefined\n\n },\n customClass: {\n type: String // default: undefined\n\n },\n delay: {\n type: [Number, Object, String],\n default: 50\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n type: [String, HTMLElement, Object],\n default: 'scrollParent'\n },\n boundaryPadding: {\n type: [Number, String],\n default: 5\n },\n offset: {\n type: [Number, String],\n default: 0\n },\n noFade: {\n type: Boolean,\n default: false\n },\n container: {\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n type: [String, HTMLElement, Object] // default: undefined\n\n },\n show: {\n type: Boolean,\n default: false\n },\n noninteractive: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n id: {\n // ID to use for tooltip element\n // If not provided on will automatically be generated\n type: String // default: null\n\n }\n }, NAME_TOOLTIP),\n data: function data() {\n return {\n localShow: this.show,\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n templateData: function templateData() {\n // Data that will be passed to the template and popper\n return {\n // We use massaged versions of the title and content props/slots\n title: this.localTitle,\n content: this.localContent,\n // Pass these props as is\n target: this.target,\n triggers: this.triggers,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n variant: this.variant,\n customClass: this.customClass,\n container: this.container,\n boundary: this.boundary,\n boundaryPadding: this.boundaryPadding,\n delay: this.delay,\n offset: this.offset,\n noFade: this.noFade,\n interactive: !this.noninteractive,\n disabled: this.disabled,\n id: this.id\n };\n },\n templateTitleContent: function templateTitleContent() {\n // Used to watch for changes to the title and content props\n return {\n title: this.title,\n content: this.content\n };\n }\n },\n watch: {\n show: function show(_show, oldVal) {\n if (_show !== oldVal && _show !== this.localShow && this.$_toolpop) {\n if (_show) {\n this.$_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_toolpop.forceHide();\n }\n }\n },\n disabled: function disabled(newVal) {\n if (newVal) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n },\n localShow: function localShow(newVal) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit('update:show', newVal);\n },\n 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 },\n // Watchers for title/content props (prop changes do not trigger the `updated()` hook)\n templateTitleContent: function templateTitleContent() {\n this.$nextTick(this.updateContent);\n }\n },\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('open', this.doOpen);\n this.$off('close', this.doClose);\n this.$off('disable', this.doDisable);\n this.$off('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 = getScopId(_this2) || getScopId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on('show', _this2.onShow);\n $toolpop.$on('shown', _this2.onShown);\n $toolpop.$on('hide', _this2.onHide);\n $toolpop.$on('hidden', _this2.onHidden);\n $toolpop.$on('disabled', _this2.onDisabled);\n $toolpop.$on('enabled', _this2.onEnabled); // Initially disabled?\n\n if (_this2.disabled) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on('open', _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on('close', _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on('disable', _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on('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.$scopedSlots.default || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(val) {\n val = isUndefinedOrNull(val) ? '' : val; // We only update the value if it has changed\n\n if (this.localTitle !== val) {\n this.localTitle = val;\n }\n },\n setContent: function setContent(val) {\n val = isUndefinedOrNull(val) ? '' : val; // We only update the value if it has changed\n\n if (this.localContent !== val) {\n this.localContent = val;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvt) {\n // Placeholder\n this.$emit('show', bvEvt);\n\n if (bvEvt) {\n this.localShow = !bvEvt.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvt) {\n // Tip is now showing\n this.localShow = true;\n this.$emit('shown', bvEvt);\n },\n onHide: function onHide(bvEvt) {\n this.$emit('hide', bvEvt);\n },\n onHidden: function onHidden(bvEvt) {\n // Tip is no longer showing\n this.$emit('hidden', bvEvt);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvt) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvt && bvEvt.type === 'disabled') {\n this.$emit('update:disabled', true);\n this.$emit('disabled', bvEvt);\n }\n },\n onEnabled: function onEnabled(bvEvt) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvt && bvEvt.type === 'enabled') {\n this.$emit('update:disabled', false);\n this.$emit('enabled', bvEvt);\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});","export var NAME_ALERT = 'BAlert';\nexport var NAME_ASPECT = 'BAspect';\nexport var NAME_AVATAR = 'BAvatar';\nexport var NAME_AVATAR_GROUP = 'BAvatarGroup';\nexport var NAME_BADGE = 'BBadge';\nexport var NAME_BREADCRUMB = 'BBreadcrumb';\nexport var NAME_BREADCRUMB_ITEM = 'BBreadcrumbItem';\nexport var NAME_BREADCRUMB_LINK = 'BBreadcrumbLink';\nexport var NAME_BUTTON = 'BButton';\nexport var NAME_BUTTON_CLOSE = 'BButtonClose';\nexport var NAME_BUTTON_GROUP = 'BButtonGroup';\nexport var NAME_BUTTON_TOOLBAR = 'BButtonToolbar';\nexport var NAME_CALENDAR = 'BCalendar';\nexport var NAME_CARD = 'BCard';\nexport var NAME_CARD_BODY = 'BCardBody';\nexport var NAME_CARD_FOOTER = 'BCardFooter';\nexport var NAME_CARD_GROUP = 'BCardGroup';\nexport var NAME_CARD_HEADER = 'BCardHeader';\nexport var NAME_CARD_IMG = 'BCardImg';\nexport var NAME_CARD_IMG_LAZY = 'BCardImgLazy';\nexport var NAME_CARD_SUB_TITLE = 'BCardSubTitle';\nexport var NAME_CARD_TEXT = 'BCardText';\nexport var NAME_CARD_TITLE = 'BCardTitle';\nexport var NAME_CAROUSEL = 'BCarousel';\nexport var NAME_CAROUSEL_SLIDE = 'BCarouselSlide';\nexport var NAME_COL = 'BCol';\nexport var NAME_COLLAPSE = 'BCollapse';\nexport var NAME_COLLAPSE_HELPER = 'BVCollapse';\nexport var NAME_CONTAINER = 'BContainer';\nexport var NAME_DROPDOWN = 'BDropdown';\nexport var NAME_DROPDOWN_DIVIDER = 'BDropdownDivider';\nexport var NAME_DROPDOWN_FORM = 'BDropdownForm';\nexport var NAME_DROPDOWN_GROUP = 'BDropdownGroup';\nexport var NAME_DROPDOWN_HEADER = 'BDropdownHeader';\nexport var NAME_DROPDOWN_ITEM = 'BDropdownItem';\nexport var NAME_DROPDOWN_ITEM_BUTTON = 'BDropdownItemButton';\nexport var NAME_DROPDOWN_TEXT = 'BDropdownText';\nexport var NAME_EMBED = 'BEmbed';\nexport var NAME_FORM = 'BForm';\nexport var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl';\nexport var NAME_FORM_CHECKBOX = 'BFormCheckbox';\nexport var NAME_FORM_CHECKBOX_GROUP = 'BFormCheckboxGroup';\nexport var NAME_FORM_DATALIST = 'BFormDatalist';\nexport var NAME_FORM_DATEPICKER = 'BFormDatepicker';\nexport var NAME_FORM_FILE = 'BFormFile';\nexport var NAME_FORM_GROUP = 'BFormGroup';\nexport var NAME_FORM_INPUT = 'BFormInput';\nexport var NAME_FORM_INVALID_FEEDBACK = 'BFormInvalidFeedback';\nexport var NAME_FORM_RADIO = 'BFormRadio';\nexport var NAME_FORM_RADIO_GROUP = 'BFormRadioGroup';\nexport var NAME_FORM_RATING = 'BFormRating';\nexport var NAME_FORM_RATING_STAR = 'BVFormRatingStar';\nexport var NAME_FORM_ROW = 'BFormRow';\nexport var NAME_FORM_SELECT = 'BFormSelect';\nexport var NAME_FORM_SELECT_OPTION = 'BFormSelectOption';\nexport var NAME_FORM_SELECT_OPTION_GROUP = 'BFormSelectOptionGroup';\nexport var NAME_FORM_SPINBUTTON = 'BFormSpinbutton';\nexport var NAME_FORM_TAG = 'BFormTag';\nexport var NAME_FORM_TAGS = 'BFormTags';\nexport var NAME_FORM_TEXT = 'BFormText';\nexport var NAME_FORM_TEXTAREA = 'BFormTextarea';\nexport var NAME_FORM_TIMEPICKER = 'BFormTimepicker';\nexport var NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback';\nexport var NAME_ICON = 'BIcon';\nexport var NAME_ICONSTACK = 'BIconstack';\nexport var NAME_ICON_BASE = 'BIconBase';\nexport var NAME_IMG = 'BImg';\nexport var NAME_IMG_LAZY = 'BImgLazy';\nexport var NAME_INPUT_GROUP = 'BInputGroup';\nexport var NAME_INPUT_GROUP_ADDON = 'BInputGroupAddon';\nexport var NAME_INPUT_GROUP_APPEND = 'BInputGroupAppend';\nexport var NAME_INPUT_GROUP_PREPEND = 'BInputGroupPrepend';\nexport var NAME_INPUT_GROUP_TEXT = 'BInputGroupText';\nexport var NAME_JUMBOTRON = 'BJumbotron';\nexport var NAME_LINK = 'BLink';\nexport var NAME_LIST_GROUP = 'BListGroup';\nexport var NAME_LIST_GROUP_ITEM = 'BListGroupItem';\nexport var NAME_MEDIA = 'BMedia';\nexport var NAME_MEDIA_ASIDE = 'BMediaAside';\nexport var NAME_MEDIA_BODY = 'BMediaBody';\nexport var NAME_MODAL = 'BModal';\nexport var NAME_MSG_BOX = 'BMsgBox';\nexport var NAME_NAV = 'BNav';\nexport var NAME_NAVBAR = 'BNavbar';\nexport var NAME_NAVBAR_BRAND = 'BNavbarBrand';\nexport var NAME_NAVBAR_NAV = 'BNavbarNav';\nexport var NAME_NAVBAR_TOGGLE = 'BNavbarToggle';\nexport var NAME_NAV_FORM = 'BNavForm';\nexport var NAME_NAV_ITEM = 'BNavItem';\nexport var NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown';\nexport var NAME_NAV_TEXT = 'BNavText';\nexport var NAME_OVERLAY = 'BOverlay';\nexport var NAME_PAGINATION = 'BPagination';\nexport var NAME_PAGINATION_NAV = 'BPaginationNav';\nexport var NAME_POPOVER = 'BPopover';\nexport var NAME_POPOVER_HELPER = 'BVPopover';\nexport var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate';\nexport var NAME_POPPER = 'BVPopper';\nexport var NAME_PROGRESS = 'BProgress';\nexport var NAME_PROGRESS_BAR = 'BProgressBar';\nexport var NAME_ROW = 'BRow';\nexport var NAME_SIDEBAR = 'BSidebar';\nexport var NAME_SKELETON = 'BSkeleton';\nexport var NAME_SKELETON_ICON = 'BSkeletonIcon';\nexport var NAME_SKELETON_IMG = 'BSkeletonImg';\nexport var NAME_SKELETON_TABLE = 'BSkeletonTable';\nexport var NAME_SKELETON_WRAPPER = 'BSkeletonWrapper';\nexport var NAME_SPINNER = 'BSpinner';\nexport var NAME_TAB = 'BTab';\nexport var NAME_TABLE = 'BTable';\nexport var NAME_TABLE_CELL = 'BTableCell';\nexport var NAME_TABLE_LITE = 'BTableLite';\nexport var NAME_TABLE_SIMPLE = 'BTableSimple';\nexport var NAME_TABS = 'BTabs';\nexport var NAME_TAB_BUTTON_HELPER = 'BVTabButton';\nexport var NAME_TBODY = 'BTbody';\nexport var NAME_TFOOT = 'BTfoot';\nexport var NAME_TH = 'BTh';\nexport var NAME_THEAD = 'BThead';\nexport var NAME_TIME = 'BTime';\nexport var NAME_TOAST = 'BToast';\nexport var NAME_TOASTER = 'BToaster';\nexport var NAME_TOAST_POP = 'BVToastPop';\nexport var NAME_TOOLTIP = 'BTooltip';\nexport var NAME_TOOLTIP_HELPER = 'BVTooltip';\nexport var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate';\nexport var NAME_TR = 'BTr';\nexport var NAME_TRANSITION = 'BVTransition';\nexport var NAME_TRANSPORTER_SINGLE = 'BTransporterSingle';\nexport var NAME_TRANSPORTER_TARGET_SINGLE = 'BTransporterTargetSingle';","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport Vue from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { BVTransition } from '../../../utils/bv-transition';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { HTMLElement, SVGElement } from '../../../utils/safe-types';\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}; // @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: {\n target: {\n // Element that the tooltip/popover is positioned relative to\n type: [HTMLElement, SVGElement] // default: null\n\n },\n placement: {\n type: String,\n default: 'top'\n },\n fallbackPlacement: {\n type: [String, Array],\n default: 'flip'\n },\n offset: {\n type: Number,\n default: 0\n },\n boundary: {\n // 'scrollParent', 'viewport', 'window', or Element\n type: [String, HTMLElement],\n default: 'scrollParent'\n },\n boundaryPadding: {\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n type: Number,\n default: 5\n },\n arrowPadding: {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n type: Number,\n default: 6\n }\n },\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('show', function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once('hook:destroyed', handleDestroy); // Self destruct after hidden\n\n this.$once('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 // Note: `show` and 'fade' classes are only appled during transition\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: this.noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit('show', el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit('shown', el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit('hide', el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit('hidden', el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport scopedStyleAttrsMixin from '../../../mixins/scoped-style-attrs';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVPopper } from './bv-popper'; // @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleAttrsMixin],\n props: {\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: {\n type: String // default: null\n\n },\n html: {\n // Used only by the directive versions\n type: Boolean // default: false\n\n }\n },\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 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(this.templateType, \"-\").concat(this.variant), this.variant), _defineProperty(_ref, \"bs-\".concat(this.templateType, \"-\").concat(this.attachment), this.attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: this.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(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('mouseenter', evt);\n },\n mouseleave\n /* istanbul ignore next */\n : function mouseleave(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('mouseleave', evt);\n },\n focusin\n /* istanbul ignore next */\n : function focusin(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('focusin', evt);\n },\n focusout\n /* istanbul ignore next */\n : function focusout(evt) {\n /* istanbul ignore next: difficult to test in JSDOM */\n _this.$emit('focusout', evt);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n // Title can be a scoped slot function\n var $title = isFunction(this.title) ? this.title({}) : isUndefinedOrNull(this.title) ?\n /* istanbul ignore next */\n h() : this.title; // Directive versions only\n\n var domProps = this.html && !isFunction(this.title) ? {\n innerHTML: this.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 ref: 'arrow',\n staticClass: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 Vue from '../../vue';\nimport { NAME_TIME } from '../../constants/components';\nimport { CODE_LEFT, CODE_RIGHT } from '../../constants/key-codes';\nimport { RX_TIME } from '../../constants/regex';\nimport identity from '../../utils/identity';\nimport looseEqual from '../../utils/loose-equal';\nimport { concat } from '../../utils/array';\nimport { makePropsConfigurable } from '../../utils/config';\nimport { createDate, createDateFormatter } from '../../utils/date';\nimport { attemptBlur, attemptFocus, contains, getActiveElement, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { toInteger } from '../../utils/number';\nimport { toString } from '../../utils/string';\nimport { pick } from '../../utils/object';\nimport idMixin from '../../mixins/id';\nimport normalizeSlotMixin from '../../mixins/normalize-slot';\nimport { BFormSpinbutton, props as formSpinbuttonProps } from '../form-spinbutton/form-spinbutton';\nimport { BIconCircleFill, BIconChevronUp } from '../../icons/icons'; // --- Constants ---\n\nvar NUMERIC = 'numeric'; // --- Helper methods ---\n\nvar padLeftZeros = function padLeftZeros(num) {\n return \"00\".concat(num || '').slice(-2);\n};\n\nvar parseHMS = function parseHMS(hms) {\n hms = toString(hms);\n var hh = null,\n mm = null,\n ss = null;\n\n if (RX_TIME.test(hms)) {\n ;\n\n var _hms$split$map = hms.split(':').map(function (v) {\n return toInteger(v, null);\n });\n\n var _hms$split$map2 = _slicedToArray(_hms$split$map, 3);\n\n hh = _hms$split$map2[0];\n mm = _hms$split$map2[1];\n ss = _hms$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(_objectSpread(_objectSpread({\n value: {\n type: String,\n default: ''\n },\n showSeconds: {\n // If true, show the second spinbutton\n type: Boolean,\n default: false\n },\n hour12: {\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 type: Boolean,\n default: null\n },\n locale: {\n type: [String, Array] // default: null\n\n },\n ariaLabelledby: {\n // ID of label element\n type: String // default: null\n\n },\n secondsStep: {\n type: [Number, String],\n default: 1\n },\n minutesStep: {\n type: [Number, String],\n default: 1\n },\n disabled: {\n type: Boolean,\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n hideHeader: {\n type: Boolean,\n default: false\n },\n labelNoTimeSelected: {\n type: String,\n default: 'No time selected'\n },\n labelSelected: {\n type: String,\n default: 'Selected time'\n },\n labelHours: {\n type: String,\n default: 'Hours'\n },\n labelMinutes: {\n type: String,\n default: 'Minutes'\n },\n labelSeconds: {\n type: String,\n default: 'Seconds'\n },\n labelAmpm: {\n type: String,\n default: 'AM/PM'\n },\n labelAm: {\n type: String,\n default: 'AM'\n },\n labelPm: {\n type: String,\n default: 'PM'\n }\n}, pick(formSpinbuttonProps, ['labelIncrement', 'labelDecrement'])), {}, {\n hidden: {\n type: Boolean,\n default: false\n }\n}), NAME_TIME); // --- Main component ---\n// @vue/component\n\nexport var BTime = /*#__PURE__*/Vue.extend({\n name: NAME_TIME,\n mixins: [idMixin, normalizeSlotMixin],\n model: {\n prop: 'value',\n event: 'input'\n },\n props: props,\n data: function data() {\n var parsed = parseHMS(this.value || '');\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: {\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal && !looseEqual(parseHMS(newVal), parseHMS(this.computedHMS))) {\n var _parseHMS = parseHMS(newVal),\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 },\n computedHMS: function computedHMS(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('input', newVal);\n }\n },\n context: function context(newVal, oldVal) {\n if (!looseEqual(newVal, oldVal)) {\n this.$emit('context', newVal);\n }\n },\n modelAmpm: function modelAmpm(newVal, oldVal) {\n var _this = this;\n\n if (newVal !== oldVal) {\n var hours = isNull(this.modelHours) ? 0 : this.modelHours;\n this.$nextTick(function () {\n if (newVal === 0 && hours > 11) {\n // Switched to AM\n _this.modelHours = hours - 12;\n } else if (newVal === 1 && hours < 12) {\n // Switched to PM\n _this.modelHours = hours + 12;\n }\n });\n }\n },\n modelHours: function modelHours(newHours, oldHours) {\n if (newHours !== oldHours) {\n this.modelAmpm = newHours > 11 ? 1 : 0;\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.$emit('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 evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var type = evt.type,\n keyCode = evt.keyCode;\n\n if (!this.disabled && type === 'keydown' && (keyCode === CODE_LEFT || keyCode === CODE_RIGHT)) {\n stopEvent(evt);\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 /* istanbul ignore if */\n if (this.hidden) {\n // If hidden, we just render a placeholder comment\n return h();\n }\n\n var valueId = this.valueId;\n var computedAriaLabelledby = this.computedAriaLabelledby;\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, {\n key: key,\n ref: 'spinners',\n refInFor: true,\n class: classes,\n props: _objectSpread({\n id: id,\n placeholder: '--',\n vertical: true,\n required: true,\n disabled: _this4.disabled,\n readonly: _this4.readonly,\n locale: _this4.computedLocale,\n labelIncrement: _this4.labelIncrement,\n labelDecrement: _this4.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 });\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': _this4.disabled || _this4.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\n\n if (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: this.disabled || this.readonly ? null : '-1',\n 'aria-labelledby': computedAriaLabelledby\n },\n on: {\n keydown: this.onSpinLeftRight,\n click\n /* istanbul ignore next */\n : function click(evt)\n /* istanbul ignore next */\n {\n if (evt.target === evt.currentTarget) {\n _this4.focus();\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: this.disabled || this.readonly\n },\n attrs: {\n id: valueId,\n role: 'status',\n for: spinIds.filter(identity).join(' ') || null,\n tabindex: this.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: this.focus,\n focus: this.focus\n }\n }, [h('bdi', this.formattedTimeString), this.computedHMS ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(this.labelSelected, \") \")) : '']);\n var $header = h('header', {\n staticClass: 'b-time-header',\n class: {\n 'sr-only': this.hideHeader\n }\n }, [$value]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-time-footer'\n }, $slot) : 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': computedAriaLabelledby || null,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-readonly': this.readonly && !this.disabled ? 'true' : null\n }\n }, [$header, $spinners, $slot]);\n }\n});"],"sourceRoot":""}