{"version":3,"sources":["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/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","join","computeRowColsBreakpoint","prop","replace","rowColsPropList","generateProps","rowColsProps","reduce","props","alignContent","alignH","alignV","noGutters","tag","BRow","name","functional","this","render","h","_ref","_classList$push","data","children","classList","c","concat","staticClass","class","plain","formCustomMixin","extend","computed","custom","size","formSizeMixin","sizeFormClass","_watch","_makeModelMixin","type","defaultValue","validator","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","event","every","v","getDataTransferItemEntry","item","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","undefined","Promise","all","kind","map","entry","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","resolve","file","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","then","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","placeholder","BFormFile","mixins","inheritAttrs","files","dragging","dropAllowed","hasFocus","computedAccept","trim","split","extOrType","startMatch","endMatch","test","slice","rx","RegExp","computedCapture","computedAttrs","disabled","required","form","bvAttrs","id","safeId","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","normalizeSlot","allowed","$createElement","hasNormalizedSlot","filesTraversed","names","watch","newValue","reset","oldValue","$emit","created","$_form","mounted","$form","$el","beforeDestroy","methods","isFileValid","some","a","isFilesArrayValid","_this","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","add","$refs","input","_unused","$input","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","onChange","_this2","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","_this3","$nextTick","onDrop","_this4","stateClass","focus","style","zIndex","attrs","on","change","focusin","focusout","ref","$label","for","pointerEvents","dragenter","dragover","dragleave","drop","textTag","BCardText","SELECTOR","autofocus","formControlMixin","handleAutofocus","activated","el"],"mappings":"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","file":"js/chunk-947b170c.8e360dd4.js","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { 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});","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, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","import { 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});"],"sourceRoot":""}