{"version":3,"file":"778.a4bc830ac4af25c9.js","mappings":"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","sources":["webpack://app/./node_modules/vue-functional-data-merge/dist/lib.esm.js","webpack://app/./node_modules/bootstrap-vue/esm/vue.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/components.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/env.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/events.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/key-codes.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/props.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/safe-types.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/slots.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/array.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/inspect.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/regex.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/string.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/dom.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/events.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/html.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/identity.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/object.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/clone-deep.js","webpack://app/./node_modules/bootstrap-vue/esm/constants/config.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/memoize.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/config.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/props.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/model.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/env.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/warn.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/cache.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/attrs.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/id.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/listen-on-document.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/get-event-root.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/listen-on-window.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/use-parent.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/scoped-style.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/safe-vue-instance.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/router.js","webpack://app/./node_modules/bootstrap-vue/esm/mixins/listeners.js","webpack://app/./node_modules/bootstrap-vue/esm/components/link/link.js","webpack://app/./node_modules/bootstrap-vue/esm/components/button/button.js","webpack://app/./node_modules/bootstrap-vue/esm/components/button/button-close.js","webpack://app/./node_modules/bootstrap-vue/esm/components/transition/bv-transition.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/create-new-child-component.js","webpack://app/./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack://app/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/number.js","webpack://app/./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack://app/./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/get-instance-from-directive.js","webpack://app/./node_modules/bootstrap-vue/esm/directives/modal/modal.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/get.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/config-set.js","webpack://app/./node_modules/bootstrap-vue/esm/utils/plugins.js","webpack://app/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js","webpack://app/./node_modules/bootstrap-vue/esm/components/modal/index.js"],"sourcesContent":["var e=function(){return(e=Object.assign||function(e){for(var t,r=1,s=arguments.length;r= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport Vue from 'vue';\nimport { mergeData } from 'vue-functional-data-merge'; // --- Constants ---\n\nvar COMPONENT_UID_KEY = '_uid';\nvar isVue3 = Vue.version.startsWith('3');\nexport var REF_FOR_KEY = isVue3 ? 'ref_for' : 'refInFor';\nvar ALLOWED_FIELDS_IN_DATA = ['class', 'staticClass', 'style', 'attrs', 'props', 'domProps', 'on', 'nativeOn', 'directives', 'scopedSlots', 'slot', 'key', 'ref', 'refInFor'];\nvar extend = Vue.extend.bind(Vue);\n\nif (isVue3) {\n var originalExtend = Vue.extend;\n var KNOWN_COMPONENTS = ['router-link', 'transition', 'transition-group'];\n var originalVModelDynamicCreated = Vue.vModelDynamic.created;\n var originalVModelDynamicBeforeUpdate = Vue.vModelDynamic.beforeUpdate; // See https://github.com/vuejs/vue-next/pull/4121 for details\n\n Vue.vModelDynamic.created = function (el, binding, vnode) {\n originalVModelDynamicCreated.call(this, el, binding, vnode);\n\n if (!el._assign) {\n el._assign = function () {};\n }\n };\n\n Vue.vModelDynamic.beforeUpdate = function (el, binding, vnode) {\n originalVModelDynamicBeforeUpdate.call(this, el, binding, vnode);\n\n if (!el._assign) {\n el._assign = function () {};\n }\n };\n\n extend = function patchedBootstrapVueExtend(definition) {\n if (_typeof(definition) === 'object' && definition.render && !definition.__alreadyPatched) {\n var originalRender = definition.render;\n definition.__alreadyPatched = true;\n\n definition.render = function (h) {\n var patchedH = function patchedH(tag, dataObjOrChildren, rawSlots) {\n var slots = rawSlots === undefined ? [] : [Array.isArray(rawSlots) ? rawSlots.filter(Boolean) : rawSlots];\n var isTag = typeof tag === 'string' && !KNOWN_COMPONENTS.includes(tag);\n var isSecondArgumentDataObject = dataObjOrChildren && _typeof(dataObjOrChildren) === 'object' && !Array.isArray(dataObjOrChildren);\n\n if (!isSecondArgumentDataObject) {\n return h.apply(void 0, [tag, dataObjOrChildren].concat(slots));\n }\n\n var attrs = dataObjOrChildren.attrs,\n props = dataObjOrChildren.props,\n restData = _objectWithoutProperties(dataObjOrChildren, [\"attrs\", \"props\"]);\n\n var normalizedData = _objectSpread(_objectSpread({}, restData), {}, {\n attrs: attrs,\n props: isTag ? {} : props\n });\n\n if (tag === 'router-link' && !normalizedData.slots && !normalizedData.scopedSlots) {\n // terrible workaround to fix router-link rendering with compat vue-router\n normalizedData.scopedSlots = {\n $hasNormal: function $hasNormal() {}\n };\n }\n\n return h.apply(void 0, [tag, normalizedData].concat(slots));\n };\n\n if (definition.functional) {\n var _ctx$children, _ctx$children$default;\n\n var ctx = arguments[1];\n\n var patchedCtx = _objectSpread({}, ctx);\n\n patchedCtx.data = {\n attrs: _objectSpread({}, ctx.data.attrs || {}),\n props: _objectSpread({}, ctx.data.props || {})\n };\n Object.keys(ctx.data || {}).forEach(function (key) {\n if (ALLOWED_FIELDS_IN_DATA.includes(key)) {\n patchedCtx.data[key] = ctx.data[key];\n } else if (key in ctx.props) {\n patchedCtx.data.props[key] = ctx.data[key];\n } else if (!key.startsWith('on')) {\n patchedCtx.data.attrs[key] = ctx.data[key];\n }\n });\n var IGNORED_CHILDREN_KEYS = ['_ctx'];\n var children = ((_ctx$children = ctx.children) === null || _ctx$children === void 0 ? void 0 : (_ctx$children$default = _ctx$children.default) === null || _ctx$children$default === void 0 ? void 0 : _ctx$children$default.call(_ctx$children)) || ctx.children;\n\n if (children && Object.keys(patchedCtx.children).filter(function (k) {\n return !IGNORED_CHILDREN_KEYS.includes(k);\n }).length === 0) {\n delete patchedCtx.children;\n } else {\n patchedCtx.children = children;\n }\n\n patchedCtx.data.on = ctx.listeners;\n return originalRender.call(this, patchedH, patchedCtx);\n }\n\n return originalRender.call(this, patchedH);\n };\n }\n\n return originalExtend.call(this, definition);\n }.bind(Vue);\n}\n\nvar nextTick = Vue.nextTick;\nexport { COMPONENT_UID_KEY, Vue, mergeData, isVue3, nextTick, extend };","// Component names\nexport 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_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_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_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_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_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_TOOLTIP = 'BTooltip';\nexport var NAME_TR = 'BTr'; // Helper component names\n\nexport var NAME_COLLAPSE_HELPER = 'BVCollapse';\nexport var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl';\nexport var NAME_FORM_RATING_STAR = 'BVFormRatingStar';\nexport var NAME_POPOVER_HELPER = 'BVPopover';\nexport var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate';\nexport var NAME_POPPER = 'BVPopper';\nexport var NAME_TAB_BUTTON_HELPER = 'BVTabButton';\nexport var NAME_TOAST_POP = 'BVToastPop';\nexport var NAME_TOOLTIP_HELPER = 'BVTooltip';\nexport var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate';\nexport var NAME_TRANSITION = 'BVTransition';\nexport var NAME_TRANSPORTER = 'BVTransporter';\nexport var NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';","export var HAS_WINDOW_SUPPORT = typeof window !== 'undefined';\nexport var HAS_DOCUMENT_SUPPORT = typeof document !== 'undefined';\nexport var HAS_NAVIGATOR_SUPPORT = typeof navigator !== 'undefined';\nexport var HAS_PROMISE_SUPPORT = typeof Promise !== 'undefined';\n/* istanbul ignore next: JSDOM always returns false */\n\nexport var HAS_MUTATION_OBSERVER_SUPPORT = typeof MutationObserver !== 'undefined' || typeof WebKitMutationObserver !== 'undefined' || typeof MozMutationObserver !== 'undefined';\nexport var IS_BROWSER = HAS_WINDOW_SUPPORT && HAS_DOCUMENT_SUPPORT && HAS_NAVIGATOR_SUPPORT;\nexport var WINDOW = HAS_WINDOW_SUPPORT ? window : {};\nexport var DOCUMENT = HAS_DOCUMENT_SUPPORT ? document : {};\nexport var NAVIGATOR = HAS_NAVIGATOR_SUPPORT ? navigator : {};\nexport var USER_AGENT = (NAVIGATOR.userAgent || '').toLowerCase();\nexport var IS_JSDOM = USER_AGENT.indexOf('jsdom') > 0;\nexport var IS_IE = /msie|trident/.test(USER_AGENT); // Determine if the browser supports the option passive for events\n\nexport var HAS_PASSIVE_EVENT_SUPPORT = function () {\n var passiveEventSupported = false;\n\n if (IS_BROWSER) {\n try {\n var options = {\n // This function will be called when the browser\n // attempts to access the passive property\n get passive() {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = true;\n }\n\n };\n WINDOW.addEventListener('test', options, options);\n WINDOW.removeEventListener('test', options, options);\n } catch (_unused) {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = false;\n }\n }\n\n return passiveEventSupported;\n}();\nexport var HAS_TOUCH_SUPPORT = IS_BROWSER && ('ontouchstart' in DOCUMENT.documentElement || NAVIGATOR.maxTouchPoints > 0);\nexport var HAS_POINTER_EVENT_SUPPORT = IS_BROWSER && Boolean(WINDOW.PointerEvent || WINDOW.MSPointerEvent);\n/* istanbul ignore next: JSDOM only checks for 'IntersectionObserver' */\n\nexport var HAS_INTERACTION_OBSERVER_SUPPORT = IS_BROWSER && 'IntersectionObserver' in WINDOW && 'IntersectionObserverEntry' in WINDOW && // Edge 15 and UC Browser lack support for `isIntersecting`\n// but we an use `intersectionRatio > 0` instead\n// 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n'intersectionRatio' in WINDOW.IntersectionObserverEntry.prototype;","import { isVue3 } from '../vue';\nexport var EVENT_NAME_ACTIVATE_TAB = 'activate-tab';\nexport var EVENT_NAME_BLUR = 'blur';\nexport var EVENT_NAME_CANCEL = 'cancel';\nexport var EVENT_NAME_CHANGE = 'change';\nexport var EVENT_NAME_CHANGED = 'changed';\nexport var EVENT_NAME_CLICK = 'click';\nexport var EVENT_NAME_CLOSE = 'close';\nexport var EVENT_NAME_CONTEXT = 'context';\nexport var EVENT_NAME_CONTEXT_CHANGED = 'context-changed';\nexport var EVENT_NAME_DESTROYED = 'destroyed';\nexport var EVENT_NAME_DISABLE = 'disable';\nexport var EVENT_NAME_DISABLED = 'disabled';\nexport var EVENT_NAME_DISMISSED = 'dismissed';\nexport var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down';\nexport var EVENT_NAME_ENABLE = 'enable';\nexport var EVENT_NAME_ENABLED = 'enabled';\nexport var EVENT_NAME_FILTERED = 'filtered';\nexport var EVENT_NAME_FIRST = 'first';\nexport var EVENT_NAME_FOCUS = 'focus';\nexport var EVENT_NAME_FOCUSIN = 'focusin';\nexport var EVENT_NAME_FOCUSOUT = 'focusout';\nexport var EVENT_NAME_HEAD_CLICKED = 'head-clicked';\nexport var EVENT_NAME_HIDDEN = 'hidden';\nexport var EVENT_NAME_HIDE = 'hide';\nexport var EVENT_NAME_IMG_ERROR = 'img-error';\nexport var EVENT_NAME_INPUT = 'input';\nexport var EVENT_NAME_LAST = 'last';\nexport var EVENT_NAME_MOUSEENTER = 'mouseenter';\nexport var EVENT_NAME_MOUSELEAVE = 'mouseleave';\nexport var EVENT_NAME_NEXT = 'next';\nexport var EVENT_NAME_OK = 'ok';\nexport var EVENT_NAME_OPEN = 'open';\nexport var EVENT_NAME_PAGE_CLICK = 'page-click';\nexport var EVENT_NAME_PAUSED = 'paused';\nexport var EVENT_NAME_PREV = 'prev';\nexport var EVENT_NAME_REFRESH = 'refresh';\nexport var EVENT_NAME_REFRESHED = 'refreshed';\nexport var EVENT_NAME_REMOVE = 'remove';\nexport var EVENT_NAME_ROW_CLICKED = 'row-clicked';\nexport var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu';\nexport var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked';\nexport var EVENT_NAME_ROW_HOVERED = 'row-hovered';\nexport var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked';\nexport var EVENT_NAME_ROW_SELECTED = 'row-selected';\nexport var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered';\nexport var EVENT_NAME_SELECTED = 'selected';\nexport var EVENT_NAME_SHOW = 'show';\nexport var EVENT_NAME_SHOWN = 'shown';\nexport var EVENT_NAME_SLIDING_END = 'sliding-end';\nexport var EVENT_NAME_SLIDING_START = 'sliding-start';\nexport var EVENT_NAME_SORT_CHANGED = 'sort-changed';\nexport var EVENT_NAME_TAG_STATE = 'tag-state';\nexport var EVENT_NAME_TOGGLE = 'toggle';\nexport var EVENT_NAME_UNPAUSED = 'unpaused';\nexport var EVENT_NAME_UPDATE = 'update';\nexport var HOOK_EVENT_NAME_BEFORE_DESTROY = isVue3 ? 'vnodeBeforeUnmount' : 'hook:beforeDestroy';\nexport var HOOK_EVENT_NAME_DESTROYED = isVue3 ? 'vNodeUnmounted' : 'hook:destroyed';\nexport var MODEL_EVENT_NAME_PREFIX = 'update:';\nexport var ROOT_EVENT_NAME_PREFIX = 'bv';\nexport var ROOT_EVENT_NAME_SEPARATOR = '::';\nexport var EVENT_OPTIONS_PASSIVE = {\n passive: true\n};\nexport var EVENT_OPTIONS_NO_CAPTURE = {\n passive: true,\n capture: false\n};","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;","// General types\nexport var PROP_TYPE_ANY = undefined;\nexport var PROP_TYPE_ARRAY = Array;\nexport var PROP_TYPE_BOOLEAN = Boolean;\nexport var PROP_TYPE_DATE = Date;\nexport var PROP_TYPE_FUNCTION = Function;\nexport var PROP_TYPE_NUMBER = Number;\nexport var PROP_TYPE_OBJECT = Object;\nexport var PROP_TYPE_REG_EXP = RegExp;\nexport var PROP_TYPE_STRING = String; // Multiple types\n\nexport var PROP_TYPE_ARRAY_FUNCTION = [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_ARRAY_OBJECT = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT];\nexport var PROP_TYPE_ARRAY_OBJECT_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_ARRAY_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_NUMBER = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER];\nexport var PROP_TYPE_BOOLEAN_NUMBER_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING];\nexport var PROP_TYPE_DATE_STRING = [PROP_TYPE_DATE, PROP_TYPE_STRING];\nexport var PROP_TYPE_FUNCTION_STRING = [PROP_TYPE_FUNCTION, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_OBJECT_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_OBJECT_FUNCTION = [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_OBJECT_STRING = [PROP_TYPE_OBJECT, PROP_TYPE_STRING];","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } Object.defineProperty(subClass, \"prototype\", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { HAS_WINDOW_SUPPORT, WINDOW } from './env';\n/* istanbul ignore next */\n\nexport var Element = HAS_WINDOW_SUPPORT ? WINDOW.Element : /*#__PURE__*/function (_Object) {\n _inherits(Element, _Object);\n\n var _super = _createSuper(Element);\n\n function Element() {\n _classCallCheck(this, Element);\n\n return _super.apply(this, arguments);\n }\n\n return Element;\n}( /*#__PURE__*/_wrapNativeSuper(Object));\n/* istanbul ignore next */\n\nexport var HTMLElement = HAS_WINDOW_SUPPORT ? WINDOW.HTMLElement : /*#__PURE__*/function (_Element) {\n _inherits(HTMLElement, _Element);\n\n var _super2 = _createSuper(HTMLElement);\n\n function HTMLElement() {\n _classCallCheck(this, HTMLElement);\n\n return _super2.apply(this, arguments);\n }\n\n return HTMLElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var SVGElement = HAS_WINDOW_SUPPORT ? WINDOW.SVGElement : /*#__PURE__*/function (_Element2) {\n _inherits(SVGElement, _Element2);\n\n var _super3 = _createSuper(SVGElement);\n\n function SVGElement() {\n _classCallCheck(this, SVGElement);\n\n return _super3.apply(this, arguments);\n }\n\n return SVGElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var File = HAS_WINDOW_SUPPORT ? WINDOW.File : /*#__PURE__*/function (_Object2) {\n _inherits(File, _Object2);\n\n var _super4 = _createSuper(File);\n\n function File() {\n _classCallCheck(this, File);\n\n return _super4.apply(this, arguments);\n }\n\n return File;\n}( /*#__PURE__*/_wrapNativeSuper(Object));","export var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text';\nexport var SLOT_NAME_APPEND = 'append';\nexport var SLOT_NAME_ASIDE = 'aside';\nexport var SLOT_NAME_BADGE = 'badge';\nexport var SLOT_NAME_BOTTOM_ROW = 'bottom-row';\nexport var SLOT_NAME_BUTTON_CONTENT = 'button-content';\nexport var SLOT_NAME_CUSTOM_FOOT = 'custom-foot';\nexport var SLOT_NAME_DECREMENT = 'decrement';\nexport var SLOT_NAME_DEFAULT = 'default';\nexport var SLOT_NAME_DESCRIPTION = 'description';\nexport var SLOT_NAME_DISMISS = 'dismiss';\nexport var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder';\nexport var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text';\nexport var SLOT_NAME_EMPTY = 'empty';\nexport var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered';\nexport var SLOT_NAME_FILE_NAME = 'file-name';\nexport var SLOT_NAME_FIRST = 'first';\nexport var SLOT_NAME_FIRST_TEXT = 'first-text';\nexport var SLOT_NAME_FOOTER = 'footer';\nexport var SLOT_NAME_HEADER = 'header';\nexport var SLOT_NAME_HEADER_CLOSE = 'header-close';\nexport var SLOT_NAME_ICON_CLEAR = 'icon-clear';\nexport var SLOT_NAME_ICON_EMPTY = 'icon-empty';\nexport var SLOT_NAME_ICON_FULL = 'icon-full';\nexport var SLOT_NAME_ICON_HALF = 'icon-half';\nexport var SLOT_NAME_IMG = 'img';\nexport var SLOT_NAME_INCREMENT = 'increment';\nexport var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback';\nexport var SLOT_NAME_LABEL = 'label';\nexport var SLOT_NAME_LAST_TEXT = 'last-text';\nexport var SLOT_NAME_LEAD = 'lead';\nexport var SLOT_NAME_LOADING = 'loading';\nexport var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop';\nexport var SLOT_NAME_MODAL_CANCEL = 'modal-cancel';\nexport var SLOT_NAME_MODAL_FOOTER = 'modal-footer';\nexport var SLOT_NAME_MODAL_HEADER = 'modal-header';\nexport var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close';\nexport var SLOT_NAME_MODAL_OK = 'modal-ok';\nexport var SLOT_NAME_MODAL_TITLE = 'modal-title';\nexport var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade';\nexport var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month';\nexport var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year';\nexport var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade';\nexport var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month';\nexport var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year';\nexport var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month';\nexport var SLOT_NAME_NEXT_TEXT = 'next-text';\nexport var SLOT_NAME_OVERLAY = 'overlay';\nexport var SLOT_NAME_PAGE = 'page';\nexport var SLOT_NAME_PLACEHOLDER = 'placeholder';\nexport var SLOT_NAME_PREPEND = 'prepend';\nexport var SLOT_NAME_PREV_TEXT = 'prev-text';\nexport var SLOT_NAME_ROW_DETAILS = 'row-details';\nexport var SLOT_NAME_TABLE_BUSY = 'table-busy';\nexport var SLOT_NAME_TABLE_CAPTION = 'table-caption';\nexport var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup';\nexport var SLOT_NAME_TABS_END = 'tabs-end';\nexport var SLOT_NAME_TABS_START = 'tabs-start';\nexport var SLOT_NAME_TEXT = 'text';\nexport var SLOT_NAME_THEAD_TOP = 'thead-top';\nexport var SLOT_NAME_TITLE = 'title';\nexport var SLOT_NAME_TOAST_TITLE = 'toast-title';\nexport var SLOT_NAME_TOP_ROW = 'top-row';\nexport var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback';","import { isFunction } from './inspect'; // --- Static ---\n\nexport var from = function from() {\n return Array.from.apply(Array, arguments);\n}; // --- Instance ---\n\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var concat = function concat() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply([], args);\n}; // --- Utilities ---\n\nexport var createArray = function createArray(length, fillFn) {\n var mapFn = isFunction(fillFn) ? fillFn : function () {\n return fillFn;\n };\n return Array.apply(null, {\n length: length\n }).map(mapFn);\n};\nexport var flatten = function flatten(array) {\n return array.reduce(function (result, item) {\n return concat(result, item);\n }, []);\n};\nexport var flattenDeep = function flattenDeep(array) {\n return array.reduce(function (result, item) {\n return concat(result, Array.isArray(item) ? flattenDeep(item) : item);\n }, []);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { RX_NUMBER } from '../constants/regex';\nimport { File } from '../constants/safe-types'; // --- Convenience inspection utilities ---\n\nexport var toType = function toType(value) {\n return _typeof(value);\n};\nexport var toRawType = function toRawType(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n};\nexport var toRawTypeLC = function toRawTypeLC(value) {\n return toRawType(value).toLowerCase();\n};\nexport var isUndefined = function isUndefined(value) {\n return value === undefined;\n};\nexport var isNull = function isNull(value) {\n return value === null;\n};\nexport var isEmptyString = function isEmptyString(value) {\n return value === '';\n};\nexport var isUndefinedOrNull = function isUndefinedOrNull(value) {\n return isUndefined(value) || isNull(value);\n};\nexport var isUndefinedOrNullOrEmpty = function isUndefinedOrNullOrEmpty(value) {\n return isUndefinedOrNull(value) || isEmptyString(value);\n};\nexport var isFunction = function isFunction(value) {\n return toType(value) === 'function';\n};\nexport var isBoolean = function isBoolean(value) {\n return toType(value) === 'boolean';\n};\nexport var isString = function isString(value) {\n return toType(value) === 'string';\n};\nexport var isNumber = function isNumber(value) {\n return toType(value) === 'number';\n};\nexport var isNumeric = function isNumeric(value) {\n return RX_NUMBER.test(String(value));\n};\nexport var isPrimitive = function isPrimitive(value) {\n return isBoolean(value) || isString(value) || isNumber(value);\n};\nexport var isArray = function isArray(value) {\n return Array.isArray(value);\n}; // Quick object check\n// This is primarily used to tell Objects from primitive values\n// when we know the value is a JSON-compliant type\n// Note object could be a complex type like array, Date, etc.\n\nexport var isObject = function isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}; // Strict object type check\n// Only returns true for plain JavaScript objects\n\nexport var isPlainObject = function isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\nexport var isDate = function isDate(value) {\n return value instanceof Date;\n};\nexport var isEvent = function isEvent(value) {\n return value instanceof Event;\n};\nexport var isFile = function isFile(value) {\n return value instanceof File;\n};\nexport var isRegExp = function isRegExp(value) {\n return toRawType(value) === 'RegExp';\n};\nexport var isPromise = function isPromise(value) {\n return !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch);\n};","// --- General ---\nexport var RX_ARRAY_NOTATION = /\\[(\\d+)]/g;\nexport var RX_BV_PREFIX = /^(BV?)/;\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-.+/;","// String utilities\nimport { RX_HYPHENATE, RX_LOWER_UPPER, RX_REGEXP_REPLACE, RX_START_SPACE_WORD, RX_TRIM_LEFT, RX_TRIM_RIGHT, RX_UNDERSCORE, RX_UN_KEBAB } from '../constants/regex';\nimport { isArray, isPlainObject, isString, isUndefinedOrNull } from './inspect'; // --- Utilities ---\n// Converts PascalCase or camelCase to kebab-case\n\nexport var kebabCase = function kebabCase(str) {\n return str.replace(RX_HYPHENATE, '-$1').toLowerCase();\n}; // Converts a kebab-case or camelCase string to PascalCase\n\nexport var pascalCase = function pascalCase(str) {\n str = kebabCase(str).replace(RX_UN_KEBAB, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Converts a string, including strings in camelCase or snake_case, into Start Case\n// It keeps original single quote and hyphen in the word\n// https://github.com/UrbanCompass/to-start-case\n\nexport var startCase = function startCase(str) {\n return str.replace(RX_UNDERSCORE, ' ').replace(RX_LOWER_UPPER, function (str, $1, $2) {\n return $1 + ' ' + $2;\n }).replace(RX_START_SPACE_WORD, function (str, $1, $2) {\n return $1 + $2.toUpperCase();\n });\n}; // Lowercases the first letter of a string and returns a new string\n\nexport var lowerFirst = function lowerFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toLowerCase() + str.slice(1);\n}; // Uppercases the first letter of a string and returns a new string\n\nexport var upperFirst = function upperFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Escape characters to be used in building a regular expression\n\nexport var escapeRegExp = function escapeRegExp(str) {\n return str.replace(RX_REGEXP_REPLACE, '\\\\$&');\n}; // Convert a value to a string that can be rendered\n// `undefined`/`null` will be converted to `''`\n// Plain objects and arrays will be JSON stringified\n\nexport var toString = function toString(val) {\n var spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);\n}; // Remove leading white space from a string\n\nexport var trimLeft = function trimLeft(str) {\n return toString(str).replace(RX_TRIM_LEFT, '');\n}; // Remove Trailing white space from a string\n\nexport var trimRight = function trimRight(str) {\n return toString(str).replace(RX_TRIM_RIGHT, '');\n}; // Remove leading and trailing white space from a string\n\nexport var trim = function trim(str) {\n return toString(str).trim();\n}; // Lower case a string\n\nexport var lowerCase = function lowerCase(str) {\n return toString(str).toLowerCase();\n}; // Upper case a string\n\nexport var upperCase = function upperCase(str) {\n return toString(str).toUpperCase();\n};","import { DOCUMENT, WINDOW } from '../constants/env';\nimport { Element } from '../constants/safe-types';\nimport { from as arrayFrom } from './array';\nimport { isFunction, isNull } from './inspect';\nimport { toFloat } from './number';\nimport { toString } from './string'; // --- Constants ---\n\nvar ELEMENT_PROTO = Element.prototype;\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = ELEMENT_PROTO.closest || function (sel) {\n var el = this;\n\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n return null;\n}; // `requestAnimationFrame()` convenience method\n\n/* istanbul ignore next: JSDOM always returns the first option */\n\nexport var requestAF = (WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n return setTimeout(cb, 16);\n}).bind(WINDOW);\nexport var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\n// Remove a node from DOM\n\nexport var removeNode = function removeNode(el) {\n return el && el.parentNode && el.parentNode.removeChild(el);\n}; // Determine if an element is an HTML element\n\nexport var isElement = function isElement(el) {\n return !!(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Get the currently active HTML element\n\nexport var getActiveElement = function getActiveElement() {\n var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var activeElement = DOCUMENT.activeElement;\n return activeElement && !excludes.some(function (el) {\n return el === activeElement;\n }) ? activeElement : null;\n}; // Returns `true` if a tag's name equals `name`\n\nexport var isTag = function isTag(tag, name) {\n return toString(tag).toLowerCase() === toString(name).toLowerCase();\n}; // Determine if an HTML element is the currently active element\n\nexport var isActiveElement = function isActiveElement(el) {\n return isElement(el) && el === getActiveElement();\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\n // Note this can fail for shadow dom elements since they\n // are not a direct descendant of document.body\n return false;\n }\n\n if (getStyle(el, 'display') === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n\n /* istanbul ignore next */\n return false;\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n\n\n var bcr = getBCR(el);\n return !!(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow its content (adjusting its height/width)\n\nexport var reflow = function reflow(el) {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n return arrayFrom((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n return isElement(el) ? matchesEl.call(el, selector) : false;\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!isElement(root)) {\n return null;\n }\n\n var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\n // else emulate jQuery closest and return `null` if match is\n // the passed in root element when `includeRoot` is falsey\n\n return includeRoot ? el : el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n return parent && isFunction(parent.contains) ? parent.contains(child) : false;\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className);\n }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className);\n }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className);\n }\n\n return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Set an style property on an element\n\nexport var setStyle = function setStyle(el, prop, value) {\n if (prop && isElement(el)) {\n el.style[prop] = value;\n }\n}; // Remove an style property from an element\n\nexport var removeStyle = function removeStyle(el, prop) {\n if (prop && isElement(el)) {\n el.style[prop] = '';\n }\n}; // Get an style property value from an element\n// Returns `null` if not found\n\nexport var getStyle = function getStyle(el, prop) {\n return prop && isElement(el) ? el.style[prop] || null : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n var getComputedStyle = WINDOW.getComputedStyle;\n return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n var getSelection = WINDOW.getSelection;\n return getSelection ? WINDOW.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset;\n }\n\n var bcr = getBCR(el);\n\n if (bcr) {\n var win = el.ownerDocument.defaultView;\n _offset.top = bcr.top + win.pageYOffset;\n _offset.left = bcr.left + win.pageXOffset;\n }\n\n return _offset;\n}; // Return an element's offset with respect to to its offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el)) {\n return _offset;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var elStyles = getCS(el);\n\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset;\n } else {\n _offset = offset(el);\n var doc = el.ownerDocument;\n var offsetParent = el.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n var offsetParentStyles = getCS(offsetParent);\n parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\n parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\n }\n }\n\n return {\n top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\n left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\n };\n}; // Find all tabable elements in the given element\n// Assumes users have not used `tabindex` > `0` on elements\n\nexport var getTabables = function getTabables() {\n var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\n return el.tabIndex > -1 && !el.disabled;\n });\n}; // Attempt to focus an element, and return `true` if successful\n\nexport var attemptFocus = function attemptFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n try {\n el.focus(options);\n } catch (_unused) {}\n\n return isActiveElement(el);\n}; // Attempt to blur an element, and return `true` if successful\n\nexport var attemptBlur = function attemptBlur(el) {\n try {\n el.blur();\n } catch (_unused2) {}\n\n return !isActiveElement(el);\n};","import { HAS_PASSIVE_EVENT_SUPPORT } from '../constants/env';\nimport { ROOT_EVENT_NAME_PREFIX, ROOT_EVENT_NAME_SEPARATOR } from '../constants/events';\nimport { RX_BV_PREFIX } from '../constants/regex';\nimport { isObject } from './inspect';\nimport { kebabCase } from './string'; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (HAS_PASSIVE_EVENT_SUPPORT) {\n return isObject(options) ? options : {\n capture: !!options || false\n };\n } else {\n // Need to translate to actual Boolean value\n return !!(isObject(options) ? options.capture : options);\n }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, eventName, handler, options) {\n if (el && el.addEventListener) {\n el.addEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, eventName, handler, options) {\n if (el && el.removeEventListener) {\n el.removeEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Utility method to add/remove a event listener based on first argument (boolean)\n// It passes all other arguments to the `eventOn()` or `eventOff` method\n\nexport var eventOnOff = function eventOnOff(on) {\n var method = on ? eventOn : eventOff;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n method.apply(void 0, args);\n}; // Utility method to prevent the default event handling and propagation\n\nexport var stopEvent = function stopEvent(event) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\n _ref$propagation = _ref.propagation,\n propagation = _ref$propagation === void 0 ? true : _ref$propagation,\n _ref$immediatePropaga = _ref.immediatePropagation,\n immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (propagation) {\n event.stopPropagation();\n }\n\n if (immediatePropagation) {\n event.stopImmediatePropagation();\n }\n}; // Helper method to convert a component/directive name to a base event name\n// `getBaseEventName('BNavigationItem')` => 'navigation-item'\n// `getBaseEventName('BVToggle')` => 'toggle'\n\nvar getBaseEventName = function getBaseEventName(value) {\n return kebabCase(value.replace(RX_BV_PREFIX, ''));\n}; // Get a root event name by component/directive and event name\n// `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\n\n\nexport var getRootEventName = function getRootEventName(name, eventName) {\n return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\n}; // Get a root action event name by component/directive and action name\n// `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\n\nexport var getRootActionEventName = function getRootActionEventName(name, actionName) {\n return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\n};","import { RX_HTML_TAGS } from '../constants/regex'; // Removes anything that looks like an HTML tag from the supplied string\n\nexport var stripTags = function stripTags() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(text).replace(RX_HTML_TAGS, '');\n}; // Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object\n\nexport var htmlOrText = function htmlOrText(innerHTML, textContent) {\n return innerHTML ? {\n innerHTML: innerHTML\n } : textContent ? {\n textContent: textContent\n } : {};\n};","export var identity = function identity(x) {\n return x;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isObject } from './inspect'; // --- Static ---\n\nexport var assign = function assign() {\n return Object.assign.apply(Object, arguments);\n};\nexport var create = function create(proto, optionalProps) {\n return Object.create(proto, optionalProps);\n};\nexport var defineProperties = function defineProperties(obj, props) {\n return Object.defineProperties(obj, props);\n};\nexport var defineProperty = function defineProperty(obj, prop, descriptor) {\n return Object.defineProperty(obj, prop, descriptor);\n};\nexport var freeze = function freeze(obj) {\n return Object.freeze(obj);\n};\nexport var getOwnPropertyNames = function getOwnPropertyNames(obj) {\n return Object.getOwnPropertyNames(obj);\n};\nexport var getOwnPropertyDescriptor = function getOwnPropertyDescriptor(obj, prop) {\n return Object.getOwnPropertyDescriptor(obj, prop);\n};\nexport var getOwnPropertySymbols = function getOwnPropertySymbols(obj) {\n return Object.getOwnPropertySymbols(obj);\n};\nexport var getPrototypeOf = function getPrototypeOf(obj) {\n return Object.getPrototypeOf(obj);\n};\nexport var is = function is(value1, value2) {\n return Object.is(value1, value2);\n};\nexport var isFrozen = function isFrozen(obj) {\n return Object.isFrozen(obj);\n};\nexport var keys = function keys(obj) {\n return Object.keys(obj);\n}; // --- \"Instance\" ---\n\nexport var hasOwnProperty = function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\nexport var toString = function toString(obj) {\n return Object.prototype.toString.call(obj);\n}; // --- Utilities ---\n// Shallow copy an object\n\nexport var clone = function clone(obj) {\n return _objectSpread({}, obj);\n}; // Return a shallow copy of object with the specified properties only\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var pick = function pick(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) !== -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Return a shallow copy of object with the specified properties omitted\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var omit = function omit(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) === -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Merges two object deeply together\n// See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a\n\nexport var mergeDeep = function mergeDeep(target, source) {\n if (isObject(target) && isObject(source)) {\n keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!target[key] || !isObject(target[key])) {\n target[key] = source[key];\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n assign(target, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return target;\n}; // Returns a shallow copy of the object with keys in sorted order\n\nexport var sortKeys = function sortKeys(obj) {\n return keys(obj).sort().reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Convenience method to create a read-only descriptor\n\nexport var readonlyDescriptor = function readonlyDescriptor() {\n return {\n enumerable: true,\n configurable: false,\n writable: false\n };\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { isArray, isPlainObject } from './inspect';\nimport { keys } from './object';\nexport var cloneDeep = function cloneDeep(obj) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj;\n\n if (isArray(obj)) {\n return obj.reduce(function (result, val) {\n return [].concat(_toConsumableArray(result), [cloneDeep(val, val)]);\n }, []);\n }\n\n if (isPlainObject(obj)) {\n return keys(obj).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, cloneDeep(obj[key], obj[key])));\n }, {});\n }\n\n return defaultValue;\n};","export var NAME = 'BvConfig';\nexport var PROP_NAME = '$bvConfig';\nexport var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl'];","import { create } from './object';\nexport var memoize = function memoize(fn) {\n var cache = create(null);\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsKey = JSON.stringify(args);\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\n };\n};","import { Vue } from '../vue';\nimport { DEFAULT_BREAKPOINT, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { memoize } from './memoize'; // --- Constants ---\n\nvar VueProto = Vue.prototype; // --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config value,\n// to prevent mutation of the user config object\n// Get the current config\n\nexport var getConfig = function getConfig() {\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfig() : {};\n}; // Method to grab a config value based on a dotted/array notation key\n\nexport var getConfigValue = function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfigValue(key, defaultValue) : cloneDeep(defaultValue);\n}; // Method to grab a config value for a particular component\n\nexport var getComponentConfig = function getComponentConfig(key) {\n var propKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Return the particular config value for key if specified,\n // otherwise we return the full config (or an empty object if not found)\n return propKey ? getConfigValue(\"\".concat(key, \".\").concat(propKey), defaultValue) : getConfigValue(key, {});\n}; // Get all breakpoint names\n\nexport var getBreakpoints = function getBreakpoints() {\n return getConfigValue('breakpoints', DEFAULT_BREAKPOINT);\n}; // Private method for caching breakpoint names\n\nvar _getBreakpointsCached = memoize(function () {\n return getBreakpoints();\n}); // Get all breakpoint names (cached)\n\n\nexport var getBreakpointsCached = function getBreakpointsCached() {\n return cloneDeep(_getBreakpointsCached());\n}; // Get breakpoints with the smallest breakpoint set as ''\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUp = function getBreakpointsUp() {\n var breakpoints = getBreakpoints();\n breakpoints[0] = '';\n return breakpoints;\n}; // Get breakpoints with the smallest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUpCached = memoize(function () {\n var breakpoints = getBreakpointsCached();\n breakpoints[0] = '';\n return breakpoints;\n}); // Get breakpoints with the largest breakpoint set as ''\n\nexport var getBreakpointsDown = function getBreakpointsDown() {\n var breakpoints = getBreakpoints();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n}; // Get breakpoints with the largest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\n/* istanbul ignore next: we don't use this method anywhere, yet */\n\nexport var getBreakpointsDownCached = function getBreakpointsDownCached() {\n var breakpoints = getBreakpointsCached();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { cloneDeep } from './clone-deep';\nimport { getComponentConfig } from './config';\nimport { identity } from './identity';\nimport { isArray, isFunction, isObject, isUndefined } from './inspect';\nimport { clone, hasOwnProperty, keys } from './object';\nimport { lowerFirst, upperFirst } from './string'; // Prefix a property\n\nexport var prefixPropName = function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}; // Remove a prefix from a property\n\nexport var unprefixPropName = function unprefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}; // Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n// Use data last parameters to allow for currying\n\nexport var suffixPropName = function suffixPropName(suffix, value) {\n return value + (suffix ? upperFirst(suffix) : '');\n}; // Generates a prop object\n\nexport var makeProp = function makeProp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var required = requiredOrValidator === true;\n validator = required ? validator : requiredOrValidator;\n return _objectSpread(_objectSpread(_objectSpread({}, type ? {\n type: type\n } : {}), required ? {\n required: required\n } : isUndefined(value) ? {} : {\n default: isObject(value) ? function () {\n return value;\n } : value\n }), isUndefined(validator) ? {} : {\n validator: validator\n });\n}; // Copies props from one array/object to a new array/object\n// Prop values are also cloned as new references to prevent possible\n// mutation of original prop object values\n// Optionally accepts a function to transform the prop name\n\nexport var copyProps = function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n\n var copied = {};\n\n for (var prop in props) {\n /* istanbul ignore else */\n if (hasOwnProperty(props, prop)) {\n // If the prop value is an object, do a shallow clone\n // to prevent potential mutations to the original object\n copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];\n }\n }\n\n return copied;\n}; // Given an array of properties or an object of property keys,\n// plucks all the values off the target object, returning a new object\n// that has props that reference the original prop values\n\nexport var pluckProps = function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n memo[transformFn(prop)] = objToPluck[prop];\n return memo;\n }, {});\n}; // Make a prop object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropConfigurable = function makePropConfigurable(prop, key, componentKey) {\n return _objectSpread(_objectSpread({}, cloneDeep(prop)), {}, {\n default: function bvConfigurablePropDefault() {\n var value = getComponentConfig(componentKey, key, prop.default);\n return isFunction(value) ? value() : value;\n }\n });\n}; // Make a props object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropsConfigurable = function makePropsConfigurable(props, componentKey) {\n return keys(props).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, makePropConfigurable(props[key], key, componentKey)));\n }, {});\n}; // Get function name we use in `makePropConfigurable()`\n// for the prop default value override to compare\n// against in `hasPropFunction()`\n\nvar configurablePropDefaultFnName = makePropConfigurable({}, '', '').default.name; // Detect wether the given value is currently a function\n// and isn't the props default function\n\nexport var hasPropFunction = function hasPropFunction(fn) {\n return isFunction(fn) && fn.name && fn.name !== configurablePropDefaultFnName;\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../vue';\nimport { EVENT_NAME_INPUT } from '../constants/events';\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { makeProp } from './props';\nexport var makeModelMixin = function makeModelMixin(prop) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\n _ref$validator = _ref.validator,\n validator = _ref$validator === void 0 ? undefined : _ref$validator,\n _ref$event = _ref.event,\n event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\n\n var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\n\n\n var mixin = extend({\n model: {\n prop: prop,\n event: event\n },\n props: props\n });\n return {\n mixin: mixin,\n props: props,\n prop: prop,\n event: event\n };\n};","/**\n * Utilities to get information about the current environment\n */\nexport var getEnv = function getEnv(key) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var env = typeof process !== 'undefined' && process ? process.env || {} : {};\n\n if (!key) {\n /* istanbul ignore next */\n return env;\n }\n\n return env[key] || fallback;\n};\nexport var getNoWarn = function getNoWarn() {\n return getEnv('BOOTSTRAP_VUE_NO_WARN') || getEnv('NODE_ENV') === 'production';\n};","import { IS_BROWSER, HAS_PROMISE_SUPPORT, HAS_MUTATION_OBSERVER_SUPPORT } from '../constants/env';\nimport { getNoWarn } from './env';\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\n\nexport var warn = function warn(message)\n/* istanbul ignore next */\n{\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!getNoWarn()) {\n console.warn(\"[BootstrapVue warn]: \".concat(source ? \"\".concat(source, \" - \") : '').concat(message));\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNotClient = function warnNotClient(source) {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n return false;\n } else {\n warn(\"\".concat(source, \": Can not be called during SSR.\"));\n return true;\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoPromiseSupport = function warnNoPromiseSupport(source) {\n /* istanbul ignore else */\n if (HAS_PROMISE_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires Promise support.\"));\n return true;\n }\n};\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) {\n /* istanbul ignore else */\n if (HAS_MUTATION_OBSERVER_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires MutationObserver support.\"));\n return true;\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { MutationObs, isElement } from './dom';\nimport { warnNoMutationObserverSupport } from './warn';\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [options={childList: true, subtree: true}] observe options\n * @see https://stackoverflow.com/questions/3219758\n */\n\nexport var observeDom = function observeDom(el, callback, options)\n/* istanbul ignore next: difficult to test in JSDOM */\n{\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null; // Early exit when we have no element\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n if (!isElement(el)) {\n return null;\n } // Exit and throw a warning when `MutationObserver` isn't available\n\n\n if (warnNoMutationObserverSupport('observeDom')) {\n return null;\n } // Define a new observer\n\n\n var obs = new MutationObs(function (mutations) {\n var changed = false; // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n var mutation = mutations[i]; // Mutation type\n\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n\n var target = mutation.target; // Detect whether a change happened based on type and target\n\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc.)\n // as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true;\n }\n } // We only call the callback if a change that could affect\n // layout/size truly happened\n\n\n if (changed) {\n callback();\n }\n }); // Have the observer observe foo for changes in children, etc\n\n obs.observe(el, _objectSpread({\n childList: true,\n subtree: true\n }, options)); // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n\n return obs;\n};","import { hasOwnProperty, keys } from './object';\nimport { isArray, isDate, isObject } from './inspect'; // Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\n\nvar compareArrays = function compareArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n var equal = true;\n\n for (var i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n\n return equal;\n};\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\n\n\nexport var looseEqual = function looseEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n var aValidType = isDate(a);\n var bValidType = isDate(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n\n aValidType = isArray(a);\n bValidType = isArray(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? compareArrays(a, b) : false;\n }\n\n aValidType = isObject(a);\n bValidType = isObject(b);\n\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n\n var aKeysCount = keys(a).length;\n var bKeysCount = keys(b).length;\n\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n\n for (var key in a) {\n var aHasKey = hasOwnProperty(a, key);\n var bHasKey = hasOwnProperty(b, key);\n\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n\n return String(a) === String(b);\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../vue';\nimport { cloneDeep } from './clone-deep';\nimport { looseEqual } from './loose-equal';\nimport { hasOwnProperty, keys } from './object';\n\nvar isEmpty = function isEmpty(value) {\n return !value || keys(value).length === 0;\n};\n\nexport var makePropWatcher = function makePropWatcher(propName) {\n return {\n handler: function handler(newValue, oldValue) {\n if (looseEqual(newValue, oldValue)) {\n return;\n }\n\n if (isEmpty(newValue) || isEmpty(oldValue)) {\n this[propName] = cloneDeep(newValue);\n return;\n }\n\n for (var key in oldValue) {\n if (!hasOwnProperty(newValue, key)) {\n this.$delete(this.$data[propName], key);\n }\n }\n\n for (var _key in newValue) {\n this.$set(this.$data[propName], _key, newValue[_key]);\n }\n }\n };\n};\nexport var makePropCacheMixin = function makePropCacheMixin(propName, proxyPropName) {\n return extend({\n data: function data() {\n return _defineProperty({}, proxyPropName, cloneDeep(this[propName]));\n },\n watch: _defineProperty({}, propName, makePropWatcher(proxyPropName))\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { makePropCacheMixin } from '../utils/cache';\nimport { extend, isVue3 } from '../vue';\nvar attrsMixinVue2 = makePropCacheMixin('$attrs', 'bvAttrs');\nvar attrsMixinVue3 = extend({\n computed: {\n bvAttrs: function bvAttrs() {\n var bvAttrs = _objectSpread({}, this.$attrs);\n\n Object.keys(bvAttrs).forEach(function (key) {\n if (bvAttrs[key] === undefined) {\n delete bvAttrs[key];\n }\n });\n return bvAttrs;\n }\n }\n});\nexport var attrsMixin = isVue3 ? attrsMixinVue3 : attrsMixinVue2;","// SSR safe client-side ID attribute generation\n// ID's can only be generated client-side, after mount\n// `this._uid` is not synched between server and client\nimport { COMPONENT_UID_KEY, extend } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp } from '../utils/props'; // --- Props ---\n\nexport var props = {\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var idMixin = extend({\n props: props,\n data: function data() {\n return {\n localId_: null\n };\n },\n computed: {\n safeId: function safeId() {\n // Computed property that returns a dynamic function for creating the ID\n // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method\n // but benefits from Vue's computed prop caching\n\n var fn = function fn(suffix) {\n if (!id) {\n return null;\n }\n\n suffix = String(suffix || '').replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n };\n\n return fn;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // `mounted()` only occurs client-side\n this.$nextTick(function () {\n // Update DOM with auto-generated ID after mount\n // to prevent SSR hydration errors\n _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\n });\n }\n});","import { extend } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_documentListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnDocumentMixin = extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffDocument(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerDocumentListener: function registerDocumentListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterDocumentListener: function unregisterDocumentListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n listenDocument: function listenDocument(on, event, callback) {\n on ? this.listenOnDocument(event, callback) : this.listenOffDocument(event, callback);\n },\n listenOnDocument: function listenOnDocument(event, callback) {\n if (IS_BROWSER) {\n eventOn(document, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n this.registerDocumentListener(event, callback);\n }\n },\n listenOffDocument: function listenOffDocument(event, callback) {\n if (IS_BROWSER) {\n eventOff(document, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n this.unregisterDocumentListener(event, callback);\n }\n }\n});","export var getEventRoot = function getEventRoot(vm) {\n return vm.$root.$options.bvEventRoot || vm.$root;\n};","import { extend } from '../vue';\nimport { arrayIncludes } from '../utils/array';\nimport { keys } from '../utils/object';\nimport { getEventRoot } from '../utils/get-event-root'; // --- Constants ---\n\nvar PROP = '$_rootListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnRootMixin = extend({\n computed: {\n bvEventRoot: function bvEventRoot() {\n return getEventRoot(this);\n }\n },\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffRoot(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerRootListener: function registerRootListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterRootListener: function unregisterRootListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n\n /**\n * Safely register event listeners on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on `$root` and is destroyed,\n * this orphans a callback because the node is gone, but the `$root`\n * does not clear the callback\n *\n * When registering a `$root` listener, it also registers the listener\n * to be removed in the component's `beforeDestroy()` hook\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n if (this.bvEventRoot) {\n this.bvEventRoot.$on(event, callback);\n this.registerRootListener(event, callback);\n }\n },\n\n /**\n * Safely register a `$once()` event listener on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on `$root` and is destroyed,\n * this orphans a callback because the node is gone, but the `$root`\n * does not clear the callback\n *\n * When registering a `$root` listener, it also registers the listener\n * to be removed in the component's `beforeDestroy()` hook\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRootOnce: function listenOnRootOnce(event, callback) {\n var _this2 = this;\n\n if (this.bvEventRoot) {\n var _callback = function _callback() {\n _this2.unregisterRootListener(_callback); // eslint-disable-next-line node/no-callback-literal\n\n\n callback.apply(void 0, arguments);\n };\n\n this.bvEventRoot.$once(event, _callback);\n this.registerRootListener(event, _callback);\n }\n },\n\n /**\n * Safely unregister event listeners from the root Vue node\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOffRoot: function listenOffRoot(event, callback) {\n this.unregisterRootListener(event, callback);\n\n if (this.bvEventRoot) {\n this.bvEventRoot.$off(event, callback);\n }\n },\n\n /**\n * Convenience method for calling `vm.$emit()` on `$root`\n *\n * @param {string} event\n * @param {*} args\n */\n emitOnRoot: function emitOnRoot(event) {\n if (this.bvEventRoot) {\n var _this$bvEventRoot;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$bvEventRoot = this.bvEventRoot).$emit.apply(_this$bvEventRoot, [event].concat(args));\n }\n }\n }\n});","import { extend } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_windowListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnWindowMixin = extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffWindow(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerWindowListener: function registerWindowListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterWindowListener: function unregisterWindowListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n listenWindow: function listenWindow(on, event, callback) {\n on ? this.listenOnWindow(event, callback) : this.listenOffWindow(event, callback);\n },\n listenOnWindow: function listenOnWindow(event, callback) {\n if (IS_BROWSER) {\n eventOn(window, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n this.registerWindowListener(event, callback);\n }\n },\n listenOffWindow: function listenOffWindow(event, callback) {\n if (IS_BROWSER) {\n eventOff(window, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n this.unregisterWindowListener(event, callback);\n }\n }\n});","import { concat } from './array';\nimport { identity } from './identity';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var hasNormalizedSlot = function hasNormalizedSlot(names) {\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Ensure names is an array\n names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n return names.some(function (name) {\n return $scopedSlots[name] || $slots[name];\n });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var normalizeSlot = function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // Ensure names is an array\n names = concat(names).filter(identity);\n var slot;\n\n for (var i = 0; i < names.length && !slot; i++) {\n var name = names[i];\n slot = $scopedSlots[name] || $slots[name];\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n return isFunction(slot) ? slot(scope) : slot;\n};","import { extend } from '../vue';\nimport { SLOT_NAME_DEFAULT } from '../constants/slots';\nimport { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array'; // @vue/component\n\nexport var normalizeSlotMixin = extend({\n methods: {\n // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\n // `name` can be a string name or an array of names\n hasNormalizedSlot: function hasNormalizedSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\n var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\n return _hasNormalizedSlot(name, scopedSlots, slots);\n },\n // Returns an array of rendered VNodes if slot found, otherwise `undefined`\n // `name` can be a string name or an array of names\n normalizeSlot: function normalizeSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\n var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\n\n var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);\n\n return vNodes ? concat(vNodes) : vNodes;\n }\n }\n});","import { extend } from '../vue'; // --- Mixin ---\n// @vue/component\n\nexport var useParentMixin = extend({\n computed: {\n bvParent: function bvParent() {\n return this.$parent || this.$root === this && this.$options.bvParent;\n }\n }\n});","// This method returns a component's scoped style attribute name: `data-v-xxxxxxx`\n// The `_scopeId` options property is added by vue-loader when using scoped styles\n// and will be `undefined` if no scoped styles are in use\nexport var getScopeId = function getScopeId(vm) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return vm ? vm.$options._scopeId || defaultValue : defaultValue;\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../vue';\nimport { useParentMixin } from '../mixins/use-parent';\nimport { getScopeId } from '../utils/get-scope-id'; // @vue/component\n\nexport var scopedStyleMixin = extend({\n mixins: [useParentMixin],\n computed: {\n scopedStyleAttrs: function scopedStyleAttrs() {\n var scopeId = getScopeId(this.bvParent);\n return scopeId ? _defineProperty({}, scopeId, '') : {};\n }\n }\n});","import { isVue3 } from '../vue';\nexport function safeVueInstance(target) {\n if (!isVue3) {\n return target;\n }\n\n return new Proxy(target, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : undefined;\n }\n });\n}","import { RX_ENCODED_COMMA, RX_ENCODE_REVERSE, RX_PLUS, RX_QUERY_START } from '../constants/regex';\nimport { isTag } from './dom';\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect';\nimport { keys } from './object';\nimport { safeVueInstance } from './safe-vue-instance';\nimport { toString } from './string';\nvar ANCHOR_TAG = 'a'; // Method to replace reserved chars\n\nvar encodeReserveReplacer = function encodeReserveReplacer(c) {\n return '%' + c.charCodeAt(0).toString(16);\n}; // Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\n\n\nvar encode = function encode(str) {\n return encodeURIComponent(toString(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');\n};\n\nvar decode = decodeURIComponent; // Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\n\nexport var stringifyQueryObj = function stringifyQueryObj(obj) {\n if (!isPlainObject(obj)) {\n return '';\n }\n\n var query = keys(obj).map(function (key) {\n var value = obj[key];\n\n if (isUndefined(value)) {\n return '';\n } else if (isNull(value)) {\n return encode(key);\n } else if (isArray(value)) {\n return value.reduce(function (results, value2) {\n if (isNull(value2)) {\n results.push(encode(key));\n } else if (!isUndefined(value2)) {\n // Faster than string interpolation\n results.push(encode(key) + '=' + encode(value2));\n }\n\n return results;\n }, []).join('&');\n } // Faster than string interpolation\n\n\n return encode(key) + '=' + encode(value);\n })\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n .filter(function (x) {\n return x.length > 0;\n }).join('&');\n return query ? \"?\".concat(query) : '';\n};\nexport var parseQuery = function parseQuery(query) {\n var parsed = {};\n query = toString(query).trim().replace(RX_QUERY_START, '');\n\n if (!query) {\n return parsed;\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(RX_PLUS, ' ').split('=');\n var key = decode(parts.shift());\n var value = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (isUndefined(parsed[key])) {\n parsed[key] = value;\n } else if (isArray(parsed[key])) {\n parsed[key].push(value);\n } else {\n parsed[key] = [parsed[key], value];\n }\n });\n return parsed;\n};\nexport var isLink = function isLink(props) {\n return !!(props.href || props.to);\n};\nexport var isRouterLink = function isRouterLink(tag) {\n return !!(tag && !isTag(tag, 'a'));\n};\nexport var computeTag = function computeTag(_ref, thisOrParent) {\n var to = _ref.to,\n disabled = _ref.disabled,\n routerComponentName = _ref.routerComponentName;\n var hasRouter = !!safeVueInstance(thisOrParent).$router;\n var hasNuxt = !!safeVueInstance(thisOrParent).$nuxt;\n\n if (!hasRouter || hasRouter && (disabled || !to)) {\n return ANCHOR_TAG;\n } // TODO:\n // Check registered components for existence of user supplied router link component name\n // We would need to check PascalCase, kebab-case, and camelCase versions of name:\n // const name = routerComponentName\n // const names = [name, PascalCase(name), KebabCase(name), CamelCase(name)]\n // exists = names.some(name => !!thisOrParent.$options.components[name])\n // And may want to cache the result for performance or we just let the render fail\n // if the component is not registered\n\n\n return routerComponentName || (hasNuxt ? 'nuxt-link' : 'router-link');\n};\nexport var computeRel = function computeRel() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target,\n rel = _ref2.rel;\n\n return target === '_blank' && isNull(rel) ? 'noopener' : rel || null;\n};\nexport var computeHref = function computeHref() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n href = _ref3.href,\n to = _ref3.to;\n\n var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n var toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';\n\n // Return `href` when explicitly provided\n if (href) {\n return href;\n } // We've checked for `$router` in `computeTag()`, so `isRouterLink()` indicates a live router\n // When deferring to Vue Router's ``, don't use the `href` attribute at all\n // We return `null`, and then remove `href` from the attributes passed to ``\n\n\n if (isRouterLink(tag)) {\n return null;\n } // Fallback to `to` prop (if `to` is a string)\n\n\n if (isString(to)) {\n return to || toFallback;\n } // Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)\n\n\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n var path = toString(to.path);\n var query = stringifyQueryObj(to.query);\n var hash = toString(to.hash);\n hash = !hash || hash.charAt(0) === '#' ? hash : \"#\".concat(hash);\n return \"\".concat(path).concat(query).concat(hash) || toFallback;\n } // If nothing is provided return the fallback\n\n\n return fallback;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { makePropCacheMixin } from '../utils/cache';\nimport { extend, isVue3 } from '../vue';\nvar listenersMixinVue2 = makePropCacheMixin('$listeners', 'bvListeners');\nvar listenersMixinVue3 = extend({\n data: function data() {\n return {\n bvListeners: {}\n };\n },\n created: function created() {\n this.bvListeners = _objectSpread({}, this.$listeners);\n },\n beforeUpdate: function beforeUpdate() {\n this.bvListeners = _objectSpread({}, this.$listeners);\n }\n});\nexport var listenersMixin = isVue3 ? listenersMixinVue3 : listenersMixinVue2;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_LINK } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus, isTag } from '../../utils/dom';\nimport { getRootEventName, stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction, isUndefined } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { computeHref, computeRel, computeTag, isRouterLink as _isRouterLink } from '../../utils/router';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_CLICKED = getRootEventName(NAME_LINK, 'clicked'); // --- Props ---\n// `` specific props\n\nexport var routerLinkProps = {\n activeClass: makeProp(PROP_TYPE_STRING),\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n event: makeProp(PROP_TYPE_ARRAY_STRING),\n exact: makeProp(PROP_TYPE_BOOLEAN, false),\n exactActiveClass: makeProp(PROP_TYPE_STRING),\n exactPath: makeProp(PROP_TYPE_BOOLEAN, false),\n exactPathActiveClass: makeProp(PROP_TYPE_STRING),\n replace: makeProp(PROP_TYPE_BOOLEAN, false),\n routerTag: makeProp(PROP_TYPE_STRING),\n to: makeProp(PROP_TYPE_OBJECT_STRING)\n}; // `` specific props\n\nexport var nuxtLinkProps = {\n noPrefetch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Must be `null` to fall back to the value defined in the\n // `nuxt.config.js` configuration file for `router.prefetchLinks`\n // We convert `null` to `undefined`, so that Nuxt.js will use the\n // compiled default\n // Vue treats `undefined` as default of `false` for Boolean props,\n // so we must set it as `null` here to be a true tri-state prop\n prefetch: makeProp(PROP_TYPE_BOOLEAN, null)\n}; // All `` props\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, nuxtLinkProps), routerLinkProps), {}, {\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n href: makeProp(PROP_TYPE_STRING),\n // Must be `null` if no value provided\n rel: makeProp(PROP_TYPE_STRING, null),\n // To support 3rd party router links based on `` (i.e. `g-link` for Gridsome)\n // Default is to auto choose between `` and ``\n // Gridsome doesn't provide a mechanism to auto detect and has caveats\n // such as not supporting FQDN URLs or hash only URLs\n routerComponentName: makeProp(PROP_TYPE_STRING),\n target: makeProp(PROP_TYPE_STRING, '_self')\n})), NAME_LINK); // --- Main component ---\n// @vue/component\n\nexport var BLink = /*#__PURE__*/extend({\n name: NAME_LINK,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n computed: {\n computedTag: function computedTag() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n disabled = this.disabled,\n routerComponentName = this.routerComponentName;\n return computeTag({\n to: to,\n disabled: disabled,\n routerComponentName: routerComponentName\n }, this);\n },\n isRouterLink: function isRouterLink() {\n return _isRouterLink(this.computedTag);\n },\n computedRel: function computedRel() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var target = this.target,\n rel = this.rel;\n return computeRel({\n target: target,\n rel: rel\n });\n },\n computedHref: function computedHref() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n href = this.href;\n return computeHref({\n to: to,\n href: href\n }, this.computedTag);\n },\n computedProps: function computedProps() {\n var event = this.event,\n prefetch = this.prefetch,\n routerTag = this.routerTag;\n return this.isRouterLink ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pluckProps(omit(_objectSpread(_objectSpread({}, routerLinkProps), this.computedTag === 'nuxt-link' ? nuxtLinkProps : {}), ['event', 'prefetch', 'routerTag']), this)), event ? {\n event: event\n } : {}), isBoolean(prefetch) ? {\n prefetch: prefetch\n } : {}), routerTag ? {\n tag: routerTag\n } : {}) : {};\n },\n computedAttrs: function computedAttrs() {\n var bvAttrs = this.bvAttrs,\n href = this.computedHref,\n rel = this.computedRel,\n disabled = this.disabled,\n target = this.target,\n routerTag = this.routerTag,\n isRouterLink = this.isRouterLink;\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bvAttrs), href ? {\n href: href\n } : {}), isRouterLink && routerTag && !isTag(routerTag, 'a') ? {} : {\n rel: rel,\n target: target\n }), {}, {\n tabindex: disabled ? '-1' : isUndefined(bvAttrs.tabindex) ? null : bvAttrs.tabindex,\n 'aria-disabled': disabled ? 'true' : null\n });\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n // We want to overwrite any click handler since our callback\n // will invoke the user supplied handler(s) if `!this.disabled`\n click: this.onClick\n });\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _arguments = arguments;\n var eventIsEvent = isEvent(event);\n var isRouterLink = this.isRouterLink;\n var suppliedHandler = this.bvListeners.click;\n\n if (eventIsEvent && this.disabled) {\n // Stop event from bubbling up\n // Kill the event loop attached to this specific `EventTarget`\n // Needed to prevent `vue-router` for doing its thing\n stopEvent(event, {\n immediatePropagation: true\n });\n } else {\n // Router links do not emit instance `click` events, so we\n // add in an `$emit('click', event)` on its Vue instance\n //\n // seems not to be required for Vue3 compat build\n\n /* istanbul ignore next: difficult to test, but we know it works */\n if (isRouterLink) {\n var _event$currentTarget$;\n\n (_event$currentTarget$ = event.currentTarget.__vue__) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.$emit(EVENT_NAME_CLICK, event);\n } // Call the suppliedHandler(s), if any provided\n\n\n concat(suppliedHandler).filter(function (h) {\n return isFunction(h);\n }).forEach(function (handler) {\n handler.apply(void 0, _toConsumableArray(_arguments));\n }); // Emit the global `$root` click event\n\n this.emitOnRoot(ROOT_EVENT_NAME_CLICKED, event); // TODO: Remove deprecated 'clicked::link' event with next major release\n\n this.emitOnRoot('clicked::link', event);\n } // Stop scroll-to-top behavior or navigation on\n // regular links when href is just '#'\n\n\n if (eventIsEvent && !isRouterLink && this.computedHref === '#') {\n stopEvent(event, {\n propagation: false\n });\n }\n },\n focus: function focus() {\n attemptFocus(this.$el);\n },\n blur: function blur() {\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n var active = this.active,\n disabled = this.disabled;\n return h(this.computedTag, _defineProperty({\n class: {\n active: active,\n disabled: disabled\n },\n attrs: this.computedAttrs,\n props: this.computedProps\n }, this.isRouterLink ? 'nativeOn' : 'on', this.computedListeners), this.normalizeSlot());\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BUTTON } from '../../constants/components';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { addClass, isTag, removeClass } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink as isLinkStrict } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state: `true`, `false` or `null`\n // => On, off, not a toggle\n pressed: makeProp(PROP_TYPE_BOOLEAN, null),\n size: makeProp(PROP_TYPE_STRING),\n squared: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'button'),\n type: makeProp(PROP_TYPE_STRING, 'button'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BUTTON); // --- Helper methods ---\n// Focus handler for toggle buttons\n// Needs class of 'focus' when focused\n\nvar handleFocus = function handleFocus(event) {\n if (event.type === 'focusin') {\n addClass(event.target, 'focus');\n } else if (event.type === 'focusout') {\n removeClass(event.target, 'focus');\n }\n}; // Is the requested button a link?\n// If tag prop is set to `a`, we use a to get proper disabled handling\n\n\nvar isLink = function isLink(props) {\n return isLinkStrict(props) || isTag(props.tag, 'a');\n}; // Is the button to be a toggle button?\n\n\nvar isToggle = function isToggle(props) {\n return isBoolean(props.pressed);\n}; // Is the button \"really\" a button?\n\n\nvar isButton = function isButton(props) {\n return !(isLink(props) || props.tag && !isTag(props.tag, 'button'));\n}; // Is the requested tag not a button or link?\n\n\nvar isNonStandardTag = function isNonStandardTag(props) {\n return !isLink(props) && !isButton(props);\n}; // Compute required classes (non static classes)\n\n\nvar computeClass = function computeClass(props) {\n var _ref;\n\n return [\"btn-\".concat(props.variant || 'secondary'), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(props.size), props.size), _defineProperty(_ref, 'btn-block', props.block), _defineProperty(_ref, 'rounded-pill', props.pill), _defineProperty(_ref, 'rounded-0', props.squared && !props.pill), _defineProperty(_ref, \"disabled\", props.disabled), _defineProperty(_ref, \"active\", props.pressed), _ref)];\n}; // Compute the link props to pass to b-link (if required)\n\n\nvar computeLinkProps = function computeLinkProps(props) {\n return isLink(props) ? pluckProps(linkProps, props) : {};\n}; // Compute the attributes for a button\n\n\nvar computeAttrs = function computeAttrs(props, data) {\n var button = isButton(props);\n var link = isLink(props);\n var toggle = isToggle(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var role = data.attrs && data.attrs.role ? data.attrs.role : null;\n var tabindex = data.attrs ? data.attrs.tabindex : null;\n\n if (nonStandardTag || hashLink) {\n tabindex = '0';\n }\n\n return {\n // Type only used for \"real\" buttons\n type: button && !link ? props.type : null,\n // Disabled only set on \"real\" buttons\n disabled: button ? props.disabled : null,\n // We add a role of button when the tag is not a link or button for ARIA\n // Don't bork any role provided in `data.attrs` when `isLink` or `isButton`\n // Except when link has `href` of `#`\n role: nonStandardTag || hashLink ? 'button' : role,\n // We set the `aria-disabled` state for non-standard tags\n 'aria-disabled': nonStandardTag ? String(props.disabled) : null,\n // For toggles, we need to set the pressed state for ARIA\n 'aria-pressed': toggle ? String(props.pressed) : null,\n // `autocomplete=\"off\"` is needed in toggle mode to prevent some browsers\n // from remembering the previous setting when using the back button\n autocomplete: toggle ? 'off' : null,\n // `tabindex` is used when the component is not a button\n // Links are tabbable, but don't allow disabled, while non buttons or links\n // are not tabbable, so we mimic that functionality by disabling tabbing\n // when disabled, and adding a `tabindex=\"0\"` to non buttons or non links\n tabindex: props.disabled && !button ? '-1' : tabindex\n };\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BButton = /*#__PURE__*/extend({\n name: NAME_BUTTON,\n functional: true,\n props: props,\n render: function render(h, _ref2) {\n var props = _ref2.props,\n data = _ref2.data,\n listeners = _ref2.listeners,\n children = _ref2.children;\n var toggle = isToggle(props);\n var link = isLink(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var on = {\n keydown: function keydown(event) {\n // When the link is a `href=\"#\"` or a non-standard tag (has `role=\"button\"`),\n // we add a keydown handlers for CODE_SPACE/CODE_ENTER\n\n /* istanbul ignore next */\n if (props.disabled || !(nonStandardTag || hashLink)) {\n return;\n }\n\n var keyCode = event.keyCode; // Add CODE_SPACE handler for `href=\"#\"` and CODE_ENTER handler for non-standard tags\n\n if (keyCode === CODE_SPACE || keyCode === CODE_ENTER && nonStandardTag) {\n var target = event.currentTarget || event.target;\n stopEvent(event, {\n propagation: false\n });\n target.click();\n }\n },\n click: function click(event) {\n /* istanbul ignore if: blink/button disabled should handle this */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n } else if (toggle && listeners && listeners['update:pressed']) {\n // Send `.sync` updates to any \"pressed\" prop (if `.sync` listeners)\n // `concat()` will normalize the value to an array without\n // double wrapping an array value in an array\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (isFunction(fn)) {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (toggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: computeClass(props),\n props: computeLinkProps(props),\n attrs: computeAttrs(props, data),\n on: on\n };\n return h(link ? BLink : props.tag, mergeData(_objectSpread(_objectSpread({}, data), {}, {\n props: undefined\n }), componentData), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BUTTON_CLOSE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { isEvent } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n content: makeProp(PROP_TYPE_STRING, '×'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_BUTTON_CLOSE); // --- Main component ---\n// @vue/component\n\nexport var BButtonClose = /*#__PURE__*/extend({\n name: NAME_BUTTON_CLOSE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(event) {\n // Ensure click on button HTML content is also disabled\n\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n }\n }\n }\n }; // Careful not to override the default slot with innerHTML\n\n if (!hasNormalizedSlot(SLOT_NAME_DEFAULT, $scopedSlots, $slots)) {\n componentData.domProps = {\n innerHTML: props.content\n };\n }\n\n return h('button', mergeData(data, componentData), normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\nimport { extend, mergeData } from '../../vue';\nimport { NAME_TRANSITION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { isPlainObject } from '../../utils/inspect';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread(_objectSpread({}, NO_FADE_PROPS), {}, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}); // --- Props ---\n\n\nexport var props = {\n // Has no effect if `trans-props` provided\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n // Can be overridden by user supplied `trans-props`\n mode: makeProp(PROP_TYPE_STRING),\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // For user supplied transitions (if needed)\n transProps: makeProp(PROP_TYPE_OBJECT)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransition = /*#__PURE__*/extend({\n name: NAME_TRANSITION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread(_objectSpread({}, transProps), {}, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread(_objectSpread({\n mode: props.mode\n }, transProps), {}, {\n // We always need `css` true\n css: true\n });\n\n var dataCopy = _objectSpread({}, data);\n\n delete dataCopy.props;\n return h('transition', // Any transition event listeners will get merged here\n mergeData(dataCopy, {\n props: transProps\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var createNewChildComponent = function createNewChildComponent(parent, Component) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var bvEventRoot = parent.$root ? parent.$root.$options.bvEventRoot || parent.$root : null;\n return new Component(_objectSpread(_objectSpread({}, config), {}, {\n parent: parent,\n bvParent: parent,\n bvEventRoot: bvEventRoot\n }));\n};","import { Vue, extend, isVue3 } from '../../vue';\nimport { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { concat } from '../../utils/array';\nimport { removeNode, select } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isString } from '../../utils/inspect';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp } from '../../utils/props';\nimport { createNewChildComponent } from '../../utils/create-new-child-component'; // --- Helper components ---\n// BVTransporter/BVTransporterTarget:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of its\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n// Transporter target used by BVTransporter\n// Supports only a single root element\n// @vue/component\n\nvar BVTransporterTarget = /*#__PURE__*/extend({\n // As an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: NAME_TRANSPORTER_TARGET,\n props: {\n // Even though we only support a single root element,\n // VNodes are always passed as an array\n nodes: makeProp(PROP_TYPE_ARRAY_FUNCTION)\n },\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n destroyed: function destroyed() {\n removeNode(this.$el);\n },\n render: function render(h) {\n var updatedNodes = this.updatedNodes;\n var $nodes = isFunction(updatedNodes) ? updatedNodes({}) : updatedNodes;\n $nodes = concat($nodes).filter(identity);\n\n if ($nodes && $nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n /* istanbul ignore next */\n\n\n return h();\n }\n}); // --- Props ---\n\nexport var props = {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n container: makeProp([HTMLElement, PROP_TYPE_STRING], 'body'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // This should be set to match the root element type\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}; // --- Main component ---\n// @vue/component\n\nvar BVTransporterVue2 = /*#__PURE__*/extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget);\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_defaultFn = null;\n this.$_target = null;\n },\n beforeMount: function beforeMount() {\n this.mountTarget();\n },\n updated: function updated() {\n // We need to make sure that all children have completed updating\n // before rendering in the target\n // `vue-simple-portal` has the this in a `$nextTick()`,\n // while `portal-vue` doesn't\n // Just trying to see if the `$nextTick()` delay is required or not\n // Since all slots in Vue 2.6.x are always functions\n this.updateTarget();\n },\n beforeDestroy: function beforeDestroy() {\n this.unmountTarget();\n this.$_defaultFn = null;\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer: function getContainer() {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n var container = this.container;\n return isString(container) ? select(container) : container;\n } else {\n return null;\n }\n },\n // Mount the target\n mountTarget: function mountTarget() {\n if (!this.$_target) {\n var $container = this.getContainer();\n\n if ($container) {\n var $el = document.createElement('div');\n $container.appendChild($el);\n this.$_target = createNewChildComponent(this, BVTransporterTarget, {\n el: $el,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot())\n }\n });\n }\n }\n },\n // Update the content of the target\n updateTarget: function updateTarget() {\n if (IS_BROWSER && this.$_target) {\n var defaultFn = this.$scopedSlots.default;\n\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this.$_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here\n this.$_target.updatedNodes = defaultFn;\n } else if (!defaultFn) {\n // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n this.$_target.updatedNodes = this.$slots.default;\n }\n } // Update the scoped slot function cache\n\n\n this.$_defaultFn = defaultFn;\n }\n },\n // Unmount the target\n unmountTarget: function unmountTarget() {\n this.$_target && this.$_target.$destroy();\n this.$_target = null;\n }\n },\n render: function render(h) {\n // This component has no root element, so only a single VNode is allowed\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n }\n\n return h();\n }\n});\nvar BVTransporterVue3 = /*#__PURE__*/extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n render: function render(h) {\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0) {\n return $nodes[0];\n }\n }\n\n return h(Vue.Teleport, {\n to: this.container\n }, this.normalizeSlot());\n }\n});\nexport var BVTransporter = isVue3 ? BVTransporterVue3 : BVTransporterVue2;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\nexport var BvEvent = /*#__PURE__*/function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } Object.defineProperty(subClass, \"prototype\", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object';\n\nvar BvModalEvent = /*#__PURE__*/function (_BvEvent) {\n _inherits(BvModalEvent, _BvEvent);\n\n var _super = _createSuper(BvModalEvent);\n\n function BvModalEvent(type) {\n var _this;\n\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvModalEvent);\n\n _this = _super.call(this, type, eventInit); // Freeze our new props as readonly, but leave them enumerable\n\n defineProperties(_assertThisInitialized(_this), {\n trigger: readonlyDescriptor()\n });\n return _this;\n }\n\n _createClass(BvModalEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(BvModalEvent), \"Defaults\", this)), {}, {\n trigger: null\n });\n }\n }]);\n\n return BvModalEvent;\n}(BvEvent); // Named exports\n\n\nexport { BvModalEvent };","// Number utilities\n// Converts a value (string, number, etc.) to an integer number\n// Assumes radix base 10\nexport var toInteger = function toInteger(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var integer = parseInt(value, 10);\n return isNaN(integer) ? defaultValue : integer;\n}; // Converts a value (string, number, etc.) to a number\n\nexport var toFloat = function toFloat(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var float = parseFloat(value);\n return isNaN(float) ? defaultValue : float;\n}; // Converts a value (string, number, etc.) to a string\n// representation with `precision` digits after the decimal\n// Returns the string 'NaN' if the value cannot be converted\n\nexport var toFixed = function toFixed(val, precision) {\n return toFloat(val).toFixed(toInteger(precision, 0));\n};","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\nimport { extend } from '../../../vue';\nimport { IS_BROWSER } from '../../../constants/env';\nimport { addClass, getAttr, getBCR, getCS, getStyle, hasAttr, removeAttr, removeClass, requestAF, selectAll, setAttr, setStyle } from '../../../utils/dom';\nimport { isNull } from '../../../utils/inspect';\nimport { toFloat, toInteger } from '../../../utils/number'; // --- Constants ---\n// Default modal backdrop z-index\n\nvar DEFAULT_ZINDEX = 1040; // Selectors for padding/margin adjustments\n\nvar SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nvar SELECTOR_STICKY_CONTENT = '.sticky-top';\nvar SELECTOR_NAVBAR_TOGGLER = '.navbar-toggler'; // --- Main component ---\n// @vue/component\n\nvar ModalManager = /*#__PURE__*/extend({\n data: function data() {\n return {\n modals: [],\n baseZIndex: null,\n scrollbarWidth: null,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalCount: function modalCount() {\n return this.modals.length;\n },\n modalsAreOpen: function modalsAreOpen() {\n return this.modalCount > 0;\n }\n },\n watch: {\n modalCount: function modalCount(newCount, oldCount) {\n if (IS_BROWSER) {\n this.getScrollbarWidth();\n\n if (newCount > 0 && oldCount === 0) {\n // Transitioning to modal(s) open\n this.checkScrollbar();\n this.setScrollbar();\n addClass(document.body, 'modal-open');\n } else if (newCount === 0 && oldCount > 0) {\n // Transitioning to modal(s) closed\n this.resetScrollbar();\n removeClass(document.body, 'modal-open');\n }\n\n setAttr(document.body, 'data-modal-open-count', String(newCount));\n }\n },\n modals: function modals(newValue) {\n var _this = this;\n\n this.checkScrollbar();\n requestAF(function () {\n _this.updateModals(newValue || []);\n });\n }\n },\n methods: {\n // Public methods\n registerModal: function registerModal(modal) {\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n this.modals.push(modal);\n }\n },\n unregisterModal: function unregisterModal(modal) {\n var index = this.modals.indexOf(modal);\n\n if (index > -1) {\n // Remove modal from modals array\n this.modals.splice(index, 1); // Reset the modal's data\n\n if (!modal._isBeingDestroyed && !modal._isDestroyed) {\n this.resetModal(modal);\n }\n }\n },\n getBaseZIndex: function getBaseZIndex() {\n if (IS_BROWSER && isNull(this.baseZIndex)) {\n // Create a temporary `div.modal-backdrop` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-backdrop');\n addClass(div, 'd-none');\n setStyle(div, 'display', 'none');\n document.body.appendChild(div);\n this.baseZIndex = toInteger(getCS(div).zIndex, DEFAULT_ZINDEX);\n document.body.removeChild(div);\n }\n\n return this.baseZIndex || DEFAULT_ZINDEX;\n },\n getScrollbarWidth: function getScrollbarWidth() {\n if (IS_BROWSER && isNull(this.scrollbarWidth)) {\n // Create a temporary `div.measure-scrollbar` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-scrollbar-measure');\n document.body.appendChild(div);\n this.scrollbarWidth = getBCR(div).width - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return this.scrollbarWidth || 0;\n },\n // Private methods\n updateModals: function updateModals(modals) {\n var _this2 = this;\n\n var baseZIndex = this.getBaseZIndex();\n var scrollbarWidth = this.getScrollbarWidth();\n modals.forEach(function (modal, index) {\n // We update data values on each modal\n modal.zIndex = baseZIndex + index;\n modal.scrollbarWidth = scrollbarWidth;\n modal.isTop = index === _this2.modals.length - 1;\n modal.isBodyOverflowing = _this2.isBodyOverflowing;\n });\n },\n resetModal: function resetModal(modal) {\n if (modal) {\n modal.zIndex = this.getBaseZIndex();\n modal.isTop = true;\n modal.isBodyOverflowing = false;\n }\n },\n checkScrollbar: function checkScrollbar() {\n // Determine if the body element is overflowing\n var _getBCR = getBCR(document.body),\n left = _getBCR.left,\n right = _getBCR.right;\n\n this.isBodyOverflowing = left + right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n var body = document.body; // Storage place to cache changes to margins and padding\n // Note: This assumes the following element types are not added to the\n // document after the modal has opened.\n\n body._paddingChangedForModal = body._paddingChangedForModal || [];\n body._marginChangedForModal = body._marginChangedForModal || [];\n\n if (this.isBodyOverflowing) {\n var scrollbarWidth = this.scrollbarWidth; // Adjust fixed content padding\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_FIXED_CONTENT).forEach(function (el) {\n var actualPadding = getStyle(el, 'paddingRight') || '';\n setAttr(el, 'data-padding-right', actualPadding);\n setStyle(el, 'paddingRight', \"\".concat(toFloat(getCS(el).paddingRight, 0) + scrollbarWidth, \"px\"));\n\n body._paddingChangedForModal.push(el);\n }); // Adjust sticky content margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_STICKY_CONTENT).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) - scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_NAVBAR_TOGGLER).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) + scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust body padding\n\n var actualPadding = getStyle(body, 'paddingRight') || '';\n setAttr(body, 'data-padding-right', actualPadding);\n setStyle(body, 'paddingRight', \"\".concat(toFloat(getCS(body).paddingRight, 0) + scrollbarWidth, \"px\"));\n }\n },\n resetScrollbar: function resetScrollbar() {\n var body = document.body;\n\n if (body._paddingChangedForModal) {\n // Restore fixed content padding\n body._paddingChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-padding-right')) {\n setStyle(el, 'paddingRight', getAttr(el, 'data-padding-right') || '');\n removeAttr(el, 'data-padding-right');\n }\n });\n }\n\n if (body._marginChangedForModal) {\n // Restore sticky content and navbar-toggler margin\n body._marginChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-margin-right')) {\n setStyle(el, 'marginRight', getAttr(el, 'data-margin-right') || '');\n removeAttr(el, 'data-margin-right');\n }\n });\n }\n\n body._paddingChangedForModal = null;\n body._marginChangedForModal = null; // Restore body padding\n\n if (hasAttr(body, 'data-padding-right')) {\n setStyle(body, 'paddingRight', getAttr(body, 'data-padding-right') || '');\n removeAttr(body, 'data-padding-right');\n }\n }\n }\n}); // Create and export our modal manager instance\n\nexport var modalManager = new ModalManager();","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, extend } from '../../vue';\nimport { NAME_MODAL } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CANCEL, EVENT_NAME_CHANGE, EVENT_NAME_CLOSE, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OK, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_MODAL_BACKDROP, SLOT_NAME_MODAL_CANCEL, SLOT_NAME_MODAL_FOOTER, SLOT_NAME_MODAL_HEADER, SLOT_NAME_MODAL_HEADER_CLOSE, SLOT_NAME_MODAL_OK, SLOT_NAME_MODAL_TITLE } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptFocus, closest, contains, getActiveElement as _getActiveElement, getTabables, requestAF, select } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnDocumentMixin } from '../../mixins/listen-on-document';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenOnWindowMixin } from '../../mixins/listen-on-window';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { BButton } from '../button/button';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BVTransporter } from '../transporter/transporter';\nimport { BvModalEvent } from './helpers/bv-modal-event.class';\nimport { modalManager } from './helpers/modal-manager'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar TRIGGER_BACKDROP = 'backdrop';\nvar TRIGGER_ESC = 'esc';\nvar TRIGGER_FORCE = 'FORCE';\nvar TRIGGER_TOGGLE = 'toggle';\nvar BUTTON_CANCEL = 'cancel'; // TODO: This should be renamed to 'close'\n\nvar BUTTON_CLOSE = 'headerclose';\nvar BUTTON_OK = 'ok';\nvar BUTTONS = [BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_OK]; // `ObserveDom` config to detect changes in modal content\n// so that we can adjust the modal padding if needed\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n}; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n autoFocusButton: makeProp(PROP_TYPE_STRING, null,\n /* istanbul ignore next */\n function (value) {\n return isUndefinedOrNull(value) || arrayIncludes(BUTTONS, value);\n }),\n bodyBgVariant: makeProp(PROP_TYPE_STRING),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n bodyTextVariant: makeProp(PROP_TYPE_STRING),\n busy: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonSize: makeProp(PROP_TYPE_STRING),\n cancelDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n cancelTitle: makeProp(PROP_TYPE_STRING, 'Cancel'),\n cancelTitleHtml: makeProp(PROP_TYPE_STRING),\n cancelVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n centered: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n dialogClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerBgVariant: makeProp(PROP_TYPE_STRING),\n footerBorderVariant: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerTag: makeProp(PROP_TYPE_STRING, 'footer'),\n footerTextVariant: makeProp(PROP_TYPE_STRING),\n headerBgVariant: makeProp(PROP_TYPE_STRING),\n headerBorderVariant: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerCloseContent: makeProp(PROP_TYPE_STRING, '×'),\n headerCloseLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n headerCloseVariant: makeProp(PROP_TYPE_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerTextVariant: makeProp(PROP_TYPE_STRING),\n // TODO: Rename to `noBackdrop` and deprecate `hideBackdrop`\n hideBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noFooter` and deprecate `hideFooter`\n hideFooter: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeader` and deprecate `hideHeader`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeaderClose` and deprecate `hideHeaderClose`\n hideHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n ignoreEnforceFocusSelector: makeProp(PROP_TYPE_ARRAY_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n modalClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noStacking: makeProp(PROP_TYPE_BOOLEAN, false),\n okDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n okOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n okTitle: makeProp(PROP_TYPE_STRING, 'OK'),\n okTitleHtml: makeProp(PROP_TYPE_STRING),\n okVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // HTML Element, CSS selector string or Vue component instance\n returnFocus: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n scrollable: makeProp(PROP_TYPE_BOOLEAN, false),\n size: makeProp(PROP_TYPE_STRING, 'md'),\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n titleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n titleHtml: makeProp(PROP_TYPE_STRING),\n titleSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n titleTag: makeProp(PROP_TYPE_STRING, 'h5')\n})), NAME_MODAL); // --- Main component ---\n// @vue/component\n\nexport var BModal = /*#__PURE__*/extend({\n name: NAME_MODAL,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnDocumentMixin, listenOnRootMixin, listenOnWindowMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n isHidden: true,\n // If modal should not be in document\n isVisible: false,\n // Controls modal visible state\n isTransitioning: false,\n // Used for style control\n isShow: false,\n // Used for style control\n isBlock: false,\n // Used for style control\n isOpening: false,\n // To signal that the modal is in the process of opening\n isClosing: false,\n // To signal that the modal is in the process of closing\n ignoreBackdropClick: false,\n // Used to signify if click out listener should ignore the click\n isModalOverflowing: false,\n // The following items are controlled by the modalManager instance\n scrollbarWidth: 0,\n zIndex: modalManager.getBaseZIndex(),\n isTop: true,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalId: function modalId() {\n return this.safeId();\n },\n modalOuterId: function modalOuterId() {\n return this.safeId('__BV_modal_outer_');\n },\n modalHeaderId: function modalHeaderId() {\n return this.safeId('__BV_modal_header_');\n },\n modalBodyId: function modalBodyId() {\n return this.safeId('__BV_modal_body_');\n },\n modalTitleId: function modalTitleId() {\n return this.safeId('__BV_modal_title_');\n },\n modalContentId: function modalContentId() {\n return this.safeId('__BV_modal_content_');\n },\n modalFooterId: function modalFooterId() {\n return this.safeId('__BV_modal_footer_');\n },\n modalBackdropId: function modalBackdropId() {\n return this.safeId('__BV_modal_backdrop_');\n },\n modalClasses: function modalClasses() {\n return [{\n fade: !this.noFade,\n show: this.isShow\n }, this.modalClass];\n },\n modalStyles: function modalStyles() {\n var sbWidth = \"\".concat(this.scrollbarWidth, \"px\");\n return {\n paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n // Even though we are using v-show, we must ensure 'none' is restored in the styles\n display: this.isBlock ? 'block' : 'none'\n };\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return [(_ref = {}, _defineProperty(_ref, \"modal-\".concat(this.size), this.size), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _defineProperty(_ref, 'modal-dialog-scrollable', this.scrollable), _ref), this.dialogClass];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return [(_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(this.headerBgVariant), this.headerBgVariant), _defineProperty(_ref2, \"text-\".concat(this.headerTextVariant), this.headerTextVariant), _defineProperty(_ref2, \"border-\".concat(this.headerBorderVariant), this.headerBorderVariant), _ref2), this.headerClass];\n },\n titleClasses: function titleClasses() {\n return [{\n 'sr-only': this.titleSrOnly\n }, this.titleClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return [(_ref3 = {}, _defineProperty(_ref3, \"bg-\".concat(this.bodyBgVariant), this.bodyBgVariant), _defineProperty(_ref3, \"text-\".concat(this.bodyTextVariant), this.bodyTextVariant), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return [(_ref4 = {}, _defineProperty(_ref4, \"bg-\".concat(this.footerBgVariant), this.footerBgVariant), _defineProperty(_ref4, \"text-\".concat(this.footerTextVariant), this.footerTextVariant), _defineProperty(_ref4, \"border-\".concat(this.footerBorderVariant), this.footerBorderVariant), _ref4), this.footerClass];\n },\n modalOuterStyle: function modalOuterStyle() {\n // Styles needed for proper stacking of modals\n return {\n position: 'absolute',\n zIndex: this.zIndex\n };\n },\n slotScope: function slotScope() {\n return {\n cancel: this.onCancel,\n close: this.onClose,\n hide: this.hide,\n ok: this.onOk,\n visible: this.isVisible\n };\n },\n computeIgnoreEnforceFocusSelector: function computeIgnoreEnforceFocusSelector() {\n // Normalize to an single selector with selectors separated by `,`\n return concat(this.ignoreEnforceFocusSelector).filter(identity).join(',').trim();\n },\n computedAttrs: function computedAttrs() {\n // If the parent has a scoped style attribute, and the modal\n // is portalled, add the scoped attribute to the modal wrapper\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {};\n return _objectSpread(_objectSpread(_objectSpread({}, scopedStyleAttrs), this.bvAttrs), {}, {\n id: this.modalOuterId\n });\n },\n computedModalAttrs: function computedModalAttrs() {\n var isVisible = this.isVisible,\n ariaLabel = this.ariaLabel;\n return {\n id: this.modalId,\n role: 'dialog',\n 'aria-hidden': isVisible ? null : 'true',\n 'aria-modal': isVisible ? 'true' : null,\n 'aria-label': ariaLabel,\n 'aria-labelledby': this.hideHeader || ariaLabel || // TODO: Rename slot to `title` and deprecate `modal-title`\n !(this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) || this.titleHtml || this.title) ? null : this.modalTitleId,\n 'aria-describedby': this.modalBodyId\n };\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this[newValue ? 'show' : 'hide']();\n }\n }),\n created: function created() {\n // Define non-reactive properties\n this.$_observer = null;\n this.$_returnFocus = this.returnFocus || null;\n },\n mounted: function mounted() {\n // Set initial z-index as queried from the DOM\n this.zIndex = modalManager.getBaseZIndex(); // Listen for events from others to either open or close ourselves\n // and listen to all modals to enable/disable enforce focus\n\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW), this.showHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_HIDE), this.hideHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_TOGGLE), this.toggleHandler); // Listen for `bv:modal::show events`, and close ourselves if the\n // opening modal not us\n\n this.listenOnRoot(getRootEventName(NAME_MODAL, EVENT_NAME_SHOW), this.modalListener); // Initially show modal?\n\n if (this[MODEL_PROP_NAME] === true) {\n this.$nextTick(this.show);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n modalManager.unregisterModal(this);\n this.setObserver(false);\n\n if (this.isVisible) {\n this.isVisible = false;\n this.isShow = false;\n this.isTransitioning = false;\n }\n },\n methods: {\n setObserver: function setObserver() {\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n this.$_observer = observeDom(this.$refs.content, this.checkModalOverflow.bind(this), OBSERVER_CONFIG);\n }\n },\n // Private method to update the v-model\n updateModel: function updateModel(value) {\n if (value !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, value);\n }\n },\n // Private method to create a BvModalEvent object\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvModalEvent(type, _objectSpread(_objectSpread({\n // Default options\n cancelable: false,\n target: this.$refs.modal || this.$el || null,\n relatedTarget: null,\n trigger: null\n }, options), {}, {\n // Options that can't be overridden\n vueTarget: this,\n componentId: this.modalId\n }));\n },\n // Public method to show modal\n show: function show() {\n if (this.isVisible || this.isOpening) {\n // If already open, or in the process of opening, do nothing\n\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.isClosing) {\n // If we are in the process of closing, wait until hidden before re-opening\n\n /* istanbul ignore next */\n this.$once(EVENT_NAME_HIDDEN, this.show);\n /* istanbul ignore next */\n\n return;\n }\n\n this.isOpening = true; // Set the element to return focus to when closed\n\n this.$_returnFocus = this.$_returnFocus || this.getActiveElement();\n var showEvent = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvent); // Don't show if canceled\n\n if (showEvent.defaultPrevented || this.isVisible) {\n this.isOpening = false; // Ensure the v-model reflects the current state\n\n this.updateModel(false);\n return;\n } // Show the modal\n\n\n this.doShow();\n },\n // Public method to hide modal\n hide: function hide() {\n var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (!this.isVisible || this.isClosing) {\n /* istanbul ignore next */\n return;\n }\n\n this.isClosing = true;\n var hideEvent = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: trigger !== TRIGGER_FORCE,\n trigger: trigger || null\n }); // We emit specific event for one of the three built-in buttons\n\n if (trigger === BUTTON_OK) {\n this.$emit(EVENT_NAME_OK, hideEvent);\n } else if (trigger === BUTTON_CANCEL) {\n this.$emit(EVENT_NAME_CANCEL, hideEvent);\n } else if (trigger === BUTTON_CLOSE) {\n this.$emit(EVENT_NAME_CLOSE, hideEvent);\n }\n\n this.emitEvent(hideEvent); // Hide if not canceled\n\n if (hideEvent.defaultPrevented || !this.isVisible) {\n this.isClosing = false; // Ensure v-model reflects current state\n\n this.updateModel(true);\n return;\n } // Stop observing for content changes\n\n\n this.setObserver(false); // Trigger the hide transition\n\n this.isVisible = false; // Update the v-model\n\n this.updateModel(false);\n },\n // Public method to toggle modal visibility\n toggle: function toggle(triggerEl) {\n if (triggerEl) {\n this.$_returnFocus = triggerEl;\n }\n\n if (this.isVisible) {\n this.hide(TRIGGER_TOGGLE);\n } else {\n this.show();\n }\n },\n // Private method to get the current document active element\n getActiveElement: function getActiveElement() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n var activeElement = _getActiveElement(IS_BROWSER ? [document.body] : []); // Preset the fallback return focus value if it is not set\n // `document.activeElement` should be the trigger element that was clicked or\n // in the case of using the v-model, which ever element has current focus\n // Will be overridden by some commands such as toggle, etc.\n // Note: On IE 11, `document.activeElement` may be `null`\n // So we test it for truthiness first\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n\n\n return activeElement && activeElement.focus ? activeElement : null;\n },\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this = this;\n\n /* istanbul ignore next: commenting out for now until we can test stacking */\n if (modalManager.modalsAreOpen && this.noStacking) {\n // If another modal(s) is already open, wait for it(them) to close\n this.listenOnRootOnce(getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN), this.doShow);\n return;\n }\n\n modalManager.registerModal(this); // Place modal in DOM\n\n this.isHidden = false;\n this.$nextTick(function () {\n // We do this in `$nextTick()` to ensure the modal is in DOM first\n // before we show it\n _this.isVisible = true;\n _this.isOpening = false; // Update the v-model\n\n _this.updateModel(true);\n\n _this.$nextTick(function () {\n // Observe changes in modal content and adjust if necessary\n // In a `$nextTick()` in case modal content is lazy\n _this.setObserver(true);\n });\n });\n },\n // Transition handlers\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n var _this2 = this;\n\n this.isBlock = true; // We add the `show` class 1 frame later\n // `requestAF()` runs the callback before the next repaint, so we need\n // two calls to guarantee the next frame has been rendered\n\n requestAF(function () {\n requestAF(function () {\n _this2.isShow = true;\n });\n });\n },\n onAfterEnter: function onAfterEnter() {\n var _this3 = this;\n\n this.checkModalOverflow();\n this.isTransitioning = false; // We use `requestAF()` to allow transition hooks to complete\n // before passing control over to the other handlers\n // This will allow users to not have to use `$nextTick()` or `requestAF()`\n // when trying to pre-focus an element\n\n requestAF(function () {\n _this3.emitEvent(_this3.buildEvent(EVENT_NAME_SHOWN));\n\n _this3.setEnforceFocus(true);\n\n _this3.$nextTick(function () {\n // Delayed in a `$nextTick()` to allow users time to pre-focus\n // an element if the wish\n _this3.focusFirst();\n });\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n this.setResizeEvent(false);\n this.setEnforceFocus(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.isShow = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this4 = this;\n\n this.isBlock = false;\n this.isTransitioning = false;\n this.isModalOverflowing = false;\n this.isHidden = true;\n this.$nextTick(function () {\n _this4.isClosing = false;\n modalManager.unregisterModal(_this4);\n\n _this4.returnFocusTo(); // TODO: Need to find a way to pass the `trigger` property\n // to the `hidden` event, not just only the `hide` event\n\n\n _this4.emitEvent(_this4.buildEvent(EVENT_NAME_HIDDEN));\n });\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type; // We emit on `$root` first in case a global listener wants to cancel\n // the event first before the instance emits its event\n\n this.emitOnRoot(getRootEventName(NAME_MODAL, type), bvEvent, bvEvent.componentId);\n this.$emit(type, bvEvent);\n },\n // UI event handlers\n onDialogMousedown: function onDialogMousedown() {\n var _this5 = this;\n\n // Watch to see if the matching mouseup event occurs outside the dialog\n // And if it does, cancel the clickOut handler\n var modal = this.$refs.modal;\n\n var onceModalMouseup = function onceModalMouseup(event) {\n eventOff(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n\n if (event.target === modal) {\n _this5.ignoreBackdropClick = true;\n }\n };\n\n eventOn(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n },\n onClickOut: function onClickOut(event) {\n if (this.ignoreBackdropClick) {\n // Click was initiated inside the modal content, but finished outside.\n // Set by the above onDialogMousedown handler\n this.ignoreBackdropClick = false;\n return;\n } // Do nothing if not visible, backdrop click disabled, or element\n // that generated click event is no longer in document body\n\n\n if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, event.target)) {\n return;\n } // If backdrop clicked, hide modal\n\n\n if (!contains(this.$refs.content, event.target)) {\n this.hide(TRIGGER_BACKDROP);\n }\n },\n onOk: function onOk() {\n this.hide(BUTTON_OK);\n },\n onCancel: function onCancel() {\n this.hide(BUTTON_CANCEL);\n },\n onClose: function onClose() {\n this.hide(BUTTON_CLOSE);\n },\n onEsc: function onEsc(event) {\n // If ESC pressed, hide modal\n if (event.keyCode === CODE_ESC && this.isVisible && !this.noCloseOnEsc) {\n this.hide(TRIGGER_ESC);\n }\n },\n // Document focusin listener\n focusHandler: function focusHandler(event) {\n // If focus leaves modal content, bring it back\n var content = this.$refs.content;\n var target = event.target;\n\n if (this.noEnforceFocus || !this.isTop || !this.isVisible || !content || document === target || contains(content, target) || this.computeIgnoreEnforceFocusSelector && closest(this.computeIgnoreEnforceFocusSelector, target, true)) {\n return;\n }\n\n var tabables = getTabables(this.$refs.content);\n var bottomTrap = this.$refs['bottom-trap'];\n var topTrap = this.$refs['top-trap'];\n\n if (bottomTrap && target === bottomTrap) {\n // If user pressed TAB out of modal into our bottom trab trap element\n // Find the first tabable element in the modal content and focus it\n if (attemptFocus(tabables[0])) {\n // Focus was successful\n return;\n }\n } else if (topTrap && target === topTrap) {\n // If user pressed CTRL-TAB out of modal and into our top tab trap element\n // Find the last tabable element in the modal content and focus it\n if (attemptFocus(tabables[tabables.length - 1])) {\n // Focus was successful\n return;\n }\n } // Otherwise focus the modal content container\n\n\n attemptFocus(content, {\n preventScroll: true\n });\n },\n // Turn on/off focusin listener\n setEnforceFocus: function setEnforceFocus(on) {\n this.listenDocument(on, 'focusin', this.focusHandler);\n },\n // Resize listener\n setResizeEvent: function setResizeEvent(on) {\n this.listenWindow(on, 'resize', this.checkModalOverflow);\n this.listenWindow(on, 'orientationchange', this.checkModalOverflow);\n },\n // Root listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.$_returnFocus = triggerEl || this.getActiveElement();\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.modalId) {\n this.hide('event');\n }\n },\n toggleHandler: function toggleHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.toggle(triggerEl);\n }\n },\n modalListener: function modalListener(bvEvent) {\n // If another modal opens, close this one if stacking not permitted\n if (this.noStacking && bvEvent.vueTarget !== this) {\n this.hide();\n }\n },\n // Focus control handlers\n focusFirst: function focusFirst() {\n var _this6 = this;\n\n // Don't try and focus if we are SSR\n if (IS_BROWSER) {\n requestAF(function () {\n var modal = _this6.$refs.modal;\n var content = _this6.$refs.content;\n\n var activeElement = _this6.getActiveElement(); // If the modal contains the activeElement, we don't do anything\n\n\n if (modal && content && !(activeElement && contains(content, activeElement))) {\n var ok = _this6.$refs['ok-button'];\n var cancel = _this6.$refs['cancel-button'];\n var close = _this6.$refs['close-button']; // Focus the appropriate button or modal content wrapper\n\n var autoFocus = _this6.autoFocusButton;\n /* istanbul ignore next */\n\n var el = autoFocus === BUTTON_OK && ok ? ok.$el || ok : autoFocus === BUTTON_CANCEL && cancel ? cancel.$el || cancel : autoFocus === BUTTON_CLOSE && close ? close.$el || close : content; // Focus the element\n\n attemptFocus(el);\n\n if (el === content) {\n // Make sure top of modal is showing (if longer than the viewport)\n _this6.$nextTick(function () {\n modal.scrollTop = 0;\n });\n }\n }\n });\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer `returnFocus` prop over event specified\n // `return_focus` value\n var el = this.returnFocus || this.$_returnFocus || null;\n this.$_returnFocus = null;\n this.$nextTick(function () {\n // Is el a string CSS selector?\n el = isString(el) ? select(el) : el;\n\n if (el) {\n // Possibly could be a component reference\n el = el.$el || el;\n attemptFocus(el);\n }\n });\n },\n checkModalOverflow: function checkModalOverflow() {\n if (this.isVisible) {\n var modal = this.$refs.modal;\n this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n }\n },\n makeModal: function makeModal(h) {\n // Modal header\n var $header = h();\n\n if (!this.hideHeader) {\n // TODO: Rename slot to `header` and deprecate `modal-header`\n var $modalHeader = this.normalizeSlot(SLOT_NAME_MODAL_HEADER, this.slotScope);\n\n if (!$modalHeader) {\n var $closeButton = h();\n\n if (!this.hideHeaderClose) {\n $closeButton = h(BButtonClose, {\n props: {\n content: this.headerCloseContent,\n disabled: this.isTransitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerCloseVariant || this.headerTextVariant\n },\n on: {\n click: this.onClose\n },\n ref: 'close-button'\n }, // TODO: Rename slot to `header-close` and deprecate `modal-header-close`\n [this.normalizeSlot(SLOT_NAME_MODAL_HEADER_CLOSE)]);\n }\n\n $modalHeader = [h(this.titleTag, {\n staticClass: 'modal-title',\n class: this.titleClasses,\n attrs: {\n id: this.modalTitleId\n },\n // TODO: Rename slot to `title` and deprecate `modal-title`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) ? {} : htmlOrText(this.titleHtml, this.title)\n }, // TODO: Rename slot to `title` and deprecate `modal-title`\n this.normalizeSlot(SLOT_NAME_MODAL_TITLE, this.slotScope)), $closeButton];\n }\n\n $header = h(this.headerTag, {\n staticClass: 'modal-header',\n class: this.headerClasses,\n attrs: {\n id: this.modalHeaderId\n },\n ref: 'header'\n }, [$modalHeader]);\n } // Modal body\n\n\n var $body = h('div', {\n staticClass: 'modal-body',\n class: this.bodyClasses,\n attrs: {\n id: this.modalBodyId\n },\n ref: 'body'\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope)); // Modal footer\n\n var $footer = h();\n\n if (!this.hideFooter) {\n // TODO: Rename slot to `footer` and deprecate `modal-footer`\n var $modalFooter = this.normalizeSlot(SLOT_NAME_MODAL_FOOTER, this.slotScope);\n\n if (!$modalFooter) {\n var $cancelButton = h();\n\n if (!this.okOnly) {\n $cancelButton = h(BButton, {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_CANCEL) ? {} : htmlOrText(this.cancelTitleHtml, this.cancelTitle),\n on: {\n click: this.onCancel\n },\n ref: 'cancel-button'\n }, // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n this.normalizeSlot(SLOT_NAME_MODAL_CANCEL));\n }\n\n var $okButton = h(BButton, {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_OK) ? {} : htmlOrText(this.okTitleHtml, this.okTitle),\n on: {\n click: this.onOk\n },\n ref: 'ok-button'\n }, // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n this.normalizeSlot(SLOT_NAME_MODAL_OK));\n $modalFooter = [$cancelButton, $okButton];\n }\n\n $footer = h(this.footerTag, {\n staticClass: 'modal-footer',\n class: this.footerClasses,\n attrs: {\n id: this.modalFooterId\n },\n ref: 'footer'\n }, [$modalFooter]);\n } // Assemble modal content\n\n\n var $modalContent = h('div', {\n staticClass: 'modal-content',\n class: this.contentClass,\n attrs: {\n id: this.modalContentId,\n tabindex: '-1'\n },\n ref: 'content'\n }, [$header, $body, $footer]); // Tab traps to prevent page from scrolling to next element in\n // tab index during enforce-focus tab cycle\n\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.isVisible && !this.noEnforceFocus) {\n $tabTrapTop = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'top-trap'\n });\n $tabTrapBottom = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'bottom-trap'\n });\n } // Modal dialog wrapper\n\n\n var $modalDialog = h('div', {\n staticClass: 'modal-dialog',\n class: this.dialogClasses,\n on: {\n mousedown: this.onDialogMousedown\n },\n ref: 'dialog'\n }, [$tabTrapTop, $modalContent, $tabTrapBottom]); // Modal\n\n var $modal = h('div', {\n staticClass: 'modal',\n class: this.modalClasses,\n style: this.modalStyles,\n attrs: this.computedModalAttrs,\n on: {\n keydown: this.onEsc,\n click: this.onClickOut\n },\n directives: [{\n name: 'show',\n value: this.isVisible\n }],\n ref: 'modal'\n }, [$modalDialog]); // Wrap modal in transition\n // Sadly, we can't use `BVTransition` here due to the differences in\n // transition durations for `.modal` and `.modal-dialog`\n // At least until https://github.com/vuejs/vue/issues/9986 is resolved\n\n $modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n beforeEnter: this.onBeforeEnter,\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$modal]); // Modal backdrop\n\n var $backdrop = h();\n\n if (!this.hideBackdrop && this.isVisible) {\n $backdrop = h('div', {\n staticClass: 'modal-backdrop',\n attrs: {\n id: this.modalBackdropId\n }\n }, // TODO: Rename slot to `backdrop` and deprecate `modal-backdrop`\n this.normalizeSlot(SLOT_NAME_MODAL_BACKDROP));\n }\n\n $backdrop = h(BVTransition, {\n props: {\n noFade: this.noFade\n }\n }, [$backdrop]); // Assemble modal and backdrop in an outer
\n\n return h('div', {\n style: this.modalOuterStyle,\n attrs: this.computedAttrs,\n key: \"modal-outer-\".concat(this[COMPONENT_UID_KEY])\n }, [$modal, $backdrop]);\n }\n },\n render: function render(h) {\n if (this.static) {\n return this.lazy && this.isHidden ? h() : this.makeModal(h);\n } else {\n return this.isHidden ? h() : h(BVTransporter, [this.makeModal(h)]);\n }\n }\n});","import { isVue3 } from '../vue';\nexport var getInstanceFromDirective = function getInstanceFromDirective(vnode, bindings) {\n return isVue3 ? bindings.instance : vnode.context;\n};","import { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { getAttr, hasAttr, isDisabled, matches, select, setAttr } from '../../utils/dom';\nimport { getRootActionEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { getEventRoot } from '../../utils/get-event-root';\nimport { getInstanceFromDirective } from '../../utils/get-instance-from-directive'; // Emitted show event for modal\n\nvar ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW); // Prop name we use to store info on root element\n\nvar PROPERTY = '__bv_modal_directive__';\n\nvar getTarget = function getTarget(_ref) {\n var _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? {} : _ref$modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Try value, then arg, otherwise pick last modifier\n return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\n\nvar getTriggerElement = function getTriggerElement(el) {\n // If root element is a dropdown-item or nav-item, we\n // need to target the inner link or button instead\n return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\n\nvar setRole = function setRole(trigger) {\n // Ensure accessibility on non button elements\n if (trigger && trigger.tagName !== 'BUTTON') {\n // Only set a role if the trigger element doesn't have one\n if (!hasAttr(trigger, 'role')) {\n setAttr(trigger, 'role', 'button');\n } // Add a tabindex is not a button or link, and tabindex is not provided\n\n\n if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n setAttr(trigger, 'tabindex', '0');\n }\n }\n};\n\nvar bind = function bind(el, binding, vnode) {\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target && trigger) {\n var handler = function handler(event) {\n // `currentTarget` is the element with the listener on it\n var currentTarget = event.currentTarget;\n\n if (!isDisabled(currentTarget)) {\n var type = event.type;\n var key = event.keyCode; // Open modal only if trigger is not disabled\n\n if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n }\n }\n };\n\n el[PROPERTY] = {\n handler: handler,\n target: target,\n trigger: trigger\n }; // If element is not a button, we add `role=\"button\"` for accessibility\n\n setRole(trigger); // Listen for click events\n\n eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n // If trigger isn't a button but has role button,\n // we also listen for `keydown.space` && `keydown.enter`\n eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar unbind = function unbind(el) {\n var oldProp = el[PROPERTY] || {};\n var trigger = oldProp.trigger;\n var handler = oldProp.handler;\n\n if (trigger && handler) {\n eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n delete el[PROPERTY];\n};\n\nvar componentUpdated = function componentUpdated(el, binding, vnode) {\n var oldProp = el[PROPERTY] || {};\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target !== oldProp.target || trigger !== oldProp.trigger) {\n // We bind and rebind if the target or trigger changes\n unbind(el, binding, vnode);\n bind(el, binding, vnode);\n } // If trigger element is not a button, ensure `role=\"button\"`\n // is still set for accessibility\n\n\n setRole(trigger);\n};\n\nvar updated = function updated() {};\n/*\n * Export our directive\n */\n\n\nexport var VBModal = {\n inserted: componentUpdated,\n updated: updated,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","import { RX_ARRAY_NOTATION } from '../constants/regex';\nimport { identity } from './identity';\nimport { isArray, isNull, isObject, isUndefinedOrNull } from './inspect';\n/**\n * Get property defined by dot/array notation in string, returns undefined if not found\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @return {*}\n */\n\nexport var getRaw = function getRaw(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\n\n if (!path || !isObject(obj)) {\n return defaultValue;\n } // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n if (path in obj) {\n return obj[path];\n } // Handle string array notation (numeric indices only)\n\n\n path = String(path).replace(RX_ARRAY_NOTATION, '.$1');\n var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots\n\n if (steps.length === 0) {\n return defaultValue;\n } // Traverse path in object to find result\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n return steps.every(function (step) {\n return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]);\n }) ? obj : isNull(obj) ? null : defaultValue;\n};\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\n\nexport var get = function get(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var value = getRaw(obj, path);\n return isUndefinedOrNull(value) ? defaultValue : value;\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { Vue as OurVue } from '../vue';\nimport { NAME, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { getRaw } from './get';\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect';\nimport { getOwnPropertyNames } from './object';\nimport { warn } from './warn'; // Config manager class\n\nvar BvConfig = /*#__PURE__*/function () {\n function BvConfig() {\n _classCallCheck(this, BvConfig);\n\n this.$_config = {};\n } // Method to merge in user config parameters\n\n\n _createClass(BvConfig, [{\n key: \"setConfig\",\n value: function setConfig() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* istanbul ignore next */\n if (!isPlainObject(config)) {\n return;\n }\n\n var configKeys = getOwnPropertyNames(config);\n configKeys.forEach(function (key) {\n /* istanbul ignore next */\n var subConfig = config[key];\n\n if (key === 'breakpoints') {\n /* istanbul ignore if */\n if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) {\n return !isString(b) || b.length === 0;\n })) {\n warn('\"breakpoints\" must be an array of at least 2 breakpoint names', NAME);\n } else {\n _this.$_config[key] = cloneDeep(subConfig);\n }\n } else if (isPlainObject(subConfig)) {\n // Component prop defaults\n _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) {\n if (!isUndefined(subConfig[prop])) {\n config[prop] = cloneDeep(subConfig[prop]);\n }\n\n return config;\n }, _this.$_config[key] || {});\n }\n });\n } // Clear the config\n\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n this.$_config = {};\n } // Returns a deep copy of the user config\n\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return cloneDeep(this.$_config);\n } // Returns a deep copy of the config value\n\n }, {\n key: \"getConfigValue\",\n value: function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return cloneDeep(getRaw(this.$_config, key, defaultValue));\n }\n }]);\n\n return BvConfig;\n}(); // Method for applying a global config\n\n\nexport var setConfig = function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OurVue;\n // Ensure we have a `$bvConfig` Object on the Vue prototype\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] = Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig(); // Apply the config values\n\n Vue.prototype[PROP_NAME].setConfig(config);\n}; // Method for resetting the user config\n// Exported for testing purposes only\n\nexport var resetConfig = function resetConfig() {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig();\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue as OurVue } from '../vue';\nimport { HAS_WINDOW_SUPPORT, IS_JSDOM } from '../constants/env';\nimport { setConfig } from './config-set';\nimport { warn } from './warn';\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\n\nexport var checkMultipleVue = function () {\n var checkMultipleVueWarned = false;\n var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\\n');\n return function (Vue) {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !IS_JSDOM) {\n warn(MULTIPLE_VUE_WARNING);\n }\n\n checkMultipleVueWarned = true;\n };\n}();\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactory = function installFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref.components,\n directives = _ref.directives,\n plugins = _ref.plugins;\n\n var install = function install(Vue) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n setConfig(config, Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin install factory function (no plugin config option).\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactoryNoConfig = function installFactoryNoConfig() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref2.components,\n directives = _ref2.directives,\n plugins = _ref2.plugins;\n\n var install = function install(Vue) {\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactory = function pluginFactory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactory(options)\n });\n};\n/**\n * Plugin object factory function (no config option).\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactoryNoConfig = function pluginFactoryNoConfig() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactoryNoConfig(options)\n });\n};\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\n\nexport var registerPlugins = function registerPlugins(Vue) {\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin]);\n }\n }\n};\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\n\nexport var registerComponent = function registerComponent(Vue, name, def) {\n if (Vue && name && def) {\n Vue.component(name, def);\n }\n};\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\n\nexport var registerComponents = function registerComponents(Vue) {\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n};\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\n\nexport var registerDirective = function registerDirective(Vue, name, def) {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def);\n }\n};\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\n\nexport var registerDirectives = function registerDirectives(Vue) {\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n};\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\n\nexport var vueUse = function vueUse(VuePlugin) {\n /* istanbul ignore next */\n if (HAS_WINDOW_SUPPORT && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n /* istanbul ignore next */\n\n\n if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {\n window[VuePlugin.NAME] = VuePlugin;\n }\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Plugin for adding `$bvModal` property to all Vue instances\nimport { NAME_MODAL, NAME_MSG_BOX } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootActionEventName } from '../../../utils/events';\nimport { isUndefined, isFunction } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, hasOwnProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn';\nimport { createNewChildComponent } from '../../../utils/create-new-child-component';\nimport { getEventRoot } from '../../../utils/get-event-root';\nimport { BModal, props as modalProps } from '../modal'; // --- Constants ---\n\nvar PROP_NAME = '$bvModal';\nvar PROP_NAME_PRIV = '_bv__modal'; // Base modal 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(modalProps, ['busy', 'lazy', 'noStacking', 'static', 'visible'])))); // Fallback event resolver (returns undefined)\n\nvar defaultResolver = function defaultResolver() {}; // Map prop names to modal slot names\n\n\nvar propsToSlots = {\n msgBoxContent: 'default',\n title: 'modal-title',\n okTitle: 'modal-ok',\n cancelTitle: 'modal-cancel'\n}; // --- Helper methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvModal` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component that extends BModal\n // which self-destructs after hidden\n // @vue/component\n var BMsgBox = Vue.extend({\n name: NAME_MSG_BOX,\n extends: BModal,\n mixins: [useParentMixin],\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 _this.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.bvParent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy); // Self destruct on route change\n\n /* istanbul ignore if */\n\n if (this.$router && this.$route) {\n // Destroy ourselves if route changes\n\n /* istanbul ignore next */\n this.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, this.$watch('$router', handleDestroy));\n } // Show the `BMsgBox`\n\n\n this.show();\n }\n }); // Method to generate the on-demand modal message box\n // Returns a promise that resolves to a value returned by the resolve\n\n var asyncMsgBox = function asyncMsgBox(parent, props) {\n var resolver = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultResolver;\n\n if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BMsgBox` component\n // We set parent as the local VM so these modals can emit events on\n // the app `$root`, as needed by things like tooltips and popovers\n // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n\n\n var msgBox = createNewChildComponent(parent, BMsgBox, {\n // Preset the prop values\n propsData: _objectSpread(_objectSpread(_objectSpread({}, filterOptions(getComponentConfig(NAME_MODAL))), {}, {\n // Defaults that user can override\n hideHeaderClose: true,\n hideHeader: !(props.title || props.titleHtml)\n }, omit(props, keys(propsToSlots))), {}, {\n // Props that can't be overridden\n lazy: false,\n busy: false,\n visible: false,\n noStacking: false,\n noEnforceFocus: false\n })\n }); // Convert certain props to scoped slots\n\n keys(propsToSlots).forEach(function (prop) {\n if (!isUndefined(props[prop])) {\n // Can be a string, or array of VNodes.\n // Alternatively, user can use HTML version of prop to pass an HTML string.\n msgBox.$slots[propsToSlots[prop]] = concat(props[prop]);\n }\n }); // Return a promise that resolves when hidden, or rejects on destroyed\n\n return new Promise(function (resolve, reject) {\n var resolved = false;\n msgBox.$once(HOOK_EVENT_NAME_DESTROYED, function () {\n if (!resolved) {\n /* istanbul ignore next */\n reject(new Error('BootstrapVue MsgBox destroyed before resolve'));\n }\n });\n msgBox.$on(EVENT_NAME_HIDE, function (bvModalEvent) {\n if (!bvModalEvent.defaultPrevented) {\n var result = resolver(bvModalEvent); // If resolver didn't cancel hide, we resolve\n\n if (!bvModalEvent.defaultPrevented) {\n resolved = true;\n resolve(result);\n }\n }\n }); // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n msgBox.$mount(div);\n });\n }; // Private utility method to open a user defined message box and returns a promise.\n // Not to be used directly by consumers, as this method may change calling syntax\n\n\n var makeMsgBox = function makeMsgBox(parent, content) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var resolver = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!content || warnNoPromiseSupport(PROP_NAME) || warnNotClient(PROP_NAME) || !isFunction(resolver)) {\n /* istanbul ignore next */\n return;\n }\n\n return asyncMsgBox(parent, _objectSpread(_objectSpread({}, filterOptions(options)), {}, {\n msgBoxContent: content\n }), resolver);\n }; // BvModal instance class\n\n\n var BvModal = /*#__PURE__*/function () {\n function BvModal(vm) {\n _classCallCheck(this, BvModal);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: getEventRoot(vm)\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Instance methods ---\n // Show modal with the specified ID args are for future use\n\n\n _createClass(BvModal, [{\n key: \"show\",\n value: function show(id) {\n if (id && this._root) {\n var _this$_root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$_root = this._root).$emit.apply(_this$_root, [getRootActionEventName(NAME_MODAL, 'show'), id].concat(args));\n }\n } // Hide modal with the specified ID args are for future use\n\n }, {\n key: \"hide\",\n value: function hide(id) {\n if (id && this._root) {\n var _this$_root2;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_this$_root2 = this._root).$emit.apply(_this$_root2, [getRootActionEventName(NAME_MODAL, 'hide'), id].concat(args));\n }\n } // The following methods require Promise support!\n // IE 11 and others do not support Promise natively, so users\n // should have a Polyfill loaded (which they need anyways for IE 11 support)\n // Open a message box with OK button only and returns a promise\n\n }, {\n key: \"msgBoxOk\",\n value: function msgBoxOk(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Pick the modal props we support from options\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: true,\n okDisabled: false,\n hideFooter: false,\n msgBoxContent: message\n });\n\n return makeMsgBox(this._vm, message, props, function () {\n // Always resolve to true for OK\n return true;\n });\n } // Open a message box modal with OK and CANCEL buttons\n // and returns a promise\n\n }, {\n key: \"msgBoxConfirm\",\n value: function msgBoxConfirm(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Set the modal props we support from options\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: false,\n okDisabled: false,\n cancelDisabled: false,\n hideFooter: false\n });\n\n return makeMsgBox(this._vm, message, props, function (bvModalEvent) {\n var trigger = bvModalEvent.trigger;\n return trigger === 'ok' ? true : trigger === 'cancel' ? false : null;\n });\n }\n }]);\n\n return BvModal;\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 `BvModal` for each VM\n this[PROP_NAME_PRIV] = new BvModal(this);\n }\n }); // Define our read-only `$bvModal` 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_MODAL);\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVModalPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BModal } from './modal';\nimport { VBModal } from '../../directives/modal/modal';\nimport { BVModalPlugin } from './helpers/bv-modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar ModalPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BModal: BModal\n },\n directives: {\n VBModal: VBModal\n },\n // $bvModal injection\n plugins: {\n BVModalPlugin: BVModalPlugin\n }\n});\nexport { ModalPlugin, BModal };"],"names":["e","Object","assign","t","r","s","arguments","length","a","prototype","hasOwnProperty","call","apply","this","kebab","styleProp","styleList","toUpperCase","c","o","split","n","i","l","trim","replace","keys","Array","isArray","style","y","concat","p","f","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_typeof","Symbol","iterator","constructor","COMPONENT_UID_KEY","isVue3","ALLOWED_FIELDS_IN_DATA","extend","originalExtend","KNOWN_COMPONENTS","originalVModelDynamicCreated","originalVModelDynamicBeforeUpdate","el","binding","vnode","_assign","definition","render","__alreadyPatched","originalRender","h","patchedH","tag","dataObjOrChildren","rawSlots","slots","undefined","Boolean","isTag","includes","isSecondArgumentDataObject","attrs","props","restData","normalizedData","scopedSlots","$hasNormal","functional","_ctx$children","_ctx$children$default","ctx","patchedCtx","data","startsWith","IGNORED_CHILDREN_KEYS","children","default","k","on","listeners","bind","NAME_BUTTON","NAME_BUTTON_CLOSE","NAME_LINK","NAME_MODAL","NAME_MSG_BOX","NAME_TRANSITION","NAME_TRANSPORTER","NAME_TRANSPORTER_TARGET","window","HAS_DOCUMENT_SUPPORT","document","HAS_NAVIGATOR_SUPPORT","navigator","HAS_PROMISE_SUPPORT","Promise","HAS_MUTATION_OBSERVER_SUPPORT","MutationObserver","WebKitMutationObserver","MozMutationObserver","IS_BROWSER","NAVIGATOR","USER_AGENT","userAgent","toLowerCase","IS_JSDOM","HAS_PASSIVE_EVENT_SUPPORT","test","passiveEventSupported","options","passive","addEventListener","removeEventListener","_unused","EVENT_NAME_CANCEL","documentElement","maxTouchPoints","PointerEvent","MSPointerEvent","IntersectionObserverEntry","EVENT_NAME_CHANGE","EVENT_NAME_CLICK","EVENT_NAME_CLOSE","EVENT_NAME_HIDDEN","EVENT_NAME_HIDE","EVENT_NAME_INPUT","EVENT_NAME_OK","EVENT_NAME_SHOW","EVENT_NAME_SHOWN","EVENT_NAME_TOGGLE","HOOK_EVENT_NAME_BEFORE_DESTROY","HOOK_EVENT_NAME_DESTROYED","ROOT_EVENT_NAME_PREFIX","ROOT_EVENT_NAME_SEPARATOR","EVENT_OPTIONS_PASSIVE","EVENT_OPTIONS_NO_CAPTURE","capture","CODE_ENTER","CODE_ESC","CODE_SPACE","PROP_TYPE_ANY","PROP_TYPE_ARRAY","PROP_TYPE_BOOLEAN","PROP_TYPE_FUNCTION","Date","Function","PROP_TYPE_OBJECT","PROP_TYPE_STRING","RegExp","String","PROP_TYPE_ARRAY_FUNCTION","PROP_TYPE_ARRAY_OBJECT_STRING","PROP_TYPE_ARRAY_STRING","PROP_TYPE_OBJECT_STRING","_classCallCheck","instance","Constructor","TypeError","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Map","_isNativeFunction","has","get","set","Wrapper","_construct","Parent","args","sham","Proxy","valueOf","fn","toString","setPrototypeOf","__proto__","getPrototypeOf","Element","_Object","_super","HTMLElement","_Element","_super2","SLOT_NAME_DEFAULT","SLOT_NAME_MODAL_BACKDROP","SLOT_NAME_MODAL_CANCEL","SLOT_NAME_MODAL_FOOTER","SLOT_NAME_MODAL_HEADER","SLOT_NAME_MODAL_HEADER_CLOSE","SLOT_NAME_MODAL_OK","SLOT_NAME_MODAL_TITLE","from","arrayIncludes","array","_len","_key","toType","isNull","isBoolean","isPlainObject","isDate","isEvent","Event","RX_ARRAY_NOTATION","RX_BV_PREFIX","RX_HYPHENATE","RX_ENCODED_COMMA","RX_ENCODE_REVERSE","kebabCase","str","val","spaces","JSON","stringify","ELEMENT_PROTO","TABABLE_SELECTOR","map","join","matchesEl","matches","msMatchesSelector","webkitMatchesSelector","closestEl","closest","sel","parentElement","parentNode","nodeType","Node","ELEMENT_NODE","requestAF","cb","setTimeout","MutationObs","removeNode","removeChild","isElement","excludes","activeElement","some","name","isActiveElement","isVisible","contains","getStyle","bcr","getBCR","height","width","isDisabled","disabled","hasAttr","hasClass","selectAll","selector","root","querySelectorAll","querySelector","includeRoot","parent","child","addClass","className","classList","add","removeClass","remove","setAttr","attr","setAttribute","removeAttr","removeAttribute","getAttr","getAttribute","hasAttribute","setStyle","prop","getBoundingClientRect","getCS","getComputedStyle","getTabables","rootEl","tabIndex","attemptFocus","focus","attemptBlur","blur","_unused2","parseEventOptions","eventOn","eventName","handler","eventOff","stopEvent","event","_ref","_ref$preventDefault","preventDefault","_ref$propagation","propagation","_ref$immediatePropaga","immediatePropagation","stopPropagation","stopImmediatePropagation","getBaseEventName","getRootEventName","getRootActionEventName","actionName","htmlOrText","innerHTML","textContent","x","proto","optionalProps","descriptor","getOwnPropertyNames","omit","reduce","sortKeys","sort","readonlyDescriptor","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","slice","iter","len","arr2","cloneDeep","defaultValue","NAME","DEFAULT_BREAKPOINT","memoize","cache","argsKey","VueProto","getConfigValue","bvConfig","getComponentConfig","propKey","getBreakpoints","_getBreakpointsCached","getBreakpointsCached","breakpoints","makeProp","type","requiredOrValidator","validator","required","pluckProps","keysToPluck","objToPluck","transformFn","memo","makePropConfigurable","componentKey","makePropsConfigurable","makeModelMixin","_ref$type","_ref$defaultValue","_ref$validator","_ref$event","mixin","model","getEnv","fallback","env","process","getNoWarn","warn","message","console","warnNotClient","warnNoPromiseSupport","warnNoMutationObserverSupport","observeDom","callback","$el","obs","mutations","changed","mutation","TEXT_NODE","addedNodes","removedNodes","observe","childList","subtree","compareArrays","b","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","isEmpty","makePropWatcher","propName","newValue","oldValue","$delete","$data","$set","makePropCacheMixin","proxyPropName","watch","attrsMixinVue2","attrsMixinVue3","computed","bvAttrs","$attrs","attrsMixin","id","idMixin","localId_","safeId","suffix","mounted","_this","$nextTick","PROP","listenOnDocumentMixin","created","beforeDestroy","listenOffDocument","methods","registerDocumentListener","unregisterDocumentListener","listenDocument","listenOnDocument","getEventRoot","vm","$root","$options","bvEventRoot","listenOnRootMixin","listenOffRoot","registerRootListener","unregisterRootListener","listenOnRoot","$on","listenOnRootOnce","_this2","_callback","$once","$off","emitOnRoot","_this$bvEventRoot","$emit","listenOnWindowMixin","listenOffWindow","registerWindowListener","unregisterWindowListener","listenWindow","listenOnWindow","names","$scopedSlots","$slots","slot","scope","normalizeSlotMixin","hasNormalizedSlot","normalizeSlot","vNodes","useParentMixin","bvParent","$parent","getScopeId","_scopeId","scopedStyleMixin","mixins","scopedStyleAttrs","scopeId","safeVueInstance","ANCHOR_TAG","encodeReserveReplacer","charCodeAt","encode","encodeURIComponent","stringifyQueryObj","decodeURIComponent","query","results","value2","href","to","computeTag","thisOrParent","routerComponentName","hasRouter","$router","hasNuxt","$nuxt","computeRel","_ref2","rel","computeHref","_ref3","toFallback","path","hash","charAt","listenersMixinVue2","listenersMixinVue3","bvListeners","$listeners","beforeUpdate","listenersMixin","ROOT_EVENT_NAME_CLICKED","routerLinkProps","activeClass","append","exact","exactActiveClass","exactPath","exactPathActiveClass","routerTag","nuxtLinkProps","noPrefetch","prefetch","active","BLink","inheritAttrs","computedTag","isRouterLink","computedRel","computedHref","computedProps","computedAttrs","tabindex","computedListeners","click","onClick","_arguments","eventIsEvent","suppliedHandler","_event$currentTarget$","currentTarget","__vue__","class","linkProps","block","pill","pressed","size","squared","variant","handleFocus","isLink","isToggle","isButton","isNonStandardTag","computeClass","computeLinkProps","computeAttrs","button","link","toggle","nonStandardTag","hashLink","role","autocomplete","BButton","keydown","keyCode","focusin","focusout","componentData","staticClass","ariaLabel","content","textVariant","BButtonClose","domProps","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","appear","mode","noFade","transProps","BVTransition","appearClass","appearActiveClass","appearToClass","css","dataCopy","createNewChildComponent","Component","config","BVTransporterTarget","abstract","nodes","updatedNodes","destroyed","$nodes","text","container","BVTransporterVue2","immediate","unmountTarget","mountTarget","$_defaultFn","$_target","beforeMount","updated","updateTarget","getContainer","$container","createElement","appendChild","propsData","defaultFn","$destroy","BVTransporterVue3","BVTransporter","_defineProperties","_createClass","protoProps","staticProps","BvEvent","eventInit","Defaults","cancelable","nativeEvent","relatedTarget","vueTarget","componentId","defaultPrevented","_get","property","receiver","base","_superPropBase","desc","BvModalEvent","_BvEvent","trigger","toInteger","NaN","integer","parseInt","isNaN","float","parseFloat","DEFAULT_ZINDEX","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","SELECTOR_NAVBAR_TOGGLER","ModalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","body","resetScrollbar","updateModals","registerModal","modal","unregisterModal","index","splice","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","zIndex","clientWidth","isTop","_getBCR","left","right","innerWidth","_paddingChangedForModal","_marginChangedForModal","actualPadding","paddingRight","actualMargin","marginRight","modalManager","_makeModelMixin","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","TRIGGER_BACKDROP","TRIGGER_ESC","TRIGGER_FORCE","TRIGGER_TOGGLE","BUTTON_CANCEL","BUTTON_CLOSE","BUTTON_OK","BUTTONS","OBSERVER_CONFIG","characterData","attributes","attributeFilter","autoFocusButton","bodyBgVariant","bodyClass","bodyTextVariant","busy","buttonSize","cancelDisabled","cancelTitle","cancelTitleHtml","cancelVariant","centered","contentClass","dialogClass","footerBgVariant","footerBorderVariant","footerClass","footerTag","footerTextVariant","headerBgVariant","headerBorderVariant","headerClass","headerCloseContent","headerCloseLabel","headerCloseVariant","headerTag","headerTextVariant","hideBackdrop","hideFooter","hideHeader","hideHeaderClose","ignoreEnforceFocusSelector","lazy","modalClass","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","noStacking","okDisabled","okOnly","okTitle","okTitleHtml","okVariant","returnFocus","scrollable","static","title","titleClass","titleHtml","titleSrOnly","titleTag","BModal","isHidden","isTransitioning","isShow","isBlock","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","modalId","modalOuterId","modalHeaderId","modalBodyId","modalTitleId","modalContentId","modalFooterId","modalBackdropId","modalClasses","fade","show","modalStyles","sbWidth","paddingLeft","display","dialogClasses","headerClasses","titleClasses","bodyClasses","footerClasses","_ref4","modalOuterStyle","position","slotScope","cancel","onCancel","close","onClose","hide","ok","onOk","visible","computeIgnoreEnforceFocusSelector","computedModalAttrs","$_observer","$_returnFocus","showHandler","hideHandler","toggleHandler","modalListener","setObserver","disconnect","$refs","checkModalOverflow","updateModel","buildEvent","getActiveElement","showEvent","emitEvent","doShow","hideEvent","triggerEl","onBeforeEnter","setResizeEvent","onEnter","onAfterEnter","_this3","setEnforceFocus","focusFirst","onBeforeLeave","onLeave","onAfterLeave","_this4","returnFocusTo","bvEvent","onDialogMousedown","_this5","onceModalMouseup","onClickOut","onEsc","focusHandler","tabables","bottomTrap","topTrap","preventScroll","_this6","autoFocus","scrollTop","scrollHeight","clientHeight","makeModal","$header","$modalHeader","$closeButton","ref","$body","$footer","$modalFooter","$cancelButton","$okButton","$modalContent","$tabTrapTop","$tabTrapBottom","$modalDialog","mousedown","$modal","directives","beforeEnter","enter","afterEnter","beforeLeave","leave","afterLeave","$backdrop","getInstanceFromDirective","bindings","context","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","_ref$modifiers","modifiers","arg","reverse","getTriggerElement","setRole","tagName","unbind","oldProp","componentUpdated","VBModal","inserted","getRaw","steps","every","step","BvConfig","$_config","configKeys","subConfig","setConfig","Vue","checkMultipleVue","checkMultipleVueWarned","MULTIPLE_VUE_WARNING","installFactory","components","plugins","install","installed","registerComponents","registerDirectives","registerPlugins","pluginFactory","plugin","use","registerComponent","def","component","registerDirective","directive","PROP_NAME_PRIV","BASE_PROPS","defaultResolver","propsToSlots","msgBoxContent","filterOptions","BMsgBox","extends","handleDestroy","$route","$watch","asyncMsgBox","resolver","msgBox","resolve","reject","resolved","Error","bvModalEvent","$mount","makeMsgBox","BvModal","_vm","_root","_this$_root","_this$_root2","_len2","_key2","beforeCreate","BVModalPlugin","ModalPlugin"],"sourceRoot":""}