{"version":3,"sources":["webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button-toolbar/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-link.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/collapse/collapse.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/collapse/helpers/bv-collapse.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/avatar/avatar-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/carousel/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/badge/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-img-lazy.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/avatar/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-header.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/calendar/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button-toolbar/button-toolbar.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/collapse/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button/button-close.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/embed/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/breadcrumb/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-item.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-form.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-text.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/aspect/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/carousel/carousel-slide.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/carousel/carousel.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/embed/embed.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item-button.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button/button.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/alert/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/aspect/aspect.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/dropdown/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button-group/button-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/button-group/index.js"],"names":["_watch","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","_makeModelMixin","type","defaultValue","modelMixin","mixin","modelProps","props","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","variant","BAlert","extend","name","mixins","data","countDown","localShow","this","watch","newValue","_this","clearCountDownInterval","$emit","$_countDownTimeout","setTimeout","$nextTick","created","$_filterTimer","beforeDestroy","methods","dismiss","clearTimeout","render","h","$alert","$dismissButton","attrs","on","click","normalizeSlot","staticClass","class","concat","role","noFade","ButtonToolbarPlugin","components","BButtonToolbar","BBtnToolbar","ariaCurrent","html","text","BBreadcrumbLink","functional","_ref","suppliedProps","children","active","tag","componentData","domProps","ariaDescribedby","header","headerClasses","headerTag","headerVariant","id","BDropdownGroup","slots","scopedSlots","$slots","$scopedSlots","slotScope","headerId","$header","ariaDescribedBy","join","trim","ButtonPlugin","BButton","BBtn","BButtonClose","BBtnClose","el","scrollHeight","height","TRANSITION_PROPS","css","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","TRANSITION_HANDLERS","enter","afterEnter","leave","afterLeave","appear","BVCollapse","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_EVENT_NAME_ACCORDION","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","accordion","isNav","BCollapse","transitioning","computed","classObject","collapse","visible","close","oldValue","emitState","mounted","_this2","listenOnRoot","handleToggleEvt","handleAccordionEvt","setWindowEvents","handleResize","safeId","emitSync","updated","deactivated","activated","window","toggle","onEnter","onAfterEnter","onLeave","onAfterLeave","emitOnRoot","checkDisplayBlock","$el","restore","isBlock","display","clickHandler","openedId","openAccordion","isThis","$content","directives","block","lazy","menuClass","noCaret","size","split","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleClass","toggleTag","toggleText","BDropdown","dropdownClasses","directionClass","boundaryClass","menuClasses","right","toggleClasses","disabled","hide","commonProps","$buttonChildren","buttonContentDomProps","hasNormalizedSlot","$split","btnProps","to","href","onSplitClick","ref","$toggle","mousedown","onMousedown","keydown","$menu","tabindex","onKeydown","overlap","rounded","square","BAvatarGroup","provide","bvAvatarGroup","computedSize","overlapScale","paddingStyle","paddingLeft","paddingRight","$inner","style","CarouselPlugin","BCarousel","BCarouselSlide","BadgePlugin","BBadge","BCardImgLazy","baseClass","top","end","bottom","left","start","AvatarPlugin","BAvatar","cardImgProps","bind","imgSrc","required","align","noBody","BCard","_class","imgLeft","imgRight","imgStart","imgEnd","imgBottom","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","$imgFirst","$imgLast","$img","hasHeaderSlot","overlay","$footer","hasFooterSlot","BDropdownHeader","textTag","BCardText","CalendarPlugin","BCalendar","ITEM_SELECTOR","justify","keyNav","getItems","items","item","tabIndex","focusFirst","focusPrev","index","indexOf","slice","reverse","focusNext","focusLast","onFocusin","relatedTarget","keyCode","shiftKey","focusin","CollapsePlugin","plugins","VBTogglePlugin","ariaLabel","content","String","innerHTML","BBreadcrumb","childNodes","activeDefined","map","idx","_item","headerClass","BCardHeader","_ref2","headerBgVariant","headerBorderVariant","headerTextVariant","EmbedPlugin","BEmbed","BreadcrumbPlugin","BBreadcrumbItem","title","titleTag","BCardTitle","formClass","BDropdownForm","listeners","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","ariaControls","dateDisabledFn","dateFormatOptions","year","month","day","weekday","dateInfoFn","direction","hidden","hideHeader","initialDate","labelCalendar","labelCurrentMonth","labelHelp","labelNav","labelNextDecade","labelNextMonth","labelNextYear","labelNoDateSelected","labelPrevDecade","labelPrevMonth","labelPrevYear","labelSelected","labelToday","locale","max","min","navButtonVariant","noHighlightToday","noKeyNav","readonly","roleDescription","selectedVariant","showDecadeNav","startWeekday","todayVariant","valueAsDate","weekdayHeaderFormat","width","selected","selectedYMD","activeYMD","getToday","gridHasFocus","isLive","valueId","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","computedLocale","computedDateDisabledFn","computedDateInfoFn","calendarLocale","fmt","Intl","DateTimeFormat","calendar","resolvedOptions","replace","calendarYear","getFullYear","calendarMonth","getMonth","calendarFirstDay","calendarDaysInMonth","date","setMonth","getDate","computedVariant","computedTodayVariant","computedNavButtonVariant","isRTL","dir","toLowerCase","context","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","rangeFn","ymd","hour","undefined","minute","second","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","format","prevDecadeDisabled","prevYearDisabled","prevMonthDisabled","thisMonthDisabled","nextMonthDisabled","nextYearDisabled","nextDecadeDisabled","matrix","firstDay","daysInMonth","startIndex","getDay","weekOffset","currentDay","week","j","dayYMD","dayDisabled","dateInfo","label","isThisMonth","isDisabled","info","calendarHeadings","d","old","newYMD","oldYMD","constrainDate","setLive","_this3","focus","$refs","grid","blur","_this4","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","checkDate","constrainedToday","setDate","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","for","labelSelectedDate","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","handler","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","$gridBody","$cells","dIndex","isSelected","isActive","isToday","idCell","$btn","pointerEvents","$gridHelp","$grid","$slot","$widget","lang","bvAttrs","textClass","BDropdownText","CardPlugin","BCardSubTitle","BCardFooter","BCardImg","BCardGroup","linkProps","linkClass","BDropdownItem","inject","bvDropdown","default","inheritAttrs","computedAttrs","closeDropdown","onClick","$props","AspectPlugin","BAspect","imgProps","imgAlt","imgBlank","imgBlankColor","imgHeight","imgWidth","background","caption","captionHtml","captionTag","contentTag","contentVisibleUp","textHtml","bvCarousel","noTouch","contentClasses","computedWidth","computedHeight","dragstart","propagation","fluidGrow","$contentChildren","some","$child","DIRECTION","next","dirClass","overlayClass","prev","TRANS_DURATION","TOUCH_EVENT_COMPAT_WAIT","SWIPE_THRESHOLD","PointerType","TOUCH","PEN","TransitionEndEvents","WebkitTransition","MozTransition","OTransition","transition","getTransitionEndEvent","controls","indicators","interval","labelGotoSlide","labelIndicators","labelNext","labelPrev","noAnimation","noHoverPause","noWrap","isSliding","transitionEndEvent","slides","isPaused","touchStartX","touchDeltaX","numSlides","setSlide","pause","from","doSlide","$_interval","$_animationTimeout","$_touchTimeout","$_observer","updateSlides","setObserver","clearInterval","clearAnimationTimeout","clearTouchTimeout","_clearInterval","toString","disconnect","inner","subtree","childList","attributes","attributeFilter","slide","document","visibilityState","$once","setInterval","restart","contains","isCycling","Boolean","calcDirection","currentSlide","nextSlide","called","onceTransEnd","events","n","curIndex","nextIndex","handleClick","fn","handleSwipe","absDeltaX","touchStart","pointerType","toUpperCase","clientX","touches","touchMove","touchEnd","idInner","$controls","makeControl","handlerWrapper","$indicators","mouseenter","mouseleave","focusout","test","tagName","columns","deck","TYPES","aspect","pill","link","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","icon","src","localSrc","computedRounded","fontStyle","fontSize","marginStyle","marginLeft","marginRight","badgeStyle","offset","onImgError","_class2","error","$badge","hasBadgeSlot","badgeText","activeClass","buttonClass","BDropdownItemButton","BDropdownDivider","pressed","squared","handleFocus","isLink","isToggle","isButton","isNonStandardTag","computeClass","computeLinkProps","computeAttrs","nonStandardTag","hashLink","autocomplete","currentTarget","footerClass","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","subTitleTag","subTitleTextVariant","AlertPlugin","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","prototype","call","constructor","Array","len","arr2","Symbol","iterator","_arr","_n","_d","_e","_s","_i","done","err","isArray","padding","ratio","_aspect$split$map","v","_aspect$split$map2","$sizer","paddingBottom","DropdownPlugin","BDd","BDdItem","BDropdownItemBtn","BDdItemButton","BDdItemBtn","BDdHeader","BDdDivider","BDdForm","BDdText","BDdGroup","ariaRole","vertical","BButtonGroup","ButtonGroupPlugin","BBtnGroup"],"mappings":"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","file":"js/chunk-vendors~b1153c84.24b954be.js","sourcesContent":["var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","import { BButtonToolbar } from './button-toolbar';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonToolbarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButtonToolbar: BButtonToolbar,\n BBtnToolbar: BButtonToolbar\n }\n});\nexport { ButtonToolbarPlugin, BButtonToolbar };","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_BREADCRUMB_LINK } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n ariaCurrent: makeProp(PROP_TYPE_STRING, 'location'),\n html: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING)\n})), NAME_BREADCRUMB_LINK); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumbLink = /*#__PURE__*/Vue.extend({\n name: NAME_BREADCRUMB_LINK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var suppliedProps = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = suppliedProps.active;\n var tag = active ? 'span' : BLink;\n var componentData = {\n attrs: {\n 'aria-current': active ? suppliedProps.ariaCurrent : null\n },\n props: pluckProps(props, suppliedProps)\n };\n\n if (!children) {\n componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text);\n }\n\n return h(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_DROPDOWN_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { isTag } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaDescribedby: makeProp(PROP_TYPE_STRING),\n header: makeProp(PROP_TYPE_STRING),\n headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerVariant: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BDropdownGroup = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_GROUP,\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 id = props.id,\n variant = props.variant,\n header = props.header,\n headerTag = props.headerTag;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var slotScope = {};\n var headerId = id ? \"_bv_\".concat(id, \"_group_dd_header\") : null;\n var $header = h();\n\n if (hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots) || header) {\n $header = h(headerTag, {\n staticClass: 'dropdown-header',\n class: [props.headerClasses, _defineProperty({}, \"text-\".concat(variant), variant)],\n attrs: {\n id: headerId,\n role: isTag(headerTag, 'header') ? null : 'heading'\n }\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots) || header);\n }\n\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [$header, h('ul', {\n staticClass: 'list-unstyled',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: id,\n role: 'group',\n 'aria-describedby': [headerId, props.ariaDescribedBy].filter(identity).join(' ').trim() || null\n })\n }, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots))]);\n }\n});","import { BButton } from './button';\nimport { BButtonClose } from './button-close';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButton: BButton,\n BBtn: BButton,\n BButtonClose: BButtonClose,\n BBtnClose: BButtonClose\n }\n});\nexport { ButtonPlugin, BButton, BButtonClose };","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE } from '../../constants/components';\nimport { CLASS_NAME_SHOW } from '../../constants/classes';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { addClass, hasClass, removeClass, closest, matches, getCS } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVCollapse } from './helpers/bv-collapse'; // --- Constants ---\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_EVENT_NAME_ACCORDION = getRootEventName(NAME_COLLAPSE, 'accordion');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n // If `true` (and `visible` is `true` on mount), animate initially visible\n accordion: makeProp(PROP_TYPE_STRING),\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n isNav: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_COLLAPSE); // --- Main component ---\n// @vue/component\n\nexport var BCollapse = /*#__PURE__*/Vue.extend({\n name: NAME_COLLAPSE,\n mixins: [idMixin, modelMixin, normalizeSlotMixin, listenOnRootMixin],\n props: props,\n data: function data() {\n return {\n show: this[MODEL_PROP_NAME],\n transitioning: false\n };\n },\n computed: {\n classObject: function classObject() {\n var transitioning = this.transitioning;\n return {\n 'navbar-collapse': this.isNav,\n collapse: !transitioning,\n show: this.show && !transitioning\n };\n },\n slotScope: function slotScope() {\n var _this = this;\n\n return {\n visible: this.show,\n close: function close() {\n _this.show = false;\n }\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (newValue !== this.show) {\n this.show = newValue;\n }\n }), _defineProperty(_watch, \"show\", function show(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState();\n }\n }), _watch),\n created: function created() {\n this.show = this[MODEL_PROP_NAME];\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.show = this[MODEL_PROP_NAME]; // Listen for toggle events to open/close us\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggleEvt); // Listen to other collapses for accordion events\n\n this.listenOnRoot(ROOT_EVENT_NAME_ACCORDION, this.handleAccordionEvt);\n\n if (this.isNav) {\n // Set up handlers\n this.setWindowEvents(true);\n this.handleResize();\n }\n\n this.$nextTick(function () {\n _this2.emitState();\n }); // Listen for \"Sync state\" requests from `v-b-toggle`\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, function (id) {\n if (id === _this2.safeId()) {\n _this2.$nextTick(_this2.emitSync);\n }\n });\n },\n updated: function updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync();\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.isNav) {\n this.setWindowEvents(false);\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.isNav) {\n this.setWindowEvents(true);\n }\n\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n\n if (this.isNav && IS_BROWSER) {\n this.setWindowEvents(false);\n }\n },\n methods: {\n setWindowEvents: function setWindowEvents(on) {\n eventOnOff(on, window, 'resize', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, window, 'orientationchange', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n },\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_SHOW);\n },\n onAfterEnter: function onAfterEnter() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_SHOWN);\n },\n onLeave: function onLeave() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_HIDE);\n },\n onAfterLeave: function onAfterLeave() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n emitState: function emitState() {\n var show = this.show,\n accordion = this.accordion;\n var id = this.safeId();\n this.$emit(MODEL_EVENT_NAME, show); // Let `v-b-toggle` know the state of this collapse\n\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, id, show);\n\n if (accordion && show) {\n // Tell the other collapses in this accordion to close\n this.emitOnRoot(ROOT_EVENT_NAME_ACCORDION, id, accordion);\n }\n },\n emitSync: function emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), this.show);\n },\n checkDisplayBlock: function checkDisplayBlock() {\n // Check to see if the collapse has `display: block !important` set\n // We can't set `display: none` directly on `this.$el`, as it would\n // trigger a new transition to start (or cancel a current one)\n var $el = this.$el;\n var restore = hasClass($el, CLASS_NAME_SHOW);\n removeClass($el, CLASS_NAME_SHOW);\n var isBlock = getCS($el).display === 'block';\n\n if (restore) {\n addClass($el, CLASS_NAME_SHOW);\n }\n\n return isBlock;\n },\n clickHandler: function clickHandler(event) {\n var el = event.target; // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n\n /* istanbul ignore next: can't test `getComputedStyle()` in JSDOM */\n\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n return;\n } // Only close the collapse if it is not forced to be `display: block !important`\n\n\n if ((matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) && !this.checkDisplayBlock()) {\n this.show = false;\n }\n },\n handleToggleEvt: function handleToggleEvt(id) {\n if (id === this.safeId()) {\n this.toggle();\n }\n },\n handleAccordionEvt: function handleAccordionEvt(openedId, openAccordion) {\n var accordion = this.accordion,\n show = this.show;\n\n if (!accordion || accordion !== openAccordion) {\n return;\n }\n\n var isThis = openedId === this.safeId(); // Open this collapse if not shown or\n // close this collapse if shown\n\n if (isThis && !show || !isThis && show) {\n this.toggle();\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getCS(this.$el).display === 'block';\n }\n },\n render: function render(h) {\n var appear = this.appear;\n var $content = h(this.tag, {\n class: this.classObject,\n directives: [{\n name: 'show',\n value: this.show\n }],\n attrs: {\n id: this.safeId()\n },\n on: {\n click: this.clickHandler\n }\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope));\n return h(BVCollapse, {\n props: {\n appear: appear\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$content]);\n }\n});","// Generic collapse transion helper component\n//\n// Note:\n// Applies the classes `collapse`, `show` and `collapsing`\n// during the enter/leave transition phases only\n// Although it appears that Vue may be leaving the classes\n// in-place after the transition completes\nimport { Vue, mergeData } from '../../../vue';\nimport { NAME_COLLAPSE_HELPER } from '../../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { getBCR, reflow, removeStyle, requestAF, setStyle } from '../../../utils/dom';\nimport { makeProp } from '../../../utils/props'; // --- Helper methods ---\n// Transition event handler helpers\n\nvar onEnter = function onEnter(el) {\n setStyle(el, 'height', 0); // In a `requestAF()` for `appear` to work\n\n requestAF(function () {\n reflow(el);\n setStyle(el, 'height', \"\".concat(el.scrollHeight, \"px\"));\n });\n};\n\nvar onAfterEnter = function onAfterEnter(el) {\n removeStyle(el, 'height');\n};\n\nvar onLeave = function onLeave(el) {\n setStyle(el, 'height', 'auto');\n setStyle(el, 'display', 'block');\n setStyle(el, 'height', \"\".concat(getBCR(el).height, \"px\"));\n reflow(el);\n setStyle(el, 'height', 0);\n};\n\nvar onAfterLeave = function onAfterLeave(el) {\n removeStyle(el, 'height');\n}; // --- Constants ---\n// Default transition props\n// `appear` will use the enter classes\n\n\nvar TRANSITION_PROPS = {\n css: true,\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: 'collapse show',\n leaveClass: 'collapse show',\n leaveActiveClass: 'collapsing',\n leaveToClass: 'collapse'\n}; // Default transition handlers\n// `appear` will use the enter handlers\n\nvar TRANSITION_HANDLERS = {\n enter: onEnter,\n afterEnter: onAfterEnter,\n leave: onLeave,\n afterLeave: onAfterLeave\n}; // --- Main component ---\n\nexport var props = {\n // // If `true` (and `visible` is `true` on mount), animate initially visible\n appear: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVCollapse = /*#__PURE__*/Vue.extend({\n name: NAME_COLLAPSE_HELPER,\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('transition', // We merge in the `appear` prop last\n mergeData(data, {\n props: TRANSITION_PROPS,\n on: TRANSITION_HANDLERS\n }, {\n props: props\n }), // Note: `` supports a single root element only\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 } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","import { Vue } from '../../vue';\nimport { NAME_AVATAR_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { mathMax, mathMin } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { computeSize } from './avatar'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n overlap: makeProp(PROP_TYPE_NUMBER_STRING, 0.3),\n // Child avatars will prefer this prop (if set) over their own\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Child avatars will always use this over their own size\n size: makeProp(PROP_TYPE_STRING),\n // Child avatars will prefer this prop (if set) over their own\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n // Child avatars will prefer this variant over their own\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_AVATAR_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BAvatarGroup = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR_GROUP,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvAvatarGroup: this\n };\n },\n props: props,\n computed: {\n computedSize: function computedSize() {\n return computeSize(this.size);\n },\n overlapScale: function overlapScale() {\n return mathMin(mathMax(toFloat(this.overlap, 0), 0), 1) / 2;\n },\n paddingStyle: function paddingStyle() {\n var value = this.computedSize;\n value = value ? \"calc(\".concat(value, \" * \").concat(this.overlapScale, \")\") : null;\n return value ? {\n paddingLeft: value,\n paddingRight: value\n } : {};\n }\n },\n render: function render(h) {\n var $inner = h('div', {\n staticClass: 'b-avatar-group-inner',\n style: this.paddingStyle\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: 'b-avatar-group',\n attrs: {\n role: 'group'\n }\n }, [$inner]);\n }\n});","import { BCarousel } from './carousel';\nimport { BCarouselSlide } from './carousel-slide';\nimport { pluginFactory } from '../../utils/plugins';\nvar CarouselPlugin =\n/*#__PURE*/\npluginFactory({\n components: {\n BCarousel: BCarousel,\n BCarouselSlide: BCarouselSlide\n }\n});\nexport { CarouselPlugin, BCarousel, BCarouselSlide };","import { BBadge } from './badge';\nimport { pluginFactory } from '../../utils/plugins';\nvar BadgePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BBadge: BBadge\n }\n});\nexport { BadgePlugin, BBadge };","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_LAZY } from '../../constants/components';\nimport { keys, omit, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img';\nimport { BImgLazy, props as BImgLazyProps } from '../image/img-lazy';\nimport { props as BCardImgProps } from './card-img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BImgLazyProps, keys(BImgProps))), omit(BCardImgProps, ['src', 'alt', 'width', 'height']))), NAME_CARD_IMG_LAZY); // --- Main component ---\n// @vue/component\n\nexport var BCardImgLazy = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG_LAZY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\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(BImgLazy, mergeData(data, {\n class: [baseClass],\n // Exclude `left` and `right` props before passing to ``\n props: omit(props, ['left', 'right'])\n }));\n }\n});","import { BAvatar } from './avatar';\nimport { BAvatarGroup } from './avatar-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar AvatarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAvatar: BAvatar,\n BAvatarGroup: BAvatarGroup\n }\n});\nexport { AvatarPlugin, BAvatar, BAvatarGroup };","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 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_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownHeader = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: _defineProperty({}, \"text-\".concat(variant), variant),\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n }),\n ref: 'header'\n }, children)]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TEXT,\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.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","import { BCalendar } from './calendar';\nimport { pluginFactory } from '../../utils/plugins';\nvar CalendarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCalendar: BCalendar\n }\n});\nexport { CalendarPlugin, BCalendar };","import { Vue } from '../../vue';\nimport { NAME_BUTTON_TOOLBAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP } from '../../constants/key-codes';\nimport { attemptFocus, contains, isVisible, selectAll } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(','); // --- Props ---\n\nexport var props = makePropsConfigurable({\n justify: makeProp(PROP_TYPE_BOOLEAN, false),\n keyNav: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_BUTTON_TOOLBAR); // --- Main component ---\n// @vue/component\n\nexport var BButtonToolbar = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON_TOOLBAR,\n mixins: [normalizeSlotMixin],\n props: props,\n mounted: function mounted() {\n // Pre-set the tabindexes if the markup does not include\n // `tabindex=\"-1\"` on the toolbar items\n if (this.keyNav) {\n this.getItems();\n }\n },\n methods: {\n getItems: function getItems() {\n var items = selectAll(ITEM_SELECTOR, this.$el); // Ensure `tabindex=\"-1\"` is set on every item\n\n items.forEach(function (item) {\n item.tabIndex = -1;\n });\n return items.filter(function (el) {\n return isVisible(el);\n });\n },\n focusFirst: function focusFirst() {\n var items = this.getItems();\n attemptFocus(items[0]);\n },\n focusPrev: function focusPrev(event) {\n var items = this.getItems();\n var index = items.indexOf(event.target);\n\n if (index > -1) {\n items = items.slice(0, index).reverse();\n attemptFocus(items[0]);\n }\n },\n focusNext: function focusNext(event) {\n var items = this.getItems();\n var index = items.indexOf(event.target);\n\n if (index > -1) {\n items = items.slice(index + 1);\n attemptFocus(items[0]);\n }\n },\n focusLast: function focusLast() {\n var items = this.getItems().reverse();\n attemptFocus(items[0]);\n },\n onFocusin: function onFocusin(event) {\n var $el = this.$el;\n\n if (event.target === $el && !contains($el, event.relatedTarget)) {\n stopEvent(event);\n this.focusFirst(event);\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (keyCode === CODE_UP || keyCode === CODE_LEFT) {\n stopEvent(event);\n shiftKey ? this.focusFirst(event) : this.focusPrev(event);\n } else if (keyCode === CODE_DOWN || keyCode === CODE_RIGHT) {\n stopEvent(event);\n shiftKey ? this.focusLast(event) : this.focusNext(event);\n }\n }\n },\n render: function render(h) {\n var keyNav = this.keyNav;\n return h('div', {\n staticClass: 'btn-toolbar',\n class: {\n 'justify-content-between': this.justify\n },\n attrs: {\n role: 'toolbar',\n tabindex: keyNav ? '0' : null\n },\n on: keyNav ? {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n } : {}\n }, [this.normalizeSlot()]);\n }\n});","import { BCollapse } from './collapse';\nimport { VBTogglePlugin } from '../../directives/toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar CollapsePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCollapse: BCollapse\n },\n plugins: {\n VBTogglePlugin: VBTogglePlugin\n }\n});\nexport { CollapsePlugin, BCollapse };","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});","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_BREADCRUMB } from '../../constants/components';\nimport { PROP_TYPE_ARRAY } from '../../constants/props';\nimport { isArray, isObject } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { BBreadcrumbItem } from './breadcrumb-item'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n items: makeProp(PROP_TYPE_ARRAY)\n}, NAME_BREADCRUMB); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumb = /*#__PURE__*/Vue.extend({\n name: NAME_BREADCRUMB,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var items = props.items; // Build child nodes from items, if given\n\n var childNodes = children;\n\n if (isArray(items)) {\n var activeDefined = false;\n childNodes = items.map(function (item, idx) {\n if (!isObject(item)) {\n item = {\n text: toString(item)\n };\n } // Copy the value here so we can normalize it\n\n\n var _item = item,\n active = _item.active;\n\n if (active) {\n activeDefined = true;\n } // Auto-detect active by position in list\n\n\n if (!active && !activeDefined) {\n active = idx + 1 === items.length;\n }\n\n return h(BBreadcrumbItem, {\n props: _objectSpread(_objectSpread({}, item), {}, {\n active: active\n })\n });\n });\n }\n\n return h('ol', mergeData(data, {\n staticClass: 'breadcrumb'\n }), childNodes);\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 { BEmbed } from './embed';\nimport { pluginFactory } from '../../utils/plugins';\nvar EmbedPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BEmbed: BEmbed\n }\n});\nexport { EmbedPlugin, BEmbed };","import { BBreadcrumb } from './breadcrumb';\nimport { BBreadcrumbItem } from './breadcrumb-item';\nimport { BBreadcrumbLink } from './breadcrumb-link';\nimport { pluginFactory } from '../../utils/plugins';\nvar BreadcrumbPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BBreadcrumb: BBreadcrumb,\n BBreadcrumbItem: BBreadcrumbItem,\n BBreadcrumbLink: BBreadcrumbLink\n }\n});\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink };","import { Vue, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB_ITEM } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BBreadcrumbLink, props as BBreadcrumbLinkProps } from './breadcrumb-link'; // --- Props ---\n\nexport var props = makePropsConfigurable(BBreadcrumbLinkProps, NAME_BREADCRUMB_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumbItem = /*#__PURE__*/Vue.extend({\n name: NAME_BREADCRUMB_ITEM,\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('li', mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: {\n active: props.active\n }\n }), [h(BBreadcrumbLink, {\n props: props\n }, children)]);\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_DROPDOWN_FORM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BForm, props as formControlProps } from '../form/form'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formControlProps), {}, {\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_DROPDOWN_FORM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownForm = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n staticClass: 'b-dropdown-form',\n class: [props.formClass, {\n disabled: props.disabled\n }],\n props: props,\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n }),\n on: listeners,\n ref: 'form'\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_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});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = Vue.extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h('header', {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelectedDate || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('header', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('footer', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\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_DROPDOWN_TEXT } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'p'),\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BDropdownText = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n textClass = props.textClass,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'b-dropdown-text',\n class: [textClass, _defineProperty({}, \"text-\".concat(variant), variant)],\n props: props,\n attrs: data.attrs || {},\n ref: 'text'\n }, children)]);\n }\n});","import { BCard } from './card';\nimport { BCardHeader } from './card-header';\nimport { BCardBody } from './card-body';\nimport { BCardTitle } from './card-title';\nimport { BCardSubTitle } from './card-sub-title';\nimport { BCardFooter } from './card-footer';\nimport { BCardImg } from './card-img';\nimport { BCardImgLazy } from './card-img-lazy';\nimport { BCardText } from './card-text';\nimport { BCardGroup } from './card-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar CardPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCard: BCard,\n BCardHeader: BCardHeader,\n BCardBody: BCardBody,\n BCardTitle: BCardTitle,\n BCardSubTitle: BCardSubTitle,\n BCardFooter: BCardFooter,\n BCardImg: BCardImg,\n BCardImgLazy: BCardImgLazy,\n BCardText: BCardText,\n BCardGroup: BCardGroup\n }\n});\nexport { CardPlugin, BCard, BCardHeader, BCardBody, BCardTitle, BCardSubTitle, BCardFooter, BCardImg, BCardImgLazy, BCardText, BCardGroup };","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_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: pluckProps(linkProps, this.$props),\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","import { BAspect } from './aspect';\nimport { pluginFactory } from '../../utils/plugins';\nvar AspectPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAspect: BAspect\n }\n});\nexport { AspectPlugin, BAspect };","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_CAROUSEL_SLIDE } from '../../constants/components';\nimport { HAS_TOUCH_SUPPORT } from '../../constants/env';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_IMG } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps, unprefixPropName } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BImg } from '../image/img'; // --- Props ---\n\nvar imgProps = {\n imgAlt: makeProp(PROP_TYPE_STRING),\n imgBlank: makeProp(PROP_TYPE_BOOLEAN, false),\n imgBlankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n imgSrc: makeProp(PROP_TYPE_STRING),\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING)\n};\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), imgProps), {}, {\n background: makeProp(PROP_TYPE_STRING),\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING),\n captionTag: makeProp(PROP_TYPE_STRING, 'h3'),\n contentTag: makeProp(PROP_TYPE_STRING, 'div'),\n contentVisibleUp: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n textHtml: makeProp(PROP_TYPE_STRING),\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n})), NAME_CAROUSEL_SLIDE); // --- Main component ---\n// @vue/component\n\nexport var BCarouselSlide = /*#__PURE__*/Vue.extend({\n name: NAME_CAROUSEL_SLIDE,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvCarousel: {\n // Explicitly disable touch if not a child of carousel\n default: function _default() {\n return {\n noTouch: true\n };\n }\n }\n },\n props: props,\n computed: {\n contentClasses: function contentClasses() {\n return [this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? \"d-\".concat(this.contentVisibleUp, \"-block\") : ''];\n },\n computedWidth: function computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.bvCarousel.imgWidth || null;\n },\n computedHeight: function computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.bvCarousel.imgHeight || null;\n }\n },\n render: function render(h) {\n var $img = this.normalizeSlot(SLOT_NAME_IMG);\n\n if (!$img && (this.imgSrc || this.imgBlank)) {\n var on = {}; // Touch support event handler\n\n /* istanbul ignore if: difficult to test in JSDOM */\n\n if (!this.bvCarousel.noTouch && HAS_TOUCH_SUPPORT) {\n on.dragstart = function (event) {\n return stopEvent(event, {\n propagation: false\n });\n };\n }\n\n $img = h(BImg, {\n props: _objectSpread(_objectSpread({}, pluckProps(imgProps, this.$props, unprefixPropName.bind(null, 'img'))), {}, {\n width: this.computedWidth,\n height: this.computedHeight,\n fluidGrow: true,\n block: true\n }),\n on: on\n });\n }\n\n var $contentChildren = [// Caption\n this.caption || this.captionHtml ? h(this.captionTag, {\n domProps: htmlOrText(this.captionHtml, this.caption)\n }) : false, // Text\n this.text || this.textHtml ? h(this.textTag, {\n domProps: htmlOrText(this.textHtml, this.text)\n }) : false, // Children\n this.normalizeSlot() || false];\n var $content = h();\n\n if ($contentChildren.some(identity)) {\n $content = h(this.contentTag, {\n staticClass: 'carousel-caption',\n class: this.contentClasses\n }, $contentChildren.map(function ($child) {\n return $child || h();\n }));\n }\n\n return h('div', {\n staticClass: 'carousel-item',\n style: {\n background: this.background || this.bvCarousel.background || null\n },\n attrs: {\n id: this.safeId(),\n role: 'listitem'\n }\n }, [$img, $content]);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_CAROUSEL } from '../../constants/components';\nimport { IS_BROWSER, HAS_POINTER_EVENT_SUPPORT, HAS_TOUCH_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_PAUSED, EVENT_NAME_SLIDING_END, EVENT_NAME_SLIDING_START, EVENT_NAME_UNPAUSED, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ENTER, CODE_LEFT, CODE_RIGHT, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { addClass, getActiveElement, reflow, removeClass, requestAF, selectAll, setAttr } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { isUndefined } from '../../utils/inspect';\nimport { mathAbs, mathFloor, mathMax, mathMin } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { noop } from '../../utils/noop';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER,\n defaultValue: 0\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // Slide directional classes\n\n\nvar DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n}; // Fallback Transition duration (with a little buffer) in ms\n\nvar TRANS_DURATION = 600 + 50; // Time for mouse compat events to fire after touch\n\nvar TOUCH_EVENT_COMPAT_WAIT = 500; // Number of pixels to consider touch move a swipe\n\nvar SWIPE_THRESHOLD = 40; // PointerEvent pointer types\n\nvar PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}; // Transition Event names\n\nvar TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n}; // --- Helper methods ---\n// Return the browser specific transitionEnd event name\n\nvar getTransitionEndEvent = function getTransitionEndEvent(el) {\n for (var name in TransitionEndEvents) {\n if (!isUndefined(el.style[name])) {\n return TransitionEndEvents[name];\n }\n } // Fallback\n\n /* istanbul ignore next */\n\n\n return null;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n background: makeProp(PROP_TYPE_STRING),\n controls: makeProp(PROP_TYPE_BOOLEAN, false),\n // Enable cross-fade animation instead of slide animation\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sniffed by carousel-slide\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n // Sniffed by carousel-slide\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING),\n indicators: makeProp(PROP_TYPE_BOOLEAN, false),\n interval: makeProp(PROP_TYPE_NUMBER, 5000),\n labelGotoSlide: makeProp(PROP_TYPE_STRING, 'Goto slide'),\n labelIndicators: makeProp(PROP_TYPE_STRING, 'Select a slide to display'),\n labelNext: makeProp(PROP_TYPE_STRING, 'Next slide'),\n labelPrev: makeProp(PROP_TYPE_STRING, 'Previous slide'),\n // Disable slide/fade animation\n noAnimation: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable pause on hover\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sniffed by carousel-slide\n noTouch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable wrapping/looping when start/end is reached\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CAROUSEL); // --- Main component ---\n// @vue/component\n\nexport var BCarousel = /*#__PURE__*/Vue.extend({\n name: NAME_CAROUSEL,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvCarousel: this\n };\n },\n props: props,\n data: function data() {\n return {\n index: this[MODEL_PROP_NAME] || 0,\n isSliding: false,\n transitionEndEvent: null,\n slides: [],\n direction: null,\n isPaused: !(toInteger(this.interval, 0) > 0),\n // Touch event handling values\n touchStartX: 0,\n touchDeltaX: 0\n };\n },\n computed: {\n numSlides: function numSlides() {\n return this.slides.length;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.setSlide(toInteger(newValue, 0));\n }\n }), _defineProperty(_watch, \"interval\", function interval(newValue, oldValue) {\n /* istanbul ignore next */\n if (newValue === oldValue) {\n return;\n }\n\n if (!newValue) {\n // Pausing slide show\n this.pause(false);\n } else {\n // Restarting or Changing interval\n this.pause(true);\n this.start(false);\n }\n }), _defineProperty(_watch, \"isPaused\", function isPaused(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(newValue ? EVENT_NAME_PAUSED : EVENT_NAME_UNPAUSED);\n }\n }), _defineProperty(_watch, \"index\", function index(to, from) {\n /* istanbul ignore next */\n if (to === from || this.isSliding) {\n return;\n }\n\n this.doSlide(to, from);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_interval = null;\n this.$_animationTimeout = null;\n this.$_touchTimeout = null;\n this.$_observer = null; // Set initial paused state\n\n this.isPaused = !(toInteger(this.interval, 0) > 0);\n },\n mounted: function mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransitionEndEvent(this.$el) || null; // Get all slides\n\n this.updateSlides(); // Observe child changes so we can update slide list\n\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearInterval();\n this.clearAnimationTimeout();\n this.clearTouchTimeout();\n this.setObserver(false);\n },\n methods: {\n clearInterval: function (_clearInterval) {\n function clearInterval() {\n return _clearInterval.apply(this, arguments);\n }\n\n clearInterval.toString = function () {\n return _clearInterval.toString();\n };\n\n return clearInterval;\n }(function () {\n clearInterval(this.$_interval);\n this.$_interval = null;\n }),\n clearAnimationTimeout: function clearAnimationTimeout() {\n clearTimeout(this.$_animationTimeout);\n this.$_animationTimeout = null;\n },\n clearTouchTimeout: function clearTouchTimeout() {\n clearTimeout(this.$_touchTimeout);\n this.$_touchTimeout = null;\n },\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.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n // Set slide\n setSlide: function setSlide(slide) {\n var _this = this;\n\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // Don't animate when page is not visible\n\n /* istanbul ignore if: difficult to test */\n if (IS_BROWSER && document.visibilityState && document.hidden) {\n return;\n }\n\n var noWrap = this.noWrap;\n var numSlides = this.numSlides; // Make sure we have an integer (you never know!)\n\n slide = mathFloor(slide); // Don't do anything if nothing to slide to\n\n if (numSlides === 0) {\n return;\n } // Don't change slide while transitioning, wait until transition is done\n\n\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once(EVENT_NAME_SLIDING_END, function () {\n // Wrap in `requestAF()` to allow the slide to properly finish to avoid glitching\n requestAF(function () {\n return _this.setSlide(slide, direction);\n });\n });\n return;\n }\n\n this.direction = direction; // Set new slide index\n // Wrap around if necessary (if no-wrap not enabled)\n\n this.index = slide >= numSlides ? noWrap ? numSlides - 1 : 0 : slide < 0 ? noWrap ? 0 : numSlides - 1 : slide; // Ensure the v-model is synched up if no-wrap is enabled\n // and user tried to slide pass either ends\n\n if (noWrap && this.index !== slide && this.index !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, this.index);\n }\n },\n // Previous slide\n prev: function prev() {\n this.setSlide(this.index - 1, 'prev');\n },\n // Next slide\n next: function next() {\n this.setSlide(this.index + 1, 'next');\n },\n // Pause auto rotation\n pause: function pause(event) {\n if (!event) {\n this.isPaused = true;\n }\n\n this.clearInterval();\n },\n // Start auto rotate slides\n start: function start(event) {\n if (!event) {\n this.isPaused = false;\n }\n /* istanbul ignore next: most likely will never happen, but just in case */\n\n\n this.clearInterval(); // Don't start if no interval, or less than 2 slides\n\n if (this.interval && this.numSlides > 1) {\n this.$_interval = setInterval(this.next, mathMax(1000, this.interval));\n }\n },\n // Restart auto rotate slides when focus/hover leaves the carousel\n\n /* istanbul ignore next */\n restart: function restart() {\n if (!this.$el.contains(getActiveElement())) {\n this.start();\n }\n },\n doSlide: function doSlide(to, from) {\n var _this2 = this;\n\n var isCycling = Boolean(this.interval); // Determine sliding direction\n\n var direction = this.calcDirection(this.direction, from, to);\n var overlayClass = direction.overlayClass;\n var dirClass = direction.dirClass; // Determine current and next slides\n\n var currentSlide = this.slides[from];\n var nextSlide = this.slides[to]; // Don't do anything if there aren't any slides to slide to\n\n if (!currentSlide || !nextSlide) {\n /* istanbul ignore next */\n return;\n } // Start animating\n\n\n this.isSliding = true;\n\n if (isCycling) {\n this.pause(false);\n }\n\n this.$emit(EVENT_NAME_SLIDING_START, to); // Update v-model\n\n this.$emit(MODEL_EVENT_NAME, this.index);\n\n if (this.noAnimation) {\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n this.isSliding = false; // Notify ourselves that we're done sliding (slid)\n\n this.$nextTick(function () {\n return _this2.$emit(EVENT_NAME_SLIDING_END, to);\n });\n } else {\n addClass(nextSlide, overlayClass); // Trigger a reflow of next slide\n\n reflow(nextSlide);\n addClass(currentSlide, dirClass);\n addClass(nextSlide, dirClass); // Transition End handler\n\n var called = false;\n /* istanbul ignore next: difficult to test */\n\n var onceTransEnd = function onceTransEnd() {\n if (called) {\n return;\n }\n\n called = true;\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n if (_this2.transitionEndEvent) {\n var events = _this2.transitionEndEvent.split(/\\s+/);\n\n events.forEach(function (event) {\n return eventOff(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\n });\n }\n\n _this2.clearAnimationTimeout();\n\n removeClass(nextSlide, dirClass);\n removeClass(nextSlide, overlayClass);\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n removeClass(currentSlide, dirClass);\n removeClass(currentSlide, overlayClass);\n setAttr(currentSlide, 'aria-current', 'false');\n setAttr(nextSlide, 'aria-current', 'true');\n setAttr(currentSlide, 'aria-hidden', 'true');\n setAttr(nextSlide, 'aria-hidden', 'false');\n _this2.isSliding = false;\n _this2.direction = null; // Notify ourselves that we're done sliding (slid)\n\n _this2.$nextTick(function () {\n return _this2.$emit(EVENT_NAME_SLIDING_END, to);\n });\n }; // Set up transitionend handler\n\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n\n if (this.transitionEndEvent) {\n var events = this.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n return eventOn(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\n });\n } // Fallback to setTimeout()\n\n\n this.$_animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\n }\n\n if (isCycling) {\n this.start(false);\n }\n },\n // Update slide list\n updateSlides: function updateSlides() {\n this.pause(true); // Get all slides as DOM elements\n\n this.slides = selectAll('.carousel-item', this.$refs.inner);\n var numSlides = this.slides.length; // Keep slide number in range\n\n var index = mathMax(0, mathMin(mathFloor(this.index), numSlides - 1));\n this.slides.forEach(function (slide, idx) {\n var n = idx + 1;\n\n if (idx === index) {\n addClass(slide, 'active');\n setAttr(slide, 'aria-current', 'true');\n } else {\n removeClass(slide, 'active');\n setAttr(slide, 'aria-current', 'false');\n }\n\n setAttr(slide, 'aria-posinset', String(n));\n setAttr(slide, 'aria-setsize', String(numSlides));\n }); // Set slide as active\n\n this.setSlide(index);\n this.start(this.isPaused);\n },\n calcDirection: function calcDirection() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\n }\n\n return DIRECTION[direction];\n },\n handleClick: function handleClick(event, fn) {\n var keyCode = event.keyCode;\n\n if (event.type === 'click' || keyCode === CODE_SPACE || keyCode === CODE_ENTER) {\n stopEvent(event);\n fn();\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n handleSwipe: function handleSwipe() {\n var absDeltaX = mathAbs(this.touchDeltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltaX / this.touchDeltaX; // Reset touch delta X\n // https://github.com/twbs/bootstrap/pull/28558\n\n this.touchDeltaX = 0;\n\n if (direction > 0) {\n // Swipe left\n this.prev();\n } else if (direction < 0) {\n // Swipe right\n this.next();\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchStart: function touchStart(event) {\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX;\n } else if (!HAS_POINTER_EVENT_SUPPORT) {\n this.touchStartX = event.touches[0].clientX;\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchMove: function touchMove(event) {\n // Ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0;\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX;\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchEnd: function touchEnd(event) {\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX;\n }\n\n this.handleSwipe(); // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause(false);\n this.clearTouchTimeout();\n this.$_touchTimeout = setTimeout(this.start, TOUCH_EVENT_COMPAT_WAIT + mathMax(1000, this.interval));\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var indicators = this.indicators,\n background = this.background,\n noAnimation = this.noAnimation,\n noHoverPause = this.noHoverPause,\n noTouch = this.noTouch,\n index = this.index,\n isSliding = this.isSliding,\n pause = this.pause,\n restart = this.restart,\n touchStart = this.touchStart,\n touchEnd = this.touchEnd;\n var idInner = this.safeId('__BV_inner_'); // Wrapper for slides\n\n var $inner = h('div', {\n staticClass: 'carousel-inner',\n attrs: {\n id: idInner,\n role: 'list'\n },\n ref: 'inner'\n }, [this.normalizeSlot()]); // Prev and next controls\n\n var $controls = h();\n\n if (this.controls) {\n var makeControl = function makeControl(direction, label, handler) {\n var handlerWrapper = function handlerWrapper(event) {\n /* istanbul ignore next */\n if (!isSliding) {\n _this3.handleClick(event, handler);\n } else {\n stopEvent(event, {\n propagation: false\n });\n }\n };\n\n return h('a', {\n staticClass: \"carousel-control-\".concat(direction),\n attrs: {\n href: '#',\n role: 'button',\n 'aria-controls': idInner,\n 'aria-disabled': isSliding ? 'true' : null\n },\n on: {\n click: handlerWrapper,\n keydown: handlerWrapper\n }\n }, [h('span', {\n staticClass: \"carousel-control-\".concat(direction, \"-icon\"),\n attrs: {\n 'aria-hidden': 'true'\n }\n }), h('span', {\n class: 'sr-only'\n }, [label])]);\n };\n\n $controls = [makeControl('prev', this.labelPrev, this.prev), makeControl('next', this.labelNext, this.next)];\n } // Indicators\n\n\n var $indicators = h('ol', {\n staticClass: 'carousel-indicators',\n directives: [{\n name: 'show',\n value: indicators\n }],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': idInner\n }\n }, this.slides.map(function (slide, i) {\n var handler = function handler(event) {\n _this3.handleClick(event, function () {\n _this3.setSlide(i);\n });\n };\n\n return h('li', {\n class: {\n active: i === index\n },\n attrs: {\n role: 'button',\n id: _this3.safeId(\"__BV_indicator_\".concat(i + 1, \"_\")),\n tabindex: indicators ? '0' : '-1',\n 'aria-current': i === index ? 'true' : 'false',\n 'aria-label': \"\".concat(_this3.labelGotoSlide, \" \").concat(i + 1),\n 'aria-describedby': slide.id || null,\n 'aria-controls': idInner\n },\n on: {\n click: handler,\n keydown: handler\n },\n key: \"slide_\".concat(i)\n });\n }));\n var on = {\n mouseenter: noHoverPause ? noop : pause,\n mouseleave: noHoverPause ? noop : restart,\n focusin: pause,\n focusout: restart,\n keydown: function keydown(event) {\n /* istanbul ignore next */\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_LEFT || keyCode === CODE_RIGHT) {\n stopEvent(event);\n\n _this3[keyCode === CODE_LEFT ? 'prev' : 'next']();\n }\n }\n }; // Touch support event handlers for environment\n\n if (HAS_TOUCH_SUPPORT && !noTouch) {\n // Attach appropriate listeners (prepend event name with '&' for passive mode)\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n if (HAS_POINTER_EVENT_SUPPORT) {\n on['&pointerdown'] = touchStart;\n on['&pointerup'] = touchEnd;\n } else {\n on['&touchstart'] = touchStart;\n on['&touchmove'] = this.touchMove;\n on['&touchend'] = touchEnd;\n }\n } // Return the carousel\n\n\n return h('div', {\n staticClass: 'carousel',\n class: {\n slide: !noAnimation,\n 'carousel-fade': !noAnimation && this.fade,\n 'pointer-event': HAS_TOUCH_SUPPORT && HAS_POINTER_EVENT_SUPPORT && !noTouch\n },\n style: {\n background: background\n },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': isSliding ? 'true' : 'false'\n },\n on: on\n }, [$inner, $controls, $indicators]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n columns: makeProp(PROP_TYPE_BOOLEAN, false),\n deck: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_CARD_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BCardGroup = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_GROUP,\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.tag, mergeData(data, {\n class: props.deck ? 'card-deck' : props.columns ? 'card-columns' : 'card-group'\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_EMBED } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Constants ---\n\nvar TYPES = ['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy']; // --- Props ---\n\nexport var props = makePropsConfigurable({\n aspect: makeProp(PROP_TYPE_STRING, '16by9'),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n type: makeProp(PROP_TYPE_STRING, 'iframe', function (value) {\n return arrayIncludes(TYPES, value);\n })\n}, NAME_EMBED); // --- Main component ---\n// @vue/component\n\nexport var BEmbed = /*#__PURE__*/Vue.extend({\n name: NAME_EMBED,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var aspect = props.aspect;\n return h(props.tag, {\n staticClass: 'embed-responsive',\n class: _defineProperty({}, \"embed-responsive-\".concat(aspect), aspect),\n ref: data.ref\n }, [h(props.type, mergeData(omit(data, ['ref']), {\n staticClass: 'embed-responsive-item'\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_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","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 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_DROPDOWN_ITEM_BUTTON } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n activeClass: makeProp(PROP_TYPE_STRING, 'active'),\n buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_ITEM_BUTTON); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItemButton = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM_BUTTON,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem',\n type: 'button',\n disabled: this.disabled\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true);\n }\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var _ref;\n\n var active = this.active,\n variant = this.variant,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h('button', {\n staticClass: 'dropdown-item',\n class: [this.buttonClass, (_ref = {}, _defineProperty(_ref, this.activeClass, active), _defineProperty(_ref, \"text-\".concat(variant), variant && !(active || this.disabled)), _ref)],\n attrs: this.computedAttrs,\n on: {\n click: this.onClick\n },\n ref: 'button'\n }, 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_DROPDOWN_DIVIDER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { omit } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'hr')\n}, NAME_DROPDOWN_DIVIDER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownDivider = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_DIVIDER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-divider',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n }),\n ref: 'divider'\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_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});","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});","import { BAlert } from './alert';\nimport { pluginFactory } from '../../utils/plugins';\nvar AlertPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAlert: BAlert\n }\n});\nexport { AlertPlugin, BAlert };","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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { Vue } from '../../vue';\nimport { NAME_ASPECT } from '../../constants/components';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_ASPECT, RX_ASPECT_SEPARATOR } from '../../constants/regex';\nimport { mathAbs } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar CLASS_NAME = 'b-aspect'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Accepts a number (i.e. `16 / 9`, `1`, `4 / 3`)\n // Or a string (i.e. '16/9', '16:9', '4:3' '1:1')\n aspect: makeProp(PROP_TYPE_NUMBER_STRING, '1:1'),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_ASPECT); // --- Main component ---\n// @vue/component\n\nexport var BAspect = /*#__PURE__*/Vue.extend({\n name: NAME_ASPECT,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n padding: function padding() {\n var aspect = this.aspect;\n var ratio = 1;\n\n if (RX_ASPECT.test(aspect)) {\n // Width and/or Height can be a decimal value below `1`, so\n // we only fallback to `1` if the value is `0` or `NaN`\n var _aspect$split$map = aspect.split(RX_ASPECT_SEPARATOR).map(function (v) {\n return toFloat(v) || 1;\n }),\n _aspect$split$map2 = _slicedToArray(_aspect$split$map, 2),\n width = _aspect$split$map2[0],\n height = _aspect$split$map2[1];\n\n ratio = width / height;\n } else {\n ratio = toFloat(aspect) || 1;\n }\n\n return \"\".concat(100 / mathAbs(ratio), \"%\");\n }\n },\n render: function render(h) {\n var $sizer = h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-sizer flex-grow-1\"),\n style: {\n paddingBottom: this.padding,\n height: 0\n }\n });\n var $content = h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-content flex-grow-1 w-100 mw-100\"),\n style: {\n marginLeft: '-100%'\n }\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: \"\".concat(CLASS_NAME, \" d-flex\")\n }, [$sizer, $content]);\n }\n});","import { BDropdown } from './dropdown';\nimport { BDropdownItem } from './dropdown-item';\nimport { BDropdownItemButton } from './dropdown-item-button';\nimport { BDropdownHeader } from './dropdown-header';\nimport { BDropdownDivider } from './dropdown-divider';\nimport { BDropdownForm } from './dropdown-form';\nimport { BDropdownText } from './dropdown-text';\nimport { BDropdownGroup } from './dropdown-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar DropdownPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BDropdown: BDropdown,\n BDd: BDropdown,\n BDropdownItem: BDropdownItem,\n BDdItem: BDropdownItem,\n BDropdownItemButton: BDropdownItemButton,\n BDropdownItemBtn: BDropdownItemButton,\n BDdItemButton: BDropdownItemButton,\n BDdItemBtn: BDropdownItemButton,\n BDropdownHeader: BDropdownHeader,\n BDdHeader: BDropdownHeader,\n BDropdownDivider: BDropdownDivider,\n BDdDivider: BDropdownDivider,\n BDropdownForm: BDropdownForm,\n BDdForm: BDropdownForm,\n BDropdownText: BDropdownText,\n BDdText: BDropdownText,\n BDropdownGroup: BDropdownGroup,\n BDdGroup: BDropdownGroup\n }\n});\nexport { DropdownPlugin, BDropdown, BDropdownItem, BDropdownItemButton, BDropdownHeader, BDropdownDivider, BDropdownForm, BDropdownText, BDropdownGroup };","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_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as buttonProps } from '../button/button'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(buttonProps, ['size'])), {}, {\n ariaRole: makeProp(PROP_TYPE_STRING, 'group'),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_BUTTON_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BButtonGroup = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON_GROUP,\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.tag, mergeData(data, {\n class: _defineProperty({\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical\n }, \"btn-group-\".concat(props.size), props.size),\n attrs: {\n role: props.ariaRole\n }\n }), children);\n }\n});","import { BButtonGroup } from './button-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonGroupPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButtonGroup: BButtonGroup,\n BBtnGroup: BButtonGroup\n }\n});\nexport { ButtonGroupPlugin, BButtonGroup };"],"sourceRoot":""}