@adyen/bento-vue2 1.63.2 → 1.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/index.d.ts +4 -0
- package/dist/assets/accordion-item.css +1 -1
- package/dist/assets/action-bar.css +1 -1
- package/dist/assets/base-modal.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/data-grid.css +1 -1
- package/dist/assets/date-picker.css +1 -1
- package/dist/assets/dialog-page.css +1 -1
- package/dist/assets/dropdown.css +1 -1
- package/dist/assets/file-uploader.css +1 -1
- package/dist/assets/input-field-password.css +1 -1
- package/dist/assets/inspector.css +1 -1
- package/dist/assets/menu.css +1 -1
- package/dist/assets/modal-fullscreen.css +1 -1
- package/dist/assets/popover.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/assets/use-cached-selected-values.css +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/chunks/{checkbox-group.6y92U6AF.js → checkbox-group.DVX0GFm9.js} +4 -4
- package/dist/chunks/{checkbox-group.6y92U6AF.js.map → checkbox-group.DVX0GFm9.js.map} +1 -1
- package/dist/chunks/{checkbox.C9nJVvMq.js → checkbox.nHrvoKfp.js} +3 -3
- package/dist/chunks/{checkbox.C9nJVvMq.js.map → checkbox.nHrvoKfp.js.map} +1 -1
- package/dist/chunks/{code-snippet.CBU8Tlbs.js → code-snippet.C7eh-7Vy.js} +3 -3
- package/dist/chunks/{code-snippet.CBU8Tlbs.js.map → code-snippet.C7eh-7Vy.js.map} +1 -1
- package/dist/chunks/{controls-group.Dpe3TqAz.js → controls-group.BWAmz7Tg.js} +2 -2
- package/dist/chunks/{controls-group.Dpe3TqAz.js.map → controls-group.BWAmz7Tg.js.map} +1 -1
- package/dist/chunks/{copy.Co1MMqtM.js → copy.CXeLbvUP.js} +2 -2
- package/dist/chunks/{copy.Co1MMqtM.js.map → copy.CXeLbvUP.js.map} +1 -1
- package/dist/chunks/{dashed-underline.DD24UDCz.js → dashed-underline.CEaAmjDa.js} +2 -2
- package/dist/chunks/{dashed-underline.DD24UDCz.js.map → dashed-underline.CEaAmjDa.js.map} +1 -1
- package/dist/chunks/{data-grid.Cep-0zsO.js → data-grid.o64ltIur.js} +1105 -1076
- package/dist/chunks/data-grid.o64ltIur.js.map +1 -0
- package/dist/chunks/{date-picker.D65ieFdN.js → date-picker.Ba-lHyXs.js} +29 -29
- package/dist/chunks/{date-picker.D65ieFdN.js.map → date-picker.Ba-lHyXs.js.map} +1 -1
- package/dist/chunks/{date-range-picker.CNB28UaM.js → date-range-picker.BER92nnT.js} +21 -21
- package/dist/chunks/{date-range-picker.CNB28UaM.js.map → date-range-picker.BER92nnT.js.map} +1 -1
- package/dist/chunks/{dropdown-tag.DmVsDrL_.js → dropdown-tag.uNZs7yVF.js} +3 -3
- package/dist/chunks/{dropdown-tag.DmVsDrL_.js.map → dropdown-tag.uNZs7yVF.js.map} +1 -1
- package/dist/chunks/{dropdown.B_PWXFtT.js → dropdown.DZ1Ndonr.js} +211 -210
- package/dist/chunks/dropdown.DZ1Ndonr.js.map +1 -0
- package/dist/chunks/{error-message.BeExHHgv.js → error-message.1Em7Lis3.js} +2 -2
- package/dist/chunks/{error-message.BeExHHgv.js.map → error-message.1Em7Lis3.js.map} +1 -1
- package/dist/chunks/{file-uploader.RYWR99Nq.js → file-uploader.DyjdNLOa.js} +3 -3
- package/dist/chunks/{file-uploader.RYWR99Nq.js.map → file-uploader.DyjdNLOa.js.map} +1 -1
- package/dist/chunks/{filter-bar.DjUN3PeJ.js → filter-bar.BMDvL9EW.js} +10 -10
- package/dist/chunks/{filter-bar.DjUN3PeJ.js.map → filter-bar.BMDvL9EW.js.map} +1 -1
- package/dist/chunks/{header-with-views.Csgl4PSQ.js → header-with-views.CEfKLlVv.js} +4 -4
- package/dist/chunks/{header-with-views.Csgl4PSQ.js.map → header-with-views.CEfKLlVv.js.map} +1 -1
- package/dist/chunks/{info-icon.G8lKgclf.js → info-icon.B9aTl1nU.js} +2 -2
- package/dist/chunks/{info-icon.G8lKgclf.js.map → info-icon.B9aTl1nU.js.map} +1 -1
- package/dist/chunks/{input-field-password.CY3eRVpe.js → input-field-password.DI7W4ehj.js} +110 -109
- package/dist/chunks/input-field-password.DI7W4ehj.js.map +1 -0
- package/dist/chunks/{input-field-phone-number.CN5qZ0VL.js → input-field-phone-number.BXbNxQeN.js} +3 -3
- package/dist/chunks/{input-field-phone-number.CN5qZ0VL.js.map → input-field-phone-number.BXbNxQeN.js.map} +1 -1
- package/dist/chunks/{input-field.DKhsSYF8.js → input-field.-Pgtuotm.js} +3 -3
- package/dist/chunks/{input-field.DKhsSYF8.js.map → input-field.-Pgtuotm.js.map} +1 -1
- package/dist/chunks/{listbox-option-tag.DFmB_TuD.js → listbox-option-tag.D0Cql_R3.js} +2 -2
- package/dist/chunks/{listbox-option-tag.DFmB_TuD.js.map → listbox-option-tag.D0Cql_R3.js.map} +1 -1
- package/dist/chunks/{pagination.DvP8FqiW.js → pagination.CoM4szsH.js} +2 -2
- package/dist/chunks/{pagination.DvP8FqiW.js.map → pagination.CoM4szsH.js.map} +1 -1
- package/dist/chunks/{radio-group.CRDMTTyM.js → radio-group.CtPG_iiI.js} +4 -4
- package/dist/chunks/{radio-group.CRDMTTyM.js.map → radio-group.CtPG_iiI.js.map} +1 -1
- package/dist/chunks/{rich-text-editor.aSOSl4Rz.js → rich-text-editor.CLxVaskq.js} +4 -4
- package/dist/chunks/{rich-text-editor.aSOSl4Rz.js.map → rich-text-editor.CLxVaskq.js.map} +1 -1
- package/dist/chunks/{search-bar.Sh4A8UId.js → search-bar.BhQdvBh8.js} +3 -3
- package/dist/chunks/{search-bar.Sh4A8UId.js.map → search-bar.BhQdvBh8.js.map} +1 -1
- package/dist/chunks/{secondary-nav.BFtGx_IN.js → secondary-nav.CItGT9T3.js} +2 -2
- package/dist/chunks/{secondary-nav.BFtGx_IN.js.map → secondary-nav.CItGT9T3.js.map} +1 -1
- package/dist/chunks/{segmented-control.B-uxKqMN.js → segmented-control.DHZEfmT-.js} +2 -2
- package/dist/chunks/{segmented-control.B-uxKqMN.js.map → segmented-control.DHZEfmT-.js.map} +1 -1
- package/dist/chunks/{selection-card-group.CrWy35QU.js → selection-card-group.CoqBRUT8.js} +3 -3
- package/dist/chunks/{selection-card-group.CrWy35QU.js.map → selection-card-group.CoqBRUT8.js.map} +1 -1
- package/dist/chunks/{structured-list-item.DKEwF8n7.js → structured-list-item.tox2Kcb6.js} +4 -4
- package/dist/chunks/{structured-list-item.DKEwF8n7.js.map → structured-list-item.tox2Kcb6.js.map} +1 -1
- package/dist/chunks/{summary-grid.types.BgFtV5Qh.js → summary-grid.types.CkUIw703.js} +5 -5
- package/dist/chunks/{summary-grid.types.BgFtV5Qh.js.map → summary-grid.types.CkUIw703.js.map} +1 -1
- package/dist/chunks/{tag.BaSi2GVV.js → tag.CGkclKVL.js} +2 -2
- package/dist/chunks/{tag.BaSi2GVV.js.map → tag.CGkclKVL.js.map} +1 -1
- package/dist/chunks/{textarea.D7M7Jerq.js → textarea.BPeDUAPL.js} +2 -2
- package/dist/chunks/{textarea.D7M7Jerq.js.map → textarea.BPeDUAPL.js.map} +1 -1
- package/dist/chunks/{timeline-item.njO0X8KL.js → timeline-item.CS9ZDOsm.js} +4 -4
- package/dist/chunks/{timeline-item.njO0X8KL.js.map → timeline-item.CS9ZDOsm.js.map} +1 -1
- package/dist/chunks/{tooltip.DyZIyMZN.js → tooltip.wQsyAwkC.js} +15 -15
- package/dist/chunks/tooltip.wQsyAwkC.js.map +1 -0
- package/dist/chunks/use-cached-selected-values.C1CeSurp.js +1271 -0
- package/dist/chunks/use-cached-selected-values.C1CeSurp.js.map +1 -0
- package/dist/code-snippet.js +1 -1
- package/dist/dashed-underline.js +1 -1
- package/dist/data-grid.js +1 -1
- package/dist/date-picker.js +1 -1
- package/dist/date-range-picker.js +1 -1
- package/dist/dropdown.js +3 -3
- package/dist/file-uploader.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/header-with-views.js +1 -1
- package/dist/index.js +30 -30
- package/dist/info-icon.js +1 -1
- package/dist/input-field-password.js +1 -1
- package/dist/input-field-phone-number.js +1 -1
- package/dist/input-field.js +1 -1
- package/dist/internal.js +6 -6
- package/dist/pagination.js +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/rich-text-editor.js +1 -1
- package/dist/search-bar.js +2 -2
- package/dist/secondary-nav.js +1 -1
- package/dist/segmented-control.js +1 -1
- package/dist/selection-card.js +1 -1
- package/dist/structured-list.js +1 -1
- package/dist/summary-grid.js +1 -1
- package/dist/tag.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/timeline.js +1 -1
- package/dist/web-types.json +9 -1
- package/package.json +6 -6
- package/dist/chunks/data-grid.Cep-0zsO.js.map +0 -1
- package/dist/chunks/dropdown.B_PWXFtT.js.map +0 -1
- package/dist/chunks/input-field-password.CY3eRVpe.js.map +0 -1
- package/dist/chunks/tooltip.DyZIyMZN.js.map +0 -1
- package/dist/chunks/use-cached-selected-values.CDBmVxYM.js +0 -1225
- package/dist/chunks/use-cached-selected-values.CDBmVxYM.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader.RYWR99Nq.js","sources":["../../../ui-assets/icons-16/dist/vue/upload.vue","../../src/components/file-uploader/components/file-uploader-file-card/composables/use-truncated-file-name.ts","../../src/components/file-uploader/utils/format-file-size/format-file-size.ts","../../src/components/file-uploader/file-uploader.types.ts","../../src/components/file-uploader/utils/get-file-type/get-file-type.ts","../../src/components/file-uploader/utils/read-file/read-file.ts","../../../ui-assets/icons-16/dist/vue/attachment.vue","../../../ui-assets/icons-16/dist/vue/collection.vue","../../../ui-assets/icons-16/dist/vue/document-1.vue","../../../ui-assets/icons-16/dist/vue/document-lines.vue","../../../ui-assets/icons-16/dist/vue/folder.vue","../../../ui-assets/icons-16/dist/vue/image.vue","../../../ui-assets/icons-16/dist/vue/play-circle.vue","../../../ui-assets/icons-16/dist/vue/sound.vue","../../../ui-assets/icons-16/dist/vue/table.vue","../../src/components/file-uploader/components/file-uploader-file-card/utils/get-file-icon/get-file-icon.ts","../../src/components/file-uploader/components/file-uploader-file-card/utils/get-file-icon-color/get-file-icon-color.ts","../../src/components/file-uploader/components/file-uploader-file-card/file-uploader-file-card.vue","../../src/components/file-uploader/components/file-uploader-restrictions/file-uploader-restrictions.vue","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/types/other.js","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/types/standard.js","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/src/Mime.js","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/src/index.js","../../src/components/file-uploader/composables/use-file-type-list/use-file-type-list.ts","../../src/components/file-uploader/composables/use-drag-drop-state/use-drag-drop-state.ts","../../src/components/file-uploader/file-uploader.vue"],"sourcesContent":["\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M8.00011 0.939453L12.0608 5.00011L11.0001 6.06077L8.75 3.81066V11.75H7.25V3.81089L5.00011 6.06077L3.93945 5.00011L8.00011 0.939453Z\"/><path fill=\"#001222\" d=\"M2.75 12.5V10.25H1.25V12.5C1.25 13.0967 1.48705 13.669 1.90901 14.091C2.33097 14.5129 2.90326 14.75 3.5 14.75H12.5C13.0967 14.75 13.669 14.5129 14.091 14.091C14.5129 13.669 14.75 13.0967 14.75 12.5V10.25H13.25V12.5C13.25 12.6989 13.171 12.8897 13.0303 13.0303C12.8897 13.171 12.6989 13.25 12.5 13.25H3.5C3.30109 13.25 3.11032 13.171 2.96967 13.0303C2.82902 12.8897 2.75 12.6989 2.75 12.5Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","import { VueInstance } from '@/types';\nimport { onMounted, onUnmounted, ref, Ref } from 'vue';\n\n/**\n * Verifies if the content defined is being truncated when it is overflowing the container.\n *\n * @param target Element that contains the text to be truncated\n * @param container Scrollable container that defines the boundaries\n * @returns Boolean indicating whether or not the content will be truncated\n */\nexport function useTruncatedFileName(target: Ref<VueInstance>, container: Ref<HTMLElement>) {\n const isContainerTruncating = ref<boolean>(false);\n let observer: IntersectionObserver;\n\n function disconnectObserver() {\n if (observer) {\n observer.disconnect();\n }\n }\n\n onUnmounted(() => {\n disconnectObserver();\n });\n\n onMounted(() => {\n disconnectObserver();\n\n observer = new IntersectionObserver(\n entries => {\n isContainerTruncating.value = !entries[0].isIntersecting;\n },\n {\n root: container.value,\n threshold: 1.0,\n }\n );\n\n observer.observe(target.value.$el);\n });\n\n return isContainerTruncating;\n}\n","const UNITS = ['byte', 'kilobyte', 'megabyte', 'gigabyte', 'terabyte', 'petabyte'];\n\n/**\n * Converts size in bytes to a human readable format using Binary Prefixes IEC standard\n * For example, it transforms \"1024\" to \"1kB\"\n *\n * Source: https://physics.nist.gov/cuu/Units/binary.html\n *\n * @param locale App's set locale (e.g. en, es, pt-BR)\n * @param size Size of file in bytes\n * @returns Size of file using metrics\n */\nexport function formatFileSize(locale: string, size: number) {\n const unitIndex = Math.max(0, Math.min(Math.floor(Math.log(size) / Math.log(1024)), UNITS.length - 1));\n\n return Intl.NumberFormat(locale, {\n style: 'unit',\n unit: UNITS[unitIndex],\n }).format(size / 1024 ** unitIndex);\n}\n","export type BentoFileUploaderValue = string | Array<string> | File | Array<File> | FileList;\nexport interface BentoFileUploaderProps {\n /**\n * A string that defines the file types the file input should accept.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept\n */\n accept?: HTMLInputElement['accept'];\n\n /**\n * Reduces the size of the uploader area.\n */\n condensed?: boolean;\n\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description?: string;\n\n /**\n * Disable the radio button (optional).\n */\n disabled?: boolean;\n\n /**\n * Renders file-uploader with an error state and the error message beneath the input box\n */\n errorMessage?: string;\n\n /**\n * The label of the component.\n */\n label: string;\n\n /**\n * Sets a maximum file count. Allows for uploading multiple files.\n */\n maxCount?: number;\n\n /**\n * Sets a maximum image size (for image file types only).\n */\n maxDimensions?: { width?: number; height?: number };\n\n /**\n * Sets a maximum file size in Bytes\n */\n maxSize?: number;\n\n /**\n * Used to support `v-model`. Can be used to set value of FileUploader if FileList\n */\n modelValue?: BentoFileUploaderValue;\n\n /**\n * Sets the field as optional.\n */\n optional?: boolean;\n\n /**\n * Sets the field as required.\n */\n required?: boolean;\n\n /**\n * Adds a info icon next to the label to display the passed tooltip message.\n */\n tooltipText?: string;\n}\n\n/**\n * Private types\n */\nexport enum FileState {\n LOADING = 'loading',\n SUCCESS = 'success',\n ERROR = 'error',\n}\n\nexport enum FileErrorType {\n ERROR_SIZE = 'error-size',\n ERROR_LOAD = 'error-load',\n ERROR_DIMENSIONS = 'error-dimensions',\n ERROR_TYPE = 'error-type',\n}\n\nexport enum FileUploaderState {\n DISABLED = 'disabled',\n DRAG_OVER = 'drag-over',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum FileType {\n TABLE = 'table',\n IMAGE = 'image',\n VIDEO = 'video',\n AUDIO = 'audio',\n TEXT = 'text',\n PDF = 'pdf',\n SLIDES = 'slides',\n COMPRESSED = 'compressed',\n GENERIC = 'generic',\n}\n\nexport interface FileObject {\n id: string;\n data: File;\n state: FileState;\n errors: Array<FileErrorType>;\n type: FileType;\n progress: number | null;\n dimensions?: { width: number; height: number };\n}\n\nexport type SupportedFileTypes = string;\n","import { FileType } from '@/components/file-uploader/file-uploader.types';\n\nconst textFileExtraTypes = [\n 'application/msword', // .doc\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx\n 'application/rtf', // .rtf\n];\n\nconst tableFileTypes = [\n 'application/vnd.ms-excel', // .xls\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // .xlsx\n 'application/vnd.oasis.opendocument.spreadsheet', //.ods\n 'application/vnd.apple.numbers', // .numbers\n 'application/x-iwork-numbers-sffnumbers', // .numbers\n 'text/csv', // .csv\n];\n\nconst slidesFileTypes = [\n 'application/vnd.ms-powerpoint', // .ppt\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation', // .pptx\n 'application/vnd.oasis.opendocument.presentation', // .odp\n];\n\nconst compressedFileTypes = [\n 'application/zip', // .zip\n 'application/vnd.rar', // .rar\n 'application/x-7z-compressed', // .7z\n 'application/gzip', // .gz, .tar.gz, .tgz\n 'application/x-tar', // .tar\n 'application/x-bzip2', // .bz2\n 'application/x-xz', // .xz\n 'application/x-lzma', // .lzma\n 'application/x-compress', // .Z\n 'application/vnd.ms-cab-compressed', // .cab\n];\n\n/**\n * Categorizes the type of a file. Maps all types of text, image, video,\n * audio and documents to an specific category such as \"text/*\" or \"image/*\" respectively\n * @param file File to be typed\n * @returns Type category of the file being uploaded\n */\nexport function getFileType(file: File) {\n if (tableFileTypes.includes(file.type)) {\n return FileType.TABLE;\n }\n\n if (file.type.startsWith('text/') || textFileExtraTypes.includes(file.type)) {\n return FileType.TEXT;\n }\n\n if (file.type.startsWith('image/')) {\n return FileType.IMAGE;\n }\n\n if (file.type.startsWith('video/')) {\n return FileType.VIDEO;\n }\n\n if (file.type.startsWith('audio/')) {\n return FileType.AUDIO;\n }\n\n if (file.type === 'application/pdf') {\n return FileType.PDF;\n }\n\n if (slidesFileTypes.includes(file.type)) {\n return FileType.SLIDES;\n }\n\n if (compressedFileTypes.includes(file.type)) {\n return FileType.COMPRESSED;\n }\n\n return FileType.GENERIC;\n}\n","import { FileErrorType, type FileObject, FileState, FileType } from '@/components/file-uploader/file-uploader.types';\n\n/**\n * Validates if a File has the correct type accepted for the current instance of\n * BentoFileUploader.\n *\n * @param file File being processed\n * @param accept HTML MIME types valid for the file to be processed\n * @returns Whether or not the file has the right type\n */\nexport function isFileTypeAccepted(file: File, accept?: string) {\n if (!accept) {\n return true;\n }\n\n // Split accept attribute into individual rules (e.g., 'image/*', '.png')\n const acceptPatterns = accept.split(',').map(type => type.trim());\n\n for (const pattern of acceptPatterns) {\n if (pattern.startsWith('.')) {\n // Check for file extension\n if (file.name.endsWith(pattern)) {\n return true;\n }\n } else if (pattern.endsWith('/*')) {\n // Check for type category (e.g., 'image/*')\n const category = pattern.split('/')[0];\n if (file.type.startsWith(category)) {\n return true;\n }\n } else {\n // Check for exact MIME type match\n if (file.type === pattern) {\n return true;\n }\n }\n }\n\n return false; // No matches found\n}\n\n/**\n * Process a file to verify if it fulfills the accepted type restrictions defined in \"accept\",\n * the dimensions for \"image/*\" types defined by \"maxDimensions\". The state of the \"fileObject\" will\n * be updated according to the restrictions or if it was successfully uploaded.\n *\n * @param fileObject File to be processed\n * @param accept HTML MIME types valid for the file to be processed\n * @param maxDimensions Width and height restrictions for \"image/*\" files\n */\nexport function readFile(\n fileObject: FileObject,\n accept?: string,\n maxDimensions?: { width?: number; height?: number }\n): void {\n const reader = new FileReader();\n // Can't be cloned because the events are async\n const file = fileObject; // avoid ESLint no-param-reassign\n\n // Verify file type - skip the rest if invalid\n if (!isFileTypeAccepted(file.data, accept)) {\n file.state = FileState.ERROR;\n file.errors.push(FileErrorType.ERROR_TYPE);\n return;\n }\n\n reader.onload = event => {\n if (maxDimensions && file.type === FileType.IMAGE) {\n const blob = new Blob([event.target.result], { type: file.data.type });\n const url = URL.createObjectURL(blob);\n const img = new Image();\n\n img.onload = function () {\n if (img.width > maxDimensions.width || img.height > maxDimensions.height) {\n file.state = FileState.ERROR;\n file.errors.push(FileErrorType.ERROR_DIMENSIONS);\n }\n URL.revokeObjectURL(url);\n };\n\n img.onerror = function () {\n URL.revokeObjectURL(url);\n };\n\n img.src = url;\n }\n };\n\n reader.onprogress = event => {\n if (event.lengthComputable) {\n file.progress = (event.loaded / event.total) * 100;\n }\n };\n\n reader.onloadend = () => {\n if (file.state !== FileState.ERROR) {\n file.state = FileState.SUCCESS;\n }\n\n file.progress = null;\n };\n\n reader.onerror = () => {\n file.state = FileState.ERROR;\n file.errors.push(FileErrorType.ERROR_LOAD);\n file.progress = null;\n };\n\n reader.readAsArrayBuffer(file.data);\n}\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><g :clip-path=\"'url(#uia-ui-assets/icons-16-attachment__a' + uuid + ')'\"><path fill=\"#001222\" d=\"M12.866 4.09026C11.5689 2.79315 9.4638 2.79315 8.1667 4.09026L2.7267 9.53026C1.95959 10.2974 1.95959 11.5425 2.7267 12.3096C3.49381 13.0767 4.73893 13.0767 5.50604 12.3096L10.946 6.8696C11.1831 6.63249 11.1831 6.24737 10.946 6.01026C10.7089 5.77316 10.3238 5.77316 10.0867 6.01026L4.75637 11.3406L3.69571 10.2799L9.02604 4.9496C9.84893 4.12671 11.1838 4.12671 12.0067 4.9496C12.8296 5.7725 12.8296 7.10737 12.0067 7.93026L6.5667 13.3703C5.2138 14.7232 3.01893 14.7232 1.66604 13.3703C0.313144 12.0174 0.313144 9.82249 1.66604 8.4696L7.10604 3.0296C8.98893 1.14671 12.0438 1.14671 13.9267 3.0296C15.8096 4.91249 15.8096 7.96737 13.9267 9.85026L11.1564 12.6206L10.0957 11.5599L12.866 8.7896C14.1631 7.49249 14.1631 5.38737 12.866 4.09026Z\"/></g><defs><clipPath :id=\"'uia-ui-assets/icons-16-attachment__a' + uuid\"><rect width=\"16\" height=\"16\" fill=\"#fff\"/></clipPath></defs></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M13.75 9.58159C14.3412 9.30073 14.75 8.6981 14.75 8V2C14.75 1.0335 13.9665 0.25 13 0.25H3C2.0335 0.25 1.25 1.0335 1.25 2V8C1.25 8.6981 1.65876 9.30073 2.25 9.58159V11C2.25 11.4641 2.43438 11.9092 2.76256 12.2374C2.90555 12.3804 3.07072 12.4961 3.25 12.5811V14C3.25 14.4641 3.43438 14.9092 3.76256 15.2374C4.09075 15.5656 4.53587 15.75 5 15.75H11C11.4641 15.75 11.9092 15.5656 12.2374 15.2374C12.5656 14.9092 12.75 14.4641 12.75 14V12.5811C12.9293 12.4961 13.0945 12.3804 13.2374 12.2374C13.5656 11.9092 13.75 11.4641 13.75 11V9.58159ZM3 1.75H13C13.1381 1.75 13.25 1.86193 13.25 2V8C13.25 8.13807 13.1381 8.25 13 8.25H3C2.86193 8.25 2.75 8.13807 2.75 8V2C2.75 1.86193 2.86193 1.75 3 1.75ZM12.25 9.75V11C12.25 11.0663 12.2237 11.1299 12.1768 11.1768C12.1299 11.2237 12.0663 11.25 12 11.25H4C3.9337 11.25 3.87011 11.2237 3.82322 11.1768C3.77634 11.1299 3.75 11.0663 3.75 11V9.75H12.25ZM11.25 12.75V14C11.25 14.0663 11.2237 14.1299 11.1768 14.1768C11.1299 14.2237 11.0663 14.25 11 14.25H5C4.9337 14.25 4.87011 14.2237 4.82322 14.1768C4.77634 14.1299 4.75 14.0663 4.75 14V12.75H11.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M2.25 0.25V15.75H13.75V4.68934L9.31066 0.25H2.25ZM7.25 1.75V6.75H12.25V14.25H3.75V1.75H7.25ZM12.1893 5.25H8.75V1.81066L12.1893 5.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M5.24609 8.25H10.7461V9.75H5.24609V8.25Z\"/><path fill=\"#001222\" d=\"M10.7461 11.25H5.24609V12.75H10.7461V11.25Z\"/><path fill=\"#001222\" d=\"M2.24609 0.25V15.75H13.7461V4.68934L9.30675 0.25H2.24609ZM7.24609 1.75V6.75H12.2461V14.25H3.74609V1.75H7.24609ZM12.1854 5.25H8.74609V1.81066L12.1854 5.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M1.24609 4.5C1.24609 3.25579 2.25188 2.25 3.49609 2.25H6.37609C6.97727 2.25 7.54738 2.49062 7.96642 2.90967L10.0864 5.02967C10.2274 5.17062 10.4173 5.25 10.6161 5.25H12.4961C13.7403 5.25 14.7461 6.25579 14.7461 7.5V12.5C14.7461 13.7442 13.7403 14.75 12.4961 14.75H3.49609C2.25188 14.75 1.24609 13.7442 1.24609 12.5V4.5ZM3.49609 3.75C3.08031 3.75 2.74609 4.08421 2.74609 4.5V12.5C2.74609 12.9158 3.08031 13.25 3.49609 13.25H12.4961C12.9119 13.25 13.2461 12.9158 13.2461 12.5V7.5C13.2461 7.08421 12.9119 6.75 12.4961 6.75H10.6161C10.0149 6.75 9.44481 6.50938 9.02576 6.09033L6.90576 3.97033C6.76481 3.82938 6.57492 3.75 6.37609 3.75H3.49609Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M9.99609 3.24805C8.47731 3.24805 7.24609 4.47926 7.24609 5.99805C7.24609 7.51683 8.47731 8.74805 9.99609 8.74805C11.5149 8.74805 12.7461 7.51683 12.7461 5.99805C12.7461 4.47926 11.5149 3.24805 9.99609 3.24805ZM8.74609 5.99805C8.74609 5.30769 9.30574 4.74805 9.99609 4.74805C10.6865 4.74805 11.2461 5.30769 11.2461 5.99805C11.2461 6.6884 10.6865 7.24805 9.99609 7.24805C9.30574 7.24805 8.74609 6.6884 8.74609 5.99805Z\"/><path fill=\"#001222\" d=\"M1.24609 3.49805C1.24609 2.25541 2.25345 1.24805 3.49609 1.24805H12.4961C13.7387 1.24805 14.7461 2.25541 14.7461 3.49805V12.498C14.7461 13.7407 13.7387 14.748 12.4961 14.748H3.49609C2.25345 14.748 1.24609 13.7407 1.24609 12.498V3.49805ZM3.49609 2.74805C3.08188 2.74805 2.74609 3.08383 2.74609 3.49805V6.68756L3.99615 5.4375L11.8067 13.248H12.4961C12.9103 13.248 13.2461 12.9123 13.2461 12.498V3.49805C13.2461 3.08383 12.9103 2.74805 12.4961 2.74805H3.49609ZM2.74609 12.498C2.74609 12.9123 3.08188 13.248 3.49609 13.248H9.68538L3.99615 7.55882L2.74609 8.80888V12.498Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><g fill=\"#001222\" :clip-path=\"'url(#uia-ui-assets/icons-16-play_circle__a' + uuid + ')'\"><path d=\"M10.9722 8.00002L6.62012 5.09863V10.9014L10.9722 8.00002Z\"/><path d=\"M5.0342 0.839937C6.45033 0.253358 8.0086 0.0998821 9.51195 0.398918C11.0153 0.697953 12.3962 1.43607 13.4801 2.51993C14.5639 3.60378 15.3021 4.9847 15.6011 6.48805C15.9001 7.99141 15.7466 9.54967 15.1601 10.9658C14.5735 12.3819 13.5801 13.5923 12.3057 14.4439C11.0312 15.2955 9.53281 15.75 8 15.75C5.94457 15.75 3.97333 14.9335 2.51992 13.4801C1.06652 12.0267 0.25 10.0554 0.25 8C0.25 6.4672 0.704529 4.96881 1.55611 3.69433C2.40769 2.41985 3.61808 1.42652 5.0342 0.839937ZM9.21931 1.8701C8.00693 1.62894 6.75027 1.75271 5.60823 2.22576C4.46619 2.6988 3.49007 3.49988 2.80331 4.52769C2.11656 5.5555 1.75 6.76387 1.75 8C1.75 9.65761 2.40848 11.2473 3.58058 12.4194C4.75268 13.5915 6.3424 14.25 8 14.25C9.23613 14.25 10.4445 13.8834 11.4723 13.1967C12.5001 12.5099 13.3012 11.5338 13.7742 10.3918C14.2473 9.24974 14.3711 7.99307 14.1299 6.78069C13.8887 5.56831 13.2935 4.45466 12.4194 3.58059C11.5453 2.70651 10.4317 2.11125 9.21931 1.8701Z\"/></g><defs><clipPath :id=\"'uia-ui-assets/icons-16-play_circle__a' + uuid\"><rect width=\"16\" height=\"16\" fill=\"#fff\"/></clipPath></defs></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M5.68934 2.25H8.75V13.75H5.68934L2.68934 10.75H0.25V5.25H2.68934L5.68934 2.25ZM6.31066 3.75L3.31066 6.75H1.75V9.25H3.31066L6.31066 12.25H7.25V3.75H6.31066Z\"/><path fill=\"#001222\" d=\"M13.0111 4.99174C12.2099 4.19982 11.1294 3.75 10 3.75V2.25C11.53 2.25 12.9888 2.85964 14.0675 3.92684L14.0703 3.92966C15.1527 5.01199 15.75 6.47347 15.75 8C15.75 9.52995 15.1404 10.9888 14.0732 12.0675L14.0703 12.0703C12.988 13.1527 11.5265 13.75 10 13.75V12.25C11.1328 12.25 12.2107 11.8079 13.0082 11.0111C13.8002 10.21 14.25 9.1294 14.25 8C14.25 6.8672 13.8079 5.78927 13.0111 4.99174Z\"/><path fill=\"#001222\" d=\"M10 6.75V5.25C10.7257 5.25 11.4295 5.53694 11.9438 6.06319C12.4593 6.58041 12.75 7.26849 12.75 8C12.75 8.72573 12.4631 9.42951 11.9368 9.94383C11.4196 10.4593 10.7315 10.75 10 10.75V9.25C10.3268 9.25 10.6373 9.12206 10.8797 8.87967L10.8868 8.87265C11.1182 8.64727 11.25 8.33261 11.25 8C11.25 7.67317 11.1221 7.36272 10.8797 7.12033L10.8726 7.11321C10.6473 6.88175 10.3326 6.75 10 6.75Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M3.5 1.25L3.49505 1.25002C2.90084 1.25394 2.33208 1.49173 1.91191 1.91191C1.49173 2.33208 1.25392 2.90084 1.25 3.49505V12.5C1.25 13.0967 1.48705 13.669 1.90901 14.091C2.33097 14.5129 2.90326 14.75 3.5 14.75H12.5C13.0967 14.75 13.669 14.5129 14.091 14.091C14.5129 13.669 14.75 13.0967 14.75 12.5V3.5C14.75 2.90326 14.5129 2.33097 14.091 1.90901C13.669 1.48705 13.0967 1.25 12.5 1.25H3.5ZM5.25 2.75V5.25H2.75V3.5029C2.75185 3.30382 2.83175 3.11338 2.97257 2.97257C3.11338 2.83175 3.30382 2.75185 3.5029 2.75H5.25ZM5.25 6.75V9.25H2.75V6.75H5.25ZM6.75 9.25V6.75H13.25V9.25H6.75ZM5.25 10.75V13.25H3.5C3.30109 13.25 3.11032 13.171 2.96967 13.0303C2.82902 12.8897 2.75 12.6989 2.75 12.5V10.75H5.25ZM6.75 13.25V10.75H13.25V12.5C13.25 12.6989 13.171 12.8897 13.0303 13.0303C12.8897 13.171 12.6989 13.25 12.5 13.25H6.75ZM6.75 5.25V2.75H12.5C12.6989 2.75 12.8897 2.82902 13.0303 2.96967C13.171 3.11032 13.25 3.30109 13.25 3.5V5.25H6.75Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","import { VueNodeElement } from '@/types';\nimport { type FileObject, FileType } from '@/components/file-uploader/file-uploader.types';\n\nimport AttachmentIcon from '@adyen/ui-assets-icons-16/vue/attachment';\nimport CollectionIcon from '@adyen/ui-assets-icons-16/vue/collection';\nimport DocumentIcon from '@adyen/ui-assets-icons-16/vue/document-1';\nimport DocumentLinesIcon from '@adyen/ui-assets-icons-16/vue/document-lines';\nimport FolderIcon from '@adyen/ui-assets-icons-16/vue/folder';\nimport ImageIcon from '@adyen/ui-assets-icons-16/vue/image';\nimport PlayCircleIcon from '@adyen/ui-assets-icons-16/vue/play-circle';\nimport SoundIcon from '@adyen/ui-assets-icons-16/vue/sound';\nimport TableIcon from '@adyen/ui-assets-icons-16/vue/table';\n\nconst FILE_TYPE_ICON_MAP: Record<FileType, VueNodeElement> = {\n [FileType.AUDIO]: SoundIcon,\n [FileType.COMPRESSED]: FolderIcon,\n [FileType.GENERIC]: AttachmentIcon,\n [FileType.IMAGE]: ImageIcon,\n [FileType.PDF]: DocumentIcon,\n [FileType.SLIDES]: CollectionIcon,\n [FileType.TABLE]: TableIcon,\n [FileType.TEXT]: DocumentLinesIcon,\n [FileType.VIDEO]: PlayCircleIcon,\n};\n\n/**\n * Return an icon Vue component that can be used with a given File type @see FileType\n * @param file File object containing a type\n * @returns Icon for the respective type\n */\nexport function getFileIcon(file: FileObject) {\n return FILE_TYPE_ICON_MAP[file.type];\n}\n","import { type FileObject, FileType } from '@/components/file-uploader/file-uploader.types';\n\n/**\n * Returns the color to be used for the icon of a given type.\n *\n * @param file File with a given type\n * @returns Color to be used with their respective file type\n */\nexport function getFileIconColor(file: FileObject) {\n switch (file.type) {\n case FileType.COMPRESSED:\n case FileType.GENERIC:\n return 'grey';\n case FileType.PDF:\n case FileType.SLIDES:\n return 'orange';\n case FileType.TEXT:\n return 'blue';\n default:\n return 'green';\n }\n}\n","<template>\n <div class=\"b-file-uploader-file-card\" :class=\"conditionalClasses\">\n <div class=\"b-file-uploader-file-card__details\">\n <div class=\"b-file-uploader-file-card__info\">\n <file-uploader-file-card-animation\n :name=\"\n isVue2 ? 'b-file-uploader-file-card__animation' : 'b-file-uploader-file-card__animation--vue3'\n \"\n :show-file-icon=\"showFileIcon\"\n >\n <component\n :is=\"fileUploaderIcon\"\n :key=\"JSON.stringify(fileUploaderIcon)\"\n small\n aria-hidden=\"true\"\n class=\"b-file-uploader-file-card__icon\"\n :class=\"conditionalIconClasses\"\n data-testid=\"file-uploader-item-icon\"\n />\n </file-uploader-file-card-animation>\n\n <div ref=\"fileNameContainerRef\" class=\"b-file-uploader-file-card__file-name\">\n <bento-link\n aria-hidden=\"true\"\n tabindex=\"-1\"\n :download=\"file.data.name\"\n :to=\"downloadUrl\"\n disable-typography\n is-not-routing\n variant=\"quiet\"\n >\n <bento-typography\n ref=\"fileNameRef\"\n v-bento-tooltip-directive=\"isFileNameTruncated ? file.data.name : null\"\n stronger\n el=\"span\"\n >\n {{ file.data.name }}\n </bento-typography>\n </bento-link>\n </div>\n\n <bento-typography v-if=\"file.progress\" el=\"span\">{{ progressLabel }}</bento-typography>\n <bento-typography\n v-else-if=\"file.data.size\"\n class=\"b-file-uploader-file-card__file-size\"\n aria-hidden=\"true\"\n el=\"span\"\n >\n {{ sizeLabel }}\n </bento-typography>\n </div>\n\n <div\n v-if=\"hasSizeError || hasDimensionsError || (hasTypeError && supportedFileTypes)\"\n :id=\"fileErrorsSectionId\"\n role=\"alert\"\n >\n <bento-typography v-if=\"hasSizeError\" class=\"b-file-uploader-file-card__error-message\">\n {{ t('fileExceedsSizeLimit') }}\n </bento-typography>\n <bento-typography v-if=\"hasDimensionsError\" class=\"b-file-uploader-file-card__error-message\">\n {{ t('imageDimensionsExceedLimits') }}\n </bento-typography>\n <bento-typography\n v-if=\"hasTypeError && supportedFileTypes\"\n class=\"b-file-uploader-file-card__error-message\"\n >\n {{ t('fileTypeMustBe', { list: supportedFileTypes }) }}\n </bento-typography>\n </div>\n </div>\n\n <div class=\"b-file-uploader-file-card__actions\">\n <bento-button\n v-if=\"hasLoadError\"\n ref=\"retryFileButtonRef\"\n :aria-labelledby=\"`${fileErrorsSectionId} ${retryFileButtonId}`\"\n variant=\"tertiary\"\n @click=\"emit('retry')\"\n >\n <template #iconLeft>\n <refresh-icon :id=\"retryFileButtonId\" :svg-title=\"`${t('retry')} - ${file.data.name} `\" />\n </template>\n {{ t('retry') }}\n </bento-button>\n <bento-button\n v-if=\"isLoading || hasError\"\n ref=\"cancelFileButtonRef\"\n :aria-labelledby=\"`${fileErrorsSectionId} ${cancelFileButtonId}`\"\n variant=\"tertiary\"\n @click=\"emit('cancel')\"\n >\n <template #iconLeft>\n <cross-icon :id=\"cancelFileButtonId\" :svg-title=\"`${t('cancel')} - ${file.data.name}`\" />\n </template>\n </bento-button>\n <bento-button\n v-else\n ref=\"removeFileButtonRef\"\n :aria-labelledby=\"`${fileErrorsSectionId} ${removeFileButtonId}`\"\n variant=\"tertiary\"\n @click=\"emit('remove')\"\n >\n <template #iconLeft>\n <bin-icon :id=\"removeFileButtonId\" :svg-title=\"`${t('remove')} - ${file.data.name}`\" />\n </template>\n </bento-button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue';\n import { isVue2 } from 'vue-demi';\n import { FileUploaderFileCardAnimation } from './components';\n import BinIcon from '@adyen/ui-assets-icons-16/vue/bin';\n import CheckmarkCircleFilledIcon from '@adyen/ui-assets-icons-16/vue/checkmark-circle-fill';\n import CrossIcon from '@adyen/ui-assets-icons-16/vue/cross';\n import RefreshIcon from '@adyen/ui-assets-icons-16/vue/refresh';\n import WarningFilledIcon from '@adyen/ui-assets-icons-16/vue/warning-filled';\n\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { BentoButton } from '@/components/button';\n import { BentoLink } from '@/components/link';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { BentoTypography } from '@/components/typography';\n import { useTruncatedFileName } from './composables/use-truncated-file-name';\n import { generateUid } from '@/core/utils/ts';\n\n import { useI18n } from '@/utils/ts/i18n';\n import { formatFileSize } from '../../utils';\n import { getFileIcon, getFileIconColor } from './utils';\n import { FileErrorType, FileState } from '@/components/file-uploader/file-uploader.types';\n import type { FileUploaderFileCardProps } from './file-uploader-file-card.types';\n import type { VueInstance } from '@/types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const ICON_TIMER = 1200;\n\n const props = defineProps({\n file: null,\n supportedFileTypes: { default: null }\n});\n\n const emit = defineEmits([\"cancel\", \"remove\", \"retry\"]);\n\n const { t, locale } = useI18n<{ message: MessageSchema }>({ messages });\n\n const removeFileButtonRef = ref(null);\n const cancelFileButtonRef = ref(null);\n const retryFileButtonRef = ref(null);\n const fileErrorsSectionId = generateUid('file-errors-section');\n const cancelFileButtonId = generateUid('cancel-file-button');\n const removeFileButtonId = generateUid('remove-file-button');\n const retryFileButtonId = generateUid('retry-file-button');\n\n // If initial state is success, immediately show file icon\n const showFileIcon = ref(props.file.state === FileState.SUCCESS);\n\n const downloadUrl = computed(() => URL.createObjectURL(props.file.data));\n const hasError = computed(() => props.file.state === FileState.ERROR);\n const hasLoadError = computed(() => props.file.errors.includes(FileErrorType.ERROR_LOAD));\n const hasSizeError = computed(() => props.file.errors.includes(FileErrorType.ERROR_SIZE));\n const hasDimensionsError = computed(() => props.file.errors.includes(FileErrorType.ERROR_DIMENSIONS));\n const hasTypeError = computed(() => props.file.errors.includes(FileErrorType.ERROR_TYPE));\n const isLoading = computed(() => props.file.state === FileState.LOADING);\n const progressLabel = computed(() => props.file.progress && `(${props.file.progress.toFixed(0)}%)`);\n const sizeLabel = computed(() => formatFileSize(locale.value, props.file.data.size));\n\n // Truncation tooltip\n const fileNameRef = ref<VueInstance>();\n const fileNameContainerRef = ref<HTMLDivElement>();\n\n const isFileNameTruncated = useTruncatedFileName(fileNameRef, fileNameContainerRef);\n\n const conditionalClasses = computed(() => ({\n 'b-file-uploader-file-card--error': hasError.value,\n }));\n\n const conditionalIconClasses = computed(() => ({\n [`b-file-uploader-file-card__icon--${getFileIconColor(props.file)}`]: showFileIcon.value,\n 'b-file-uploader-file-card__icon--error': hasError.value,\n }));\n\n // Compute the icon to be displayed\n const fileUploaderIcon = computed(() => {\n if (isLoading.value) {\n return BentoLoadingIndicator;\n }\n if (hasError.value) {\n return WarningFilledIcon;\n }\n return showFileIcon.value ? getFileIcon(props.file) : CheckmarkCircleFilledIcon;\n });\n\n // Animation when success icon turns to file icon.\n watch(\n () => props.file.state,\n value => {\n if (value === FileState.SUCCESS && !showFileIcon.value) {\n const changeTimer = setTimeout(() => {\n showFileIcon.value = true;\n clearTimeout(changeTimer);\n }, ICON_TIMER);\n }\n }\n );\n\n /**\n * Places the focus on the button element.\n */\n function focus() {\n if (retryFileButtonRef.value) {\n retryFileButtonRef.value.$el.focus();\n return;\n }\n\n if (removeFileButtonRef.value) {\n removeFileButtonRef.value.$el.focus();\n return;\n }\n\n if (cancelFileButtonRef.value) {\n cancelFileButtonRef.value.$el.focus();\n return;\n }\n }\n\n defineExpose({\n focus,\n });\n</script>\n\n<script lang=\"ts\">\n /**\n *\n * Individual file items that are listed inside \"bento-file-uploader\" that can\n * be retried, removed or cancelled as they are being uploaded.\n *\n * @example\n * import { FileUploaderFileCard, FileObject } from './';\n *\n * export default {\n * components: { FileUploaderFileCard },\n * template: `\n * <file-uploader-file-card\n * :file=\"file\"\n * supportedFileTypes=\"video files, image files\"\n * @retry=\"retryFile(file)\"\n * @cancel=\"removeFile(file)\"\n * @remove=\"removeFile(file)\"\n * />\n * `,\n * setup() {\n * const file = ref<FileObject>({\n * id: 'stub-file',\n * type: FileType.AUDIO,\n * data: new File(['blob'], 'File name'),\n * state: FileState.SUCCESS,\n * progress: 99,\n * });\n * }\n * }\n */\n export default {\n name: 'file-uploader-file-card',\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./file-uploader-file-card.scss\" />\n","<template>\n <div class=\"b-file-uploader-restrictions\" :class=\"conditionalClasses\">\n <bento-typography v-if=\"supportedFileTypes\" :class=\"setRestrictionErrorClass(supportedFileTypes.error)\">\n {{ t('supportedFileTypes', { list: supportedFileTypes.value }) }}\n </bento-typography>\n <bento-typography v-if=\"maxSize\" :class=\"setRestrictionErrorClass(maxSize.error)\">\n {{ t('maxFileSize', { size: formatFileSize(locale, maxSize.value) }) }}\n </bento-typography>\n <bento-typography v-if=\"maxDimensions\" :class=\"setRestrictionErrorClass(maxDimensions.error)\">\n {{ maxDimensionsLabel }}\n </bento-typography>\n <bento-typography v-if=\"maxCount\" :class=\"setRestrictionErrorClass(maxCount.error)\">\n {{ tc('maxUpload', maxCount.value) }}\n </bento-typography>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { useI18n } from '@/utils/ts/i18n';\n import { formatFileSize } from '../../utils';\n import type { FileUploaderRestrictionsProps } from './file-uploader-restrictions.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n condensed: { default: null },\n disabled: { default: null },\n maxCount: { default: null },\n maxDimensions: { default: null },\n maxSize: { default: null },\n supportedFileTypes: { default: null }\n});\n\n const { t, tc, locale } = useI18n<{ message: MessageSchema }>({ messages });\n\n const conditionalClasses = computed(() => ({\n ['b-file-uploader-restrictions--condensed']: props.condensed,\n ['b-file-uploader-restrictions--disabled']: props.disabled,\n }));\n\n /**\n * Returns the error class to be set if a restriction has an error\n * @param error Indicates if the restriction has errored\n * @returns Conditional error class\n */\n function setRestrictionErrorClass(error: boolean) {\n return {\n 'b-file-uploader-restrictions--error': error,\n };\n }\n\n const maxDimensionsLabel = computed(() => {\n if (!props.maxDimensions) {\n return null;\n }\n\n const {\n value: { width, height },\n } = props.maxDimensions;\n\n if (width && height) {\n return t('maxImageDimensions', { width, height });\n }\n if (width) {\n return t('maxImageWidth', { width });\n }\n if (height) {\n return t('maxImageHeight', { height });\n }\n return null;\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * List of restrictions defined for \"bento-file-uploader\".\n *\n * @example\n * import { FileUploaderRestrictions } from './';\n *\n * export default {\n * components: { FileUploaderRestrictions },\n * template: `\n * <file-uploader-restrictions\n * :maxCount=\"1\"\n * :maxSize=\"5000\"\n * :maxDimensions=\"{ width: 100, height: 200 }\"\n * supportedFileTypes=\"audio/*,.pdf,.jpg\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./file-uploader-restrictions.scss\" />\n","const types = {\n 'application/prs.cww': ['cww'],\n 'application/prs.xsf+xml': ['xsf'],\n 'application/vnd.1000minds.decision-model+xml': ['1km'],\n 'application/vnd.3gpp.pic-bw-large': ['plb'],\n 'application/vnd.3gpp.pic-bw-small': ['psb'],\n 'application/vnd.3gpp.pic-bw-var': ['pvb'],\n 'application/vnd.3gpp2.tcap': ['tcap'],\n 'application/vnd.3m.post-it-notes': ['pwn'],\n 'application/vnd.accpac.simply.aso': ['aso'],\n 'application/vnd.accpac.simply.imp': ['imp'],\n 'application/vnd.acucobol': ['acu'],\n 'application/vnd.acucorp': ['atc', 'acutc'],\n 'application/vnd.adobe.air-application-installer-package+zip': ['air'],\n 'application/vnd.adobe.formscentral.fcdt': ['fcdt'],\n 'application/vnd.adobe.fxp': ['fxp', 'fxpl'],\n 'application/vnd.adobe.xdp+xml': ['xdp'],\n 'application/vnd.adobe.xfdf': ['*xfdf'],\n 'application/vnd.age': ['age'],\n 'application/vnd.ahead.space': ['ahead'],\n 'application/vnd.airzip.filesecure.azf': ['azf'],\n 'application/vnd.airzip.filesecure.azs': ['azs'],\n 'application/vnd.amazon.ebook': ['azw'],\n 'application/vnd.americandynamics.acc': ['acc'],\n 'application/vnd.amiga.ami': ['ami'],\n 'application/vnd.android.package-archive': ['apk'],\n 'application/vnd.anser-web-certificate-issue-initiation': ['cii'],\n 'application/vnd.anser-web-funds-transfer-initiation': ['fti'],\n 'application/vnd.antix.game-component': ['atx'],\n 'application/vnd.apple.installer+xml': ['mpkg'],\n 'application/vnd.apple.keynote': ['key'],\n 'application/vnd.apple.mpegurl': ['m3u8'],\n 'application/vnd.apple.numbers': ['numbers'],\n 'application/vnd.apple.pages': ['pages'],\n 'application/vnd.apple.pkpass': ['pkpass'],\n 'application/vnd.aristanetworks.swi': ['swi'],\n 'application/vnd.astraea-software.iota': ['iota'],\n 'application/vnd.audiograph': ['aep'],\n 'application/vnd.balsamiq.bmml+xml': ['bmml'],\n 'application/vnd.blueice.multipass': ['mpm'],\n 'application/vnd.bmi': ['bmi'],\n 'application/vnd.businessobjects': ['rep'],\n 'application/vnd.chemdraw+xml': ['cdxml'],\n 'application/vnd.chipnuts.karaoke-mmd': ['mmd'],\n 'application/vnd.cinderella': ['cdy'],\n 'application/vnd.citationstyles.style+xml': ['csl'],\n 'application/vnd.claymore': ['cla'],\n 'application/vnd.cloanto.rp9': ['rp9'],\n 'application/vnd.clonk.c4group': ['c4g', 'c4d', 'c4f', 'c4p', 'c4u'],\n 'application/vnd.cluetrust.cartomobile-config': ['c11amc'],\n 'application/vnd.cluetrust.cartomobile-config-pkg': ['c11amz'],\n 'application/vnd.commonspace': ['csp'],\n 'application/vnd.contact.cmsg': ['cdbcmsg'],\n 'application/vnd.cosmocaller': ['cmc'],\n 'application/vnd.crick.clicker': ['clkx'],\n 'application/vnd.crick.clicker.keyboard': ['clkk'],\n 'application/vnd.crick.clicker.palette': ['clkp'],\n 'application/vnd.crick.clicker.template': ['clkt'],\n 'application/vnd.crick.clicker.wordbank': ['clkw'],\n 'application/vnd.criticaltools.wbs+xml': ['wbs'],\n 'application/vnd.ctc-posml': ['pml'],\n 'application/vnd.cups-ppd': ['ppd'],\n 'application/vnd.curl.car': ['car'],\n 'application/vnd.curl.pcurl': ['pcurl'],\n 'application/vnd.dart': ['dart'],\n 'application/vnd.data-vision.rdz': ['rdz'],\n 'application/vnd.dbf': ['dbf'],\n 'application/vnd.dece.data': ['uvf', 'uvvf', 'uvd', 'uvvd'],\n 'application/vnd.dece.ttml+xml': ['uvt', 'uvvt'],\n 'application/vnd.dece.unspecified': ['uvx', 'uvvx'],\n 'application/vnd.dece.zip': ['uvz', 'uvvz'],\n 'application/vnd.denovo.fcselayout-link': ['fe_launch'],\n 'application/vnd.dna': ['dna'],\n 'application/vnd.dolby.mlp': ['mlp'],\n 'application/vnd.dpgraph': ['dpg'],\n 'application/vnd.dreamfactory': ['dfac'],\n 'application/vnd.ds-keypoint': ['kpxx'],\n 'application/vnd.dvb.ait': ['ait'],\n 'application/vnd.dvb.service': ['svc'],\n 'application/vnd.dynageo': ['geo'],\n 'application/vnd.ecowin.chart': ['mag'],\n 'application/vnd.enliven': ['nml'],\n 'application/vnd.epson.esf': ['esf'],\n 'application/vnd.epson.msf': ['msf'],\n 'application/vnd.epson.quickanime': ['qam'],\n 'application/vnd.epson.salt': ['slt'],\n 'application/vnd.epson.ssf': ['ssf'],\n 'application/vnd.eszigno3+xml': ['es3', 'et3'],\n 'application/vnd.ezpix-album': ['ez2'],\n 'application/vnd.ezpix-package': ['ez3'],\n 'application/vnd.fdf': ['*fdf'],\n 'application/vnd.fdsn.mseed': ['mseed'],\n 'application/vnd.fdsn.seed': ['seed', 'dataless'],\n 'application/vnd.flographit': ['gph'],\n 'application/vnd.fluxtime.clip': ['ftc'],\n 'application/vnd.framemaker': ['fm', 'frame', 'maker', 'book'],\n 'application/vnd.frogans.fnc': ['fnc'],\n 'application/vnd.frogans.ltf': ['ltf'],\n 'application/vnd.fsc.weblaunch': ['fsc'],\n 'application/vnd.fujitsu.oasys': ['oas'],\n 'application/vnd.fujitsu.oasys2': ['oa2'],\n 'application/vnd.fujitsu.oasys3': ['oa3'],\n 'application/vnd.fujitsu.oasysgp': ['fg5'],\n 'application/vnd.fujitsu.oasysprs': ['bh2'],\n 'application/vnd.fujixerox.ddd': ['ddd'],\n 'application/vnd.fujixerox.docuworks': ['xdw'],\n 'application/vnd.fujixerox.docuworks.binder': ['xbd'],\n 'application/vnd.fuzzysheet': ['fzs'],\n 'application/vnd.genomatix.tuxedo': ['txd'],\n 'application/vnd.geogebra.file': ['ggb'],\n 'application/vnd.geogebra.slides': ['ggs'],\n 'application/vnd.geogebra.tool': ['ggt'],\n 'application/vnd.geometry-explorer': ['gex', 'gre'],\n 'application/vnd.geonext': ['gxt'],\n 'application/vnd.geoplan': ['g2w'],\n 'application/vnd.geospace': ['g3w'],\n 'application/vnd.gmx': ['gmx'],\n 'application/vnd.google-apps.document': ['gdoc'],\n 'application/vnd.google-apps.presentation': ['gslides'],\n 'application/vnd.google-apps.spreadsheet': ['gsheet'],\n 'application/vnd.google-earth.kml+xml': ['kml'],\n 'application/vnd.google-earth.kmz': ['kmz'],\n 'application/vnd.gov.sk.xmldatacontainer+xml': ['xdcf'],\n 'application/vnd.grafeq': ['gqf', 'gqs'],\n 'application/vnd.groove-account': ['gac'],\n 'application/vnd.groove-help': ['ghf'],\n 'application/vnd.groove-identity-message': ['gim'],\n 'application/vnd.groove-injector': ['grv'],\n 'application/vnd.groove-tool-message': ['gtm'],\n 'application/vnd.groove-tool-template': ['tpl'],\n 'application/vnd.groove-vcard': ['vcg'],\n 'application/vnd.hal+xml': ['hal'],\n 'application/vnd.handheld-entertainment+xml': ['zmm'],\n 'application/vnd.hbci': ['hbci'],\n 'application/vnd.hhe.lesson-player': ['les'],\n 'application/vnd.hp-hpgl': ['hpgl'],\n 'application/vnd.hp-hpid': ['hpid'],\n 'application/vnd.hp-hps': ['hps'],\n 'application/vnd.hp-jlyt': ['jlt'],\n 'application/vnd.hp-pcl': ['pcl'],\n 'application/vnd.hp-pclxl': ['pclxl'],\n 'application/vnd.hydrostatix.sof-data': ['sfd-hdstx'],\n 'application/vnd.ibm.minipay': ['mpy'],\n 'application/vnd.ibm.modcap': ['afp', 'listafp', 'list3820'],\n 'application/vnd.ibm.rights-management': ['irm'],\n 'application/vnd.ibm.secure-container': ['sc'],\n 'application/vnd.iccprofile': ['icc', 'icm'],\n 'application/vnd.igloader': ['igl'],\n 'application/vnd.immervision-ivp': ['ivp'],\n 'application/vnd.immervision-ivu': ['ivu'],\n 'application/vnd.insors.igm': ['igm'],\n 'application/vnd.intercon.formnet': ['xpw', 'xpx'],\n 'application/vnd.intergeo': ['i2g'],\n 'application/vnd.intu.qbo': ['qbo'],\n 'application/vnd.intu.qfx': ['qfx'],\n 'application/vnd.ipunplugged.rcprofile': ['rcprofile'],\n 'application/vnd.irepository.package+xml': ['irp'],\n 'application/vnd.is-xpr': ['xpr'],\n 'application/vnd.isac.fcs': ['fcs'],\n 'application/vnd.jam': ['jam'],\n 'application/vnd.jcp.javame.midlet-rms': ['rms'],\n 'application/vnd.jisp': ['jisp'],\n 'application/vnd.joost.joda-archive': ['joda'],\n 'application/vnd.kahootz': ['ktz', 'ktr'],\n 'application/vnd.kde.karbon': ['karbon'],\n 'application/vnd.kde.kchart': ['chrt'],\n 'application/vnd.kde.kformula': ['kfo'],\n 'application/vnd.kde.kivio': ['flw'],\n 'application/vnd.kde.kontour': ['kon'],\n 'application/vnd.kde.kpresenter': ['kpr', 'kpt'],\n 'application/vnd.kde.kspread': ['ksp'],\n 'application/vnd.kde.kword': ['kwd', 'kwt'],\n 'application/vnd.kenameaapp': ['htke'],\n 'application/vnd.kidspiration': ['kia'],\n 'application/vnd.kinar': ['kne', 'knp'],\n 'application/vnd.koan': ['skp', 'skd', 'skt', 'skm'],\n 'application/vnd.kodak-descriptor': ['sse'],\n 'application/vnd.las.las+xml': ['lasxml'],\n 'application/vnd.llamagraphics.life-balance.desktop': ['lbd'],\n 'application/vnd.llamagraphics.life-balance.exchange+xml': ['lbe'],\n 'application/vnd.lotus-1-2-3': ['123'],\n 'application/vnd.lotus-approach': ['apr'],\n 'application/vnd.lotus-freelance': ['pre'],\n 'application/vnd.lotus-notes': ['nsf'],\n 'application/vnd.lotus-organizer': ['org'],\n 'application/vnd.lotus-screencam': ['scm'],\n 'application/vnd.lotus-wordpro': ['lwp'],\n 'application/vnd.macports.portpkg': ['portpkg'],\n 'application/vnd.mapbox-vector-tile': ['mvt'],\n 'application/vnd.mcd': ['mcd'],\n 'application/vnd.medcalcdata': ['mc1'],\n 'application/vnd.mediastation.cdkey': ['cdkey'],\n 'application/vnd.mfer': ['mwf'],\n 'application/vnd.mfmp': ['mfm'],\n 'application/vnd.micrografx.flo': ['flo'],\n 'application/vnd.micrografx.igx': ['igx'],\n 'application/vnd.mif': ['mif'],\n 'application/vnd.mobius.daf': ['daf'],\n 'application/vnd.mobius.dis': ['dis'],\n 'application/vnd.mobius.mbk': ['mbk'],\n 'application/vnd.mobius.mqy': ['mqy'],\n 'application/vnd.mobius.msl': ['msl'],\n 'application/vnd.mobius.plc': ['plc'],\n 'application/vnd.mobius.txf': ['txf'],\n 'application/vnd.mophun.application': ['mpn'],\n 'application/vnd.mophun.certificate': ['mpc'],\n 'application/vnd.mozilla.xul+xml': ['xul'],\n 'application/vnd.ms-artgalry': ['cil'],\n 'application/vnd.ms-cab-compressed': ['cab'],\n 'application/vnd.ms-excel': ['xls', 'xlm', 'xla', 'xlc', 'xlt', 'xlw'],\n 'application/vnd.ms-excel.addin.macroenabled.12': ['xlam'],\n 'application/vnd.ms-excel.sheet.binary.macroenabled.12': ['xlsb'],\n 'application/vnd.ms-excel.sheet.macroenabled.12': ['xlsm'],\n 'application/vnd.ms-excel.template.macroenabled.12': ['xltm'],\n 'application/vnd.ms-fontobject': ['eot'],\n 'application/vnd.ms-htmlhelp': ['chm'],\n 'application/vnd.ms-ims': ['ims'],\n 'application/vnd.ms-lrm': ['lrm'],\n 'application/vnd.ms-officetheme': ['thmx'],\n 'application/vnd.ms-outlook': ['msg'],\n 'application/vnd.ms-pki.seccat': ['cat'],\n 'application/vnd.ms-pki.stl': ['*stl'],\n 'application/vnd.ms-powerpoint': ['ppt', 'pps', 'pot'],\n 'application/vnd.ms-powerpoint.addin.macroenabled.12': ['ppam'],\n 'application/vnd.ms-powerpoint.presentation.macroenabled.12': ['pptm'],\n 'application/vnd.ms-powerpoint.slide.macroenabled.12': ['sldm'],\n 'application/vnd.ms-powerpoint.slideshow.macroenabled.12': ['ppsm'],\n 'application/vnd.ms-powerpoint.template.macroenabled.12': ['potm'],\n 'application/vnd.ms-project': ['*mpp', 'mpt'],\n 'application/vnd.ms-word.document.macroenabled.12': ['docm'],\n 'application/vnd.ms-word.template.macroenabled.12': ['dotm'],\n 'application/vnd.ms-works': ['wps', 'wks', 'wcm', 'wdb'],\n 'application/vnd.ms-wpl': ['wpl'],\n 'application/vnd.ms-xpsdocument': ['xps'],\n 'application/vnd.mseq': ['mseq'],\n 'application/vnd.musician': ['mus'],\n 'application/vnd.muvee.style': ['msty'],\n 'application/vnd.mynfc': ['taglet'],\n 'application/vnd.nato.bindingdataobject+xml': ['bdo'],\n 'application/vnd.neurolanguage.nlu': ['nlu'],\n 'application/vnd.nitf': ['ntf', 'nitf'],\n 'application/vnd.noblenet-directory': ['nnd'],\n 'application/vnd.noblenet-sealer': ['nns'],\n 'application/vnd.noblenet-web': ['nnw'],\n 'application/vnd.nokia.n-gage.ac+xml': ['*ac'],\n 'application/vnd.nokia.n-gage.data': ['ngdat'],\n 'application/vnd.nokia.n-gage.symbian.install': ['n-gage'],\n 'application/vnd.nokia.radio-preset': ['rpst'],\n 'application/vnd.nokia.radio-presets': ['rpss'],\n 'application/vnd.novadigm.edm': ['edm'],\n 'application/vnd.novadigm.edx': ['edx'],\n 'application/vnd.novadigm.ext': ['ext'],\n 'application/vnd.oasis.opendocument.chart': ['odc'],\n 'application/vnd.oasis.opendocument.chart-template': ['otc'],\n 'application/vnd.oasis.opendocument.database': ['odb'],\n 'application/vnd.oasis.opendocument.formula': ['odf'],\n 'application/vnd.oasis.opendocument.formula-template': ['odft'],\n 'application/vnd.oasis.opendocument.graphics': ['odg'],\n 'application/vnd.oasis.opendocument.graphics-template': ['otg'],\n 'application/vnd.oasis.opendocument.image': ['odi'],\n 'application/vnd.oasis.opendocument.image-template': ['oti'],\n 'application/vnd.oasis.opendocument.presentation': ['odp'],\n 'application/vnd.oasis.opendocument.presentation-template': ['otp'],\n 'application/vnd.oasis.opendocument.spreadsheet': ['ods'],\n 'application/vnd.oasis.opendocument.spreadsheet-template': ['ots'],\n 'application/vnd.oasis.opendocument.text': ['odt'],\n 'application/vnd.oasis.opendocument.text-master': ['odm'],\n 'application/vnd.oasis.opendocument.text-template': ['ott'],\n 'application/vnd.oasis.opendocument.text-web': ['oth'],\n 'application/vnd.olpc-sugar': ['xo'],\n 'application/vnd.oma.dd2+xml': ['dd2'],\n 'application/vnd.openblox.game+xml': ['obgx'],\n 'application/vnd.openofficeorg.extension': ['oxt'],\n 'application/vnd.openstreetmap.data+xml': ['osm'],\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': [\n 'pptx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.slide': [\n 'sldx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow': [\n 'ppsx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.template': [\n 'potx',\n ],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['xlsx'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template': [\n 'xltx',\n ],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [\n 'docx',\n ],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template': [\n 'dotx',\n ],\n 'application/vnd.osgeo.mapguide.package': ['mgp'],\n 'application/vnd.osgi.dp': ['dp'],\n 'application/vnd.osgi.subsystem': ['esa'],\n 'application/vnd.palm': ['pdb', 'pqa', 'oprc'],\n 'application/vnd.pawaafile': ['paw'],\n 'application/vnd.pg.format': ['str'],\n 'application/vnd.pg.osasli': ['ei6'],\n 'application/vnd.picsel': ['efif'],\n 'application/vnd.pmi.widget': ['wg'],\n 'application/vnd.pocketlearn': ['plf'],\n 'application/vnd.powerbuilder6': ['pbd'],\n 'application/vnd.previewsystems.box': ['box'],\n 'application/vnd.proteus.magazine': ['mgz'],\n 'application/vnd.publishare-delta-tree': ['qps'],\n 'application/vnd.pvi.ptid1': ['ptid'],\n 'application/vnd.pwg-xhtml-print+xml': ['xhtm'],\n 'application/vnd.quark.quarkxpress': [\n 'qxd',\n 'qxt',\n 'qwd',\n 'qwt',\n 'qxl',\n 'qxb',\n ],\n 'application/vnd.rar': ['rar'],\n 'application/vnd.realvnc.bed': ['bed'],\n 'application/vnd.recordare.musicxml': ['mxl'],\n 'application/vnd.recordare.musicxml+xml': ['musicxml'],\n 'application/vnd.rig.cryptonote': ['cryptonote'],\n 'application/vnd.rim.cod': ['cod'],\n 'application/vnd.rn-realmedia': ['rm'],\n 'application/vnd.rn-realmedia-vbr': ['rmvb'],\n 'application/vnd.route66.link66+xml': ['link66'],\n 'application/vnd.sailingtracker.track': ['st'],\n 'application/vnd.seemail': ['see'],\n 'application/vnd.sema': ['sema'],\n 'application/vnd.semd': ['semd'],\n 'application/vnd.semf': ['semf'],\n 'application/vnd.shana.informed.formdata': ['ifm'],\n 'application/vnd.shana.informed.formtemplate': ['itp'],\n 'application/vnd.shana.informed.interchange': ['iif'],\n 'application/vnd.shana.informed.package': ['ipk'],\n 'application/vnd.simtech-mindmapper': ['twd', 'twds'],\n 'application/vnd.smaf': ['mmf'],\n 'application/vnd.smart.teacher': ['teacher'],\n 'application/vnd.software602.filler.form+xml': ['fo'],\n 'application/vnd.solent.sdkm+xml': ['sdkm', 'sdkd'],\n 'application/vnd.spotfire.dxp': ['dxp'],\n 'application/vnd.spotfire.sfs': ['sfs'],\n 'application/vnd.stardivision.calc': ['sdc'],\n 'application/vnd.stardivision.draw': ['sda'],\n 'application/vnd.stardivision.impress': ['sdd'],\n 'application/vnd.stardivision.math': ['smf'],\n 'application/vnd.stardivision.writer': ['sdw', 'vor'],\n 'application/vnd.stardivision.writer-global': ['sgl'],\n 'application/vnd.stepmania.package': ['smzip'],\n 'application/vnd.stepmania.stepchart': ['sm'],\n 'application/vnd.sun.wadl+xml': ['wadl'],\n 'application/vnd.sun.xml.calc': ['sxc'],\n 'application/vnd.sun.xml.calc.template': ['stc'],\n 'application/vnd.sun.xml.draw': ['sxd'],\n 'application/vnd.sun.xml.draw.template': ['std'],\n 'application/vnd.sun.xml.impress': ['sxi'],\n 'application/vnd.sun.xml.impress.template': ['sti'],\n 'application/vnd.sun.xml.math': ['sxm'],\n 'application/vnd.sun.xml.writer': ['sxw'],\n 'application/vnd.sun.xml.writer.global': ['sxg'],\n 'application/vnd.sun.xml.writer.template': ['stw'],\n 'application/vnd.sus-calendar': ['sus', 'susp'],\n 'application/vnd.svd': ['svd'],\n 'application/vnd.symbian.install': ['sis', 'sisx'],\n 'application/vnd.syncml+xml': ['xsm'],\n 'application/vnd.syncml.dm+wbxml': ['bdm'],\n 'application/vnd.syncml.dm+xml': ['xdm'],\n 'application/vnd.syncml.dmddf+xml': ['ddf'],\n 'application/vnd.tao.intent-module-archive': ['tao'],\n 'application/vnd.tcpdump.pcap': ['pcap', 'cap', 'dmp'],\n 'application/vnd.tmobile-livetv': ['tmo'],\n 'application/vnd.trid.tpt': ['tpt'],\n 'application/vnd.triscape.mxs': ['mxs'],\n 'application/vnd.trueapp': ['tra'],\n 'application/vnd.ufdl': ['ufd', 'ufdl'],\n 'application/vnd.uiq.theme': ['utz'],\n 'application/vnd.umajin': ['umj'],\n 'application/vnd.unity': ['unityweb'],\n 'application/vnd.uoml+xml': ['uoml', 'uo'],\n 'application/vnd.vcx': ['vcx'],\n 'application/vnd.visio': ['vsd', 'vst', 'vss', 'vsw'],\n 'application/vnd.visionary': ['vis'],\n 'application/vnd.vsf': ['vsf'],\n 'application/vnd.wap.wbxml': ['wbxml'],\n 'application/vnd.wap.wmlc': ['wmlc'],\n 'application/vnd.wap.wmlscriptc': ['wmlsc'],\n 'application/vnd.webturbo': ['wtb'],\n 'application/vnd.wolfram.player': ['nbp'],\n 'application/vnd.wordperfect': ['wpd'],\n 'application/vnd.wqd': ['wqd'],\n 'application/vnd.wt.stf': ['stf'],\n 'application/vnd.xara': ['xar'],\n 'application/vnd.xfdl': ['xfdl'],\n 'application/vnd.yamaha.hv-dic': ['hvd'],\n 'application/vnd.yamaha.hv-script': ['hvs'],\n 'application/vnd.yamaha.hv-voice': ['hvp'],\n 'application/vnd.yamaha.openscoreformat': ['osf'],\n 'application/vnd.yamaha.openscoreformat.osfpvg+xml': ['osfpvg'],\n 'application/vnd.yamaha.smaf-audio': ['saf'],\n 'application/vnd.yamaha.smaf-phrase': ['spf'],\n 'application/vnd.yellowriver-custom-menu': ['cmp'],\n 'application/vnd.zul': ['zir', 'zirz'],\n 'application/vnd.zzazz.deck+xml': ['zaz'],\n 'application/x-7z-compressed': ['7z'],\n 'application/x-abiword': ['abw'],\n 'application/x-ace-compressed': ['ace'],\n 'application/x-apple-diskimage': ['*dmg'],\n 'application/x-arj': ['arj'],\n 'application/x-authorware-bin': ['aab', 'x32', 'u32', 'vox'],\n 'application/x-authorware-map': ['aam'],\n 'application/x-authorware-seg': ['aas'],\n 'application/x-bcpio': ['bcpio'],\n 'application/x-bdoc': ['*bdoc'],\n 'application/x-bittorrent': ['torrent'],\n 'application/x-blorb': ['blb', 'blorb'],\n 'application/x-bzip': ['bz'],\n 'application/x-bzip2': ['bz2', 'boz'],\n 'application/x-cbr': ['cbr', 'cba', 'cbt', 'cbz', 'cb7'],\n 'application/x-cdlink': ['vcd'],\n 'application/x-cfs-compressed': ['cfs'],\n 'application/x-chat': ['chat'],\n 'application/x-chess-pgn': ['pgn'],\n 'application/x-chrome-extension': ['crx'],\n 'application/x-cocoa': ['cco'],\n 'application/x-conference': ['nsc'],\n 'application/x-cpio': ['cpio'],\n 'application/x-csh': ['csh'],\n 'application/x-debian-package': ['*deb', 'udeb'],\n 'application/x-dgc-compressed': ['dgc'],\n 'application/x-director': [\n 'dir',\n 'dcr',\n 'dxr',\n 'cst',\n 'cct',\n 'cxt',\n 'w3d',\n 'fgd',\n 'swa',\n ],\n 'application/x-doom': ['wad'],\n 'application/x-dtbncx+xml': ['ncx'],\n 'application/x-dtbook+xml': ['dtb'],\n 'application/x-dtbresource+xml': ['res'],\n 'application/x-dvi': ['dvi'],\n 'application/x-envoy': ['evy'],\n 'application/x-eva': ['eva'],\n 'application/x-font-bdf': ['bdf'],\n 'application/x-font-ghostscript': ['gsf'],\n 'application/x-font-linux-psf': ['psf'],\n 'application/x-font-pcf': ['pcf'],\n 'application/x-font-snf': ['snf'],\n 'application/x-font-type1': ['pfa', 'pfb', 'pfm', 'afm'],\n 'application/x-freearc': ['arc'],\n 'application/x-futuresplash': ['spl'],\n 'application/x-gca-compressed': ['gca'],\n 'application/x-glulx': ['ulx'],\n 'application/x-gnumeric': ['gnumeric'],\n 'application/x-gramps-xml': ['gramps'],\n 'application/x-gtar': ['gtar'],\n 'application/x-hdf': ['hdf'],\n 'application/x-httpd-php': ['php'],\n 'application/x-install-instructions': ['install'],\n 'application/x-iso9660-image': ['*iso'],\n 'application/x-iwork-keynote-sffkey': ['*key'],\n 'application/x-iwork-numbers-sffnumbers': ['*numbers'],\n 'application/x-iwork-pages-sffpages': ['*pages'],\n 'application/x-java-archive-diff': ['jardiff'],\n 'application/x-java-jnlp-file': ['jnlp'],\n 'application/x-keepass2': ['kdbx'],\n 'application/x-latex': ['latex'],\n 'application/x-lua-bytecode': ['luac'],\n 'application/x-lzh-compressed': ['lzh', 'lha'],\n 'application/x-makeself': ['run'],\n 'application/x-mie': ['mie'],\n 'application/x-mobipocket-ebook': ['*prc', 'mobi'],\n 'application/x-ms-application': ['application'],\n 'application/x-ms-shortcut': ['lnk'],\n 'application/x-ms-wmd': ['wmd'],\n 'application/x-ms-wmz': ['wmz'],\n 'application/x-ms-xbap': ['xbap'],\n 'application/x-msaccess': ['mdb'],\n 'application/x-msbinder': ['obd'],\n 'application/x-mscardfile': ['crd'],\n 'application/x-msclip': ['clp'],\n 'application/x-msdos-program': ['*exe'],\n 'application/x-msdownload': ['*exe', '*dll', 'com', 'bat', '*msi'],\n 'application/x-msmediaview': ['mvb', 'm13', 'm14'],\n 'application/x-msmetafile': ['*wmf', '*wmz', '*emf', 'emz'],\n 'application/x-msmoney': ['mny'],\n 'application/x-mspublisher': ['pub'],\n 'application/x-msschedule': ['scd'],\n 'application/x-msterminal': ['trm'],\n 'application/x-mswrite': ['wri'],\n 'application/x-netcdf': ['nc', 'cdf'],\n 'application/x-ns-proxy-autoconfig': ['pac'],\n 'application/x-nzb': ['nzb'],\n 'application/x-perl': ['pl', 'pm'],\n 'application/x-pilot': ['*prc', '*pdb'],\n 'application/x-pkcs12': ['p12', 'pfx'],\n 'application/x-pkcs7-certificates': ['p7b', 'spc'],\n 'application/x-pkcs7-certreqresp': ['p7r'],\n 'application/x-rar-compressed': ['*rar'],\n 'application/x-redhat-package-manager': ['rpm'],\n 'application/x-research-info-systems': ['ris'],\n 'application/x-sea': ['sea'],\n 'application/x-sh': ['sh'],\n 'application/x-shar': ['shar'],\n 'application/x-shockwave-flash': ['swf'],\n 'application/x-silverlight-app': ['xap'],\n 'application/x-sql': ['*sql'],\n 'application/x-stuffit': ['sit'],\n 'application/x-stuffitx': ['sitx'],\n 'application/x-subrip': ['srt'],\n 'application/x-sv4cpio': ['sv4cpio'],\n 'application/x-sv4crc': ['sv4crc'],\n 'application/x-t3vm-image': ['t3'],\n 'application/x-tads': ['gam'],\n 'application/x-tar': ['tar'],\n 'application/x-tcl': ['tcl', 'tk'],\n 'application/x-tex': ['tex'],\n 'application/x-tex-tfm': ['tfm'],\n 'application/x-texinfo': ['texinfo', 'texi'],\n 'application/x-tgif': ['*obj'],\n 'application/x-ustar': ['ustar'],\n 'application/x-virtualbox-hdd': ['hdd'],\n 'application/x-virtualbox-ova': ['ova'],\n 'application/x-virtualbox-ovf': ['ovf'],\n 'application/x-virtualbox-vbox': ['vbox'],\n 'application/x-virtualbox-vbox-extpack': ['vbox-extpack'],\n 'application/x-virtualbox-vdi': ['vdi'],\n 'application/x-virtualbox-vhd': ['vhd'],\n 'application/x-virtualbox-vmdk': ['vmdk'],\n 'application/x-wais-source': ['src'],\n 'application/x-web-app-manifest+json': ['webapp'],\n 'application/x-x509-ca-cert': ['der', 'crt', 'pem'],\n 'application/x-xfig': ['fig'],\n 'application/x-xliff+xml': ['*xlf'],\n 'application/x-xpinstall': ['xpi'],\n 'application/x-xz': ['xz'],\n 'application/x-zmachine': ['z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7', 'z8'],\n 'audio/vnd.dece.audio': ['uva', 'uvva'],\n 'audio/vnd.digital-winds': ['eol'],\n 'audio/vnd.dra': ['dra'],\n 'audio/vnd.dts': ['dts'],\n 'audio/vnd.dts.hd': ['dtshd'],\n 'audio/vnd.lucent.voice': ['lvp'],\n 'audio/vnd.ms-playready.media.pya': ['pya'],\n 'audio/vnd.nuera.ecelp4800': ['ecelp4800'],\n 'audio/vnd.nuera.ecelp7470': ['ecelp7470'],\n 'audio/vnd.nuera.ecelp9600': ['ecelp9600'],\n 'audio/vnd.rip': ['rip'],\n 'audio/x-aac': ['*aac'],\n 'audio/x-aiff': ['aif', 'aiff', 'aifc'],\n 'audio/x-caf': ['caf'],\n 'audio/x-flac': ['flac'],\n 'audio/x-m4a': ['*m4a'],\n 'audio/x-matroska': ['mka'],\n 'audio/x-mpegurl': ['m3u'],\n 'audio/x-ms-wax': ['wax'],\n 'audio/x-ms-wma': ['wma'],\n 'audio/x-pn-realaudio': ['ram', 'ra'],\n 'audio/x-pn-realaudio-plugin': ['rmp'],\n 'audio/x-realaudio': ['*ra'],\n 'audio/x-wav': ['*wav'],\n 'chemical/x-cdx': ['cdx'],\n 'chemical/x-cif': ['cif'],\n 'chemical/x-cmdf': ['cmdf'],\n 'chemical/x-cml': ['cml'],\n 'chemical/x-csml': ['csml'],\n 'chemical/x-xyz': ['xyz'],\n 'image/prs.btif': ['btif', 'btf'],\n 'image/prs.pti': ['pti'],\n 'image/vnd.adobe.photoshop': ['psd'],\n 'image/vnd.airzip.accelerator.azv': ['azv'],\n 'image/vnd.dece.graphic': ['uvi', 'uvvi', 'uvg', 'uvvg'],\n 'image/vnd.djvu': ['djvu', 'djv'],\n 'image/vnd.dvb.subtitle': ['*sub'],\n 'image/vnd.dwg': ['dwg'],\n 'image/vnd.dxf': ['dxf'],\n 'image/vnd.fastbidsheet': ['fbs'],\n 'image/vnd.fpx': ['fpx'],\n 'image/vnd.fst': ['fst'],\n 'image/vnd.fujixerox.edmics-mmr': ['mmr'],\n 'image/vnd.fujixerox.edmics-rlc': ['rlc'],\n 'image/vnd.microsoft.icon': ['ico'],\n 'image/vnd.ms-dds': ['dds'],\n 'image/vnd.ms-modi': ['mdi'],\n 'image/vnd.ms-photo': ['wdp'],\n 'image/vnd.net-fpx': ['npx'],\n 'image/vnd.pco.b16': ['b16'],\n 'image/vnd.tencent.tap': ['tap'],\n 'image/vnd.valve.source.texture': ['vtf'],\n 'image/vnd.wap.wbmp': ['wbmp'],\n 'image/vnd.xiff': ['xif'],\n 'image/vnd.zbrush.pcx': ['pcx'],\n 'image/x-3ds': ['3ds'],\n 'image/x-cmu-raster': ['ras'],\n 'image/x-cmx': ['cmx'],\n 'image/x-freehand': ['fh', 'fhc', 'fh4', 'fh5', 'fh7'],\n 'image/x-icon': ['*ico'],\n 'image/x-jng': ['jng'],\n 'image/x-mrsid-image': ['sid'],\n 'image/x-ms-bmp': ['*bmp'],\n 'image/x-pcx': ['*pcx'],\n 'image/x-pict': ['pic', 'pct'],\n 'image/x-portable-anymap': ['pnm'],\n 'image/x-portable-bitmap': ['pbm'],\n 'image/x-portable-graymap': ['pgm'],\n 'image/x-portable-pixmap': ['ppm'],\n 'image/x-rgb': ['rgb'],\n 'image/x-tga': ['tga'],\n 'image/x-xbitmap': ['xbm'],\n 'image/x-xpixmap': ['xpm'],\n 'image/x-xwindowdump': ['xwd'],\n 'message/vnd.wfa.wsc': ['wsc'],\n 'model/vnd.bary': ['bary'],\n 'model/vnd.cld': ['cld'],\n 'model/vnd.collada+xml': ['dae'],\n 'model/vnd.dwf': ['dwf'],\n 'model/vnd.gdl': ['gdl'],\n 'model/vnd.gtw': ['gtw'],\n 'model/vnd.mts': ['*mts'],\n 'model/vnd.opengex': ['ogex'],\n 'model/vnd.parasolid.transmit.binary': ['x_b'],\n 'model/vnd.parasolid.transmit.text': ['x_t'],\n 'model/vnd.pytha.pyox': ['pyo', 'pyox'],\n 'model/vnd.sap.vds': ['vds'],\n 'model/vnd.usda': ['usda'],\n 'model/vnd.usdz+zip': ['usdz'],\n 'model/vnd.valve.source.compiled-map': ['bsp'],\n 'model/vnd.vtu': ['vtu'],\n 'text/prs.lines.tag': ['dsc'],\n 'text/vnd.curl': ['curl'],\n 'text/vnd.curl.dcurl': ['dcurl'],\n 'text/vnd.curl.mcurl': ['mcurl'],\n 'text/vnd.curl.scurl': ['scurl'],\n 'text/vnd.dvb.subtitle': ['sub'],\n 'text/vnd.familysearch.gedcom': ['ged'],\n 'text/vnd.fly': ['fly'],\n 'text/vnd.fmi.flexstor': ['flx'],\n 'text/vnd.graphviz': ['gv'],\n 'text/vnd.in3d.3dml': ['3dml'],\n 'text/vnd.in3d.spot': ['spot'],\n 'text/vnd.sun.j2me.app-descriptor': ['jad'],\n 'text/vnd.wap.wml': ['wml'],\n 'text/vnd.wap.wmlscript': ['wmls'],\n 'text/x-asm': ['s', 'asm'],\n 'text/x-c': ['c', 'cc', 'cxx', 'cpp', 'h', 'hh', 'dic'],\n 'text/x-component': ['htc'],\n 'text/x-fortran': ['f', 'for', 'f77', 'f90'],\n 'text/x-handlebars-template': ['hbs'],\n 'text/x-java-source': ['java'],\n 'text/x-lua': ['lua'],\n 'text/x-markdown': ['mkd'],\n 'text/x-nfo': ['nfo'],\n 'text/x-opml': ['opml'],\n 'text/x-org': ['*org'],\n 'text/x-pascal': ['p', 'pas'],\n 'text/x-processing': ['pde'],\n 'text/x-sass': ['sass'],\n 'text/x-scss': ['scss'],\n 'text/x-setext': ['etx'],\n 'text/x-sfv': ['sfv'],\n 'text/x-suse-ymp': ['ymp'],\n 'text/x-uuencode': ['uu'],\n 'text/x-vcalendar': ['vcs'],\n 'text/x-vcard': ['vcf'],\n 'video/vnd.dece.hd': ['uvh', 'uvvh'],\n 'video/vnd.dece.mobile': ['uvm', 'uvvm'],\n 'video/vnd.dece.pd': ['uvp', 'uvvp'],\n 'video/vnd.dece.sd': ['uvs', 'uvvs'],\n 'video/vnd.dece.video': ['uvv', 'uvvv'],\n 'video/vnd.dvb.file': ['dvb'],\n 'video/vnd.fvt': ['fvt'],\n 'video/vnd.mpegurl': ['mxu', 'm4u'],\n 'video/vnd.ms-playready.media.pyv': ['pyv'],\n 'video/vnd.uvvu.mp4': ['uvu', 'uvvu'],\n 'video/vnd.vivo': ['viv'],\n 'video/x-f4v': ['f4v'],\n 'video/x-fli': ['fli'],\n 'video/x-flv': ['flv'],\n 'video/x-m4v': ['m4v'],\n 'video/x-matroska': ['mkv', 'mk3d', 'mks'],\n 'video/x-mng': ['mng'],\n 'video/x-ms-asf': ['asf', 'asx'],\n 'video/x-ms-vob': ['vob'],\n 'video/x-ms-wm': ['wm'],\n 'video/x-ms-wmv': ['wmv'],\n 'video/x-ms-wmx': ['wmx'],\n 'video/x-ms-wvx': ['wvx'],\n 'video/x-msvideo': ['avi'],\n 'video/x-sgi-movie': ['movie'],\n 'video/x-smv': ['smv'],\n 'x-conference/x-cooltalk': ['ice'],\n};\nObject.freeze(types);\nexport default types;\n","const types = {\n 'application/andrew-inset': ['ez'],\n 'application/appinstaller': ['appinstaller'],\n 'application/applixware': ['aw'],\n 'application/appx': ['appx'],\n 'application/appxbundle': ['appxbundle'],\n 'application/atom+xml': ['atom'],\n 'application/atomcat+xml': ['atomcat'],\n 'application/atomdeleted+xml': ['atomdeleted'],\n 'application/atomsvc+xml': ['atomsvc'],\n 'application/atsc-dwd+xml': ['dwd'],\n 'application/atsc-held+xml': ['held'],\n 'application/atsc-rsat+xml': ['rsat'],\n 'application/automationml-aml+xml': ['aml'],\n 'application/automationml-amlx+zip': ['amlx'],\n 'application/bdoc': ['bdoc'],\n 'application/calendar+xml': ['xcs'],\n 'application/ccxml+xml': ['ccxml'],\n 'application/cdfx+xml': ['cdfx'],\n 'application/cdmi-capability': ['cdmia'],\n 'application/cdmi-container': ['cdmic'],\n 'application/cdmi-domain': ['cdmid'],\n 'application/cdmi-object': ['cdmio'],\n 'application/cdmi-queue': ['cdmiq'],\n 'application/cpl+xml': ['cpl'],\n 'application/cu-seeme': ['cu'],\n 'application/cwl': ['cwl'],\n 'application/dash+xml': ['mpd'],\n 'application/dash-patch+xml': ['mpp'],\n 'application/davmount+xml': ['davmount'],\n 'application/docbook+xml': ['dbk'],\n 'application/dssc+der': ['dssc'],\n 'application/dssc+xml': ['xdssc'],\n 'application/ecmascript': ['ecma'],\n 'application/emma+xml': ['emma'],\n 'application/emotionml+xml': ['emotionml'],\n 'application/epub+zip': ['epub'],\n 'application/exi': ['exi'],\n 'application/express': ['exp'],\n 'application/fdf': ['fdf'],\n 'application/fdt+xml': ['fdt'],\n 'application/font-tdpfr': ['pfr'],\n 'application/geo+json': ['geojson'],\n 'application/gml+xml': ['gml'],\n 'application/gpx+xml': ['gpx'],\n 'application/gxf': ['gxf'],\n 'application/gzip': ['gz'],\n 'application/hjson': ['hjson'],\n 'application/hyperstudio': ['stk'],\n 'application/inkml+xml': ['ink', 'inkml'],\n 'application/ipfix': ['ipfix'],\n 'application/its+xml': ['its'],\n 'application/java-archive': ['jar', 'war', 'ear'],\n 'application/java-serialized-object': ['ser'],\n 'application/java-vm': ['class'],\n 'application/javascript': ['*js'],\n 'application/json': ['json', 'map'],\n 'application/json5': ['json5'],\n 'application/jsonml+json': ['jsonml'],\n 'application/ld+json': ['jsonld'],\n 'application/lgr+xml': ['lgr'],\n 'application/lost+xml': ['lostxml'],\n 'application/mac-binhex40': ['hqx'],\n 'application/mac-compactpro': ['cpt'],\n 'application/mads+xml': ['mads'],\n 'application/manifest+json': ['webmanifest'],\n 'application/marc': ['mrc'],\n 'application/marcxml+xml': ['mrcx'],\n 'application/mathematica': ['ma', 'nb', 'mb'],\n 'application/mathml+xml': ['mathml'],\n 'application/mbox': ['mbox'],\n 'application/media-policy-dataset+xml': ['mpf'],\n 'application/mediaservercontrol+xml': ['mscml'],\n 'application/metalink+xml': ['metalink'],\n 'application/metalink4+xml': ['meta4'],\n 'application/mets+xml': ['mets'],\n 'application/mmt-aei+xml': ['maei'],\n 'application/mmt-usd+xml': ['musd'],\n 'application/mods+xml': ['mods'],\n 'application/mp21': ['m21', 'mp21'],\n 'application/mp4': ['*mp4', '*mpg4', 'mp4s', 'm4p'],\n 'application/msix': ['msix'],\n 'application/msixbundle': ['msixbundle'],\n 'application/msword': ['doc', 'dot'],\n 'application/mxf': ['mxf'],\n 'application/n-quads': ['nq'],\n 'application/n-triples': ['nt'],\n 'application/node': ['cjs'],\n 'application/octet-stream': [\n 'bin',\n 'dms',\n 'lrf',\n 'mar',\n 'so',\n 'dist',\n 'distz',\n 'pkg',\n 'bpk',\n 'dump',\n 'elc',\n 'deploy',\n 'exe',\n 'dll',\n 'deb',\n 'dmg',\n 'iso',\n 'img',\n 'msi',\n 'msp',\n 'msm',\n 'buffer',\n ],\n 'application/oda': ['oda'],\n 'application/oebps-package+xml': ['opf'],\n 'application/ogg': ['ogx'],\n 'application/omdoc+xml': ['omdoc'],\n 'application/onenote': ['onetoc', 'onetoc2', 'onetmp', 'onepkg'],\n 'application/oxps': ['oxps'],\n 'application/p2p-overlay+xml': ['relo'],\n 'application/patch-ops-error+xml': ['xer'],\n 'application/pdf': ['pdf'],\n 'application/pgp-encrypted': ['pgp'],\n 'application/pgp-keys': ['asc'],\n 'application/pgp-signature': ['sig', '*asc'],\n 'application/pics-rules': ['prf'],\n 'application/pkcs10': ['p10'],\n 'application/pkcs7-mime': ['p7m', 'p7c'],\n 'application/pkcs7-signature': ['p7s'],\n 'application/pkcs8': ['p8'],\n 'application/pkix-attr-cert': ['ac'],\n 'application/pkix-cert': ['cer'],\n 'application/pkix-crl': ['crl'],\n 'application/pkix-pkipath': ['pkipath'],\n 'application/pkixcmp': ['pki'],\n 'application/pls+xml': ['pls'],\n 'application/postscript': ['ai', 'eps', 'ps'],\n 'application/provenance+xml': ['provx'],\n 'application/pskc+xml': ['pskcxml'],\n 'application/raml+yaml': ['raml'],\n 'application/rdf+xml': ['rdf', 'owl'],\n 'application/reginfo+xml': ['rif'],\n 'application/relax-ng-compact-syntax': ['rnc'],\n 'application/resource-lists+xml': ['rl'],\n 'application/resource-lists-diff+xml': ['rld'],\n 'application/rls-services+xml': ['rs'],\n 'application/route-apd+xml': ['rapd'],\n 'application/route-s-tsid+xml': ['sls'],\n 'application/route-usd+xml': ['rusd'],\n 'application/rpki-ghostbusters': ['gbr'],\n 'application/rpki-manifest': ['mft'],\n 'application/rpki-roa': ['roa'],\n 'application/rsd+xml': ['rsd'],\n 'application/rss+xml': ['rss'],\n 'application/rtf': ['rtf'],\n 'application/sbml+xml': ['sbml'],\n 'application/scvp-cv-request': ['scq'],\n 'application/scvp-cv-response': ['scs'],\n 'application/scvp-vp-request': ['spq'],\n 'application/scvp-vp-response': ['spp'],\n 'application/sdp': ['sdp'],\n 'application/senml+xml': ['senmlx'],\n 'application/sensml+xml': ['sensmlx'],\n 'application/set-payment-initiation': ['setpay'],\n 'application/set-registration-initiation': ['setreg'],\n 'application/shf+xml': ['shf'],\n 'application/sieve': ['siv', 'sieve'],\n 'application/smil+xml': ['smi', 'smil'],\n 'application/sparql-query': ['rq'],\n 'application/sparql-results+xml': ['srx'],\n 'application/sql': ['sql'],\n 'application/srgs': ['gram'],\n 'application/srgs+xml': ['grxml'],\n 'application/sru+xml': ['sru'],\n 'application/ssdl+xml': ['ssdl'],\n 'application/ssml+xml': ['ssml'],\n 'application/swid+xml': ['swidtag'],\n 'application/tei+xml': ['tei', 'teicorpus'],\n 'application/thraud+xml': ['tfi'],\n 'application/timestamped-data': ['tsd'],\n 'application/toml': ['toml'],\n 'application/trig': ['trig'],\n 'application/ttml+xml': ['ttml'],\n 'application/ubjson': ['ubj'],\n 'application/urc-ressheet+xml': ['rsheet'],\n 'application/urc-targetdesc+xml': ['td'],\n 'application/voicexml+xml': ['vxml'],\n 'application/wasm': ['wasm'],\n 'application/watcherinfo+xml': ['wif'],\n 'application/widget': ['wgt'],\n 'application/winhlp': ['hlp'],\n 'application/wsdl+xml': ['wsdl'],\n 'application/wspolicy+xml': ['wspolicy'],\n 'application/xaml+xml': ['xaml'],\n 'application/xcap-att+xml': ['xav'],\n 'application/xcap-caps+xml': ['xca'],\n 'application/xcap-diff+xml': ['xdf'],\n 'application/xcap-el+xml': ['xel'],\n 'application/xcap-ns+xml': ['xns'],\n 'application/xenc+xml': ['xenc'],\n 'application/xfdf': ['xfdf'],\n 'application/xhtml+xml': ['xhtml', 'xht'],\n 'application/xliff+xml': ['xlf'],\n 'application/xml': ['xml', 'xsl', 'xsd', 'rng'],\n 'application/xml-dtd': ['dtd'],\n 'application/xop+xml': ['xop'],\n 'application/xproc+xml': ['xpl'],\n 'application/xslt+xml': ['*xsl', 'xslt'],\n 'application/xspf+xml': ['xspf'],\n 'application/xv+xml': ['mxml', 'xhvml', 'xvml', 'xvm'],\n 'application/yang': ['yang'],\n 'application/yin+xml': ['yin'],\n 'application/zip': ['zip'],\n 'audio/3gpp': ['*3gpp'],\n 'audio/aac': ['adts', 'aac'],\n 'audio/adpcm': ['adp'],\n 'audio/amr': ['amr'],\n 'audio/basic': ['au', 'snd'],\n 'audio/midi': ['mid', 'midi', 'kar', 'rmi'],\n 'audio/mobile-xmf': ['mxmf'],\n 'audio/mp3': ['*mp3'],\n 'audio/mp4': ['m4a', 'mp4a'],\n 'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],\n 'audio/ogg': ['oga', 'ogg', 'spx', 'opus'],\n 'audio/s3m': ['s3m'],\n 'audio/silk': ['sil'],\n 'audio/wav': ['wav'],\n 'audio/wave': ['*wav'],\n 'audio/webm': ['weba'],\n 'audio/xm': ['xm'],\n 'font/collection': ['ttc'],\n 'font/otf': ['otf'],\n 'font/ttf': ['ttf'],\n 'font/woff': ['woff'],\n 'font/woff2': ['woff2'],\n 'image/aces': ['exr'],\n 'image/apng': ['apng'],\n 'image/avci': ['avci'],\n 'image/avcs': ['avcs'],\n 'image/avif': ['avif'],\n 'image/bmp': ['bmp', 'dib'],\n 'image/cgm': ['cgm'],\n 'image/dicom-rle': ['drle'],\n 'image/dpx': ['dpx'],\n 'image/emf': ['emf'],\n 'image/fits': ['fits'],\n 'image/g3fax': ['g3'],\n 'image/gif': ['gif'],\n 'image/heic': ['heic'],\n 'image/heic-sequence': ['heics'],\n 'image/heif': ['heif'],\n 'image/heif-sequence': ['heifs'],\n 'image/hej2k': ['hej2'],\n 'image/hsj2': ['hsj2'],\n 'image/ief': ['ief'],\n 'image/jls': ['jls'],\n 'image/jp2': ['jp2', 'jpg2'],\n 'image/jpeg': ['jpeg', 'jpg', 'jpe'],\n 'image/jph': ['jph'],\n 'image/jphc': ['jhc'],\n 'image/jpm': ['jpm', 'jpgm'],\n 'image/jpx': ['jpx', 'jpf'],\n 'image/jxl': ['jxl'],\n 'image/jxr': ['jxr'],\n 'image/jxra': ['jxra'],\n 'image/jxrs': ['jxrs'],\n 'image/jxs': ['jxs'],\n 'image/jxsc': ['jxsc'],\n 'image/jxsi': ['jxsi'],\n 'image/jxss': ['jxss'],\n 'image/ktx': ['ktx'],\n 'image/ktx2': ['ktx2'],\n 'image/png': ['png'],\n 'image/sgi': ['sgi'],\n 'image/svg+xml': ['svg', 'svgz'],\n 'image/t38': ['t38'],\n 'image/tiff': ['tif', 'tiff'],\n 'image/tiff-fx': ['tfx'],\n 'image/webp': ['webp'],\n 'image/wmf': ['wmf'],\n 'message/disposition-notification': ['disposition-notification'],\n 'message/global': ['u8msg'],\n 'message/global-delivery-status': ['u8dsn'],\n 'message/global-disposition-notification': ['u8mdn'],\n 'message/global-headers': ['u8hdr'],\n 'message/rfc822': ['eml', 'mime'],\n 'model/3mf': ['3mf'],\n 'model/gltf+json': ['gltf'],\n 'model/gltf-binary': ['glb'],\n 'model/iges': ['igs', 'iges'],\n 'model/jt': ['jt'],\n 'model/mesh': ['msh', 'mesh', 'silo'],\n 'model/mtl': ['mtl'],\n 'model/obj': ['obj'],\n 'model/prc': ['prc'],\n 'model/step+xml': ['stpx'],\n 'model/step+zip': ['stpz'],\n 'model/step-xml+zip': ['stpxz'],\n 'model/stl': ['stl'],\n 'model/u3d': ['u3d'],\n 'model/vrml': ['wrl', 'vrml'],\n 'model/x3d+binary': ['*x3db', 'x3dbz'],\n 'model/x3d+fastinfoset': ['x3db'],\n 'model/x3d+vrml': ['*x3dv', 'x3dvz'],\n 'model/x3d+xml': ['x3d', 'x3dz'],\n 'model/x3d-vrml': ['x3dv'],\n 'text/cache-manifest': ['appcache', 'manifest'],\n 'text/calendar': ['ics', 'ifb'],\n 'text/coffeescript': ['coffee', 'litcoffee'],\n 'text/css': ['css'],\n 'text/csv': ['csv'],\n 'text/html': ['html', 'htm', 'shtml'],\n 'text/jade': ['jade'],\n 'text/javascript': ['js', 'mjs'],\n 'text/jsx': ['jsx'],\n 'text/less': ['less'],\n 'text/markdown': ['md', 'markdown'],\n 'text/mathml': ['mml'],\n 'text/mdx': ['mdx'],\n 'text/n3': ['n3'],\n 'text/plain': ['txt', 'text', 'conf', 'def', 'list', 'log', 'in', 'ini'],\n 'text/richtext': ['rtx'],\n 'text/rtf': ['*rtf'],\n 'text/sgml': ['sgml', 'sgm'],\n 'text/shex': ['shex'],\n 'text/slim': ['slim', 'slm'],\n 'text/spdx': ['spdx'],\n 'text/stylus': ['stylus', 'styl'],\n 'text/tab-separated-values': ['tsv'],\n 'text/troff': ['t', 'tr', 'roff', 'man', 'me', 'ms'],\n 'text/turtle': ['ttl'],\n 'text/uri-list': ['uri', 'uris', 'urls'],\n 'text/vcard': ['vcard'],\n 'text/vtt': ['vtt'],\n 'text/wgsl': ['wgsl'],\n 'text/xml': ['*xml'],\n 'text/yaml': ['yaml', 'yml'],\n 'video/3gpp': ['3gp', '3gpp'],\n 'video/3gpp2': ['3g2'],\n 'video/h261': ['h261'],\n 'video/h263': ['h263'],\n 'video/h264': ['h264'],\n 'video/iso.segment': ['m4s'],\n 'video/jpeg': ['jpgv'],\n 'video/jpm': ['*jpm', '*jpgm'],\n 'video/mj2': ['mj2', 'mjp2'],\n 'video/mp2t': ['ts', 'm2t', 'm2ts', 'mts'],\n 'video/mp4': ['mp4', 'mp4v', 'mpg4'],\n 'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'],\n 'video/ogg': ['ogv'],\n 'video/quicktime': ['qt', 'mov'],\n 'video/webm': ['webm'],\n};\nObject.freeze(types);\nexport default types;\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Mime_extensionToType, _Mime_typeToExtension, _Mime_typeToExtensions;\nclass Mime {\n constructor(...args) {\n _Mime_extensionToType.set(this, new Map());\n _Mime_typeToExtension.set(this, new Map());\n _Mime_typeToExtensions.set(this, new Map());\n for (const arg of args) {\n this.define(arg);\n }\n }\n define(typeMap, force = false) {\n for (let [type, extensions] of Object.entries(typeMap)) {\n type = type.toLowerCase();\n extensions = extensions.map((ext) => ext.toLowerCase());\n if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").has(type)) {\n __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").set(type, new Set());\n }\n const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type);\n let first = true;\n for (let extension of extensions) {\n const starred = extension.startsWith('*');\n extension = starred ? extension.slice(1) : extension;\n allExtensions?.add(extension);\n if (first) {\n __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").set(type, extension);\n }\n first = false;\n if (starred)\n continue;\n const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(extension);\n if (currentType && currentType != type && !force) {\n throw new Error(`\"${type} -> ${extension}\" conflicts with \"${currentType} -> ${extension}\". Pass \\`force=true\\` to override this definition.`);\n }\n __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").set(extension, type);\n }\n }\n return this;\n }\n getType(path) {\n if (typeof path !== 'string')\n return null;\n const last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n const ext = last.replace(/^.*\\./, '').toLowerCase();\n const hasPath = last.length < path.length;\n const hasDot = ext.length < last.length - 1;\n if (!hasDot && hasPath)\n return null;\n return __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(ext) ?? null;\n }\n getExtension(type) {\n if (typeof type !== 'string')\n return null;\n type = type?.split?.(';')[0];\n return ((type && __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").get(type.trim().toLowerCase())) ?? null);\n }\n getAllExtensions(type) {\n if (typeof type !== 'string')\n return null;\n return __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type.toLowerCase()) ?? null;\n }\n _freeze() {\n this.define = () => {\n throw new Error('define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances');\n };\n Object.freeze(this);\n for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").values()) {\n Object.freeze(extensions);\n }\n return this;\n }\n _getTestState() {\n return {\n types: __classPrivateFieldGet(this, _Mime_extensionToType, \"f\"),\n extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\"),\n };\n }\n}\n_Mime_extensionToType = new WeakMap(), _Mime_typeToExtension = new WeakMap(), _Mime_typeToExtensions = new WeakMap();\nexport default Mime;\n","import otherTypes from '../types/other.js';\nimport standardTypes from '../types/standard.js';\nimport Mime from './Mime.js';\nexport { default as Mime } from './Mime.js';\nexport default new Mime(standardTypes, otherTypes)._freeze();\n","import { computed, Ref } from 'vue';\nimport { useI18n } from '@/utils/ts/i18n';\nimport mime from 'mime';\n\n/**\n * Transforms a file extension to uppercase or a MIME type to an uppercase\n * extension prefixed by a dot:\n *\n * .jpeg -> .JPEG\n * application/pdf -> .PDF\n *\n * @param type Extension or Mime type string\n * @returns Extension\n */\nfunction getExtension(type: string) {\n // Is mimetype\n if (type.includes('/')) {\n return `.${mime.getExtension(type).toUpperCase()}`;\n }\n\n // Is extension\n return type.toUpperCase();\n}\n\n/**\n * Transforms a list of accepted file types or MIME types @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept}\n * into a human readable list of file extentions.\n *\n * .jpeg -> .JPEG\n * application/pdf -> .PDF\n *\n * @param accept String containing a list of unique file type specifiers.\n * @returns String with types transformed to human readable text\n */\nexport function useFileTypeList(accept?: Ref<string>) {\n const { locale, t } = useI18n();\n\n const supportedFileTypeList = computed<string>(() => {\n const formatter = new Intl.ListFormat(locale.value, { style: 'short', type: 'unit' });\n\n return accept?.value\n ? formatter.format(\n accept.value.split(',').map(type => {\n const value = type.trim();\n switch (value) {\n case 'audio/*':\n return t('audioFiles');\n case 'image/*':\n return t('imageFiles');\n case 'video/*':\n return t('videoFiles');\n default:\n return getExtension(type);\n }\n })\n )\n : null;\n });\n\n return { supportedFileTypeList };\n}\n","import { computed, reactive } from 'vue';\nimport mime from 'mime';\nimport { useDragDropStateProps } from './use-drag-drop-state.types';\n\n/**\n * Transforms a file extension to MIME type.\n * @param type Type or extension to be transformed\n * @returns Extension transformed into MIME type\n */\nfunction transformExtensionToMimeType(type: string) {\n // When getType is \"null\" the value is a mime type\n return mime.getType(type) ?? type;\n}\n\n/**\n * Provides a set of states for the Drag and drop component as well as a set of errors calculated\n * during the \"dragenter\" event.\n *\n * The errors prevent the files from being dropped.\n * The state helps indicating what's the current state of the component.\n *\n * @param options Properties used to validate files when they are dragged inside the file uploader\n * @returns Drag state and errors calculated during the validation perfomed on the Drag event\n */\nexport function useDragDropState({ maxCount, accept }: useDragDropStateProps) {\n const dragErrors = reactive({\n invalidTypes: false,\n partiallyInvalidTypes: false,\n maxCountOverflow: false,\n });\n\n const dragState = reactive({\n dragging: false,\n error: false,\n });\n\n // Convert all extensions to MIME types\n const acceptMimeTypes = computed<Array<string>>(() => {\n if (!accept.value) {\n return undefined;\n }\n\n const types = accept.value\n .split(',') // Split all comma values\n .map(type => transformExtensionToMimeType(type.trim().toLocaleLowerCase()));\n return types;\n });\n\n /**\n * Resets to default the states provided by the composable\n */\n function resetDragState() {\n dragState.dragging = false;\n dragState.error = false;\n dragErrors.invalidTypes = false;\n dragErrors.partiallyInvalidTypes = false;\n dragErrors.maxCountOverflow = false;\n }\n\n /**\n * Validates if the files being dragged into the component meet all\n * restrictions applied by the MIME type through the \"action\" and\n * with the \"maxCount\" props\n *\n * @param totalFilesCount Total amount of files currently uploded\n * @param event Event triggered by the \"onenter\" action\n */\n function onDragEnterValidations(totalFilesCount: number, event: DragEvent) {\n // Enable dragging\n dragState.dragging = true;\n\n // Show error when the amount of files being dragged is higher than \"maxCount\"\n if (!event.dataTransfer.types.includes('Files') || totalFilesCount > maxCount.value) {\n dragErrors.maxCountOverflow = true;\n dragState.error = true;\n }\n\n // Do nothing if no file type/extension restrictions are set\n if (!acceptMimeTypes.value) {\n return;\n }\n\n let countValidFiles = 0;\n\n for (const file of event.dataTransfer.items) {\n if (acceptMimeTypes.value.includes(file.type)) {\n countValidFiles++;\n }\n }\n\n if (countValidFiles === 0) {\n dragState.error = true;\n dragErrors.invalidTypes = true;\n return;\n }\n\n // If some files have non-accepted types\n if (!dragErrors.invalidTypes && countValidFiles !== event.dataTransfer.items.length) {\n dragState.error = true;\n dragErrors.partiallyInvalidTypes = true;\n }\n }\n\n return {\n dragState,\n dragErrors,\n resetDragState,\n onDragEnterValidations,\n };\n}\n","<template>\n <div class=\"b-file-uploader\" :class=\"conditionalClasses\">\n <field-label\n class=\"b-file-uploader__label\"\n :for=\"inputFieldId\"\n :label=\"label\"\n :optional=\"optional\"\n :required=\"required\"\n :tooltip-text=\"tooltipText\"\n />\n\n <input\n :id=\"inputFieldId\"\n ref=\"inputRef\"\n aria-hidden=\"true\"\n type=\"file\"\n tabindex=\"-1\"\n data-testid=\"input\"\n class=\"b-file-uploader__input\"\n :accept=\"accept\"\n :disabled=\"disabled\"\n :multiple=\"isMultiple\"\n @change=\"onInputChange\"\n @click=\"onInputClick\"\n />\n\n <!-- Used to separate the a11y text with breaks for the reader. Hidden to users -->\n <span :id=\"commaTextId\" aria-hidden=\"true\" class=\"b-file-uploader__invisible-comma\"> , </span>\n\n <div\n v-if=\"!hideArea\"\n ref=\"dropAreaRef\"\n :aria-labelledby=\"fileUploadAriaLabelledBy\"\n class=\"b-file-uploader__area\"\n role=\"button\"\n :tabindex=\"disabled ? -1 : 0\"\n @click=\"inputRef.click()\"\n @dragenter.stop.prevent=\"onDragEnter\"\n @dragleave.stop.prevent=\"onDragLeave\"\n @drop.stop.prevent=\"onDrop\"\n @dragover=\"onDragOver\"\n @keydown.enter.prevent.capture=\"inputRef.click()\"\n @keydown.space.prevent.capture=\"inputRef.click()\"\n >\n <div class=\"b-file-uploader__icon\" aria-hidden=\"true\">\n <warning-filled-icon v-if=\"hasError\" />\n <upload-icon v-else />\n </div>\n\n <template v-if=\"!condensed\">\n <bento-typography :id=\"dropFilesTextId\" el=\"span\" strongest class=\"b-file-uploader__title\">\n {{ tc('dropFiles', maxCount) }}\n </bento-typography>\n\n <bento-typography v-if=\"description\" :id=\"customTextId\" el=\"span\" class=\"b-file-uploader__description\">\n {{ description }}\n </bento-typography>\n\n <file-uploader-restrictions v-bind=\"fileUploadRestrictionsProps\" :id=\"fileUploaderRestrictionsId\" />\n </template>\n\n <bento-typography :id=\"browseFilesButtonId\" stronger class=\"b-file-uploader__button\">\n {{ t('browseFiles') }}\n </bento-typography>\n </div>\n\n <error-message\n v-if=\"hasError && errorMessage\"\n :id=\"errorId\"\n :error-message=\"errorMessage\"\n class=\"b-file-uploader__error-message\"\n />\n\n <bento-typography\n v-if=\"condensed && description\"\n :id=\"customTextId\"\n aria-hidden=\"true\"\n el=\"span\"\n class=\"b-file-uploader__description b-file-uploader__description--condensed\"\n >\n {{ description }}\n </bento-typography>\n\n <file-uploader-restrictions\n v-if=\"condensed\"\n v-bind=\"fileUploadRestrictionsProps\"\n :id=\"fileUploaderRestrictionsId\"\n />\n\n <bento-alert v-if=\"maxFileCountError\" type=\"critical\">\n {{ t('tooManyFiles') }}\n <template #description>\n {{ t('youHaveExceededTheMaximum', { count: props.maxCount }) }}\n </template>\n </bento-alert>\n\n <div v-show=\"files?.length\" class=\"b-file-uploader__files\">\n <file-uploader-file-card\n v-for=\"(file, index) in files\"\n :ref=\"registerFileCardRef(index)\"\n :key=\"file.id\"\n :file=\"file\"\n :supported-file-types=\"supportedFileTypeList\"\n @cancel=\"removeFile(file)\"\n @remove=\"removeFile(file)\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, reactive, ref, toRef, watch } from 'vue';\n import UploadIcon from '@adyen/ui-assets-icons-16/vue/upload';\n import WarningFilledIcon from '@adyen/ui-assets-icons-16/vue/warning-filled';\n\n import { BentoAlert } from '@/components/alert';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n import { FileUploaderFileCard } from './components/file-uploader-file-card';\n import { FileUploaderRestrictions } from './components/file-uploader-restrictions';\n\n import { useI18n } from '@/utils/ts/i18n';\n import { generateUid } from '@/core/utils/ts';\n import { getFileType, readFile } from './utils';\n import { useFileTypeList } from './composables';\n\n import {\n type BentoFileUploaderProps,\n BentoFileUploaderValue,\n FileErrorType,\n FileObject,\n FileState,\n FileUploaderState,\n } from './file-uploader.types';\n import type { FileUploaderRestrictionsProps } from '@/components/file-uploader/components/file-uploader-restrictions/file-uploader-restrictions.types';\n\n import messages from './messages.json';\n import { useDragDropState } from '@/components/file-uploader/composables/use-drag-drop-state/use-drag-drop-state';\n import { deprecate } from '@/utils/ts/deprecate';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t, tc } = useI18n<{ message: MessageSchema }>({ messages });\n\n const emit = defineEmits([\"change\", \"input\", \"update:modelValue\", \"error:upload\"]);\n\n const props = defineProps({\n accept: { default: null },\n condensed: { type: Boolean },\n description: { default: null },\n disabled: { type: Boolean },\n errorMessage: { default: null },\n label: null,\n maxCount: { default: 1 },\n maxDimensions: { default: null },\n maxSize: { default: null },\n modelValue: { default: null },\n optional: { type: Boolean },\n required: { type: Boolean },\n tooltipText: { default: null }\n});\n\n /**\n * Model value checks\n * Filter out type string, array and file as FileList is the only type un-deprecated for modelValue\n * */\n\n /**\n * Type guard to check if the value is a FileList.\n * @param files The value to check.\n */\n function isFileList(files: BentoFileUploaderValue): files is FileList {\n return (\n !!files && typeof (files as FileList).length === 'number' && typeof (files as FileList).item === 'function'\n );\n }\n\n /**\n * Used as vitest recognizes FileList as an Array of Files which then\n * causes any tests with pre-uploaded files to fail as isFileList will fail.\n * */\n onMounted(() => {\n // Model is not a FileList\n if (!isFileList(props.modelValue)) {\n deprecate(\n 'BentoFileUploaderValue types: string | Array<string> | File | Array<File>',\n 'Use FileList instead.',\n '2.0.0'\n );\n }\n });\n\n const { supportedFileTypeList } = useFileTypeList(toRef(props, 'accept'));\n\n const browseFilesButtonId = generateUid('browse-button');\n const customTextId = generateUid('custom-text');\n const dropFilesTextId = generateUid('drop-files-text');\n const commaTextId = generateUid('comma-text');\n const fileUploaderRestrictionsId = generateUid('file-uploader-restrictions');\n\n const files = ref<Array<FileObject>>(null);\n const fileCardRefs = ref<Array<InstanceType<typeof FileUploaderFileCard>>>([]);\n const inputRef = ref<HTMLInputElement>(null);\n const dropAreaRef = ref<HTMLDivElement>(null);\n const inputFieldId = generateUid('input');\n const errorId = generateUid('input-error');\n\n const fileUploadAriaLabelledBy = computed(() => {\n const formattedDropFileTextId = !props.condensed ? `${dropFilesTextId} ${commaTextId}` : '';\n const formattedCustomTextId = props.description ? `${customTextId} ${commaTextId}` : '';\n const formattedFileUploaderRestrictionsId = `${fileUploaderRestrictionsId} ${commaTextId}`;\n return `${formattedDropFileTextId} ${formattedCustomTextId} ${formattedFileUploaderRestrictionsId} ${browseFilesButtonId}`;\n });\n\n const { dragState, dragErrors, resetDragState, onDragEnterValidations } = useDragDropState({\n accept: toRef(props, 'accept'),\n maxCount: toRef(props, 'maxCount'),\n });\n\n const fileUploadRestrictionsProps = computed<FileUploaderRestrictionsProps>(() => ({\n condensed: props.condensed,\n disabled: props.disabled,\n maxCount: isMultiple.value\n ? {\n value: props.maxCount,\n error: dragErrors.maxCountOverflow || maxFileCountError.value,\n }\n : null,\n maxDimensions: props.maxDimensions\n ? {\n value: props.maxDimensions,\n error: files.value?.some(file => file.errors.includes(FileErrorType.ERROR_DIMENSIONS)),\n }\n : null,\n maxSize: props.maxSize\n ? {\n value: props.maxSize,\n error: files.value?.some(file => file.errors.includes(FileErrorType.ERROR_SIZE)),\n }\n : null,\n supportedFileTypes: supportedFileTypeList.value\n ? {\n value: supportedFileTypeList.value,\n error:\n dragErrors.invalidTypes ||\n dragErrors.partiallyInvalidTypes ||\n files.value?.some(file => file.errors.includes(FileErrorType.ERROR_TYPE)),\n }\n : null,\n }));\n // Prevents triggering \"dragleave\" events on children elements\n const enterTarget = ref<EventTarget>();\n\n const conditionalClasses = computed(() => ({\n [`b-file-uploader--${FileUploaderState.DISABLED}`]: props.disabled,\n [`b-file-uploader--${FileUploaderState.DRAG_OVER}`]: dragState.dragging,\n [`b-file-uploader--${FileUploaderState.ERROR}`]: hasError.value,\n [`b-file-uploader--condensed`]: props.condensed,\n }));\n const isMultiple = computed(() => props.maxCount > 1);\n const hideArea = computed(() => props.maxCount && files.value?.length >= props.maxCount);\n const loadingStateExists = computed(() => files.value?.some(file => file.state === 'loading'));\n\n const registerFileCardRef = (cardIndex: number) => fileCardRef => {\n fileCardRefs.value[cardIndex] = fileCardRef;\n };\n\n /**\n * Verifies the new list of files and emits the `change` and `update:modelValue` events.\n * @param newList The new list of files to process and emit.\n */\n function emitUpdate(newList: Array<FileObject>) {\n if (newList) {\n verifyFileCount(newList);\n verifyFileSize(newList);\n\n const value = convertToFileList(newList);\n\n emit('change', value);\n emit('update:modelValue', value);\n emit('input', value);\n } else {\n emit('change');\n emit('update:modelValue');\n emit('input');\n }\n }\n\n /** Errors */\n const hasError = computed(() => !!props.errorMessage || dragState.error);\n const maxFileCountError = computed(() => files.value?.length > props.maxCount);\n const maxFileError = ref(false);\n const hasRestrictionError = computed(() => files.value?.some(file => file.state === 'error'));\n\n watch(hasRestrictionError, newValue => {\n // Without this, when files are initially uploaded the component\n // will immediately and unnecessarily emit 'false' and then\n // emit 'true' once processing has done, if errors exists.\n if (loadingStateExists.value) {\n return;\n }\n\n emit('error:upload', newValue);\n });\n\n /**\n * Places the focus to the \"drop area\" after adding or removing a file.\n * If more files can be added, the focus is moved to the \"drop area\".\n * If no more files can be added, the focus is moved to the first file card.\n */\n async function resetFocus() {\n await nextTick();\n\n if (files.value.length === props.maxCount) {\n fileCardRefs.value[0]?.focus();\n return;\n }\n\n dropAreaRef.value.focus();\n }\n\n /**\n * Removes the file from the list of files when the\n * \"remove\" or \"cancel\" events are triggered from\n * the file card component\n * @param file File to be removed\n */\n async function removeFile(file: FileObject) {\n files.value = files.value.filter(({ id }) => id !== file.id);\n\n await resetFocus();\n emitUpdate(files.value);\n }\n\n /** Drag n Drop functions */\n\n /**\n * Creates a FileObject from a native File and tracks its client-load progress.\n * @param file The native File object.\n * @returns A FileObject.\n */\n function processFile(file: File) {\n const fileObject = reactive<FileObject>({\n id: generateUid('file'),\n data: file,\n errors: [],\n progress: null,\n state: FileState.LOADING,\n type: getFileType(file),\n });\n readFile(fileObject, props.accept, props.maxDimensions);\n return fileObject;\n }\n\n /**\n * Prevent opening the file browser when no\n * more files can be added (until one file is removed).\n * @param event Triggered event\n */\n function onInputClick(event: MouseEvent) {\n if (files.value?.length === props.maxCount) {\n event.preventDefault();\n }\n }\n\n /**\n * Sets the file/files to track their progress while being processed\n * @param fileList File or list of files to be processed.\n */\n async function onFileInput(fileList: FileList) {\n // Prevent adding many files if maxCount is 1\n if (props.maxCount === 1 && fileList.length > props.maxCount) {\n resetEnterTarget();\n resetDragState();\n return;\n }\n\n if (isMultiple.value) {\n // Add the new files to the file selection.\n // Removing files should be done by interacting with the file list below the area.\n files.value = [...(files.value || []), ...Array.from(fileList).map(file => processFile(file))];\n } else {\n files.value = [processFile(fileList[0])];\n await resetFocus();\n }\n\n emitUpdate(files.value);\n }\n\n /**\n * Handles the \"dragenter\" event, triggered when the mouse enters the draggable area.\n * Enables the dragging state and sets the dragging error to true to\n * prevent dropping files from being added if there's a general error.\n * @param event Drag event\n */\n function onDragEnter(event: DragEvent) {\n // Prevent changing state if disabled\n if (props.disabled) {\n return;\n }\n\n /**\n * Allows internal components as part of the dragable area.\n * Prevents trigerring \"dragleave\" events on children elements.\n * Set the \"dragarea\" as target\n */\n enterTarget.value = event.target;\n\n const totalFilesCount = (event.dataTransfer.items?.length ?? 0) + (files.value?.length ?? 0);\n onDragEnterValidations(totalFilesCount, event);\n }\n\n /**\n * Resets the reference to the target.\n * This helps preventing loosing the state when dragging over children\n */\n function resetEnterTarget() {\n enterTarget.value = null;\n }\n\n /**\n * Handles the \"dragleave\" event, triggered when the mouse leaves the draggable area.\n * Maintains the dragging state while dragging over children.\n * Resets the states when the mouse leaves the draggable area\n * @param event Drag event\n */\n function onDragLeave(event: DragEvent) {\n // If target enter and leave are the same it means the drag has left the \"dragarea\"\n if (enterTarget.value === event.target) {\n resetEnterTarget();\n resetDragState();\n }\n }\n\n /**\n * Handles the \"dragover\" event, triggered when the mouse moves over the draggable area.\n * Disables the cursor when the component is disabled.\n * @param event Drag event\n */\n function onDragOver(event: DragEvent) {\n event.preventDefault();\n\n // Disable drag n drop and change the cursor if disabled\n if (props.disabled) {\n // eslint-disable-next-line no-param-reassign\n event.dataTransfer.dropEffect = 'none';\n }\n }\n\n /**\n * Hadles the \"drop\" event, triggered when files are dropped inside the draggable area.\n * Processes the files that are dropped.\n * @param event Drag event\n */\n async function onDrop(event: DragEvent) {\n // Prevent events when the input is disabled\n if (props.disabled) {\n return;\n }\n\n if (!dragErrors.invalidTypes && event.dataTransfer.files?.length) {\n onFileInput(event.dataTransfer.files);\n }\n resetEnterTarget();\n resetDragState();\n }\n\n /**\n * Handles the \"change\" event over the \"input\" element.\n * Processes the files that are selected through the browser's file explorer.\n */\n async function onInputChange() {\n if (inputRef.value.files?.length) {\n onFileInput(inputRef.value.files);\n }\n\n // Reset input value\n inputRef.value.value = '';\n await resetFocus();\n }\n\n /** End of drag and drop functions */\n\n /**\n * Watches the modelValue and if set\n * and the type is not deprecated, it processes the files\n * but doesn't emit them as the user already has those files.\n */\n watch(\n () => props.modelValue,\n (newValue: BentoFileUploaderValue) => {\n if (newValue && isFileList(newValue)) {\n const fileList = newValue as FileList;\n\n const fileListArray: Array<File> = Array.from(fileList);\n\n files.value = fileListArray.map(file => processFile(file));\n }\n },\n { immediate: true }\n );\n\n function verifyFileCount(fileList: Array<FileObject>) {\n const isValid = props.maxCount && fileList.length <= props.maxCount;\n maxFileError.value = !isValid;\n }\n\n function verifyFileSize(fileList: Array<FileObject>) {\n if (props.maxSize) {\n fileList.forEach(file => {\n const item = file; // Prevent eslint no-param-reassign\n if (item.data.size > props.maxSize) {\n item.state = FileState.ERROR;\n item.errors.push(FileErrorType.ERROR_SIZE);\n }\n });\n }\n }\n\n function convertToFileList(fileList: Array<FileObject>) {\n // Filter out files with errors\n const validFiles = fileList.filter(\n ({ errors }) => !errors.includes(FileErrorType.ERROR_LOAD) && !errors.includes(FileErrorType.ERROR_SIZE)\n );\n\n if (validFiles.length) {\n const dataTransfer = new DataTransfer();\n validFiles.forEach(({ data, id }) => {\n dataTransfer.items.add(data);\n });\n return dataTransfer.files;\n }\n return undefined;\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * The file uploader component enables users to upload one or multiple files from their device to our system.\n *\n * @example\n * import { BentoFileUploader, type BentoFileValue } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoFileUploader },\n * template: `\n * <bento-file-uploader\n * accept=\"image/*,video/*,.pdf,.png\"\n * condensed\n * description=\"Custom supporting text\"\n * disabled\n * errorMessage=\"Custom error message\"\n * label=\"Bento file uploader\"\n * :maxCount=\"1\"\n * :maxDimensions=\"{ width: 200, height: 100 }\"\n * :maxSize=\"1000\"\n * v-model=\"files\"\n * multiple\n * :optional=\"false\"\n * required\n * tooltipText=\"Useful information\"\n * />\n * `,\n * setup() {\n * const files = ref<BentoFileValue>()\n * }\n * }\n */\n export default {\n model: { prop: 'modelValue' },\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./file-uploader.scss\" />\n"],"names":["uuid$9","_sfc_main$d","useTruncatedFileName","target","container","isContainerTruncating","ref","observer","disconnectObserver","onUnmounted","onMounted","entries","UNITS","formatFileSize","locale","size","unitIndex","FileState","FileState2","FileErrorType","FileErrorType2","FileUploaderState","FileUploaderState2","FileType","FileType2","textFileExtraTypes","tableFileTypes","slidesFileTypes","compressedFileTypes","getFileType","file","isFileTypeAccepted","accept","acceptPatterns","type","pattern","category","readFile","fileObject","maxDimensions","reader","event","blob","url","img","uuid$8","_sfc_main$b","uuid$7","_sfc_main$a","uuid$6","_sfc_main$9","uuid$5","_sfc_main$8","uuid$4","_sfc_main$7","uuid$3","_sfc_main$6","uuid$2","_sfc_main$5","uuid$1","_sfc_main$4","uuid","_sfc_main$3","FILE_TYPE_ICON_MAP","SoundIcon","FolderIcon","AttachmentIcon","ImageIcon","DocumentIcon","CollectionIcon","TableIcon","DocumentLinesIcon","PlayCircleIcon","getFileIcon","getFileIconColor","__default__$2","messages$2","ICON_TIMER","t","useI18n","removeFileButtonRef","cancelFileButtonRef","retryFileButtonRef","fileErrorsSectionId","generateUid","cancelFileButtonId","removeFileButtonId","retryFileButtonId","showFileIcon","props","downloadUrl","computed","hasError","hasLoadError","hasSizeError","hasDimensionsError","hasTypeError","isLoading","progressLabel","sizeLabel","fileNameRef","fileNameContainerRef","isFileNameTruncated","conditionalClasses","conditionalIconClasses","fileUploaderIcon","BentoLoadingIndicator","WarningFilledIcon","CheckmarkCircleFillIcon","watch","value","changeTimer","focus","expose","__default__$1","messages$1","tc","setRestrictionErrorClass","error","maxDimensionsLabel","width","height","types$1","types","__classPrivateFieldGet","receiver","state","kind","f","_Mime_extensionToType","_Mime_typeToExtension","_Mime_typeToExtensions","Mime","args","arg","typeMap","force","extensions","ext","allExtensions","first","extension","starred","currentType","path","last","hasPath","_a","mime","getExtension","useFileTypeList","formatter","transformExtensionToMimeType","useDragDropState","maxCount","dragErrors","reactive","dragState","acceptMimeTypes","resetDragState","onDragEnterValidations","totalFilesCount","countValidFiles","__default__","messages","isFileList","files2","deprecate","supportedFileTypeList","toRef","browseFilesButtonId","customTextId","dropFilesTextId","commaTextId","fileUploaderRestrictionsId","files","fileCardRefs","inputRef","dropAreaRef","inputFieldId","errorId","fileUploadAriaLabelledBy","formattedDropFileTextId","formattedCustomTextId","formattedFileUploaderRestrictionsId","fileUploadRestrictionsProps","isMultiple","maxFileCountError","_b","_c","enterTarget","hideArea","loadingStateExists","registerFileCardRef","cardIndex","fileCardRef","emitUpdate","newList","verifyFileCount","verifyFileSize","convertToFileList","emit","maxFileError","hasRestrictionError","newValue","resetFocus","nextTick","removeFile","id","processFile","onInputClick","onFileInput","fileList","resetEnterTarget","onDragEnter","onDragLeave","onDragOver","onDrop","onInputChange","fileListArray","isValid","item","validFiles","errors","dataTransfer","data"],"mappings":"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","x_google_ignoreList":[19,20,21,22]}
|
|
1
|
+
{"version":3,"file":"file-uploader.DyjdNLOa.js","sources":["../../../ui-assets/icons-16/dist/vue/upload.vue","../../src/components/file-uploader/components/file-uploader-file-card/composables/use-truncated-file-name.ts","../../src/components/file-uploader/utils/format-file-size/format-file-size.ts","../../src/components/file-uploader/file-uploader.types.ts","../../src/components/file-uploader/utils/get-file-type/get-file-type.ts","../../src/components/file-uploader/utils/read-file/read-file.ts","../../../ui-assets/icons-16/dist/vue/attachment.vue","../../../ui-assets/icons-16/dist/vue/collection.vue","../../../ui-assets/icons-16/dist/vue/document-1.vue","../../../ui-assets/icons-16/dist/vue/document-lines.vue","../../../ui-assets/icons-16/dist/vue/folder.vue","../../../ui-assets/icons-16/dist/vue/image.vue","../../../ui-assets/icons-16/dist/vue/play-circle.vue","../../../ui-assets/icons-16/dist/vue/sound.vue","../../../ui-assets/icons-16/dist/vue/table.vue","../../src/components/file-uploader/components/file-uploader-file-card/utils/get-file-icon/get-file-icon.ts","../../src/components/file-uploader/components/file-uploader-file-card/utils/get-file-icon-color/get-file-icon-color.ts","../../src/components/file-uploader/components/file-uploader-file-card/file-uploader-file-card.vue","../../src/components/file-uploader/components/file-uploader-restrictions/file-uploader-restrictions.vue","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/types/other.js","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/types/standard.js","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/src/Mime.js","../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/src/index.js","../../src/components/file-uploader/composables/use-file-type-list/use-file-type-list.ts","../../src/components/file-uploader/composables/use-drag-drop-state/use-drag-drop-state.ts","../../src/components/file-uploader/file-uploader.vue"],"sourcesContent":["\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M8.00011 0.939453L12.0608 5.00011L11.0001 6.06077L8.75 3.81066V11.75H7.25V3.81089L5.00011 6.06077L3.93945 5.00011L8.00011 0.939453Z\"/><path fill=\"#001222\" d=\"M2.75 12.5V10.25H1.25V12.5C1.25 13.0967 1.48705 13.669 1.90901 14.091C2.33097 14.5129 2.90326 14.75 3.5 14.75H12.5C13.0967 14.75 13.669 14.5129 14.091 14.091C14.5129 13.669 14.75 13.0967 14.75 12.5V10.25H13.25V12.5C13.25 12.6989 13.171 12.8897 13.0303 13.0303C12.8897 13.171 12.6989 13.25 12.5 13.25H3.5C3.30109 13.25 3.11032 13.171 2.96967 13.0303C2.82902 12.8897 2.75 12.6989 2.75 12.5Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","import { VueInstance } from '@/types';\nimport { onMounted, onUnmounted, ref, Ref } from 'vue';\n\n/**\n * Verifies if the content defined is being truncated when it is overflowing the container.\n *\n * @param target Element that contains the text to be truncated\n * @param container Scrollable container that defines the boundaries\n * @returns Boolean indicating whether or not the content will be truncated\n */\nexport function useTruncatedFileName(target: Ref<VueInstance>, container: Ref<HTMLElement>) {\n const isContainerTruncating = ref<boolean>(false);\n let observer: IntersectionObserver;\n\n function disconnectObserver() {\n if (observer) {\n observer.disconnect();\n }\n }\n\n onUnmounted(() => {\n disconnectObserver();\n });\n\n onMounted(() => {\n disconnectObserver();\n\n observer = new IntersectionObserver(\n entries => {\n isContainerTruncating.value = !entries[0].isIntersecting;\n },\n {\n root: container.value,\n threshold: 1.0,\n }\n );\n\n observer.observe(target.value.$el);\n });\n\n return isContainerTruncating;\n}\n","const UNITS = ['byte', 'kilobyte', 'megabyte', 'gigabyte', 'terabyte', 'petabyte'];\n\n/**\n * Converts size in bytes to a human readable format using Binary Prefixes IEC standard\n * For example, it transforms \"1024\" to \"1kB\"\n *\n * Source: https://physics.nist.gov/cuu/Units/binary.html\n *\n * @param locale App's set locale (e.g. en, es, pt-BR)\n * @param size Size of file in bytes\n * @returns Size of file using metrics\n */\nexport function formatFileSize(locale: string, size: number) {\n const unitIndex = Math.max(0, Math.min(Math.floor(Math.log(size) / Math.log(1024)), UNITS.length - 1));\n\n return Intl.NumberFormat(locale, {\n style: 'unit',\n unit: UNITS[unitIndex],\n }).format(size / 1024 ** unitIndex);\n}\n","export type BentoFileUploaderValue = string | Array<string> | File | Array<File> | FileList;\nexport interface BentoFileUploaderProps {\n /**\n * A string that defines the file types the file input should accept.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept\n */\n accept?: HTMLInputElement['accept'];\n\n /**\n * Reduces the size of the uploader area.\n */\n condensed?: boolean;\n\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description?: string;\n\n /**\n * Disable the radio button (optional).\n */\n disabled?: boolean;\n\n /**\n * Renders file-uploader with an error state and the error message beneath the input box\n */\n errorMessage?: string;\n\n /**\n * The label of the component.\n */\n label: string;\n\n /**\n * Sets a maximum file count. Allows for uploading multiple files.\n */\n maxCount?: number;\n\n /**\n * Sets a maximum image size (for image file types only).\n */\n maxDimensions?: { width?: number; height?: number };\n\n /**\n * Sets a maximum file size in Bytes\n */\n maxSize?: number;\n\n /**\n * Used to support `v-model`. Can be used to set value of FileUploader if FileList\n */\n modelValue?: BentoFileUploaderValue;\n\n /**\n * Sets the field as optional.\n */\n optional?: boolean;\n\n /**\n * Sets the field as required.\n */\n required?: boolean;\n\n /**\n * Adds a info icon next to the label to display the passed tooltip message.\n */\n tooltipText?: string;\n}\n\n/**\n * Private types\n */\nexport enum FileState {\n LOADING = 'loading',\n SUCCESS = 'success',\n ERROR = 'error',\n}\n\nexport enum FileErrorType {\n ERROR_SIZE = 'error-size',\n ERROR_LOAD = 'error-load',\n ERROR_DIMENSIONS = 'error-dimensions',\n ERROR_TYPE = 'error-type',\n}\n\nexport enum FileUploaderState {\n DISABLED = 'disabled',\n DRAG_OVER = 'drag-over',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum FileType {\n TABLE = 'table',\n IMAGE = 'image',\n VIDEO = 'video',\n AUDIO = 'audio',\n TEXT = 'text',\n PDF = 'pdf',\n SLIDES = 'slides',\n COMPRESSED = 'compressed',\n GENERIC = 'generic',\n}\n\nexport interface FileObject {\n id: string;\n data: File;\n state: FileState;\n errors: Array<FileErrorType>;\n type: FileType;\n progress: number | null;\n dimensions?: { width: number; height: number };\n}\n\nexport type SupportedFileTypes = string;\n","import { FileType } from '@/components/file-uploader/file-uploader.types';\n\nconst textFileExtraTypes = [\n 'application/msword', // .doc\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx\n 'application/rtf', // .rtf\n];\n\nconst tableFileTypes = [\n 'application/vnd.ms-excel', // .xls\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // .xlsx\n 'application/vnd.oasis.opendocument.spreadsheet', //.ods\n 'application/vnd.apple.numbers', // .numbers\n 'application/x-iwork-numbers-sffnumbers', // .numbers\n 'text/csv', // .csv\n];\n\nconst slidesFileTypes = [\n 'application/vnd.ms-powerpoint', // .ppt\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation', // .pptx\n 'application/vnd.oasis.opendocument.presentation', // .odp\n];\n\nconst compressedFileTypes = [\n 'application/zip', // .zip\n 'application/vnd.rar', // .rar\n 'application/x-7z-compressed', // .7z\n 'application/gzip', // .gz, .tar.gz, .tgz\n 'application/x-tar', // .tar\n 'application/x-bzip2', // .bz2\n 'application/x-xz', // .xz\n 'application/x-lzma', // .lzma\n 'application/x-compress', // .Z\n 'application/vnd.ms-cab-compressed', // .cab\n];\n\n/**\n * Categorizes the type of a file. Maps all types of text, image, video,\n * audio and documents to an specific category such as \"text/*\" or \"image/*\" respectively\n * @param file File to be typed\n * @returns Type category of the file being uploaded\n */\nexport function getFileType(file: File) {\n if (tableFileTypes.includes(file.type)) {\n return FileType.TABLE;\n }\n\n if (file.type.startsWith('text/') || textFileExtraTypes.includes(file.type)) {\n return FileType.TEXT;\n }\n\n if (file.type.startsWith('image/')) {\n return FileType.IMAGE;\n }\n\n if (file.type.startsWith('video/')) {\n return FileType.VIDEO;\n }\n\n if (file.type.startsWith('audio/')) {\n return FileType.AUDIO;\n }\n\n if (file.type === 'application/pdf') {\n return FileType.PDF;\n }\n\n if (slidesFileTypes.includes(file.type)) {\n return FileType.SLIDES;\n }\n\n if (compressedFileTypes.includes(file.type)) {\n return FileType.COMPRESSED;\n }\n\n return FileType.GENERIC;\n}\n","import { FileErrorType, type FileObject, FileState, FileType } from '@/components/file-uploader/file-uploader.types';\n\n/**\n * Validates if a File has the correct type accepted for the current instance of\n * BentoFileUploader.\n *\n * @param file File being processed\n * @param accept HTML MIME types valid for the file to be processed\n * @returns Whether or not the file has the right type\n */\nexport function isFileTypeAccepted(file: File, accept?: string) {\n if (!accept) {\n return true;\n }\n\n // Split accept attribute into individual rules (e.g., 'image/*', '.png')\n const acceptPatterns = accept.split(',').map(type => type.trim());\n\n for (const pattern of acceptPatterns) {\n if (pattern.startsWith('.')) {\n // Check for file extension\n if (file.name.endsWith(pattern)) {\n return true;\n }\n } else if (pattern.endsWith('/*')) {\n // Check for type category (e.g., 'image/*')\n const category = pattern.split('/')[0];\n if (file.type.startsWith(category)) {\n return true;\n }\n } else {\n // Check for exact MIME type match\n if (file.type === pattern) {\n return true;\n }\n }\n }\n\n return false; // No matches found\n}\n\n/**\n * Process a file to verify if it fulfills the accepted type restrictions defined in \"accept\",\n * the dimensions for \"image/*\" types defined by \"maxDimensions\". The state of the \"fileObject\" will\n * be updated according to the restrictions or if it was successfully uploaded.\n *\n * @param fileObject File to be processed\n * @param accept HTML MIME types valid for the file to be processed\n * @param maxDimensions Width and height restrictions for \"image/*\" files\n */\nexport function readFile(\n fileObject: FileObject,\n accept?: string,\n maxDimensions?: { width?: number; height?: number }\n): void {\n const reader = new FileReader();\n // Can't be cloned because the events are async\n const file = fileObject; // avoid ESLint no-param-reassign\n\n // Verify file type - skip the rest if invalid\n if (!isFileTypeAccepted(file.data, accept)) {\n file.state = FileState.ERROR;\n file.errors.push(FileErrorType.ERROR_TYPE);\n return;\n }\n\n reader.onload = event => {\n if (maxDimensions && file.type === FileType.IMAGE) {\n const blob = new Blob([event.target.result], { type: file.data.type });\n const url = URL.createObjectURL(blob);\n const img = new Image();\n\n img.onload = function () {\n if (img.width > maxDimensions.width || img.height > maxDimensions.height) {\n file.state = FileState.ERROR;\n file.errors.push(FileErrorType.ERROR_DIMENSIONS);\n }\n URL.revokeObjectURL(url);\n };\n\n img.onerror = function () {\n URL.revokeObjectURL(url);\n };\n\n img.src = url;\n }\n };\n\n reader.onprogress = event => {\n if (event.lengthComputable) {\n file.progress = (event.loaded / event.total) * 100;\n }\n };\n\n reader.onloadend = () => {\n if (file.state !== FileState.ERROR) {\n file.state = FileState.SUCCESS;\n }\n\n file.progress = null;\n };\n\n reader.onerror = () => {\n file.state = FileState.ERROR;\n file.errors.push(FileErrorType.ERROR_LOAD);\n file.progress = null;\n };\n\n reader.readAsArrayBuffer(file.data);\n}\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><g :clip-path=\"'url(#uia-ui-assets/icons-16-attachment__a' + uuid + ')'\"><path fill=\"#001222\" d=\"M12.866 4.09026C11.5689 2.79315 9.4638 2.79315 8.1667 4.09026L2.7267 9.53026C1.95959 10.2974 1.95959 11.5425 2.7267 12.3096C3.49381 13.0767 4.73893 13.0767 5.50604 12.3096L10.946 6.8696C11.1831 6.63249 11.1831 6.24737 10.946 6.01026C10.7089 5.77316 10.3238 5.77316 10.0867 6.01026L4.75637 11.3406L3.69571 10.2799L9.02604 4.9496C9.84893 4.12671 11.1838 4.12671 12.0067 4.9496C12.8296 5.7725 12.8296 7.10737 12.0067 7.93026L6.5667 13.3703C5.2138 14.7232 3.01893 14.7232 1.66604 13.3703C0.313144 12.0174 0.313144 9.82249 1.66604 8.4696L7.10604 3.0296C8.98893 1.14671 12.0438 1.14671 13.9267 3.0296C15.8096 4.91249 15.8096 7.96737 13.9267 9.85026L11.1564 12.6206L10.0957 11.5599L12.866 8.7896C14.1631 7.49249 14.1631 5.38737 12.866 4.09026Z\"/></g><defs><clipPath :id=\"'uia-ui-assets/icons-16-attachment__a' + uuid\"><rect width=\"16\" height=\"16\" fill=\"#fff\"/></clipPath></defs></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M13.75 9.58159C14.3412 9.30073 14.75 8.6981 14.75 8V2C14.75 1.0335 13.9665 0.25 13 0.25H3C2.0335 0.25 1.25 1.0335 1.25 2V8C1.25 8.6981 1.65876 9.30073 2.25 9.58159V11C2.25 11.4641 2.43438 11.9092 2.76256 12.2374C2.90555 12.3804 3.07072 12.4961 3.25 12.5811V14C3.25 14.4641 3.43438 14.9092 3.76256 15.2374C4.09075 15.5656 4.53587 15.75 5 15.75H11C11.4641 15.75 11.9092 15.5656 12.2374 15.2374C12.5656 14.9092 12.75 14.4641 12.75 14V12.5811C12.9293 12.4961 13.0945 12.3804 13.2374 12.2374C13.5656 11.9092 13.75 11.4641 13.75 11V9.58159ZM3 1.75H13C13.1381 1.75 13.25 1.86193 13.25 2V8C13.25 8.13807 13.1381 8.25 13 8.25H3C2.86193 8.25 2.75 8.13807 2.75 8V2C2.75 1.86193 2.86193 1.75 3 1.75ZM12.25 9.75V11C12.25 11.0663 12.2237 11.1299 12.1768 11.1768C12.1299 11.2237 12.0663 11.25 12 11.25H4C3.9337 11.25 3.87011 11.2237 3.82322 11.1768C3.77634 11.1299 3.75 11.0663 3.75 11V9.75H12.25ZM11.25 12.75V14C11.25 14.0663 11.2237 14.1299 11.1768 14.1768C11.1299 14.2237 11.0663 14.25 11 14.25H5C4.9337 14.25 4.87011 14.2237 4.82322 14.1768C4.77634 14.1299 4.75 14.0663 4.75 14V12.75H11.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M2.25 0.25V15.75H13.75V4.68934L9.31066 0.25H2.25ZM7.25 1.75V6.75H12.25V14.25H3.75V1.75H7.25ZM12.1893 5.25H8.75V1.81066L12.1893 5.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M5.24609 8.25H10.7461V9.75H5.24609V8.25Z\"/><path fill=\"#001222\" d=\"M10.7461 11.25H5.24609V12.75H10.7461V11.25Z\"/><path fill=\"#001222\" d=\"M2.24609 0.25V15.75H13.7461V4.68934L9.30675 0.25H2.24609ZM7.24609 1.75V6.75H12.2461V14.25H3.74609V1.75H7.24609ZM12.1854 5.25H8.74609V1.81066L12.1854 5.25Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M1.24609 4.5C1.24609 3.25579 2.25188 2.25 3.49609 2.25H6.37609C6.97727 2.25 7.54738 2.49062 7.96642 2.90967L10.0864 5.02967C10.2274 5.17062 10.4173 5.25 10.6161 5.25H12.4961C13.7403 5.25 14.7461 6.25579 14.7461 7.5V12.5C14.7461 13.7442 13.7403 14.75 12.4961 14.75H3.49609C2.25188 14.75 1.24609 13.7442 1.24609 12.5V4.5ZM3.49609 3.75C3.08031 3.75 2.74609 4.08421 2.74609 4.5V12.5C2.74609 12.9158 3.08031 13.25 3.49609 13.25H12.4961C12.9119 13.25 13.2461 12.9158 13.2461 12.5V7.5C13.2461 7.08421 12.9119 6.75 12.4961 6.75H10.6161C10.0149 6.75 9.44481 6.50938 9.02576 6.09033L6.90576 3.97033C6.76481 3.82938 6.57492 3.75 6.37609 3.75H3.49609Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M9.99609 3.24805C8.47731 3.24805 7.24609 4.47926 7.24609 5.99805C7.24609 7.51683 8.47731 8.74805 9.99609 8.74805C11.5149 8.74805 12.7461 7.51683 12.7461 5.99805C12.7461 4.47926 11.5149 3.24805 9.99609 3.24805ZM8.74609 5.99805C8.74609 5.30769 9.30574 4.74805 9.99609 4.74805C10.6865 4.74805 11.2461 5.30769 11.2461 5.99805C11.2461 6.6884 10.6865 7.24805 9.99609 7.24805C9.30574 7.24805 8.74609 6.6884 8.74609 5.99805Z\"/><path fill=\"#001222\" d=\"M1.24609 3.49805C1.24609 2.25541 2.25345 1.24805 3.49609 1.24805H12.4961C13.7387 1.24805 14.7461 2.25541 14.7461 3.49805V12.498C14.7461 13.7407 13.7387 14.748 12.4961 14.748H3.49609C2.25345 14.748 1.24609 13.7407 1.24609 12.498V3.49805ZM3.49609 2.74805C3.08188 2.74805 2.74609 3.08383 2.74609 3.49805V6.68756L3.99615 5.4375L11.8067 13.248H12.4961C12.9103 13.248 13.2461 12.9123 13.2461 12.498V3.49805C13.2461 3.08383 12.9103 2.74805 12.4961 2.74805H3.49609ZM2.74609 12.498C2.74609 12.9123 3.08188 13.248 3.49609 13.248H9.68538L3.99615 7.55882L2.74609 8.80888V12.498Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><g fill=\"#001222\" :clip-path=\"'url(#uia-ui-assets/icons-16-play_circle__a' + uuid + ')'\"><path d=\"M10.9722 8.00002L6.62012 5.09863V10.9014L10.9722 8.00002Z\"/><path d=\"M5.0342 0.839937C6.45033 0.253358 8.0086 0.0998821 9.51195 0.398918C11.0153 0.697953 12.3962 1.43607 13.4801 2.51993C14.5639 3.60378 15.3021 4.9847 15.6011 6.48805C15.9001 7.99141 15.7466 9.54967 15.1601 10.9658C14.5735 12.3819 13.5801 13.5923 12.3057 14.4439C11.0312 15.2955 9.53281 15.75 8 15.75C5.94457 15.75 3.97333 14.9335 2.51992 13.4801C1.06652 12.0267 0.25 10.0554 0.25 8C0.25 6.4672 0.704529 4.96881 1.55611 3.69433C2.40769 2.41985 3.61808 1.42652 5.0342 0.839937ZM9.21931 1.8701C8.00693 1.62894 6.75027 1.75271 5.60823 2.22576C4.46619 2.6988 3.49007 3.49988 2.80331 4.52769C2.11656 5.5555 1.75 6.76387 1.75 8C1.75 9.65761 2.40848 11.2473 3.58058 12.4194C4.75268 13.5915 6.3424 14.25 8 14.25C9.23613 14.25 10.4445 13.8834 11.4723 13.1967C12.5001 12.5099 13.3012 11.5338 13.7742 10.3918C14.2473 9.24974 14.3711 7.99307 14.1299 6.78069C13.8887 5.56831 13.2935 4.45466 12.4194 3.58059C11.5453 2.70651 10.4317 2.11125 9.21931 1.8701Z\"/></g><defs><clipPath :id=\"'uia-ui-assets/icons-16-play_circle__a' + uuid\"><rect width=\"16\" height=\"16\" fill=\"#fff\"/></clipPath></defs></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M5.68934 2.25H8.75V13.75H5.68934L2.68934 10.75H0.25V5.25H2.68934L5.68934 2.25ZM6.31066 3.75L3.31066 6.75H1.75V9.25H3.31066L6.31066 12.25H7.25V3.75H6.31066Z\"/><path fill=\"#001222\" d=\"M13.0111 4.99174C12.2099 4.19982 11.1294 3.75 10 3.75V2.25C11.53 2.25 12.9888 2.85964 14.0675 3.92684L14.0703 3.92966C15.1527 5.01199 15.75 6.47347 15.75 8C15.75 9.52995 15.1404 10.9888 14.0732 12.0675L14.0703 12.0703C12.988 13.1527 11.5265 13.75 10 13.75V12.25C11.1328 12.25 12.2107 11.8079 13.0082 11.0111C13.8002 10.21 14.25 9.1294 14.25 8C14.25 6.8672 13.8079 5.78927 13.0111 4.99174Z\"/><path fill=\"#001222\" d=\"M10 6.75V5.25C10.7257 5.25 11.4295 5.53694 11.9438 6.06319C12.4593 6.58041 12.75 7.26849 12.75 8C12.75 8.72573 12.4631 9.42951 11.9368 9.94383C11.4196 10.4593 10.7315 10.75 10 10.75V9.25C10.3268 9.25 10.6373 9.12206 10.8797 8.87967L10.8868 8.87265C11.1182 8.64727 11.25 8.33261 11.25 8C11.25 7.67317 11.1221 7.36272 10.8797 7.12033L10.8726 7.11321C10.6473 6.88175 10.3326 6.75 10 6.75Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#001222\" d=\"M3.5 1.25L3.49505 1.25002C2.90084 1.25394 2.33208 1.49173 1.91191 1.91191C1.49173 2.33208 1.25392 2.90084 1.25 3.49505V12.5C1.25 13.0967 1.48705 13.669 1.90901 14.091C2.33097 14.5129 2.90326 14.75 3.5 14.75H12.5C13.0967 14.75 13.669 14.5129 14.091 14.091C14.5129 13.669 14.75 13.0967 14.75 12.5V3.5C14.75 2.90326 14.5129 2.33097 14.091 1.90901C13.669 1.48705 13.0967 1.25 12.5 1.25H3.5ZM5.25 2.75V5.25H2.75V3.5029C2.75185 3.30382 2.83175 3.11338 2.97257 2.97257C3.11338 2.83175 3.30382 2.75185 3.5029 2.75H5.25ZM5.25 6.75V9.25H2.75V6.75H5.25ZM6.75 9.25V6.75H13.25V9.25H6.75ZM5.25 10.75V13.25H3.5C3.30109 13.25 3.11032 13.171 2.96967 13.0303C2.82902 12.8897 2.75 12.6989 2.75 12.5V10.75H5.25ZM6.75 13.25V10.75H13.25V12.5C13.25 12.6989 13.171 12.8897 13.0303 13.0303C12.8897 13.171 12.6989 13.25 12.5 13.25H6.75ZM6.75 5.25V2.75H12.5C12.6989 2.75 12.8897 2.82902 13.0303 2.96967C13.171 3.11032 13.25 3.30109 13.25 3.5V5.25H6.75Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","import { VueNodeElement } from '@/types';\nimport { type FileObject, FileType } from '@/components/file-uploader/file-uploader.types';\n\nimport AttachmentIcon from '@adyen/ui-assets-icons-16/vue/attachment';\nimport CollectionIcon from '@adyen/ui-assets-icons-16/vue/collection';\nimport DocumentIcon from '@adyen/ui-assets-icons-16/vue/document-1';\nimport DocumentLinesIcon from '@adyen/ui-assets-icons-16/vue/document-lines';\nimport FolderIcon from '@adyen/ui-assets-icons-16/vue/folder';\nimport ImageIcon from '@adyen/ui-assets-icons-16/vue/image';\nimport PlayCircleIcon from '@adyen/ui-assets-icons-16/vue/play-circle';\nimport SoundIcon from '@adyen/ui-assets-icons-16/vue/sound';\nimport TableIcon from '@adyen/ui-assets-icons-16/vue/table';\n\nconst FILE_TYPE_ICON_MAP: Record<FileType, VueNodeElement> = {\n [FileType.AUDIO]: SoundIcon,\n [FileType.COMPRESSED]: FolderIcon,\n [FileType.GENERIC]: AttachmentIcon,\n [FileType.IMAGE]: ImageIcon,\n [FileType.PDF]: DocumentIcon,\n [FileType.SLIDES]: CollectionIcon,\n [FileType.TABLE]: TableIcon,\n [FileType.TEXT]: DocumentLinesIcon,\n [FileType.VIDEO]: PlayCircleIcon,\n};\n\n/**\n * Return an icon Vue component that can be used with a given File type @see FileType\n * @param file File object containing a type\n * @returns Icon for the respective type\n */\nexport function getFileIcon(file: FileObject) {\n return FILE_TYPE_ICON_MAP[file.type];\n}\n","import { type FileObject, FileType } from '@/components/file-uploader/file-uploader.types';\n\n/**\n * Returns the color to be used for the icon of a given type.\n *\n * @param file File with a given type\n * @returns Color to be used with their respective file type\n */\nexport function getFileIconColor(file: FileObject) {\n switch (file.type) {\n case FileType.COMPRESSED:\n case FileType.GENERIC:\n return 'grey';\n case FileType.PDF:\n case FileType.SLIDES:\n return 'orange';\n case FileType.TEXT:\n return 'blue';\n default:\n return 'green';\n }\n}\n","<template>\n <div class=\"b-file-uploader-file-card\" :class=\"conditionalClasses\">\n <div class=\"b-file-uploader-file-card__details\">\n <div class=\"b-file-uploader-file-card__info\">\n <file-uploader-file-card-animation\n :name=\"\n isVue2 ? 'b-file-uploader-file-card__animation' : 'b-file-uploader-file-card__animation--vue3'\n \"\n :show-file-icon=\"showFileIcon\"\n >\n <component\n :is=\"fileUploaderIcon\"\n :key=\"JSON.stringify(fileUploaderIcon)\"\n small\n aria-hidden=\"true\"\n class=\"b-file-uploader-file-card__icon\"\n :class=\"conditionalIconClasses\"\n data-testid=\"file-uploader-item-icon\"\n />\n </file-uploader-file-card-animation>\n\n <div ref=\"fileNameContainerRef\" class=\"b-file-uploader-file-card__file-name\">\n <bento-link\n aria-hidden=\"true\"\n tabindex=\"-1\"\n :download=\"file.data.name\"\n :to=\"downloadUrl\"\n disable-typography\n is-not-routing\n variant=\"quiet\"\n >\n <bento-typography\n ref=\"fileNameRef\"\n v-bento-tooltip-directive=\"isFileNameTruncated ? file.data.name : null\"\n stronger\n el=\"span\"\n >\n {{ file.data.name }}\n </bento-typography>\n </bento-link>\n </div>\n\n <bento-typography v-if=\"file.progress\" el=\"span\">{{ progressLabel }}</bento-typography>\n <bento-typography\n v-else-if=\"file.data.size\"\n class=\"b-file-uploader-file-card__file-size\"\n aria-hidden=\"true\"\n el=\"span\"\n >\n {{ sizeLabel }}\n </bento-typography>\n </div>\n\n <div\n v-if=\"hasSizeError || hasDimensionsError || (hasTypeError && supportedFileTypes)\"\n :id=\"fileErrorsSectionId\"\n role=\"alert\"\n >\n <bento-typography v-if=\"hasSizeError\" class=\"b-file-uploader-file-card__error-message\">\n {{ t('fileExceedsSizeLimit') }}\n </bento-typography>\n <bento-typography v-if=\"hasDimensionsError\" class=\"b-file-uploader-file-card__error-message\">\n {{ t('imageDimensionsExceedLimits') }}\n </bento-typography>\n <bento-typography\n v-if=\"hasTypeError && supportedFileTypes\"\n class=\"b-file-uploader-file-card__error-message\"\n >\n {{ t('fileTypeMustBe', { list: supportedFileTypes }) }}\n </bento-typography>\n </div>\n </div>\n\n <div class=\"b-file-uploader-file-card__actions\">\n <bento-button\n v-if=\"hasLoadError\"\n ref=\"retryFileButtonRef\"\n :aria-labelledby=\"`${fileErrorsSectionId} ${retryFileButtonId}`\"\n variant=\"tertiary\"\n @click=\"emit('retry')\"\n >\n <template #iconLeft>\n <refresh-icon :id=\"retryFileButtonId\" :svg-title=\"`${t('retry')} - ${file.data.name} `\" />\n </template>\n {{ t('retry') }}\n </bento-button>\n <bento-button\n v-if=\"isLoading || hasError\"\n ref=\"cancelFileButtonRef\"\n :aria-labelledby=\"`${fileErrorsSectionId} ${cancelFileButtonId}`\"\n variant=\"tertiary\"\n @click=\"emit('cancel')\"\n >\n <template #iconLeft>\n <cross-icon :id=\"cancelFileButtonId\" :svg-title=\"`${t('cancel')} - ${file.data.name}`\" />\n </template>\n </bento-button>\n <bento-button\n v-else\n ref=\"removeFileButtonRef\"\n :aria-labelledby=\"`${fileErrorsSectionId} ${removeFileButtonId}`\"\n variant=\"tertiary\"\n @click=\"emit('remove')\"\n >\n <template #iconLeft>\n <bin-icon :id=\"removeFileButtonId\" :svg-title=\"`${t('remove')} - ${file.data.name}`\" />\n </template>\n </bento-button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue';\n import { isVue2 } from 'vue-demi';\n import { FileUploaderFileCardAnimation } from './components';\n import BinIcon from '@adyen/ui-assets-icons-16/vue/bin';\n import CheckmarkCircleFilledIcon from '@adyen/ui-assets-icons-16/vue/checkmark-circle-fill';\n import CrossIcon from '@adyen/ui-assets-icons-16/vue/cross';\n import RefreshIcon from '@adyen/ui-assets-icons-16/vue/refresh';\n import WarningFilledIcon from '@adyen/ui-assets-icons-16/vue/warning-filled';\n\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { BentoButton } from '@/components/button';\n import { BentoLink } from '@/components/link';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import { BentoTypography } from '@/components/typography';\n import { useTruncatedFileName } from './composables/use-truncated-file-name';\n import { generateUid } from '@/core/utils/ts';\n\n import { useI18n } from '@/utils/ts/i18n';\n import { formatFileSize } from '../../utils';\n import { getFileIcon, getFileIconColor } from './utils';\n import { FileErrorType, FileState } from '@/components/file-uploader/file-uploader.types';\n import type { FileUploaderFileCardProps } from './file-uploader-file-card.types';\n import type { VueInstance } from '@/types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const ICON_TIMER = 1200;\n\n const props = defineProps({\n file: null,\n supportedFileTypes: { default: null }\n});\n\n const emit = defineEmits([\"cancel\", \"remove\", \"retry\"]);\n\n const { t, locale } = useI18n<{ message: MessageSchema }>({ messages });\n\n const removeFileButtonRef = ref(null);\n const cancelFileButtonRef = ref(null);\n const retryFileButtonRef = ref(null);\n const fileErrorsSectionId = generateUid('file-errors-section');\n const cancelFileButtonId = generateUid('cancel-file-button');\n const removeFileButtonId = generateUid('remove-file-button');\n const retryFileButtonId = generateUid('retry-file-button');\n\n // If initial state is success, immediately show file icon\n const showFileIcon = ref(props.file.state === FileState.SUCCESS);\n\n const downloadUrl = computed(() => URL.createObjectURL(props.file.data));\n const hasError = computed(() => props.file.state === FileState.ERROR);\n const hasLoadError = computed(() => props.file.errors.includes(FileErrorType.ERROR_LOAD));\n const hasSizeError = computed(() => props.file.errors.includes(FileErrorType.ERROR_SIZE));\n const hasDimensionsError = computed(() => props.file.errors.includes(FileErrorType.ERROR_DIMENSIONS));\n const hasTypeError = computed(() => props.file.errors.includes(FileErrorType.ERROR_TYPE));\n const isLoading = computed(() => props.file.state === FileState.LOADING);\n const progressLabel = computed(() => props.file.progress && `(${props.file.progress.toFixed(0)}%)`);\n const sizeLabel = computed(() => formatFileSize(locale.value, props.file.data.size));\n\n // Truncation tooltip\n const fileNameRef = ref<VueInstance>();\n const fileNameContainerRef = ref<HTMLDivElement>();\n\n const isFileNameTruncated = useTruncatedFileName(fileNameRef, fileNameContainerRef);\n\n const conditionalClasses = computed(() => ({\n 'b-file-uploader-file-card--error': hasError.value,\n }));\n\n const conditionalIconClasses = computed(() => ({\n [`b-file-uploader-file-card__icon--${getFileIconColor(props.file)}`]: showFileIcon.value,\n 'b-file-uploader-file-card__icon--error': hasError.value,\n }));\n\n // Compute the icon to be displayed\n const fileUploaderIcon = computed(() => {\n if (isLoading.value) {\n return BentoLoadingIndicator;\n }\n if (hasError.value) {\n return WarningFilledIcon;\n }\n return showFileIcon.value ? getFileIcon(props.file) : CheckmarkCircleFilledIcon;\n });\n\n // Animation when success icon turns to file icon.\n watch(\n () => props.file.state,\n value => {\n if (value === FileState.SUCCESS && !showFileIcon.value) {\n const changeTimer = setTimeout(() => {\n showFileIcon.value = true;\n clearTimeout(changeTimer);\n }, ICON_TIMER);\n }\n }\n );\n\n /**\n * Places the focus on the button element.\n */\n function focus() {\n if (retryFileButtonRef.value) {\n retryFileButtonRef.value.$el.focus();\n return;\n }\n\n if (removeFileButtonRef.value) {\n removeFileButtonRef.value.$el.focus();\n return;\n }\n\n if (cancelFileButtonRef.value) {\n cancelFileButtonRef.value.$el.focus();\n return;\n }\n }\n\n defineExpose({\n focus,\n });\n</script>\n\n<script lang=\"ts\">\n /**\n *\n * Individual file items that are listed inside \"bento-file-uploader\" that can\n * be retried, removed or cancelled as they are being uploaded.\n *\n * @example\n * import { FileUploaderFileCard, FileObject } from './';\n *\n * export default {\n * components: { FileUploaderFileCard },\n * template: `\n * <file-uploader-file-card\n * :file=\"file\"\n * supportedFileTypes=\"video files, image files\"\n * @retry=\"retryFile(file)\"\n * @cancel=\"removeFile(file)\"\n * @remove=\"removeFile(file)\"\n * />\n * `,\n * setup() {\n * const file = ref<FileObject>({\n * id: 'stub-file',\n * type: FileType.AUDIO,\n * data: new File(['blob'], 'File name'),\n * state: FileState.SUCCESS,\n * progress: 99,\n * });\n * }\n * }\n */\n export default {\n name: 'file-uploader-file-card',\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./file-uploader-file-card.scss\" />\n","<template>\n <div class=\"b-file-uploader-restrictions\" :class=\"conditionalClasses\">\n <bento-typography v-if=\"supportedFileTypes\" :class=\"setRestrictionErrorClass(supportedFileTypes.error)\">\n {{ t('supportedFileTypes', { list: supportedFileTypes.value }) }}\n </bento-typography>\n <bento-typography v-if=\"maxSize\" :class=\"setRestrictionErrorClass(maxSize.error)\">\n {{ t('maxFileSize', { size: formatFileSize(locale, maxSize.value) }) }}\n </bento-typography>\n <bento-typography v-if=\"maxDimensions\" :class=\"setRestrictionErrorClass(maxDimensions.error)\">\n {{ maxDimensionsLabel }}\n </bento-typography>\n <bento-typography v-if=\"maxCount\" :class=\"setRestrictionErrorClass(maxCount.error)\">\n {{ tc('maxUpload', maxCount.value) }}\n </bento-typography>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { useI18n } from '@/utils/ts/i18n';\n import { formatFileSize } from '../../utils';\n import type { FileUploaderRestrictionsProps } from './file-uploader-restrictions.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n condensed: { default: null },\n disabled: { default: null },\n maxCount: { default: null },\n maxDimensions: { default: null },\n maxSize: { default: null },\n supportedFileTypes: { default: null }\n});\n\n const { t, tc, locale } = useI18n<{ message: MessageSchema }>({ messages });\n\n const conditionalClasses = computed(() => ({\n ['b-file-uploader-restrictions--condensed']: props.condensed,\n ['b-file-uploader-restrictions--disabled']: props.disabled,\n }));\n\n /**\n * Returns the error class to be set if a restriction has an error\n * @param error Indicates if the restriction has errored\n * @returns Conditional error class\n */\n function setRestrictionErrorClass(error: boolean) {\n return {\n 'b-file-uploader-restrictions--error': error,\n };\n }\n\n const maxDimensionsLabel = computed(() => {\n if (!props.maxDimensions) {\n return null;\n }\n\n const {\n value: { width, height },\n } = props.maxDimensions;\n\n if (width && height) {\n return t('maxImageDimensions', { width, height });\n }\n if (width) {\n return t('maxImageWidth', { width });\n }\n if (height) {\n return t('maxImageHeight', { height });\n }\n return null;\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * List of restrictions defined for \"bento-file-uploader\".\n *\n * @example\n * import { FileUploaderRestrictions } from './';\n *\n * export default {\n * components: { FileUploaderRestrictions },\n * template: `\n * <file-uploader-restrictions\n * :maxCount=\"1\"\n * :maxSize=\"5000\"\n * :maxDimensions=\"{ width: 100, height: 200 }\"\n * supportedFileTypes=\"audio/*,.pdf,.jpg\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./file-uploader-restrictions.scss\" />\n","const types = {\n 'application/prs.cww': ['cww'],\n 'application/prs.xsf+xml': ['xsf'],\n 'application/vnd.1000minds.decision-model+xml': ['1km'],\n 'application/vnd.3gpp.pic-bw-large': ['plb'],\n 'application/vnd.3gpp.pic-bw-small': ['psb'],\n 'application/vnd.3gpp.pic-bw-var': ['pvb'],\n 'application/vnd.3gpp2.tcap': ['tcap'],\n 'application/vnd.3m.post-it-notes': ['pwn'],\n 'application/vnd.accpac.simply.aso': ['aso'],\n 'application/vnd.accpac.simply.imp': ['imp'],\n 'application/vnd.acucobol': ['acu'],\n 'application/vnd.acucorp': ['atc', 'acutc'],\n 'application/vnd.adobe.air-application-installer-package+zip': ['air'],\n 'application/vnd.adobe.formscentral.fcdt': ['fcdt'],\n 'application/vnd.adobe.fxp': ['fxp', 'fxpl'],\n 'application/vnd.adobe.xdp+xml': ['xdp'],\n 'application/vnd.adobe.xfdf': ['*xfdf'],\n 'application/vnd.age': ['age'],\n 'application/vnd.ahead.space': ['ahead'],\n 'application/vnd.airzip.filesecure.azf': ['azf'],\n 'application/vnd.airzip.filesecure.azs': ['azs'],\n 'application/vnd.amazon.ebook': ['azw'],\n 'application/vnd.americandynamics.acc': ['acc'],\n 'application/vnd.amiga.ami': ['ami'],\n 'application/vnd.android.package-archive': ['apk'],\n 'application/vnd.anser-web-certificate-issue-initiation': ['cii'],\n 'application/vnd.anser-web-funds-transfer-initiation': ['fti'],\n 'application/vnd.antix.game-component': ['atx'],\n 'application/vnd.apple.installer+xml': ['mpkg'],\n 'application/vnd.apple.keynote': ['key'],\n 'application/vnd.apple.mpegurl': ['m3u8'],\n 'application/vnd.apple.numbers': ['numbers'],\n 'application/vnd.apple.pages': ['pages'],\n 'application/vnd.apple.pkpass': ['pkpass'],\n 'application/vnd.aristanetworks.swi': ['swi'],\n 'application/vnd.astraea-software.iota': ['iota'],\n 'application/vnd.audiograph': ['aep'],\n 'application/vnd.balsamiq.bmml+xml': ['bmml'],\n 'application/vnd.blueice.multipass': ['mpm'],\n 'application/vnd.bmi': ['bmi'],\n 'application/vnd.businessobjects': ['rep'],\n 'application/vnd.chemdraw+xml': ['cdxml'],\n 'application/vnd.chipnuts.karaoke-mmd': ['mmd'],\n 'application/vnd.cinderella': ['cdy'],\n 'application/vnd.citationstyles.style+xml': ['csl'],\n 'application/vnd.claymore': ['cla'],\n 'application/vnd.cloanto.rp9': ['rp9'],\n 'application/vnd.clonk.c4group': ['c4g', 'c4d', 'c4f', 'c4p', 'c4u'],\n 'application/vnd.cluetrust.cartomobile-config': ['c11amc'],\n 'application/vnd.cluetrust.cartomobile-config-pkg': ['c11amz'],\n 'application/vnd.commonspace': ['csp'],\n 'application/vnd.contact.cmsg': ['cdbcmsg'],\n 'application/vnd.cosmocaller': ['cmc'],\n 'application/vnd.crick.clicker': ['clkx'],\n 'application/vnd.crick.clicker.keyboard': ['clkk'],\n 'application/vnd.crick.clicker.palette': ['clkp'],\n 'application/vnd.crick.clicker.template': ['clkt'],\n 'application/vnd.crick.clicker.wordbank': ['clkw'],\n 'application/vnd.criticaltools.wbs+xml': ['wbs'],\n 'application/vnd.ctc-posml': ['pml'],\n 'application/vnd.cups-ppd': ['ppd'],\n 'application/vnd.curl.car': ['car'],\n 'application/vnd.curl.pcurl': ['pcurl'],\n 'application/vnd.dart': ['dart'],\n 'application/vnd.data-vision.rdz': ['rdz'],\n 'application/vnd.dbf': ['dbf'],\n 'application/vnd.dece.data': ['uvf', 'uvvf', 'uvd', 'uvvd'],\n 'application/vnd.dece.ttml+xml': ['uvt', 'uvvt'],\n 'application/vnd.dece.unspecified': ['uvx', 'uvvx'],\n 'application/vnd.dece.zip': ['uvz', 'uvvz'],\n 'application/vnd.denovo.fcselayout-link': ['fe_launch'],\n 'application/vnd.dna': ['dna'],\n 'application/vnd.dolby.mlp': ['mlp'],\n 'application/vnd.dpgraph': ['dpg'],\n 'application/vnd.dreamfactory': ['dfac'],\n 'application/vnd.ds-keypoint': ['kpxx'],\n 'application/vnd.dvb.ait': ['ait'],\n 'application/vnd.dvb.service': ['svc'],\n 'application/vnd.dynageo': ['geo'],\n 'application/vnd.ecowin.chart': ['mag'],\n 'application/vnd.enliven': ['nml'],\n 'application/vnd.epson.esf': ['esf'],\n 'application/vnd.epson.msf': ['msf'],\n 'application/vnd.epson.quickanime': ['qam'],\n 'application/vnd.epson.salt': ['slt'],\n 'application/vnd.epson.ssf': ['ssf'],\n 'application/vnd.eszigno3+xml': ['es3', 'et3'],\n 'application/vnd.ezpix-album': ['ez2'],\n 'application/vnd.ezpix-package': ['ez3'],\n 'application/vnd.fdf': ['*fdf'],\n 'application/vnd.fdsn.mseed': ['mseed'],\n 'application/vnd.fdsn.seed': ['seed', 'dataless'],\n 'application/vnd.flographit': ['gph'],\n 'application/vnd.fluxtime.clip': ['ftc'],\n 'application/vnd.framemaker': ['fm', 'frame', 'maker', 'book'],\n 'application/vnd.frogans.fnc': ['fnc'],\n 'application/vnd.frogans.ltf': ['ltf'],\n 'application/vnd.fsc.weblaunch': ['fsc'],\n 'application/vnd.fujitsu.oasys': ['oas'],\n 'application/vnd.fujitsu.oasys2': ['oa2'],\n 'application/vnd.fujitsu.oasys3': ['oa3'],\n 'application/vnd.fujitsu.oasysgp': ['fg5'],\n 'application/vnd.fujitsu.oasysprs': ['bh2'],\n 'application/vnd.fujixerox.ddd': ['ddd'],\n 'application/vnd.fujixerox.docuworks': ['xdw'],\n 'application/vnd.fujixerox.docuworks.binder': ['xbd'],\n 'application/vnd.fuzzysheet': ['fzs'],\n 'application/vnd.genomatix.tuxedo': ['txd'],\n 'application/vnd.geogebra.file': ['ggb'],\n 'application/vnd.geogebra.slides': ['ggs'],\n 'application/vnd.geogebra.tool': ['ggt'],\n 'application/vnd.geometry-explorer': ['gex', 'gre'],\n 'application/vnd.geonext': ['gxt'],\n 'application/vnd.geoplan': ['g2w'],\n 'application/vnd.geospace': ['g3w'],\n 'application/vnd.gmx': ['gmx'],\n 'application/vnd.google-apps.document': ['gdoc'],\n 'application/vnd.google-apps.presentation': ['gslides'],\n 'application/vnd.google-apps.spreadsheet': ['gsheet'],\n 'application/vnd.google-earth.kml+xml': ['kml'],\n 'application/vnd.google-earth.kmz': ['kmz'],\n 'application/vnd.gov.sk.xmldatacontainer+xml': ['xdcf'],\n 'application/vnd.grafeq': ['gqf', 'gqs'],\n 'application/vnd.groove-account': ['gac'],\n 'application/vnd.groove-help': ['ghf'],\n 'application/vnd.groove-identity-message': ['gim'],\n 'application/vnd.groove-injector': ['grv'],\n 'application/vnd.groove-tool-message': ['gtm'],\n 'application/vnd.groove-tool-template': ['tpl'],\n 'application/vnd.groove-vcard': ['vcg'],\n 'application/vnd.hal+xml': ['hal'],\n 'application/vnd.handheld-entertainment+xml': ['zmm'],\n 'application/vnd.hbci': ['hbci'],\n 'application/vnd.hhe.lesson-player': ['les'],\n 'application/vnd.hp-hpgl': ['hpgl'],\n 'application/vnd.hp-hpid': ['hpid'],\n 'application/vnd.hp-hps': ['hps'],\n 'application/vnd.hp-jlyt': ['jlt'],\n 'application/vnd.hp-pcl': ['pcl'],\n 'application/vnd.hp-pclxl': ['pclxl'],\n 'application/vnd.hydrostatix.sof-data': ['sfd-hdstx'],\n 'application/vnd.ibm.minipay': ['mpy'],\n 'application/vnd.ibm.modcap': ['afp', 'listafp', 'list3820'],\n 'application/vnd.ibm.rights-management': ['irm'],\n 'application/vnd.ibm.secure-container': ['sc'],\n 'application/vnd.iccprofile': ['icc', 'icm'],\n 'application/vnd.igloader': ['igl'],\n 'application/vnd.immervision-ivp': ['ivp'],\n 'application/vnd.immervision-ivu': ['ivu'],\n 'application/vnd.insors.igm': ['igm'],\n 'application/vnd.intercon.formnet': ['xpw', 'xpx'],\n 'application/vnd.intergeo': ['i2g'],\n 'application/vnd.intu.qbo': ['qbo'],\n 'application/vnd.intu.qfx': ['qfx'],\n 'application/vnd.ipunplugged.rcprofile': ['rcprofile'],\n 'application/vnd.irepository.package+xml': ['irp'],\n 'application/vnd.is-xpr': ['xpr'],\n 'application/vnd.isac.fcs': ['fcs'],\n 'application/vnd.jam': ['jam'],\n 'application/vnd.jcp.javame.midlet-rms': ['rms'],\n 'application/vnd.jisp': ['jisp'],\n 'application/vnd.joost.joda-archive': ['joda'],\n 'application/vnd.kahootz': ['ktz', 'ktr'],\n 'application/vnd.kde.karbon': ['karbon'],\n 'application/vnd.kde.kchart': ['chrt'],\n 'application/vnd.kde.kformula': ['kfo'],\n 'application/vnd.kde.kivio': ['flw'],\n 'application/vnd.kde.kontour': ['kon'],\n 'application/vnd.kde.kpresenter': ['kpr', 'kpt'],\n 'application/vnd.kde.kspread': ['ksp'],\n 'application/vnd.kde.kword': ['kwd', 'kwt'],\n 'application/vnd.kenameaapp': ['htke'],\n 'application/vnd.kidspiration': ['kia'],\n 'application/vnd.kinar': ['kne', 'knp'],\n 'application/vnd.koan': ['skp', 'skd', 'skt', 'skm'],\n 'application/vnd.kodak-descriptor': ['sse'],\n 'application/vnd.las.las+xml': ['lasxml'],\n 'application/vnd.llamagraphics.life-balance.desktop': ['lbd'],\n 'application/vnd.llamagraphics.life-balance.exchange+xml': ['lbe'],\n 'application/vnd.lotus-1-2-3': ['123'],\n 'application/vnd.lotus-approach': ['apr'],\n 'application/vnd.lotus-freelance': ['pre'],\n 'application/vnd.lotus-notes': ['nsf'],\n 'application/vnd.lotus-organizer': ['org'],\n 'application/vnd.lotus-screencam': ['scm'],\n 'application/vnd.lotus-wordpro': ['lwp'],\n 'application/vnd.macports.portpkg': ['portpkg'],\n 'application/vnd.mapbox-vector-tile': ['mvt'],\n 'application/vnd.mcd': ['mcd'],\n 'application/vnd.medcalcdata': ['mc1'],\n 'application/vnd.mediastation.cdkey': ['cdkey'],\n 'application/vnd.mfer': ['mwf'],\n 'application/vnd.mfmp': ['mfm'],\n 'application/vnd.micrografx.flo': ['flo'],\n 'application/vnd.micrografx.igx': ['igx'],\n 'application/vnd.mif': ['mif'],\n 'application/vnd.mobius.daf': ['daf'],\n 'application/vnd.mobius.dis': ['dis'],\n 'application/vnd.mobius.mbk': ['mbk'],\n 'application/vnd.mobius.mqy': ['mqy'],\n 'application/vnd.mobius.msl': ['msl'],\n 'application/vnd.mobius.plc': ['plc'],\n 'application/vnd.mobius.txf': ['txf'],\n 'application/vnd.mophun.application': ['mpn'],\n 'application/vnd.mophun.certificate': ['mpc'],\n 'application/vnd.mozilla.xul+xml': ['xul'],\n 'application/vnd.ms-artgalry': ['cil'],\n 'application/vnd.ms-cab-compressed': ['cab'],\n 'application/vnd.ms-excel': ['xls', 'xlm', 'xla', 'xlc', 'xlt', 'xlw'],\n 'application/vnd.ms-excel.addin.macroenabled.12': ['xlam'],\n 'application/vnd.ms-excel.sheet.binary.macroenabled.12': ['xlsb'],\n 'application/vnd.ms-excel.sheet.macroenabled.12': ['xlsm'],\n 'application/vnd.ms-excel.template.macroenabled.12': ['xltm'],\n 'application/vnd.ms-fontobject': ['eot'],\n 'application/vnd.ms-htmlhelp': ['chm'],\n 'application/vnd.ms-ims': ['ims'],\n 'application/vnd.ms-lrm': ['lrm'],\n 'application/vnd.ms-officetheme': ['thmx'],\n 'application/vnd.ms-outlook': ['msg'],\n 'application/vnd.ms-pki.seccat': ['cat'],\n 'application/vnd.ms-pki.stl': ['*stl'],\n 'application/vnd.ms-powerpoint': ['ppt', 'pps', 'pot'],\n 'application/vnd.ms-powerpoint.addin.macroenabled.12': ['ppam'],\n 'application/vnd.ms-powerpoint.presentation.macroenabled.12': ['pptm'],\n 'application/vnd.ms-powerpoint.slide.macroenabled.12': ['sldm'],\n 'application/vnd.ms-powerpoint.slideshow.macroenabled.12': ['ppsm'],\n 'application/vnd.ms-powerpoint.template.macroenabled.12': ['potm'],\n 'application/vnd.ms-project': ['*mpp', 'mpt'],\n 'application/vnd.ms-word.document.macroenabled.12': ['docm'],\n 'application/vnd.ms-word.template.macroenabled.12': ['dotm'],\n 'application/vnd.ms-works': ['wps', 'wks', 'wcm', 'wdb'],\n 'application/vnd.ms-wpl': ['wpl'],\n 'application/vnd.ms-xpsdocument': ['xps'],\n 'application/vnd.mseq': ['mseq'],\n 'application/vnd.musician': ['mus'],\n 'application/vnd.muvee.style': ['msty'],\n 'application/vnd.mynfc': ['taglet'],\n 'application/vnd.nato.bindingdataobject+xml': ['bdo'],\n 'application/vnd.neurolanguage.nlu': ['nlu'],\n 'application/vnd.nitf': ['ntf', 'nitf'],\n 'application/vnd.noblenet-directory': ['nnd'],\n 'application/vnd.noblenet-sealer': ['nns'],\n 'application/vnd.noblenet-web': ['nnw'],\n 'application/vnd.nokia.n-gage.ac+xml': ['*ac'],\n 'application/vnd.nokia.n-gage.data': ['ngdat'],\n 'application/vnd.nokia.n-gage.symbian.install': ['n-gage'],\n 'application/vnd.nokia.radio-preset': ['rpst'],\n 'application/vnd.nokia.radio-presets': ['rpss'],\n 'application/vnd.novadigm.edm': ['edm'],\n 'application/vnd.novadigm.edx': ['edx'],\n 'application/vnd.novadigm.ext': ['ext'],\n 'application/vnd.oasis.opendocument.chart': ['odc'],\n 'application/vnd.oasis.opendocument.chart-template': ['otc'],\n 'application/vnd.oasis.opendocument.database': ['odb'],\n 'application/vnd.oasis.opendocument.formula': ['odf'],\n 'application/vnd.oasis.opendocument.formula-template': ['odft'],\n 'application/vnd.oasis.opendocument.graphics': ['odg'],\n 'application/vnd.oasis.opendocument.graphics-template': ['otg'],\n 'application/vnd.oasis.opendocument.image': ['odi'],\n 'application/vnd.oasis.opendocument.image-template': ['oti'],\n 'application/vnd.oasis.opendocument.presentation': ['odp'],\n 'application/vnd.oasis.opendocument.presentation-template': ['otp'],\n 'application/vnd.oasis.opendocument.spreadsheet': ['ods'],\n 'application/vnd.oasis.opendocument.spreadsheet-template': ['ots'],\n 'application/vnd.oasis.opendocument.text': ['odt'],\n 'application/vnd.oasis.opendocument.text-master': ['odm'],\n 'application/vnd.oasis.opendocument.text-template': ['ott'],\n 'application/vnd.oasis.opendocument.text-web': ['oth'],\n 'application/vnd.olpc-sugar': ['xo'],\n 'application/vnd.oma.dd2+xml': ['dd2'],\n 'application/vnd.openblox.game+xml': ['obgx'],\n 'application/vnd.openofficeorg.extension': ['oxt'],\n 'application/vnd.openstreetmap.data+xml': ['osm'],\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': [\n 'pptx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.slide': [\n 'sldx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow': [\n 'ppsx',\n ],\n 'application/vnd.openxmlformats-officedocument.presentationml.template': [\n 'potx',\n ],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['xlsx'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template': [\n 'xltx',\n ],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [\n 'docx',\n ],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template': [\n 'dotx',\n ],\n 'application/vnd.osgeo.mapguide.package': ['mgp'],\n 'application/vnd.osgi.dp': ['dp'],\n 'application/vnd.osgi.subsystem': ['esa'],\n 'application/vnd.palm': ['pdb', 'pqa', 'oprc'],\n 'application/vnd.pawaafile': ['paw'],\n 'application/vnd.pg.format': ['str'],\n 'application/vnd.pg.osasli': ['ei6'],\n 'application/vnd.picsel': ['efif'],\n 'application/vnd.pmi.widget': ['wg'],\n 'application/vnd.pocketlearn': ['plf'],\n 'application/vnd.powerbuilder6': ['pbd'],\n 'application/vnd.previewsystems.box': ['box'],\n 'application/vnd.proteus.magazine': ['mgz'],\n 'application/vnd.publishare-delta-tree': ['qps'],\n 'application/vnd.pvi.ptid1': ['ptid'],\n 'application/vnd.pwg-xhtml-print+xml': ['xhtm'],\n 'application/vnd.quark.quarkxpress': [\n 'qxd',\n 'qxt',\n 'qwd',\n 'qwt',\n 'qxl',\n 'qxb',\n ],\n 'application/vnd.rar': ['rar'],\n 'application/vnd.realvnc.bed': ['bed'],\n 'application/vnd.recordare.musicxml': ['mxl'],\n 'application/vnd.recordare.musicxml+xml': ['musicxml'],\n 'application/vnd.rig.cryptonote': ['cryptonote'],\n 'application/vnd.rim.cod': ['cod'],\n 'application/vnd.rn-realmedia': ['rm'],\n 'application/vnd.rn-realmedia-vbr': ['rmvb'],\n 'application/vnd.route66.link66+xml': ['link66'],\n 'application/vnd.sailingtracker.track': ['st'],\n 'application/vnd.seemail': ['see'],\n 'application/vnd.sema': ['sema'],\n 'application/vnd.semd': ['semd'],\n 'application/vnd.semf': ['semf'],\n 'application/vnd.shana.informed.formdata': ['ifm'],\n 'application/vnd.shana.informed.formtemplate': ['itp'],\n 'application/vnd.shana.informed.interchange': ['iif'],\n 'application/vnd.shana.informed.package': ['ipk'],\n 'application/vnd.simtech-mindmapper': ['twd', 'twds'],\n 'application/vnd.smaf': ['mmf'],\n 'application/vnd.smart.teacher': ['teacher'],\n 'application/vnd.software602.filler.form+xml': ['fo'],\n 'application/vnd.solent.sdkm+xml': ['sdkm', 'sdkd'],\n 'application/vnd.spotfire.dxp': ['dxp'],\n 'application/vnd.spotfire.sfs': ['sfs'],\n 'application/vnd.stardivision.calc': ['sdc'],\n 'application/vnd.stardivision.draw': ['sda'],\n 'application/vnd.stardivision.impress': ['sdd'],\n 'application/vnd.stardivision.math': ['smf'],\n 'application/vnd.stardivision.writer': ['sdw', 'vor'],\n 'application/vnd.stardivision.writer-global': ['sgl'],\n 'application/vnd.stepmania.package': ['smzip'],\n 'application/vnd.stepmania.stepchart': ['sm'],\n 'application/vnd.sun.wadl+xml': ['wadl'],\n 'application/vnd.sun.xml.calc': ['sxc'],\n 'application/vnd.sun.xml.calc.template': ['stc'],\n 'application/vnd.sun.xml.draw': ['sxd'],\n 'application/vnd.sun.xml.draw.template': ['std'],\n 'application/vnd.sun.xml.impress': ['sxi'],\n 'application/vnd.sun.xml.impress.template': ['sti'],\n 'application/vnd.sun.xml.math': ['sxm'],\n 'application/vnd.sun.xml.writer': ['sxw'],\n 'application/vnd.sun.xml.writer.global': ['sxg'],\n 'application/vnd.sun.xml.writer.template': ['stw'],\n 'application/vnd.sus-calendar': ['sus', 'susp'],\n 'application/vnd.svd': ['svd'],\n 'application/vnd.symbian.install': ['sis', 'sisx'],\n 'application/vnd.syncml+xml': ['xsm'],\n 'application/vnd.syncml.dm+wbxml': ['bdm'],\n 'application/vnd.syncml.dm+xml': ['xdm'],\n 'application/vnd.syncml.dmddf+xml': ['ddf'],\n 'application/vnd.tao.intent-module-archive': ['tao'],\n 'application/vnd.tcpdump.pcap': ['pcap', 'cap', 'dmp'],\n 'application/vnd.tmobile-livetv': ['tmo'],\n 'application/vnd.trid.tpt': ['tpt'],\n 'application/vnd.triscape.mxs': ['mxs'],\n 'application/vnd.trueapp': ['tra'],\n 'application/vnd.ufdl': ['ufd', 'ufdl'],\n 'application/vnd.uiq.theme': ['utz'],\n 'application/vnd.umajin': ['umj'],\n 'application/vnd.unity': ['unityweb'],\n 'application/vnd.uoml+xml': ['uoml', 'uo'],\n 'application/vnd.vcx': ['vcx'],\n 'application/vnd.visio': ['vsd', 'vst', 'vss', 'vsw'],\n 'application/vnd.visionary': ['vis'],\n 'application/vnd.vsf': ['vsf'],\n 'application/vnd.wap.wbxml': ['wbxml'],\n 'application/vnd.wap.wmlc': ['wmlc'],\n 'application/vnd.wap.wmlscriptc': ['wmlsc'],\n 'application/vnd.webturbo': ['wtb'],\n 'application/vnd.wolfram.player': ['nbp'],\n 'application/vnd.wordperfect': ['wpd'],\n 'application/vnd.wqd': ['wqd'],\n 'application/vnd.wt.stf': ['stf'],\n 'application/vnd.xara': ['xar'],\n 'application/vnd.xfdl': ['xfdl'],\n 'application/vnd.yamaha.hv-dic': ['hvd'],\n 'application/vnd.yamaha.hv-script': ['hvs'],\n 'application/vnd.yamaha.hv-voice': ['hvp'],\n 'application/vnd.yamaha.openscoreformat': ['osf'],\n 'application/vnd.yamaha.openscoreformat.osfpvg+xml': ['osfpvg'],\n 'application/vnd.yamaha.smaf-audio': ['saf'],\n 'application/vnd.yamaha.smaf-phrase': ['spf'],\n 'application/vnd.yellowriver-custom-menu': ['cmp'],\n 'application/vnd.zul': ['zir', 'zirz'],\n 'application/vnd.zzazz.deck+xml': ['zaz'],\n 'application/x-7z-compressed': ['7z'],\n 'application/x-abiword': ['abw'],\n 'application/x-ace-compressed': ['ace'],\n 'application/x-apple-diskimage': ['*dmg'],\n 'application/x-arj': ['arj'],\n 'application/x-authorware-bin': ['aab', 'x32', 'u32', 'vox'],\n 'application/x-authorware-map': ['aam'],\n 'application/x-authorware-seg': ['aas'],\n 'application/x-bcpio': ['bcpio'],\n 'application/x-bdoc': ['*bdoc'],\n 'application/x-bittorrent': ['torrent'],\n 'application/x-blorb': ['blb', 'blorb'],\n 'application/x-bzip': ['bz'],\n 'application/x-bzip2': ['bz2', 'boz'],\n 'application/x-cbr': ['cbr', 'cba', 'cbt', 'cbz', 'cb7'],\n 'application/x-cdlink': ['vcd'],\n 'application/x-cfs-compressed': ['cfs'],\n 'application/x-chat': ['chat'],\n 'application/x-chess-pgn': ['pgn'],\n 'application/x-chrome-extension': ['crx'],\n 'application/x-cocoa': ['cco'],\n 'application/x-conference': ['nsc'],\n 'application/x-cpio': ['cpio'],\n 'application/x-csh': ['csh'],\n 'application/x-debian-package': ['*deb', 'udeb'],\n 'application/x-dgc-compressed': ['dgc'],\n 'application/x-director': [\n 'dir',\n 'dcr',\n 'dxr',\n 'cst',\n 'cct',\n 'cxt',\n 'w3d',\n 'fgd',\n 'swa',\n ],\n 'application/x-doom': ['wad'],\n 'application/x-dtbncx+xml': ['ncx'],\n 'application/x-dtbook+xml': ['dtb'],\n 'application/x-dtbresource+xml': ['res'],\n 'application/x-dvi': ['dvi'],\n 'application/x-envoy': ['evy'],\n 'application/x-eva': ['eva'],\n 'application/x-font-bdf': ['bdf'],\n 'application/x-font-ghostscript': ['gsf'],\n 'application/x-font-linux-psf': ['psf'],\n 'application/x-font-pcf': ['pcf'],\n 'application/x-font-snf': ['snf'],\n 'application/x-font-type1': ['pfa', 'pfb', 'pfm', 'afm'],\n 'application/x-freearc': ['arc'],\n 'application/x-futuresplash': ['spl'],\n 'application/x-gca-compressed': ['gca'],\n 'application/x-glulx': ['ulx'],\n 'application/x-gnumeric': ['gnumeric'],\n 'application/x-gramps-xml': ['gramps'],\n 'application/x-gtar': ['gtar'],\n 'application/x-hdf': ['hdf'],\n 'application/x-httpd-php': ['php'],\n 'application/x-install-instructions': ['install'],\n 'application/x-iso9660-image': ['*iso'],\n 'application/x-iwork-keynote-sffkey': ['*key'],\n 'application/x-iwork-numbers-sffnumbers': ['*numbers'],\n 'application/x-iwork-pages-sffpages': ['*pages'],\n 'application/x-java-archive-diff': ['jardiff'],\n 'application/x-java-jnlp-file': ['jnlp'],\n 'application/x-keepass2': ['kdbx'],\n 'application/x-latex': ['latex'],\n 'application/x-lua-bytecode': ['luac'],\n 'application/x-lzh-compressed': ['lzh', 'lha'],\n 'application/x-makeself': ['run'],\n 'application/x-mie': ['mie'],\n 'application/x-mobipocket-ebook': ['*prc', 'mobi'],\n 'application/x-ms-application': ['application'],\n 'application/x-ms-shortcut': ['lnk'],\n 'application/x-ms-wmd': ['wmd'],\n 'application/x-ms-wmz': ['wmz'],\n 'application/x-ms-xbap': ['xbap'],\n 'application/x-msaccess': ['mdb'],\n 'application/x-msbinder': ['obd'],\n 'application/x-mscardfile': ['crd'],\n 'application/x-msclip': ['clp'],\n 'application/x-msdos-program': ['*exe'],\n 'application/x-msdownload': ['*exe', '*dll', 'com', 'bat', '*msi'],\n 'application/x-msmediaview': ['mvb', 'm13', 'm14'],\n 'application/x-msmetafile': ['*wmf', '*wmz', '*emf', 'emz'],\n 'application/x-msmoney': ['mny'],\n 'application/x-mspublisher': ['pub'],\n 'application/x-msschedule': ['scd'],\n 'application/x-msterminal': ['trm'],\n 'application/x-mswrite': ['wri'],\n 'application/x-netcdf': ['nc', 'cdf'],\n 'application/x-ns-proxy-autoconfig': ['pac'],\n 'application/x-nzb': ['nzb'],\n 'application/x-perl': ['pl', 'pm'],\n 'application/x-pilot': ['*prc', '*pdb'],\n 'application/x-pkcs12': ['p12', 'pfx'],\n 'application/x-pkcs7-certificates': ['p7b', 'spc'],\n 'application/x-pkcs7-certreqresp': ['p7r'],\n 'application/x-rar-compressed': ['*rar'],\n 'application/x-redhat-package-manager': ['rpm'],\n 'application/x-research-info-systems': ['ris'],\n 'application/x-sea': ['sea'],\n 'application/x-sh': ['sh'],\n 'application/x-shar': ['shar'],\n 'application/x-shockwave-flash': ['swf'],\n 'application/x-silverlight-app': ['xap'],\n 'application/x-sql': ['*sql'],\n 'application/x-stuffit': ['sit'],\n 'application/x-stuffitx': ['sitx'],\n 'application/x-subrip': ['srt'],\n 'application/x-sv4cpio': ['sv4cpio'],\n 'application/x-sv4crc': ['sv4crc'],\n 'application/x-t3vm-image': ['t3'],\n 'application/x-tads': ['gam'],\n 'application/x-tar': ['tar'],\n 'application/x-tcl': ['tcl', 'tk'],\n 'application/x-tex': ['tex'],\n 'application/x-tex-tfm': ['tfm'],\n 'application/x-texinfo': ['texinfo', 'texi'],\n 'application/x-tgif': ['*obj'],\n 'application/x-ustar': ['ustar'],\n 'application/x-virtualbox-hdd': ['hdd'],\n 'application/x-virtualbox-ova': ['ova'],\n 'application/x-virtualbox-ovf': ['ovf'],\n 'application/x-virtualbox-vbox': ['vbox'],\n 'application/x-virtualbox-vbox-extpack': ['vbox-extpack'],\n 'application/x-virtualbox-vdi': ['vdi'],\n 'application/x-virtualbox-vhd': ['vhd'],\n 'application/x-virtualbox-vmdk': ['vmdk'],\n 'application/x-wais-source': ['src'],\n 'application/x-web-app-manifest+json': ['webapp'],\n 'application/x-x509-ca-cert': ['der', 'crt', 'pem'],\n 'application/x-xfig': ['fig'],\n 'application/x-xliff+xml': ['*xlf'],\n 'application/x-xpinstall': ['xpi'],\n 'application/x-xz': ['xz'],\n 'application/x-zmachine': ['z1', 'z2', 'z3', 'z4', 'z5', 'z6', 'z7', 'z8'],\n 'audio/vnd.dece.audio': ['uva', 'uvva'],\n 'audio/vnd.digital-winds': ['eol'],\n 'audio/vnd.dra': ['dra'],\n 'audio/vnd.dts': ['dts'],\n 'audio/vnd.dts.hd': ['dtshd'],\n 'audio/vnd.lucent.voice': ['lvp'],\n 'audio/vnd.ms-playready.media.pya': ['pya'],\n 'audio/vnd.nuera.ecelp4800': ['ecelp4800'],\n 'audio/vnd.nuera.ecelp7470': ['ecelp7470'],\n 'audio/vnd.nuera.ecelp9600': ['ecelp9600'],\n 'audio/vnd.rip': ['rip'],\n 'audio/x-aac': ['*aac'],\n 'audio/x-aiff': ['aif', 'aiff', 'aifc'],\n 'audio/x-caf': ['caf'],\n 'audio/x-flac': ['flac'],\n 'audio/x-m4a': ['*m4a'],\n 'audio/x-matroska': ['mka'],\n 'audio/x-mpegurl': ['m3u'],\n 'audio/x-ms-wax': ['wax'],\n 'audio/x-ms-wma': ['wma'],\n 'audio/x-pn-realaudio': ['ram', 'ra'],\n 'audio/x-pn-realaudio-plugin': ['rmp'],\n 'audio/x-realaudio': ['*ra'],\n 'audio/x-wav': ['*wav'],\n 'chemical/x-cdx': ['cdx'],\n 'chemical/x-cif': ['cif'],\n 'chemical/x-cmdf': ['cmdf'],\n 'chemical/x-cml': ['cml'],\n 'chemical/x-csml': ['csml'],\n 'chemical/x-xyz': ['xyz'],\n 'image/prs.btif': ['btif', 'btf'],\n 'image/prs.pti': ['pti'],\n 'image/vnd.adobe.photoshop': ['psd'],\n 'image/vnd.airzip.accelerator.azv': ['azv'],\n 'image/vnd.dece.graphic': ['uvi', 'uvvi', 'uvg', 'uvvg'],\n 'image/vnd.djvu': ['djvu', 'djv'],\n 'image/vnd.dvb.subtitle': ['*sub'],\n 'image/vnd.dwg': ['dwg'],\n 'image/vnd.dxf': ['dxf'],\n 'image/vnd.fastbidsheet': ['fbs'],\n 'image/vnd.fpx': ['fpx'],\n 'image/vnd.fst': ['fst'],\n 'image/vnd.fujixerox.edmics-mmr': ['mmr'],\n 'image/vnd.fujixerox.edmics-rlc': ['rlc'],\n 'image/vnd.microsoft.icon': ['ico'],\n 'image/vnd.ms-dds': ['dds'],\n 'image/vnd.ms-modi': ['mdi'],\n 'image/vnd.ms-photo': ['wdp'],\n 'image/vnd.net-fpx': ['npx'],\n 'image/vnd.pco.b16': ['b16'],\n 'image/vnd.tencent.tap': ['tap'],\n 'image/vnd.valve.source.texture': ['vtf'],\n 'image/vnd.wap.wbmp': ['wbmp'],\n 'image/vnd.xiff': ['xif'],\n 'image/vnd.zbrush.pcx': ['pcx'],\n 'image/x-3ds': ['3ds'],\n 'image/x-cmu-raster': ['ras'],\n 'image/x-cmx': ['cmx'],\n 'image/x-freehand': ['fh', 'fhc', 'fh4', 'fh5', 'fh7'],\n 'image/x-icon': ['*ico'],\n 'image/x-jng': ['jng'],\n 'image/x-mrsid-image': ['sid'],\n 'image/x-ms-bmp': ['*bmp'],\n 'image/x-pcx': ['*pcx'],\n 'image/x-pict': ['pic', 'pct'],\n 'image/x-portable-anymap': ['pnm'],\n 'image/x-portable-bitmap': ['pbm'],\n 'image/x-portable-graymap': ['pgm'],\n 'image/x-portable-pixmap': ['ppm'],\n 'image/x-rgb': ['rgb'],\n 'image/x-tga': ['tga'],\n 'image/x-xbitmap': ['xbm'],\n 'image/x-xpixmap': ['xpm'],\n 'image/x-xwindowdump': ['xwd'],\n 'message/vnd.wfa.wsc': ['wsc'],\n 'model/vnd.bary': ['bary'],\n 'model/vnd.cld': ['cld'],\n 'model/vnd.collada+xml': ['dae'],\n 'model/vnd.dwf': ['dwf'],\n 'model/vnd.gdl': ['gdl'],\n 'model/vnd.gtw': ['gtw'],\n 'model/vnd.mts': ['*mts'],\n 'model/vnd.opengex': ['ogex'],\n 'model/vnd.parasolid.transmit.binary': ['x_b'],\n 'model/vnd.parasolid.transmit.text': ['x_t'],\n 'model/vnd.pytha.pyox': ['pyo', 'pyox'],\n 'model/vnd.sap.vds': ['vds'],\n 'model/vnd.usda': ['usda'],\n 'model/vnd.usdz+zip': ['usdz'],\n 'model/vnd.valve.source.compiled-map': ['bsp'],\n 'model/vnd.vtu': ['vtu'],\n 'text/prs.lines.tag': ['dsc'],\n 'text/vnd.curl': ['curl'],\n 'text/vnd.curl.dcurl': ['dcurl'],\n 'text/vnd.curl.mcurl': ['mcurl'],\n 'text/vnd.curl.scurl': ['scurl'],\n 'text/vnd.dvb.subtitle': ['sub'],\n 'text/vnd.familysearch.gedcom': ['ged'],\n 'text/vnd.fly': ['fly'],\n 'text/vnd.fmi.flexstor': ['flx'],\n 'text/vnd.graphviz': ['gv'],\n 'text/vnd.in3d.3dml': ['3dml'],\n 'text/vnd.in3d.spot': ['spot'],\n 'text/vnd.sun.j2me.app-descriptor': ['jad'],\n 'text/vnd.wap.wml': ['wml'],\n 'text/vnd.wap.wmlscript': ['wmls'],\n 'text/x-asm': ['s', 'asm'],\n 'text/x-c': ['c', 'cc', 'cxx', 'cpp', 'h', 'hh', 'dic'],\n 'text/x-component': ['htc'],\n 'text/x-fortran': ['f', 'for', 'f77', 'f90'],\n 'text/x-handlebars-template': ['hbs'],\n 'text/x-java-source': ['java'],\n 'text/x-lua': ['lua'],\n 'text/x-markdown': ['mkd'],\n 'text/x-nfo': ['nfo'],\n 'text/x-opml': ['opml'],\n 'text/x-org': ['*org'],\n 'text/x-pascal': ['p', 'pas'],\n 'text/x-processing': ['pde'],\n 'text/x-sass': ['sass'],\n 'text/x-scss': ['scss'],\n 'text/x-setext': ['etx'],\n 'text/x-sfv': ['sfv'],\n 'text/x-suse-ymp': ['ymp'],\n 'text/x-uuencode': ['uu'],\n 'text/x-vcalendar': ['vcs'],\n 'text/x-vcard': ['vcf'],\n 'video/vnd.dece.hd': ['uvh', 'uvvh'],\n 'video/vnd.dece.mobile': ['uvm', 'uvvm'],\n 'video/vnd.dece.pd': ['uvp', 'uvvp'],\n 'video/vnd.dece.sd': ['uvs', 'uvvs'],\n 'video/vnd.dece.video': ['uvv', 'uvvv'],\n 'video/vnd.dvb.file': ['dvb'],\n 'video/vnd.fvt': ['fvt'],\n 'video/vnd.mpegurl': ['mxu', 'm4u'],\n 'video/vnd.ms-playready.media.pyv': ['pyv'],\n 'video/vnd.uvvu.mp4': ['uvu', 'uvvu'],\n 'video/vnd.vivo': ['viv'],\n 'video/x-f4v': ['f4v'],\n 'video/x-fli': ['fli'],\n 'video/x-flv': ['flv'],\n 'video/x-m4v': ['m4v'],\n 'video/x-matroska': ['mkv', 'mk3d', 'mks'],\n 'video/x-mng': ['mng'],\n 'video/x-ms-asf': ['asf', 'asx'],\n 'video/x-ms-vob': ['vob'],\n 'video/x-ms-wm': ['wm'],\n 'video/x-ms-wmv': ['wmv'],\n 'video/x-ms-wmx': ['wmx'],\n 'video/x-ms-wvx': ['wvx'],\n 'video/x-msvideo': ['avi'],\n 'video/x-sgi-movie': ['movie'],\n 'video/x-smv': ['smv'],\n 'x-conference/x-cooltalk': ['ice'],\n};\nObject.freeze(types);\nexport default types;\n","const types = {\n 'application/andrew-inset': ['ez'],\n 'application/appinstaller': ['appinstaller'],\n 'application/applixware': ['aw'],\n 'application/appx': ['appx'],\n 'application/appxbundle': ['appxbundle'],\n 'application/atom+xml': ['atom'],\n 'application/atomcat+xml': ['atomcat'],\n 'application/atomdeleted+xml': ['atomdeleted'],\n 'application/atomsvc+xml': ['atomsvc'],\n 'application/atsc-dwd+xml': ['dwd'],\n 'application/atsc-held+xml': ['held'],\n 'application/atsc-rsat+xml': ['rsat'],\n 'application/automationml-aml+xml': ['aml'],\n 'application/automationml-amlx+zip': ['amlx'],\n 'application/bdoc': ['bdoc'],\n 'application/calendar+xml': ['xcs'],\n 'application/ccxml+xml': ['ccxml'],\n 'application/cdfx+xml': ['cdfx'],\n 'application/cdmi-capability': ['cdmia'],\n 'application/cdmi-container': ['cdmic'],\n 'application/cdmi-domain': ['cdmid'],\n 'application/cdmi-object': ['cdmio'],\n 'application/cdmi-queue': ['cdmiq'],\n 'application/cpl+xml': ['cpl'],\n 'application/cu-seeme': ['cu'],\n 'application/cwl': ['cwl'],\n 'application/dash+xml': ['mpd'],\n 'application/dash-patch+xml': ['mpp'],\n 'application/davmount+xml': ['davmount'],\n 'application/docbook+xml': ['dbk'],\n 'application/dssc+der': ['dssc'],\n 'application/dssc+xml': ['xdssc'],\n 'application/ecmascript': ['ecma'],\n 'application/emma+xml': ['emma'],\n 'application/emotionml+xml': ['emotionml'],\n 'application/epub+zip': ['epub'],\n 'application/exi': ['exi'],\n 'application/express': ['exp'],\n 'application/fdf': ['fdf'],\n 'application/fdt+xml': ['fdt'],\n 'application/font-tdpfr': ['pfr'],\n 'application/geo+json': ['geojson'],\n 'application/gml+xml': ['gml'],\n 'application/gpx+xml': ['gpx'],\n 'application/gxf': ['gxf'],\n 'application/gzip': ['gz'],\n 'application/hjson': ['hjson'],\n 'application/hyperstudio': ['stk'],\n 'application/inkml+xml': ['ink', 'inkml'],\n 'application/ipfix': ['ipfix'],\n 'application/its+xml': ['its'],\n 'application/java-archive': ['jar', 'war', 'ear'],\n 'application/java-serialized-object': ['ser'],\n 'application/java-vm': ['class'],\n 'application/javascript': ['*js'],\n 'application/json': ['json', 'map'],\n 'application/json5': ['json5'],\n 'application/jsonml+json': ['jsonml'],\n 'application/ld+json': ['jsonld'],\n 'application/lgr+xml': ['lgr'],\n 'application/lost+xml': ['lostxml'],\n 'application/mac-binhex40': ['hqx'],\n 'application/mac-compactpro': ['cpt'],\n 'application/mads+xml': ['mads'],\n 'application/manifest+json': ['webmanifest'],\n 'application/marc': ['mrc'],\n 'application/marcxml+xml': ['mrcx'],\n 'application/mathematica': ['ma', 'nb', 'mb'],\n 'application/mathml+xml': ['mathml'],\n 'application/mbox': ['mbox'],\n 'application/media-policy-dataset+xml': ['mpf'],\n 'application/mediaservercontrol+xml': ['mscml'],\n 'application/metalink+xml': ['metalink'],\n 'application/metalink4+xml': ['meta4'],\n 'application/mets+xml': ['mets'],\n 'application/mmt-aei+xml': ['maei'],\n 'application/mmt-usd+xml': ['musd'],\n 'application/mods+xml': ['mods'],\n 'application/mp21': ['m21', 'mp21'],\n 'application/mp4': ['*mp4', '*mpg4', 'mp4s', 'm4p'],\n 'application/msix': ['msix'],\n 'application/msixbundle': ['msixbundle'],\n 'application/msword': ['doc', 'dot'],\n 'application/mxf': ['mxf'],\n 'application/n-quads': ['nq'],\n 'application/n-triples': ['nt'],\n 'application/node': ['cjs'],\n 'application/octet-stream': [\n 'bin',\n 'dms',\n 'lrf',\n 'mar',\n 'so',\n 'dist',\n 'distz',\n 'pkg',\n 'bpk',\n 'dump',\n 'elc',\n 'deploy',\n 'exe',\n 'dll',\n 'deb',\n 'dmg',\n 'iso',\n 'img',\n 'msi',\n 'msp',\n 'msm',\n 'buffer',\n ],\n 'application/oda': ['oda'],\n 'application/oebps-package+xml': ['opf'],\n 'application/ogg': ['ogx'],\n 'application/omdoc+xml': ['omdoc'],\n 'application/onenote': ['onetoc', 'onetoc2', 'onetmp', 'onepkg'],\n 'application/oxps': ['oxps'],\n 'application/p2p-overlay+xml': ['relo'],\n 'application/patch-ops-error+xml': ['xer'],\n 'application/pdf': ['pdf'],\n 'application/pgp-encrypted': ['pgp'],\n 'application/pgp-keys': ['asc'],\n 'application/pgp-signature': ['sig', '*asc'],\n 'application/pics-rules': ['prf'],\n 'application/pkcs10': ['p10'],\n 'application/pkcs7-mime': ['p7m', 'p7c'],\n 'application/pkcs7-signature': ['p7s'],\n 'application/pkcs8': ['p8'],\n 'application/pkix-attr-cert': ['ac'],\n 'application/pkix-cert': ['cer'],\n 'application/pkix-crl': ['crl'],\n 'application/pkix-pkipath': ['pkipath'],\n 'application/pkixcmp': ['pki'],\n 'application/pls+xml': ['pls'],\n 'application/postscript': ['ai', 'eps', 'ps'],\n 'application/provenance+xml': ['provx'],\n 'application/pskc+xml': ['pskcxml'],\n 'application/raml+yaml': ['raml'],\n 'application/rdf+xml': ['rdf', 'owl'],\n 'application/reginfo+xml': ['rif'],\n 'application/relax-ng-compact-syntax': ['rnc'],\n 'application/resource-lists+xml': ['rl'],\n 'application/resource-lists-diff+xml': ['rld'],\n 'application/rls-services+xml': ['rs'],\n 'application/route-apd+xml': ['rapd'],\n 'application/route-s-tsid+xml': ['sls'],\n 'application/route-usd+xml': ['rusd'],\n 'application/rpki-ghostbusters': ['gbr'],\n 'application/rpki-manifest': ['mft'],\n 'application/rpki-roa': ['roa'],\n 'application/rsd+xml': ['rsd'],\n 'application/rss+xml': ['rss'],\n 'application/rtf': ['rtf'],\n 'application/sbml+xml': ['sbml'],\n 'application/scvp-cv-request': ['scq'],\n 'application/scvp-cv-response': ['scs'],\n 'application/scvp-vp-request': ['spq'],\n 'application/scvp-vp-response': ['spp'],\n 'application/sdp': ['sdp'],\n 'application/senml+xml': ['senmlx'],\n 'application/sensml+xml': ['sensmlx'],\n 'application/set-payment-initiation': ['setpay'],\n 'application/set-registration-initiation': ['setreg'],\n 'application/shf+xml': ['shf'],\n 'application/sieve': ['siv', 'sieve'],\n 'application/smil+xml': ['smi', 'smil'],\n 'application/sparql-query': ['rq'],\n 'application/sparql-results+xml': ['srx'],\n 'application/sql': ['sql'],\n 'application/srgs': ['gram'],\n 'application/srgs+xml': ['grxml'],\n 'application/sru+xml': ['sru'],\n 'application/ssdl+xml': ['ssdl'],\n 'application/ssml+xml': ['ssml'],\n 'application/swid+xml': ['swidtag'],\n 'application/tei+xml': ['tei', 'teicorpus'],\n 'application/thraud+xml': ['tfi'],\n 'application/timestamped-data': ['tsd'],\n 'application/toml': ['toml'],\n 'application/trig': ['trig'],\n 'application/ttml+xml': ['ttml'],\n 'application/ubjson': ['ubj'],\n 'application/urc-ressheet+xml': ['rsheet'],\n 'application/urc-targetdesc+xml': ['td'],\n 'application/voicexml+xml': ['vxml'],\n 'application/wasm': ['wasm'],\n 'application/watcherinfo+xml': ['wif'],\n 'application/widget': ['wgt'],\n 'application/winhlp': ['hlp'],\n 'application/wsdl+xml': ['wsdl'],\n 'application/wspolicy+xml': ['wspolicy'],\n 'application/xaml+xml': ['xaml'],\n 'application/xcap-att+xml': ['xav'],\n 'application/xcap-caps+xml': ['xca'],\n 'application/xcap-diff+xml': ['xdf'],\n 'application/xcap-el+xml': ['xel'],\n 'application/xcap-ns+xml': ['xns'],\n 'application/xenc+xml': ['xenc'],\n 'application/xfdf': ['xfdf'],\n 'application/xhtml+xml': ['xhtml', 'xht'],\n 'application/xliff+xml': ['xlf'],\n 'application/xml': ['xml', 'xsl', 'xsd', 'rng'],\n 'application/xml-dtd': ['dtd'],\n 'application/xop+xml': ['xop'],\n 'application/xproc+xml': ['xpl'],\n 'application/xslt+xml': ['*xsl', 'xslt'],\n 'application/xspf+xml': ['xspf'],\n 'application/xv+xml': ['mxml', 'xhvml', 'xvml', 'xvm'],\n 'application/yang': ['yang'],\n 'application/yin+xml': ['yin'],\n 'application/zip': ['zip'],\n 'audio/3gpp': ['*3gpp'],\n 'audio/aac': ['adts', 'aac'],\n 'audio/adpcm': ['adp'],\n 'audio/amr': ['amr'],\n 'audio/basic': ['au', 'snd'],\n 'audio/midi': ['mid', 'midi', 'kar', 'rmi'],\n 'audio/mobile-xmf': ['mxmf'],\n 'audio/mp3': ['*mp3'],\n 'audio/mp4': ['m4a', 'mp4a'],\n 'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],\n 'audio/ogg': ['oga', 'ogg', 'spx', 'opus'],\n 'audio/s3m': ['s3m'],\n 'audio/silk': ['sil'],\n 'audio/wav': ['wav'],\n 'audio/wave': ['*wav'],\n 'audio/webm': ['weba'],\n 'audio/xm': ['xm'],\n 'font/collection': ['ttc'],\n 'font/otf': ['otf'],\n 'font/ttf': ['ttf'],\n 'font/woff': ['woff'],\n 'font/woff2': ['woff2'],\n 'image/aces': ['exr'],\n 'image/apng': ['apng'],\n 'image/avci': ['avci'],\n 'image/avcs': ['avcs'],\n 'image/avif': ['avif'],\n 'image/bmp': ['bmp', 'dib'],\n 'image/cgm': ['cgm'],\n 'image/dicom-rle': ['drle'],\n 'image/dpx': ['dpx'],\n 'image/emf': ['emf'],\n 'image/fits': ['fits'],\n 'image/g3fax': ['g3'],\n 'image/gif': ['gif'],\n 'image/heic': ['heic'],\n 'image/heic-sequence': ['heics'],\n 'image/heif': ['heif'],\n 'image/heif-sequence': ['heifs'],\n 'image/hej2k': ['hej2'],\n 'image/hsj2': ['hsj2'],\n 'image/ief': ['ief'],\n 'image/jls': ['jls'],\n 'image/jp2': ['jp2', 'jpg2'],\n 'image/jpeg': ['jpeg', 'jpg', 'jpe'],\n 'image/jph': ['jph'],\n 'image/jphc': ['jhc'],\n 'image/jpm': ['jpm', 'jpgm'],\n 'image/jpx': ['jpx', 'jpf'],\n 'image/jxl': ['jxl'],\n 'image/jxr': ['jxr'],\n 'image/jxra': ['jxra'],\n 'image/jxrs': ['jxrs'],\n 'image/jxs': ['jxs'],\n 'image/jxsc': ['jxsc'],\n 'image/jxsi': ['jxsi'],\n 'image/jxss': ['jxss'],\n 'image/ktx': ['ktx'],\n 'image/ktx2': ['ktx2'],\n 'image/png': ['png'],\n 'image/sgi': ['sgi'],\n 'image/svg+xml': ['svg', 'svgz'],\n 'image/t38': ['t38'],\n 'image/tiff': ['tif', 'tiff'],\n 'image/tiff-fx': ['tfx'],\n 'image/webp': ['webp'],\n 'image/wmf': ['wmf'],\n 'message/disposition-notification': ['disposition-notification'],\n 'message/global': ['u8msg'],\n 'message/global-delivery-status': ['u8dsn'],\n 'message/global-disposition-notification': ['u8mdn'],\n 'message/global-headers': ['u8hdr'],\n 'message/rfc822': ['eml', 'mime'],\n 'model/3mf': ['3mf'],\n 'model/gltf+json': ['gltf'],\n 'model/gltf-binary': ['glb'],\n 'model/iges': ['igs', 'iges'],\n 'model/jt': ['jt'],\n 'model/mesh': ['msh', 'mesh', 'silo'],\n 'model/mtl': ['mtl'],\n 'model/obj': ['obj'],\n 'model/prc': ['prc'],\n 'model/step+xml': ['stpx'],\n 'model/step+zip': ['stpz'],\n 'model/step-xml+zip': ['stpxz'],\n 'model/stl': ['stl'],\n 'model/u3d': ['u3d'],\n 'model/vrml': ['wrl', 'vrml'],\n 'model/x3d+binary': ['*x3db', 'x3dbz'],\n 'model/x3d+fastinfoset': ['x3db'],\n 'model/x3d+vrml': ['*x3dv', 'x3dvz'],\n 'model/x3d+xml': ['x3d', 'x3dz'],\n 'model/x3d-vrml': ['x3dv'],\n 'text/cache-manifest': ['appcache', 'manifest'],\n 'text/calendar': ['ics', 'ifb'],\n 'text/coffeescript': ['coffee', 'litcoffee'],\n 'text/css': ['css'],\n 'text/csv': ['csv'],\n 'text/html': ['html', 'htm', 'shtml'],\n 'text/jade': ['jade'],\n 'text/javascript': ['js', 'mjs'],\n 'text/jsx': ['jsx'],\n 'text/less': ['less'],\n 'text/markdown': ['md', 'markdown'],\n 'text/mathml': ['mml'],\n 'text/mdx': ['mdx'],\n 'text/n3': ['n3'],\n 'text/plain': ['txt', 'text', 'conf', 'def', 'list', 'log', 'in', 'ini'],\n 'text/richtext': ['rtx'],\n 'text/rtf': ['*rtf'],\n 'text/sgml': ['sgml', 'sgm'],\n 'text/shex': ['shex'],\n 'text/slim': ['slim', 'slm'],\n 'text/spdx': ['spdx'],\n 'text/stylus': ['stylus', 'styl'],\n 'text/tab-separated-values': ['tsv'],\n 'text/troff': ['t', 'tr', 'roff', 'man', 'me', 'ms'],\n 'text/turtle': ['ttl'],\n 'text/uri-list': ['uri', 'uris', 'urls'],\n 'text/vcard': ['vcard'],\n 'text/vtt': ['vtt'],\n 'text/wgsl': ['wgsl'],\n 'text/xml': ['*xml'],\n 'text/yaml': ['yaml', 'yml'],\n 'video/3gpp': ['3gp', '3gpp'],\n 'video/3gpp2': ['3g2'],\n 'video/h261': ['h261'],\n 'video/h263': ['h263'],\n 'video/h264': ['h264'],\n 'video/iso.segment': ['m4s'],\n 'video/jpeg': ['jpgv'],\n 'video/jpm': ['*jpm', '*jpgm'],\n 'video/mj2': ['mj2', 'mjp2'],\n 'video/mp2t': ['ts', 'm2t', 'm2ts', 'mts'],\n 'video/mp4': ['mp4', 'mp4v', 'mpg4'],\n 'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'],\n 'video/ogg': ['ogv'],\n 'video/quicktime': ['qt', 'mov'],\n 'video/webm': ['webm'],\n};\nObject.freeze(types);\nexport default types;\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Mime_extensionToType, _Mime_typeToExtension, _Mime_typeToExtensions;\nclass Mime {\n constructor(...args) {\n _Mime_extensionToType.set(this, new Map());\n _Mime_typeToExtension.set(this, new Map());\n _Mime_typeToExtensions.set(this, new Map());\n for (const arg of args) {\n this.define(arg);\n }\n }\n define(typeMap, force = false) {\n for (let [type, extensions] of Object.entries(typeMap)) {\n type = type.toLowerCase();\n extensions = extensions.map((ext) => ext.toLowerCase());\n if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").has(type)) {\n __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").set(type, new Set());\n }\n const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type);\n let first = true;\n for (let extension of extensions) {\n const starred = extension.startsWith('*');\n extension = starred ? extension.slice(1) : extension;\n allExtensions?.add(extension);\n if (first) {\n __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").set(type, extension);\n }\n first = false;\n if (starred)\n continue;\n const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(extension);\n if (currentType && currentType != type && !force) {\n throw new Error(`\"${type} -> ${extension}\" conflicts with \"${currentType} -> ${extension}\". Pass \\`force=true\\` to override this definition.`);\n }\n __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").set(extension, type);\n }\n }\n return this;\n }\n getType(path) {\n if (typeof path !== 'string')\n return null;\n const last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n const ext = last.replace(/^.*\\./, '').toLowerCase();\n const hasPath = last.length < path.length;\n const hasDot = ext.length < last.length - 1;\n if (!hasDot && hasPath)\n return null;\n return __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(ext) ?? null;\n }\n getExtension(type) {\n if (typeof type !== 'string')\n return null;\n type = type?.split?.(';')[0];\n return ((type && __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").get(type.trim().toLowerCase())) ?? null);\n }\n getAllExtensions(type) {\n if (typeof type !== 'string')\n return null;\n return __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type.toLowerCase()) ?? null;\n }\n _freeze() {\n this.define = () => {\n throw new Error('define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances');\n };\n Object.freeze(this);\n for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").values()) {\n Object.freeze(extensions);\n }\n return this;\n }\n _getTestState() {\n return {\n types: __classPrivateFieldGet(this, _Mime_extensionToType, \"f\"),\n extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\"),\n };\n }\n}\n_Mime_extensionToType = new WeakMap(), _Mime_typeToExtension = new WeakMap(), _Mime_typeToExtensions = new WeakMap();\nexport default Mime;\n","import otherTypes from '../types/other.js';\nimport standardTypes from '../types/standard.js';\nimport Mime from './Mime.js';\nexport { default as Mime } from './Mime.js';\nexport default new Mime(standardTypes, otherTypes)._freeze();\n","import { computed, Ref } from 'vue';\nimport { useI18n } from '@/utils/ts/i18n';\nimport mime from 'mime';\n\n/**\n * Transforms a file extension to uppercase or a MIME type to an uppercase\n * extension prefixed by a dot:\n *\n * .jpeg -> .JPEG\n * application/pdf -> .PDF\n *\n * @param type Extension or Mime type string\n * @returns Extension\n */\nfunction getExtension(type: string) {\n // Is mimetype\n if (type.includes('/')) {\n return `.${mime.getExtension(type).toUpperCase()}`;\n }\n\n // Is extension\n return type.toUpperCase();\n}\n\n/**\n * Transforms a list of accepted file types or MIME types @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept}\n * into a human readable list of file extentions.\n *\n * .jpeg -> .JPEG\n * application/pdf -> .PDF\n *\n * @param accept String containing a list of unique file type specifiers.\n * @returns String with types transformed to human readable text\n */\nexport function useFileTypeList(accept?: Ref<string>) {\n const { locale, t } = useI18n();\n\n const supportedFileTypeList = computed<string>(() => {\n const formatter = new Intl.ListFormat(locale.value, { style: 'short', type: 'unit' });\n\n return accept?.value\n ? formatter.format(\n accept.value.split(',').map(type => {\n const value = type.trim();\n switch (value) {\n case 'audio/*':\n return t('audioFiles');\n case 'image/*':\n return t('imageFiles');\n case 'video/*':\n return t('videoFiles');\n default:\n return getExtension(type);\n }\n })\n )\n : null;\n });\n\n return { supportedFileTypeList };\n}\n","import { computed, reactive } from 'vue';\nimport mime from 'mime';\nimport { useDragDropStateProps } from './use-drag-drop-state.types';\n\n/**\n * Transforms a file extension to MIME type.\n * @param type Type or extension to be transformed\n * @returns Extension transformed into MIME type\n */\nfunction transformExtensionToMimeType(type: string) {\n // When getType is \"null\" the value is a mime type\n return mime.getType(type) ?? type;\n}\n\n/**\n * Provides a set of states for the Drag and drop component as well as a set of errors calculated\n * during the \"dragenter\" event.\n *\n * The errors prevent the files from being dropped.\n * The state helps indicating what's the current state of the component.\n *\n * @param options Properties used to validate files when they are dragged inside the file uploader\n * @returns Drag state and errors calculated during the validation perfomed on the Drag event\n */\nexport function useDragDropState({ maxCount, accept }: useDragDropStateProps) {\n const dragErrors = reactive({\n invalidTypes: false,\n partiallyInvalidTypes: false,\n maxCountOverflow: false,\n });\n\n const dragState = reactive({\n dragging: false,\n error: false,\n });\n\n // Convert all extensions to MIME types\n const acceptMimeTypes = computed<Array<string>>(() => {\n if (!accept.value) {\n return undefined;\n }\n\n const types = accept.value\n .split(',') // Split all comma values\n .map(type => transformExtensionToMimeType(type.trim().toLocaleLowerCase()));\n return types;\n });\n\n /**\n * Resets to default the states provided by the composable\n */\n function resetDragState() {\n dragState.dragging = false;\n dragState.error = false;\n dragErrors.invalidTypes = false;\n dragErrors.partiallyInvalidTypes = false;\n dragErrors.maxCountOverflow = false;\n }\n\n /**\n * Validates if the files being dragged into the component meet all\n * restrictions applied by the MIME type through the \"action\" and\n * with the \"maxCount\" props\n *\n * @param totalFilesCount Total amount of files currently uploded\n * @param event Event triggered by the \"onenter\" action\n */\n function onDragEnterValidations(totalFilesCount: number, event: DragEvent) {\n // Enable dragging\n dragState.dragging = true;\n\n // Show error when the amount of files being dragged is higher than \"maxCount\"\n if (!event.dataTransfer.types.includes('Files') || totalFilesCount > maxCount.value) {\n dragErrors.maxCountOverflow = true;\n dragState.error = true;\n }\n\n // Do nothing if no file type/extension restrictions are set\n if (!acceptMimeTypes.value) {\n return;\n }\n\n let countValidFiles = 0;\n\n for (const file of event.dataTransfer.items) {\n if (acceptMimeTypes.value.includes(file.type)) {\n countValidFiles++;\n }\n }\n\n if (countValidFiles === 0) {\n dragState.error = true;\n dragErrors.invalidTypes = true;\n return;\n }\n\n // If some files have non-accepted types\n if (!dragErrors.invalidTypes && countValidFiles !== event.dataTransfer.items.length) {\n dragState.error = true;\n dragErrors.partiallyInvalidTypes = true;\n }\n }\n\n return {\n dragState,\n dragErrors,\n resetDragState,\n onDragEnterValidations,\n };\n}\n","<template>\n <div class=\"b-file-uploader\" :class=\"conditionalClasses\">\n <field-label\n class=\"b-file-uploader__label\"\n :for=\"inputFieldId\"\n :label=\"label\"\n :optional=\"optional\"\n :required=\"required\"\n :tooltip-text=\"tooltipText\"\n />\n\n <input\n :id=\"inputFieldId\"\n ref=\"inputRef\"\n aria-hidden=\"true\"\n type=\"file\"\n tabindex=\"-1\"\n data-testid=\"input\"\n class=\"b-file-uploader__input\"\n :accept=\"accept\"\n :disabled=\"disabled\"\n :multiple=\"isMultiple\"\n @change=\"onInputChange\"\n @click=\"onInputClick\"\n />\n\n <!-- Used to separate the a11y text with breaks for the reader. Hidden to users -->\n <span :id=\"commaTextId\" aria-hidden=\"true\" class=\"b-file-uploader__invisible-comma\"> , </span>\n\n <div\n v-if=\"!hideArea\"\n ref=\"dropAreaRef\"\n :aria-labelledby=\"fileUploadAriaLabelledBy\"\n class=\"b-file-uploader__area\"\n role=\"button\"\n :tabindex=\"disabled ? -1 : 0\"\n @click=\"inputRef.click()\"\n @dragenter.stop.prevent=\"onDragEnter\"\n @dragleave.stop.prevent=\"onDragLeave\"\n @drop.stop.prevent=\"onDrop\"\n @dragover=\"onDragOver\"\n @keydown.enter.prevent.capture=\"inputRef.click()\"\n @keydown.space.prevent.capture=\"inputRef.click()\"\n >\n <div class=\"b-file-uploader__icon\" aria-hidden=\"true\">\n <warning-filled-icon v-if=\"hasError\" />\n <upload-icon v-else />\n </div>\n\n <template v-if=\"!condensed\">\n <bento-typography :id=\"dropFilesTextId\" el=\"span\" strongest class=\"b-file-uploader__title\">\n {{ tc('dropFiles', maxCount) }}\n </bento-typography>\n\n <bento-typography v-if=\"description\" :id=\"customTextId\" el=\"span\" class=\"b-file-uploader__description\">\n {{ description }}\n </bento-typography>\n\n <file-uploader-restrictions v-bind=\"fileUploadRestrictionsProps\" :id=\"fileUploaderRestrictionsId\" />\n </template>\n\n <bento-typography :id=\"browseFilesButtonId\" stronger class=\"b-file-uploader__button\">\n {{ t('browseFiles') }}\n </bento-typography>\n </div>\n\n <error-message\n v-if=\"hasError && errorMessage\"\n :id=\"errorId\"\n :error-message=\"errorMessage\"\n class=\"b-file-uploader__error-message\"\n />\n\n <bento-typography\n v-if=\"condensed && description\"\n :id=\"customTextId\"\n aria-hidden=\"true\"\n el=\"span\"\n class=\"b-file-uploader__description b-file-uploader__description--condensed\"\n >\n {{ description }}\n </bento-typography>\n\n <file-uploader-restrictions\n v-if=\"condensed\"\n v-bind=\"fileUploadRestrictionsProps\"\n :id=\"fileUploaderRestrictionsId\"\n />\n\n <bento-alert v-if=\"maxFileCountError\" type=\"critical\">\n {{ t('tooManyFiles') }}\n <template #description>\n {{ t('youHaveExceededTheMaximum', { count: props.maxCount }) }}\n </template>\n </bento-alert>\n\n <div v-show=\"files?.length\" class=\"b-file-uploader__files\">\n <file-uploader-file-card\n v-for=\"(file, index) in files\"\n :ref=\"registerFileCardRef(index)\"\n :key=\"file.id\"\n :file=\"file\"\n :supported-file-types=\"supportedFileTypeList\"\n @cancel=\"removeFile(file)\"\n @remove=\"removeFile(file)\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, reactive, ref, toRef, watch } from 'vue';\n import UploadIcon from '@adyen/ui-assets-icons-16/vue/upload';\n import WarningFilledIcon from '@adyen/ui-assets-icons-16/vue/warning-filled';\n\n import { BentoAlert } from '@/components/alert';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n import { FileUploaderFileCard } from './components/file-uploader-file-card';\n import { FileUploaderRestrictions } from './components/file-uploader-restrictions';\n\n import { useI18n } from '@/utils/ts/i18n';\n import { generateUid } from '@/core/utils/ts';\n import { getFileType, readFile } from './utils';\n import { useFileTypeList } from './composables';\n\n import {\n type BentoFileUploaderProps,\n BentoFileUploaderValue,\n FileErrorType,\n FileObject,\n FileState,\n FileUploaderState,\n } from './file-uploader.types';\n import type { FileUploaderRestrictionsProps } from '@/components/file-uploader/components/file-uploader-restrictions/file-uploader-restrictions.types';\n\n import messages from './messages.json';\n import { useDragDropState } from '@/components/file-uploader/composables/use-drag-drop-state/use-drag-drop-state';\n import { deprecate } from '@/utils/ts/deprecate';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t, tc } = useI18n<{ message: MessageSchema }>({ messages });\n\n const emit = defineEmits([\"change\", \"input\", \"update:modelValue\", \"error:upload\"]);\n\n const props = defineProps({\n accept: { default: null },\n condensed: { type: Boolean },\n description: { default: null },\n disabled: { type: Boolean },\n errorMessage: { default: null },\n label: null,\n maxCount: { default: 1 },\n maxDimensions: { default: null },\n maxSize: { default: null },\n modelValue: { default: null },\n optional: { type: Boolean },\n required: { type: Boolean },\n tooltipText: { default: null }\n});\n\n /**\n * Model value checks\n * Filter out type string, array and file as FileList is the only type un-deprecated for modelValue\n * */\n\n /**\n * Type guard to check if the value is a FileList.\n * @param files The value to check.\n */\n function isFileList(files: BentoFileUploaderValue): files is FileList {\n return (\n !!files && typeof (files as FileList).length === 'number' && typeof (files as FileList).item === 'function'\n );\n }\n\n /**\n * Used as vitest recognizes FileList as an Array of Files which then\n * causes any tests with pre-uploaded files to fail as isFileList will fail.\n * */\n onMounted(() => {\n // Model is not a FileList\n if (!isFileList(props.modelValue)) {\n deprecate(\n 'BentoFileUploaderValue types: string | Array<string> | File | Array<File>',\n 'Use FileList instead.',\n '2.0.0'\n );\n }\n });\n\n const { supportedFileTypeList } = useFileTypeList(toRef(props, 'accept'));\n\n const browseFilesButtonId = generateUid('browse-button');\n const customTextId = generateUid('custom-text');\n const dropFilesTextId = generateUid('drop-files-text');\n const commaTextId = generateUid('comma-text');\n const fileUploaderRestrictionsId = generateUid('file-uploader-restrictions');\n\n const files = ref<Array<FileObject>>(null);\n const fileCardRefs = ref<Array<InstanceType<typeof FileUploaderFileCard>>>([]);\n const inputRef = ref<HTMLInputElement>(null);\n const dropAreaRef = ref<HTMLDivElement>(null);\n const inputFieldId = generateUid('input');\n const errorId = generateUid('input-error');\n\n const fileUploadAriaLabelledBy = computed(() => {\n const formattedDropFileTextId = !props.condensed ? `${dropFilesTextId} ${commaTextId}` : '';\n const formattedCustomTextId = props.description ? `${customTextId} ${commaTextId}` : '';\n const formattedFileUploaderRestrictionsId = `${fileUploaderRestrictionsId} ${commaTextId}`;\n return `${formattedDropFileTextId} ${formattedCustomTextId} ${formattedFileUploaderRestrictionsId} ${browseFilesButtonId}`;\n });\n\n const { dragState, dragErrors, resetDragState, onDragEnterValidations } = useDragDropState({\n accept: toRef(props, 'accept'),\n maxCount: toRef(props, 'maxCount'),\n });\n\n const fileUploadRestrictionsProps = computed<FileUploaderRestrictionsProps>(() => ({\n condensed: props.condensed,\n disabled: props.disabled,\n maxCount: isMultiple.value\n ? {\n value: props.maxCount,\n error: dragErrors.maxCountOverflow || maxFileCountError.value,\n }\n : null,\n maxDimensions: props.maxDimensions\n ? {\n value: props.maxDimensions,\n error: files.value?.some(file => file.errors.includes(FileErrorType.ERROR_DIMENSIONS)),\n }\n : null,\n maxSize: props.maxSize\n ? {\n value: props.maxSize,\n error: files.value?.some(file => file.errors.includes(FileErrorType.ERROR_SIZE)),\n }\n : null,\n supportedFileTypes: supportedFileTypeList.value\n ? {\n value: supportedFileTypeList.value,\n error:\n dragErrors.invalidTypes ||\n dragErrors.partiallyInvalidTypes ||\n files.value?.some(file => file.errors.includes(FileErrorType.ERROR_TYPE)),\n }\n : null,\n }));\n // Prevents triggering \"dragleave\" events on children elements\n const enterTarget = ref<EventTarget>();\n\n const conditionalClasses = computed(() => ({\n [`b-file-uploader--${FileUploaderState.DISABLED}`]: props.disabled,\n [`b-file-uploader--${FileUploaderState.DRAG_OVER}`]: dragState.dragging,\n [`b-file-uploader--${FileUploaderState.ERROR}`]: hasError.value,\n [`b-file-uploader--condensed`]: props.condensed,\n }));\n const isMultiple = computed(() => props.maxCount > 1);\n const hideArea = computed(() => props.maxCount && files.value?.length >= props.maxCount);\n const loadingStateExists = computed(() => files.value?.some(file => file.state === 'loading'));\n\n const registerFileCardRef = (cardIndex: number) => fileCardRef => {\n fileCardRefs.value[cardIndex] = fileCardRef;\n };\n\n /**\n * Verifies the new list of files and emits the `change` and `update:modelValue` events.\n * @param newList The new list of files to process and emit.\n */\n function emitUpdate(newList: Array<FileObject>) {\n if (newList) {\n verifyFileCount(newList);\n verifyFileSize(newList);\n\n const value = convertToFileList(newList);\n\n emit('change', value);\n emit('update:modelValue', value);\n emit('input', value);\n } else {\n emit('change');\n emit('update:modelValue');\n emit('input');\n }\n }\n\n /** Errors */\n const hasError = computed(() => !!props.errorMessage || dragState.error);\n const maxFileCountError = computed(() => files.value?.length > props.maxCount);\n const maxFileError = ref(false);\n const hasRestrictionError = computed(() => files.value?.some(file => file.state === 'error'));\n\n watch(hasRestrictionError, newValue => {\n // Without this, when files are initially uploaded the component\n // will immediately and unnecessarily emit 'false' and then\n // emit 'true' once processing has done, if errors exists.\n if (loadingStateExists.value) {\n return;\n }\n\n emit('error:upload', newValue);\n });\n\n /**\n * Places the focus to the \"drop area\" after adding or removing a file.\n * If more files can be added, the focus is moved to the \"drop area\".\n * If no more files can be added, the focus is moved to the first file card.\n */\n async function resetFocus() {\n await nextTick();\n\n if (files.value.length === props.maxCount) {\n fileCardRefs.value[0]?.focus();\n return;\n }\n\n dropAreaRef.value.focus();\n }\n\n /**\n * Removes the file from the list of files when the\n * \"remove\" or \"cancel\" events are triggered from\n * the file card component\n * @param file File to be removed\n */\n async function removeFile(file: FileObject) {\n files.value = files.value.filter(({ id }) => id !== file.id);\n\n await resetFocus();\n emitUpdate(files.value);\n }\n\n /** Drag n Drop functions */\n\n /**\n * Creates a FileObject from a native File and tracks its client-load progress.\n * @param file The native File object.\n * @returns A FileObject.\n */\n function processFile(file: File) {\n const fileObject = reactive<FileObject>({\n id: generateUid('file'),\n data: file,\n errors: [],\n progress: null,\n state: FileState.LOADING,\n type: getFileType(file),\n });\n readFile(fileObject, props.accept, props.maxDimensions);\n return fileObject;\n }\n\n /**\n * Prevent opening the file browser when no\n * more files can be added (until one file is removed).\n * @param event Triggered event\n */\n function onInputClick(event: MouseEvent) {\n if (files.value?.length === props.maxCount) {\n event.preventDefault();\n }\n }\n\n /**\n * Sets the file/files to track their progress while being processed\n * @param fileList File or list of files to be processed.\n */\n async function onFileInput(fileList: FileList) {\n // Prevent adding many files if maxCount is 1\n if (props.maxCount === 1 && fileList.length > props.maxCount) {\n resetEnterTarget();\n resetDragState();\n return;\n }\n\n if (isMultiple.value) {\n // Add the new files to the file selection.\n // Removing files should be done by interacting with the file list below the area.\n files.value = [...(files.value || []), ...Array.from(fileList).map(file => processFile(file))];\n } else {\n files.value = [processFile(fileList[0])];\n await resetFocus();\n }\n\n emitUpdate(files.value);\n }\n\n /**\n * Handles the \"dragenter\" event, triggered when the mouse enters the draggable area.\n * Enables the dragging state and sets the dragging error to true to\n * prevent dropping files from being added if there's a general error.\n * @param event Drag event\n */\n function onDragEnter(event: DragEvent) {\n // Prevent changing state if disabled\n if (props.disabled) {\n return;\n }\n\n /**\n * Allows internal components as part of the dragable area.\n * Prevents trigerring \"dragleave\" events on children elements.\n * Set the \"dragarea\" as target\n */\n enterTarget.value = event.target;\n\n const totalFilesCount = (event.dataTransfer.items?.length ?? 0) + (files.value?.length ?? 0);\n onDragEnterValidations(totalFilesCount, event);\n }\n\n /**\n * Resets the reference to the target.\n * This helps preventing loosing the state when dragging over children\n */\n function resetEnterTarget() {\n enterTarget.value = null;\n }\n\n /**\n * Handles the \"dragleave\" event, triggered when the mouse leaves the draggable area.\n * Maintains the dragging state while dragging over children.\n * Resets the states when the mouse leaves the draggable area\n * @param event Drag event\n */\n function onDragLeave(event: DragEvent) {\n // If target enter and leave are the same it means the drag has left the \"dragarea\"\n if (enterTarget.value === event.target) {\n resetEnterTarget();\n resetDragState();\n }\n }\n\n /**\n * Handles the \"dragover\" event, triggered when the mouse moves over the draggable area.\n * Disables the cursor when the component is disabled.\n * @param event Drag event\n */\n function onDragOver(event: DragEvent) {\n event.preventDefault();\n\n // Disable drag n drop and change the cursor if disabled\n if (props.disabled) {\n // eslint-disable-next-line no-param-reassign\n event.dataTransfer.dropEffect = 'none';\n }\n }\n\n /**\n * Hadles the \"drop\" event, triggered when files are dropped inside the draggable area.\n * Processes the files that are dropped.\n * @param event Drag event\n */\n async function onDrop(event: DragEvent) {\n // Prevent events when the input is disabled\n if (props.disabled) {\n return;\n }\n\n if (!dragErrors.invalidTypes && event.dataTransfer.files?.length) {\n onFileInput(event.dataTransfer.files);\n }\n resetEnterTarget();\n resetDragState();\n }\n\n /**\n * Handles the \"change\" event over the \"input\" element.\n * Processes the files that are selected through the browser's file explorer.\n */\n async function onInputChange() {\n if (inputRef.value.files?.length) {\n onFileInput(inputRef.value.files);\n }\n\n // Reset input value\n inputRef.value.value = '';\n await resetFocus();\n }\n\n /** End of drag and drop functions */\n\n /**\n * Watches the modelValue and if set\n * and the type is not deprecated, it processes the files\n * but doesn't emit them as the user already has those files.\n */\n watch(\n () => props.modelValue,\n (newValue: BentoFileUploaderValue) => {\n if (newValue && isFileList(newValue)) {\n const fileList = newValue as FileList;\n\n const fileListArray: Array<File> = Array.from(fileList);\n\n files.value = fileListArray.map(file => processFile(file));\n }\n },\n { immediate: true }\n );\n\n function verifyFileCount(fileList: Array<FileObject>) {\n const isValid = props.maxCount && fileList.length <= props.maxCount;\n maxFileError.value = !isValid;\n }\n\n function verifyFileSize(fileList: Array<FileObject>) {\n if (props.maxSize) {\n fileList.forEach(file => {\n const item = file; // Prevent eslint no-param-reassign\n if (item.data.size > props.maxSize) {\n item.state = FileState.ERROR;\n item.errors.push(FileErrorType.ERROR_SIZE);\n }\n });\n }\n }\n\n function convertToFileList(fileList: Array<FileObject>) {\n // Filter out files with errors\n const validFiles = fileList.filter(\n ({ errors }) => !errors.includes(FileErrorType.ERROR_LOAD) && !errors.includes(FileErrorType.ERROR_SIZE)\n );\n\n if (validFiles.length) {\n const dataTransfer = new DataTransfer();\n validFiles.forEach(({ data, id }) => {\n dataTransfer.items.add(data);\n });\n return dataTransfer.files;\n }\n return undefined;\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * The file uploader component enables users to upload one or multiple files from their device to our system.\n *\n * @example\n * import { BentoFileUploader, type BentoFileValue } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoFileUploader },\n * template: `\n * <bento-file-uploader\n * accept=\"image/*,video/*,.pdf,.png\"\n * condensed\n * description=\"Custom supporting text\"\n * disabled\n * errorMessage=\"Custom error message\"\n * label=\"Bento file uploader\"\n * :maxCount=\"1\"\n * :maxDimensions=\"{ width: 200, height: 100 }\"\n * :maxSize=\"1000\"\n * v-model=\"files\"\n * multiple\n * :optional=\"false\"\n * required\n * tooltipText=\"Useful information\"\n * />\n * `,\n * setup() {\n * const files = ref<BentoFileValue>()\n * }\n * }\n */\n export default {\n model: { prop: 'modelValue' },\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./file-uploader.scss\" />\n"],"names":["uuid$9","_sfc_main$d","useTruncatedFileName","target","container","isContainerTruncating","ref","observer","disconnectObserver","onUnmounted","onMounted","entries","UNITS","formatFileSize","locale","size","unitIndex","FileState","FileState2","FileErrorType","FileErrorType2","FileUploaderState","FileUploaderState2","FileType","FileType2","textFileExtraTypes","tableFileTypes","slidesFileTypes","compressedFileTypes","getFileType","file","isFileTypeAccepted","accept","acceptPatterns","type","pattern","category","readFile","fileObject","maxDimensions","reader","event","blob","url","img","uuid$8","_sfc_main$b","uuid$7","_sfc_main$a","uuid$6","_sfc_main$9","uuid$5","_sfc_main$8","uuid$4","_sfc_main$7","uuid$3","_sfc_main$6","uuid$2","_sfc_main$5","uuid$1","_sfc_main$4","uuid","_sfc_main$3","FILE_TYPE_ICON_MAP","SoundIcon","FolderIcon","AttachmentIcon","ImageIcon","DocumentIcon","CollectionIcon","TableIcon","DocumentLinesIcon","PlayCircleIcon","getFileIcon","getFileIconColor","__default__$2","messages$2","ICON_TIMER","t","useI18n","removeFileButtonRef","cancelFileButtonRef","retryFileButtonRef","fileErrorsSectionId","generateUid","cancelFileButtonId","removeFileButtonId","retryFileButtonId","showFileIcon","props","downloadUrl","computed","hasError","hasLoadError","hasSizeError","hasDimensionsError","hasTypeError","isLoading","progressLabel","sizeLabel","fileNameRef","fileNameContainerRef","isFileNameTruncated","conditionalClasses","conditionalIconClasses","fileUploaderIcon","BentoLoadingIndicator","WarningFilledIcon","CheckmarkCircleFillIcon","watch","value","changeTimer","focus","expose","__default__$1","messages$1","tc","setRestrictionErrorClass","error","maxDimensionsLabel","width","height","types$1","types","__classPrivateFieldGet","receiver","state","kind","f","_Mime_extensionToType","_Mime_typeToExtension","_Mime_typeToExtensions","Mime","args","arg","typeMap","force","extensions","ext","allExtensions","first","extension","starred","currentType","path","last","hasPath","_a","mime","getExtension","useFileTypeList","formatter","transformExtensionToMimeType","useDragDropState","maxCount","dragErrors","reactive","dragState","acceptMimeTypes","resetDragState","onDragEnterValidations","totalFilesCount","countValidFiles","__default__","messages","isFileList","files2","deprecate","supportedFileTypeList","toRef","browseFilesButtonId","customTextId","dropFilesTextId","commaTextId","fileUploaderRestrictionsId","files","fileCardRefs","inputRef","dropAreaRef","inputFieldId","errorId","fileUploadAriaLabelledBy","formattedDropFileTextId","formattedCustomTextId","formattedFileUploaderRestrictionsId","fileUploadRestrictionsProps","isMultiple","maxFileCountError","_b","_c","enterTarget","hideArea","loadingStateExists","registerFileCardRef","cardIndex","fileCardRef","emitUpdate","newList","verifyFileCount","verifyFileSize","convertToFileList","emit","maxFileError","hasRestrictionError","newValue","resetFocus","nextTick","removeFile","id","processFile","onInputClick","onFileInput","fileList","resetEnterTarget","onDragEnter","onDragLeave","onDragOver","onDrop","onInputChange","fileListArray","isValid","item","validFiles","errors","dataTransfer","data"],"mappings":"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","x_google_ignoreList":[19,20,21,22]}
|