{"version":3,"file":"js/chunk-vendors-0bc0324f.a5777e96.js","mappings":"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","sources":["webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-img-lazy.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/card-group.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/card/index.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/calendar/index.js"],"sourcesContent":["import { extend, 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__*/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});","import { extend, 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__*/extend({\n  name: NAME_CARD_SUB_TITLE,\n  functional: true,\n  props: props,\n  render: function render(h, _ref) {\n    var props = _ref.props,\n        data = _ref.data,\n        children = _ref.children;\n    return h(props.subTitleTag, mergeData(data, {\n      staticClass: 'card-subtitle',\n      class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n    }), children || toString(props.subTitle));\n  }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_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__*/extend({\n  name: NAME_CARD_BODY,\n  functional: true,\n  props: props,\n  render: function render(h, _ref) {\n    var _ref2;\n\n    var props = _ref.props,\n        data = _ref.data,\n        children = _ref.children;\n    var bodyBgVariant = props.bodyBgVariant,\n        bodyBorderVariant = props.bodyBorderVariant,\n        bodyTextVariant = props.bodyTextVariant;\n    var $title = h();\n\n    if (props.title) {\n      $title = h(BCardTitle, {\n        props: pluckProps(titleProps, props)\n      });\n    }\n\n    var $subTitle = h();\n\n    if (props.subTitle) {\n      $subTitle = h(BCardSubTitle, {\n        props: pluckProps(subTitleProps, props),\n        class: ['mb-2']\n      });\n    }\n\n    return h(props.bodyTag, mergeData(data, {\n      staticClass: 'card-body',\n      class: [(_ref2 = {\n        'card-img-overlay': props.overlay\n      }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n    }), [$title, $subTitle, children]);\n  }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_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__*/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});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_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__*/extend({\n  name: NAME_CARD_FOOTER,\n  functional: true,\n  props: props,\n  render: function render(h, _ref) {\n    var _ref2;\n\n    var props = _ref.props,\n        data = _ref.data,\n        children = _ref.children;\n    var footerBgVariant = props.footerBgVariant,\n        footerBorderVariant = props.footerBorderVariant,\n        footerTextVariant = props.footerTextVariant;\n    return h(props.footerTag, mergeData(data, {\n      staticClass: 'card-footer',\n      class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n      domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n    }), children);\n  }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_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__*/extend({\n  name: NAME_CARD_IMG,\n  functional: true,\n  props: props,\n  render: function render(h, _ref) {\n    var props = _ref.props,\n        data = _ref.data;\n    var src = props.src,\n        alt = props.alt,\n        width = props.width,\n        height = props.height;\n    var baseClass = 'card-img';\n\n    if (props.top) {\n      baseClass += '-top';\n    } else if (props.right || props.end) {\n      baseClass += '-right';\n    } else if (props.bottom) {\n      baseClass += '-bottom';\n    } else if (props.left || props.start) {\n      baseClass += '-left';\n    }\n\n    return h('img', mergeData(data, {\n      class: baseClass,\n      attrs: {\n        src: src,\n        alt: alt,\n        width: width,\n        height: height\n      }\n    }));\n  }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_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__*/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 `<card-body>` 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 `<b-card-img>` and `<b-card-body>`\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); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_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__*/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 `<b-img-lazy>`\n      props: omit(props, ['left', 'right'])\n    }));\n  }\n});","import { extend, 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__*/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 { extend, 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__*/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});","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 };","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } 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  headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n  // When `true`, renders a comment node, but keeps the component instance active\n  // Mainly for <b-form-date>, 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 = 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 <BDI> 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\" // '&nbsp;'\n    );\n    $header = h(this.headerTag, {\n      staticClass: 'b-calendar-header',\n      class: {\n        'sr-only': this.hideHeader\n      },\n      attrs: {\n        title: this.selectedDate ? this.labelSelected || 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('div', {\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('div', {\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});","import { BCalendar } from './calendar';\nimport { pluginFactory } from '../../utils/plugins';\nvar CalendarPlugin = /*#__PURE__*/pluginFactory({\n  components: {\n    BCalendar: BCalendar\n  }\n});\nexport { CalendarPlugin, BCalendar };"],"names":["title","titleTag","BCardTitle","name","functional","props","render","h","_ref","data","children","staticClass","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","class","concat","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","card","bind","bodyClass","overlay","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","bodyTag","header","headerClass","headerHtml","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","domProps","html","footer","footerClass","footerHtml","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","attrs","cardImgProps","imgSrc","required","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","$footer","hasFooterSlot","tag","BCardImgLazy","textTag","BCardText","columns","deck","BCardGroup","CardPlugin","components","_watch","_makeModelMixin","type","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","ariaControls","block","dateDisabledFn","dateFormatOptions","year","month","day","weekday","dateInfoFn","direction","disabled","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","BCalendar","mixins","selected","this","selectedYMD","activeYMD","getToday","gridHasFocus","isLive","computed","valueId","safeId","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","_this","rangeFn","ymd","hour","undefined","minute","second","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","style","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","_this2","map","d","text","watch","newValue","oldValue","old","newYMD","oldYMD","$emit","constrainDate","setLive","created","_this3","$nextTick","mounted","activated","deactivated","beforeDestroy","methods","focus","$refs","grid","blur","on","_this4","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","keyCode","checkDate","constrainedToday","setDate","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","id","for","role","tabindex","click","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","normalizeSlot","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","content","handler","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","idx","$gridBody","$cells","dIndex","isSelected","isActive","isToday","idCell","$btn","active","join","pointerEvents","$gridHelp","$grid","slice","keydown","ref","$slot","$widget","lang","bvAttrs","CalendarPlugin"],"sourceRoot":""}