{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/button/button.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack:///./node_modules/babel-helper-vue-jsx-merge-props/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/link/link.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/index.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:///./node_modules/bootstrap-vue/esm/components/button/button-close.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","linkProps","href","default","to","props","block","disabled","pill","pressed","size","squared","tag","type","variant","handleFocus","event","isLink","isToggle","isButton","isNonStandardTag","computeClass","_ref","concat","computeLinkProps","computeAttrs","data","button","link","toggle","nonStandardTag","hashLink","role","attrs","tabindex","String","autocomplete","BButton","extend","name","functional","render","h","_ref2","listeners","children","on","keydown","keyCode","currentTarget","propagation","click","fn","focusin","focusout","componentData","staticClass","class","bind","footer","footerClass","footerHtml","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","domProps","html","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","imgSrc","required","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","overlay","$footer","hasFooterSlot","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","replace","blank","blankColor","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","BImg","join","title","titleTag","BCardTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","_typeof","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","_get","property","receiver","Reflect","get","base","_superPropBase","desc","call","hasOwnProperty","_getPrototypeOf","_inherits","subClass","superClass","create","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","result","Super","NewTarget","this","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Date","toString","e","getPrototypeOf","_BvEvent","BvModalEvent","_super","_this","eventInit","undefined","trigger","DEFAULT_ZINDEX","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","SELECTOR_NAVBAR_TOGGLER","ModalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","computed","modalCount","modalsAreOpen","watch","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","document","body","resetScrollbar","newValue","updateModals","methods","registerModal","modal","_this2","indexOf","$once","unregisterModal","index","splice","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","createElement","appendChild","zIndex","removeChild","clientWidth","_this3","isTop","_getBCR","window","innerWidth","_paddingChangedForModal","_marginChangedForModal","el","actualPadding","paddingRight","actualMargin","marginRight","modalManager","_makeModelMixin","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","TRIGGER_BACKDROP","TRIGGER_ESC","TRIGGER_FORCE","TRIGGER_TOGGLE","BUTTON_CANCEL","BUTTON_CLOSE","BUTTON_OK","BUTTONS","OBSERVER_CONFIG","subtree","childList","characterData","attributes","attributeFilter","id","ariaLabel","autoFocusButton","array","busy","buttonSize","cancelDisabled","cancelTitle","cancelTitleHtml","cancelVariant","centered","contentClass","dialogClass","headerBgVariant","headerBorderVariant","headerClass","headerCloseContent","headerCloseLabel","headerCloseVariant","headerTextVariant","hideBackdrop","hideFooter","hideHeader","hideHeaderClose","ignoreEnforceFocusSelector","lazy","modalClass","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","noFade","noStacking","okDisabled","okOnly","okTitle","okTitleHtml","okVariant","returnFocus","scrollable","static","titleClass","titleHtml","titleSrOnly","BModal","mixins","inheritAttrs","isHidden","isVisible","isTransitioning","isShow","isBlock","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","modalId","safeId","modalOuterId","modalHeaderId","modalBodyId","modalTitleId","modalContentId","modalFooterId","modalBackdropId","modalClasses","fade","show","modalStyles","sbWidth","paddingLeft","display","dialogClasses","headerClasses","titleClasses","bodyClasses","_ref3","footerClasses","_ref4","modalOuterStyle","position","cancel","onCancel","close","onClose","hide","ok","onOk","visible","computeIgnoreEnforceFocusSelector","identity","trim","computedAttrs","scopedStyleAttrs","bvAttrs","computedModalAttrs","hasNormalizedSlot","oldValue","created","$_observer","$_returnFocus","mounted","listenOnRoot","showHandler","hideHandler","toggleHandler","modalListener","$nextTick","beforeDestroy","setObserver","disconnect","$refs","content","checkModalOverflow","updateModel","$emit","buildEvent","options","cancelable","$el","relatedTarget","vueTarget","componentId","getActiveElement","showEvt","emitEvent","defaultPrevented","doShow","hideEvt","triggerEl","activeElement","focus","listenOnRootOnce","onBeforeEnter","setResizeEvent","onEnter","onAfterEnter","setEnforceFocus","focusFirst","onBeforeLeave","onLeave","onAfterLeave","_this4","returnFocusTo","bvEvent","emitOnRoot","onDialogMousedown","_this5","onceModalMouseup","onClickOut","onEsc","focusHandler","tabables","bottomTrap","topTrap","preventScroll","listenDocument","listenWindow","_this6","autoFocus","scrollTop","scrollHeight","documentElement","clientHeight","makeModal","$modalHeader","normalizeSlot","$closeButton","ref","$body","$modalFooter","$cancelButton","$okButton","$modalContent","$tabTrapTop","$tabTrapBottom","$modalDialog","mousedown","$modal","style","directives","enterClass","enterToClass","enterActiveClass","leaveClass","leaveActiveClass","leaveToClass","beforeEnter","enter","afterEnter","beforeLeave","leave","afterLeave","$backdrop","nestRE","mergeFn","a","b","module","exports","objs","reduce","aa","bb","nestedKey","temp","test","Array","isArray","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","n","slice","from","iter","len","arr2","ROOT_EVENT_NAME_CLICKED","routerLinkProps","activeClass","append","exact","exactActiveClass","routerTag","nuxtLinkProps","noPrefetch","prefetch","active","rel","routerComponentName","BLink","computedTag","isRouterLink","computedRel","computedHref","computedProps","computedListeners","bvListeners","onClick","_arguments","eventIsEvent","suppliedHandler","immediatePropagation","__vue__","handler","blur","BCardHeader","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","PROP_NAME","PROP_NAME_PRIV","BASE_PROPS","defaultResolver","propsToSlots","msgBoxContent","memo","Vue","BMsgBox","extends","destroyed","parentNode","handleDestroy","$destroy","$parent","$router","$route","$watch","asyncMsgBox","resolver","warn","msgBox","parent","propsData","Promise","resolve","reject","resolved","Error","$on","bvModalEvt","$mount","makeMsgBox","BvModal","vm","_vm","_root","$root","_this$_root","_len","args","_key","_this$_root2","_len2","_key2","message","beforeCreate","BVModalPlugin","plugins","plugin","ModalPlugin","components","VBModal","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","icon","square","text","BAvatar","inject","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","marginStyle","overlapScale","marginLeft","badgeStyle","offset","onImgError","_class2","error","$badge","hasBadgeSlot","badgeText","BButtonClose","innerHTML"],"mappings":"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","file":"js/chunk-vendors~62ab6885.bd8d87da.js","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_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__*/Vue.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(data, componentData), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\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 { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { 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(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\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\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); 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; } 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 { Date.prototype.toString.call(Reflect.construct(Date, [], 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 };","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\nimport { Vue } from '../../../vue';\nimport { IS_BROWSER } from '../../../constants/env';\nimport { HOOK_EVENT_NAME_BEFORE_DESTROY } from '../../../constants/events';\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__*/Vue.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 var _this2 = this;\n\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n // Add modal to modals array\n this.modals.push(modal);\n modal.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.unregisterModal(modal);\n });\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 (isNull(this.baseZIndex) && IS_BROWSER) {\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 (isNull(this.scrollbarWidth) && IS_BROWSER) {\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 _this3 = 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 === _this3.modals.length - 1;\n modal.isBodyOverflowing = _this3.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); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_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 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 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__*/Vue.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 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 showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if canceled\n\n if (showEvt.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 hideEvt = 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, hideEvt);\n } else if (trigger === BUTTON_CANCEL) {\n this.$emit(EVENT_NAME_CANCEL, hideEvt);\n } else if (trigger === BUTTON_CLOSE) {\n this.$emit(EVENT_NAME_CLOSE, hideEvt);\n }\n\n this.emitEvent(hideEvt); // Hide if not canceled\n\n if (hideEvt.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('header', {\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('footer', {\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});","var nestRE = /^(attrs|props|on|nativeOn|class|style|hook)$/\n\nmodule.exports = function mergeJSXProps (objs) {\n return objs.reduce(function (a, b) {\n var aa, bb, key, nestedKey, temp\n for (key in b) {\n aa = a[key]\n bb = b[key]\n if (aa && nestRE.test(key)) {\n // normalize class\n if (key === 'class') {\n if (typeof aa === 'string') {\n temp = aa\n a[key] = aa = {}\n aa[temp] = true\n }\n if (typeof bb === 'string') {\n temp = bb\n b[key] = bb = {}\n bb[temp] = true\n }\n }\n if (key === 'on' || key === 'nativeOn' || key === 'hook') {\n // merge functions\n for (nestedKey in bb) {\n aa[nestedKey] = mergeFn(aa[nestedKey], bb[nestedKey])\n }\n } else if (Array.isArray(aa)) {\n a[key] = aa.concat(bb)\n } else if (Array.isArray(bb)) {\n a[key] = [aa].concat(bb)\n } else {\n for (nestedKey in bb) {\n aa[nestedKey] = bb[nestedKey]\n }\n }\n } else {\n a[key] = b[key]\n }\n }\n return a\n }, {})\n}\n\nfunction mergeFn (a, b) {\n return function () {\n a && a.apply(this, arguments)\n b && b.apply(this, arguments)\n }\n}\n","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\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_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 { 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, EVENT_NAME_CLICK),\n exact: makeProp(PROP_TYPE_BOOLEAN, false),\n exactActiveClass: makeProp(PROP_TYPE_STRING),\n replace: makeProp(PROP_TYPE_BOOLEAN, false),\n routerTag: makeProp(PROP_TYPE_STRING, 'a'),\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__*/Vue.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 prefetch = this.prefetch;\n return this.isRouterLink ? _objectSpread(_objectSpread({}, pluckProps(_objectSpread(_objectSpread({}, routerLinkProps), nuxtLinkProps), this)), {}, {\n // Coerce `prefetch` value `null` to be `undefined`\n prefetch: isBoolean(prefetch) ? prefetch : undefined,\n // Pass `router-tag` as `tag` prop\n tag: this.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 && !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 /* istanbul ignore next: difficult to test, but we know it works */\n if (isRouterLink && event.currentTarget.__vue__) {\n // Router links do not emit instance `click` events, so we\n // add in an `$emit('click', event)` on its Vue instance\n event.currentTarget.__vue__.$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); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// 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 { 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 { 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 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.$parent.$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\n\n var msgBox = new BMsgBox({\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 parent: $parent,\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 (bvModalEvt) {\n if (!bvModalEvt.defaultPrevented) {\n var result = resolver(bvModalEvt); // If resolver didn't cancel hide, we resolve\n\n if (!bvModalEvt.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: vm.$root\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 (bvModalEvt) {\n var trigger = bvModalEvt.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 };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\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 { Vue, 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__*/Vue.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});"],"sourceRoot":""}