{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./node_modules/bootstrap-vue/esm/icons/icon.js","webpack:///./src/views/pages/blog/BlogEdit.vue?cd99","webpack:///src/views/pages/blog/BlogEdit.vue","webpack:///./src/views/pages/blog/BlogEdit.vue?11e6","webpack:///./src/views/pages/blog/BlogEdit.vue","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./src/@core/comp-functions/forms/form-utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./src/views/pages/blog/BlogEdit.vue?e296","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/avatar/avatar.js"],"names":["formSelectionMixin","extend","computed","selectionStart","cache","get","this","$refs","input","set","val","selectionEnd","selectionDirection","methods","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","findIconComponent","ctx","iconName","components","$options","iconComponent","$parent","props","icon","stacked","BIcon","name","functional","render","h","_ref","data","parent","replace","concat","_vm","_h","$createElement","_c","_self","blogEdit","staticClass","attrs","avatar","_v","_s","userFullName","createdTime","model","blogTitle","callback","$$v","$set","expression","$store","state","appConfig","isRTL","categoryOption","blogCategories","slug","statusOption","status","snowOption","excerpt","ref","featuredImage","blogFile","on","inputImageRenderer","directives","rawName","modifiers","_e","staticRenderFns","BCard","BMedia","BAvatar","BCardText","BMediaAside","BMediaBody","BForm","BLink","BImg","BRow","BCol","BButton","BFormGroup","BFormInput","BFormFile","vSelect","quillEditor","Ripple","theme","created","$http","then","setup","refInputEl","refPreviewEl","component","id","inline","novalidate","validated","children","class","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","bottom","end","start","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","bind","imgSrc","required","card","align","noBody","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","footer","footerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","domProps","html","$content","overlay","$footer","hasFooterSlot","tag","rightAlign","verticalAlign","$children","$aside","_makeModelMixin","type","defaultValue","event","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ariaInvalid","autocomplete","debounce","formatter","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","mixins","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","watch","newValue","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","mounted","$on","beforeDestroy","clearTimeout","formatValue","force","undefined","updateValue","_this","doUpdate","$emit","$input","setTimeout","onInput","composing","formattedValue","defaultPrevented","propagation","onChange","onBlur","focus","disabled","$el","blur","TYPES","list","max","min","noWheel","step","localType","computedAttrs","form","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","BLANK_TEMPLATE","makeBlankImgSrc","color","encodeURIComponent","blank","blankColor","block","center","fluid","fluidGrow","rounded","sizes","srcset","thumbnail","join","title","titleTag","BCardTitle","bodyClass","BCardBody","_ref2","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","subTitle","bodyTag","footerClass","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","reduce","alignContent","alignH","alignV","noGutters","_classList$push","classList","c","plain","formCustomMixin","custom","size","formSizeMixin","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","subTitleTag","subTitleTextVariant","BCardSubTitle","useInputImageRenderer","inputEl","file","files","reader","FileReader","addEventListener","result","readAsDataURL","_watch","validator","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","every","v","getDataTransferItemEntry","item","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","Promise","all","kind","map","entry","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","resolve","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","inheritAttrs","dragging","dropAllowed","hasFocus","computedAccept","split","extOrType","startMatch","endMatch","test","slice","rx","RegExp","computedCapture","bvAttrs","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","normalizeSlot","allowed","hasNormalizedSlot","filesTraversed","names","reset","oldValue","$_form","$form","isFileValid","some","a","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","add","_unused","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","_this2","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","_this3","$nextTick","onDrop","_this4","style","zIndex","focusin","focusout","$label","for","pointerEvents","dragenter","dragover","dragleave","drop","textTag","SELECTOR","autofocus","formControlMixin","handleAutofocus","el","CLASS_NAME","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","linkProps","ariaLabel","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","button","buttonType","square","text","variant","inject","bvAvatarGroup","default","localSrc","computedSize","computedVariant","computedRounded","fontStyle","fontSize","indexOf","marginStyle","overlapScale","marginLeft","marginRight","badgeStyle","offset","onImgError","onClick","_class2","link","error","$badge","hasBadgeSlot","badgeText","componentData","click"],"mappings":"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","file":"js/chunk-4ba0112f.1436b209.js","sourcesContent":["import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\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_ICON } from '../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return null;\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BVIconBaseProps, ['content', 'stacked'])), {}, {\n icon: makeProp(PROP_TYPE_STRING),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n icon: null\n })\n }));\n }\n});","var render = function () {\n var _vm=this;\n var _h=_vm.$createElement;\n var _c=_vm._self._c||_h;\n\n return Object.keys(_vm.blogEdit).length ? _c('b-card', {\n staticClass: \"blog-edit-wrapper\"\n }, [_c('b-media', {\n attrs: {\n \"no-body\": \"\",\n \"vertical-align\": \"center\"\n }\n }, [_c('b-media-aside', {\n staticClass: \"mr-75\"\n }, [_c('b-avatar', {\n attrs: {\n \"size\": \"38\",\n \"src\": _vm.blogEdit.avatar\n }\n })], 1), _c('b-media-body', [_c('h6', {\n staticClass: \"mb-25\"\n }, [_vm._v(\" \" + _vm._s(_vm.blogEdit.userFullName) + \" \")]), _c('b-card-text', [_vm._v(_vm._s(_vm.blogEdit.createdTime))])], 1)], 1), _c('b-form', {\n staticClass: \"mt-2\"\n }, [_c('b-row', [_c('b-col', {\n attrs: {\n \"md\": \"6\"\n }\n }, [_c('b-form-group', {\n staticClass: \"mb-2\",\n attrs: {\n \"label\": \"Title\",\n \"label-for\": \"blog-edit-title\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"blog-edit-title\"\n },\n model: {\n value: _vm.blogEdit.blogTitle,\n callback: function callback($$v) {\n _vm.$set(_vm.blogEdit, \"blogTitle\", $$v);\n },\n expression: \"blogEdit.blogTitle\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"md\": \"6\"\n }\n }, [_c('b-form-group', {\n staticClass: \"mb-2\",\n attrs: {\n \"label\": \"Category\",\n \"label-for\": \"blog-edit-category\"\n }\n }, [_c('v-select', {\n attrs: {\n \"id\": \"blog-edit-category\",\n \"dir\": _vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\n \"multiple\": \"\",\n \"options\": _vm.categoryOption\n },\n model: {\n value: _vm.blogEdit.blogCategories,\n callback: function callback($$v) {\n _vm.$set(_vm.blogEdit, \"blogCategories\", $$v);\n },\n expression: \"blogEdit.blogCategories\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"md\": \"6\"\n }\n }, [_c('b-form-group', {\n staticClass: \"mb-2\",\n attrs: {\n \"label\": \"Slug\",\n \"label-for\": \"blog-edit-slug\"\n }\n }, [_c('b-form-input', {\n attrs: {\n \"id\": \"blog-edit-slug\"\n },\n model: {\n value: _vm.blogEdit.slug,\n callback: function callback($$v) {\n _vm.$set(_vm.blogEdit, \"slug\", $$v);\n },\n expression: \"blogEdit.slug\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"md\": \"6\"\n }\n }, [_c('b-form-group', {\n staticClass: \"mb-2\",\n attrs: {\n \"label\": \"Status\",\n \"label-for\": \"blog-edit-category\"\n }\n }, [_c('v-select', {\n attrs: {\n \"id\": \"blog-edit-category\",\n \"dir\": _vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\n \"options\": _vm.statusOption\n },\n model: {\n value: _vm.blogEdit.status,\n callback: function callback($$v) {\n _vm.$set(_vm.blogEdit, \"status\", $$v);\n },\n expression: \"blogEdit.status\"\n }\n })], 1)], 1), _c('b-col', {\n attrs: {\n \"cols\": \"12\"\n }\n }, [_c('b-form-group', {\n staticClass: \"mb-2\",\n attrs: {\n \"label\": \"Content\",\n \"label-for\": \"blog-content\"\n }\n }, [_c('quill-editor', {\n attrs: {\n \"id\": \"blog-content\",\n \"options\": _vm.snowOption\n },\n model: {\n value: _vm.blogEdit.excerpt,\n callback: function callback($$v) {\n _vm.$set(_vm.blogEdit, \"excerpt\", $$v);\n },\n expression: \"blogEdit.excerpt\"\n }\n })], 1)], 1), _c('b-col', {\n staticClass: \"mb-2\",\n attrs: {\n \"cols\": \"12\"\n }\n }, [_c('div', {\n staticClass: \"border rounded p-2\"\n }, [_c('h4', {\n staticClass: \"mb-1\"\n }, [_vm._v(\" Featured Image \")]), _c('b-media', {\n staticClass: \"flex-column flex-md-row\",\n attrs: {\n \"no-body\": \"\",\n \"vertical-align\": \"center\"\n }\n }, [_c('b-media-aside', [_c('b-img', {\n ref: \"refPreviewEl\",\n staticClass: \"rounded mr-2 mb-1 mb-md-0\",\n attrs: {\n \"src\": _vm.blogEdit.featuredImage,\n \"height\": \"110\",\n \"width\": \"170\"\n }\n })], 1), _c('b-media-body', [_c('small', {\n staticClass: \"text-muted\"\n }, [_vm._v(\"Required image resolution 800x400, image size 10mb.\")]), _c('b-card-text', {\n staticClass: \"my-50\"\n }, [_c('b-link', {\n attrs: {\n \"id\": \"blog-image-text\"\n }\n }, [_vm._v(\" C:\\\\fakepath\\\\\" + _vm._s(_vm.blogFile ? _vm.blogFile.name : 'banner.jpg') + \" \")])], 1), _c('div', {\n staticClass: \"d-inline-block\"\n }, [_c('b-form-file', {\n ref: \"refInputEl\",\n attrs: {\n \"accept\": \".jpg, .png, .gif\",\n \"placeholder\": \"Choose file\"\n },\n on: {\n \"input\": _vm.inputImageRenderer\n },\n model: {\n value: _vm.blogFile,\n callback: function callback($$v) {\n _vm.blogFile = $$v;\n },\n expression: \"blogFile\"\n }\n })], 1)], 1)], 1)], 1)]), _c('b-col', {\n staticClass: \"mt-50\",\n attrs: {\n \"cols\": \"12\"\n }\n }, [_c('b-button', {\n directives: [{\n name: \"ripple\",\n rawName: \"v-ripple.400\",\n value: 'rgba(255, 255, 255, 0.15)',\n expression: \"'rgba(255, 255, 255, 0.15)'\",\n modifiers: {\n \"400\": true\n }\n }],\n staticClass: \"mr-1\",\n attrs: {\n \"variant\": \"primary\"\n }\n }, [_vm._v(\" Save Changes \")]), _c('b-button', {\n directives: [{\n name: \"ripple\",\n rawName: \"v-ripple.400\",\n value: 'rgba(186, 191, 199, 0.15)',\n expression: \"'rgba(186, 191, 199, 0.15)'\",\n modifiers: {\n \"400\": true\n }\n }],\n attrs: {\n \"variant\": \"outline-secondary\"\n }\n }, [_vm._v(\" Cancel \")])], 1)], 1)], 1)], 1) : _vm._e();\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ blogEdit.userFullName }}\r\n
\r\n {{ blogEdit.createdTime }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Featured Image\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Required image resolution 800x400, image size 10mb.\r\n \r\n \r\n C:\\fakepath\\{{ blogFile ? blogFile.name : 'banner.jpg' }}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Save Changes\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BlogEdit.vue?vue&type=template&id=0d8c50e6&\"\nimport script from \"./BlogEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./BlogEdit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BlogEdit.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } 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 id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\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('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\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 children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\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 { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","function _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_MEDIA_ASIDE } 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 right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\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 verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\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 staticClass: 'media-body'\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 { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","export const useInputImageRenderer = (inputEl, callback) => {\r\n const inputImageRenderer = () => {\r\n const file = inputEl.value.files[0]\r\n const reader = new FileReader()\r\n\r\n reader.addEventListener(\r\n 'load',\r\n () => {\r\n callback(reader.result)\r\n },\r\n false,\r\n )\r\n\r\n if (file) {\r\n reader.readAsDataURL(file)\r\n }\r\n }\r\n return {\r\n inputImageRenderer,\r\n }\r\n}\r\n\r\nexport const _ = null\r\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_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\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});","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlogEdit.vue?vue&type=style&index=0&lang=scss&\"","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } 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});"],"sourceRoot":""}