{"version":3,"file":"index.mjs","sources":["../../src/fileupload/BaseFileUpload.vue","../../src/fileupload/FileContent.vue","../../src/fileupload/FileContent.vue?vue&type=template&id=81c7c692&lang.js","../../src/fileupload/FileUpload.vue","../../src/fileupload/FileUpload.vue?vue&type=template&id=7330a567&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@digivue/core/basecomponent';\nimport FileUploadStyle from 'digivue/fileupload/style';\n\nexport default {\n    name: 'BaseFileUpload',\n    extends: BaseComponent,\n    props: {\n        name: {\n            type: String,\n            default: null\n        },\n        url: {\n            type: String,\n            default: null\n        },\n        mode: {\n            type: String,\n            default: 'advanced'\n        },\n        multiple: {\n            type: Boolean,\n            default: false\n        },\n        accept: {\n            type: String,\n            default: null\n        },\n        disabled: {\n            type: Boolean,\n            default: false\n        },\n        auto: {\n            type: Boolean,\n            default: false\n        },\n        maxFileSize: {\n            type: Number,\n            default: null\n        },\n        invalidFileSizeMessage: {\n            type: String,\n            default: '{0}: Invalid file size, file size should be smaller than {1}.'\n        },\n        invalidFileTypeMessage: {\n            type: String,\n            default: '{0}: Invalid file type, allowed file types: {1}.'\n        },\n        fileLimit: {\n            type: Number,\n            default: null\n        },\n        invalidFileLimitMessage: {\n            type: String,\n            default: 'Maximum number of files exceeded, limit is {0} at most.'\n        },\n        withCredentials: {\n            type: Boolean,\n            default: false\n        },\n        previewWidth: {\n            type: Number,\n            default: 50\n        },\n        chooseLabel: {\n            type: String,\n            default: null\n        },\n        uploadLabel: {\n            type: String,\n            default: null\n        },\n        cancelLabel: {\n            type: String,\n            default: null\n        },\n        customUpload: {\n            type: Boolean,\n            default: false\n        },\n        showUploadButton: {\n            type: Boolean,\n            default: true\n        },\n        showCancelButton: {\n            type: Boolean,\n            default: true\n        },\n        chooseIcon: {\n            type: String,\n            default: undefined\n        },\n        uploadIcon: {\n            type: String,\n            default: undefined\n        },\n        cancelIcon: {\n            type: String,\n            default: undefined\n        },\n        style: null,\n        class: null,\n        chooseButtonProps: {\n            type: null,\n            default: null\n        },\n        uploadButtonProps: {\n            type: Object,\n            default() {\n                return { severity: 'secondary' };\n            }\n        },\n        cancelButtonProps: {\n            type: Object,\n            default() {\n                return { severity: 'secondary' };\n            }\n        }\n    },\n    style: FileUploadStyle,\n    provide() {\n        return {\n            $pcFileUpload: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div v-for=\"(file, index) of files\" :key=\"file.name + file.type + file.size\" :class=\"cx('file')\" v-bind=\"ptm('file')\">\n        <img role=\"presentation\" :class=\"cx('fileThumbnail')\" :alt=\"file.name\" :src=\"file.objectURL\" :width=\"previewWidth\" v-bind=\"ptm('fileThumbnail')\" />\n        <div :class=\"cx('fileInfo')\" v-bind=\"ptm('fileInfo')\">\n            <div :class=\"cx('fileName')\" v-bind=\"ptm('fileName')\">{{ file.name }}</div>\n            <span :class=\"cx('fileSize')\" v-bind=\"ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n        </div>\n        <Badge :value=\"badgeValue\" :class=\"cx('pcFileBadge')\" :severity=\"badgeSeverity\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileBadge')\" />\n        <div :class=\"cx('fileActions')\" v-bind=\"ptm('fileActions')\">\n            <Button @click=\"$emit('remove', index)\" text rounded severity=\"danger\" :class=\"cx('pcFileRemoveButton')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileRemoveButton')\">\n                <template #icon=\"iconProps\">\n                    <component v-if=\"templates.fileremoveicon\" :is=\"templates.fileremoveicon\" :class=\"iconProps.class\" :file=\"file\" :index=\"index\" />\n                    <TimesIcon v-else :class=\"iconProps.class\" aria-hidden=\"true\" v-bind=\"ptm('pcFileRemoveButton')['icon']\" />\n                </template>\n            </Button>\n        </div>\n    </div>\n</template>\n\n<script>\nimport BaseComponent from '@digivue/core/basecomponent';\nimport TimesIcon from '@digivue/icons/times';\nimport Badge from 'digivue/badge';\nimport Button from 'digivue/button';\n\nexport default {\n    name: 'FileContent',\n    hostName: 'FileUpload',\n    extends: BaseComponent,\n    emits: ['remove'],\n    props: {\n        files: {\n            type: Array,\n            default: () => []\n        },\n        badgeSeverity: {\n            type: String,\n            default: 'warn'\n        },\n        badgeValue: {\n            type: String,\n            default: null\n        },\n        previewWidth: {\n            type: Number,\n            default: 50\n        },\n        templates: {\n            type: null,\n            default: null\n        }\n    },\n    methods: {\n        formatSize(bytes) {\n            const k = 1024;\n            const dm = 3;\n            const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n            if (bytes === 0) {\n                return `0 ${sizes[0]}`;\n            }\n\n            const i = Math.floor(Math.log(bytes) / Math.log(k));\n            const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n            return `${formattedSize} ${sizes[i]}`;\n        }\n    },\n    components: {\n        Button,\n        Badge,\n        TimesIcon\n    }\n};\n</script>\n","<template>\n    <div v-for=\"(file, index) of files\" :key=\"file.name + file.type + file.size\" :class=\"cx('file')\" v-bind=\"ptm('file')\">\n        <img role=\"presentation\" :class=\"cx('fileThumbnail')\" :alt=\"file.name\" :src=\"file.objectURL\" :width=\"previewWidth\" v-bind=\"ptm('fileThumbnail')\" />\n        <div :class=\"cx('fileInfo')\" v-bind=\"ptm('fileInfo')\">\n            <div :class=\"cx('fileName')\" v-bind=\"ptm('fileName')\">{{ file.name }}</div>\n            <span :class=\"cx('fileSize')\" v-bind=\"ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n        </div>\n        <Badge :value=\"badgeValue\" :class=\"cx('pcFileBadge')\" :severity=\"badgeSeverity\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileBadge')\" />\n        <div :class=\"cx('fileActions')\" v-bind=\"ptm('fileActions')\">\n            <Button @click=\"$emit('remove', index)\" text rounded severity=\"danger\" :class=\"cx('pcFileRemoveButton')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileRemoveButton')\">\n                <template #icon=\"iconProps\">\n                    <component v-if=\"templates.fileremoveicon\" :is=\"templates.fileremoveicon\" :class=\"iconProps.class\" :file=\"file\" :index=\"index\" />\n                    <TimesIcon v-else :class=\"iconProps.class\" aria-hidden=\"true\" v-bind=\"ptm('pcFileRemoveButton')['icon']\" />\n                </template>\n            </Button>\n        </div>\n    </div>\n</template>\n\n<script>\nimport BaseComponent from '@digivue/core/basecomponent';\nimport TimesIcon from '@digivue/icons/times';\nimport Badge from 'digivue/badge';\nimport Button from 'digivue/button';\n\nexport default {\n    name: 'FileContent',\n    hostName: 'FileUpload',\n    extends: BaseComponent,\n    emits: ['remove'],\n    props: {\n        files: {\n            type: Array,\n            default: () => []\n        },\n        badgeSeverity: {\n            type: String,\n            default: 'warn'\n        },\n        badgeValue: {\n            type: String,\n            default: null\n        },\n        previewWidth: {\n            type: Number,\n            default: 50\n        },\n        templates: {\n            type: null,\n            default: null\n        }\n    },\n    methods: {\n        formatSize(bytes) {\n            const k = 1024;\n            const dm = 3;\n            const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n            if (bytes === 0) {\n                return `0 ${sizes[0]}`;\n            }\n\n            const i = Math.floor(Math.log(bytes) / Math.log(k));\n            const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n            return `${formattedSize} ${sizes[i]}`;\n        }\n    },\n    components: {\n        Button,\n        Badge,\n        TimesIcon\n    }\n};\n</script>\n","<template>\n    <div v-if=\"isAdvanced\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <input ref=\"fileInput\" type=\"file\" @change=\"onFileSelect\" :multiple=\"multiple\" :accept=\"accept\" :disabled=\"chooseDisabled\" v-bind=\"ptm('input')\" />\n        <div :class=\"cx('header')\" v-bind=\"ptm('header')\">\n            <slot name=\"header\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :chooseCallback=\"choose\" :uploadCallback=\"uploader\" :clearCallback=\"clear\">\n                <Button\n                    :label=\"chooseButtonLabel\"\n                    :class=\"chooseButtonClass\"\n                    :style=\"style\"\n                    :disabled=\"disabled\"\n                    :unstyled=\"unstyled\"\n                    @click=\"choose\"\n                    @keydown.enter=\"choose\"\n                    @focus=\"onFocus\"\n                    @blur=\"onBlur\"\n                    v-bind=\"chooseButtonProps\"\n                    :pt=\"ptm('pcChooseButton')\"\n                >\n                    <template #icon=\"iconProps\">\n                        <slot name=\"chooseicon\">\n                            <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n                        </slot>\n                    </template>\n                </Button>\n                <Button v-if=\"showUploadButton\" :class=\"cx('pcUploadButton')\" :label=\"uploadButtonLabel\" @click=\"uploader\" :disabled=\"uploadDisabled\" :unstyled=\"unstyled\" v-bind=\"uploadButtonProps\" :pt=\"ptm('pcUploadButton')\">\n                    <template #icon=\"iconProps\">\n                        <slot name=\"uploadicon\">\n                            <component :is=\"uploadIcon ? 'span' : 'UploadIcon'\" :class=\"[iconProps.class, uploadIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcUploadButton')['icon']\" data-pc-section=\"uploadbuttonicon\" />\n                        </slot>\n                    </template>\n                </Button>\n                <Button v-if=\"showCancelButton\" :class=\"cx('pcCancelButton')\" :label=\"cancelButtonLabel\" @click=\"clear\" :disabled=\"cancelDisabled\" :unstyled=\"unstyled\" v-bind=\"cancelButtonProps\" :pt=\"ptm('pcCancelButton')\">\n                    <template #icon=\"iconProps\">\n                        <slot name=\"cancelicon\">\n                            <component :is=\"cancelIcon ? 'span' : 'TimesIcon'\" :class=\"[iconProps.class, cancelIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcCancelButton')['icon']\" data-pc-section=\"cancelbuttonicon\" />\n                        </slot>\n                    </template>\n                </Button>\n            </slot>\n        </div>\n        <div ref=\"content\" :class=\"cx('content')\" @dragenter=\"onDragEnter\" @dragover=\"onDragOver\" @dragleave=\"onDragLeave\" @drop=\"onDrop\" v-bind=\"ptm('content')\" :data-p-highlight=\"false\">\n            <slot name=\"content\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :removeUploadedFileCallback=\"removeUploadedFile\" :removeFileCallback=\"remove\" :progress=\"progress\" :messages=\"messages\">\n                <ProgressBar v-if=\"hasFiles\" :value=\"progress\" :showValue=\"false\" :unstyled=\"unstyled\" :pt=\"ptm('pcProgressbar')\" />\n                <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n                <div v-if=\"hasFiles\" :class=\"cx('fileList')\">\n                    <FileContent :files=\"files\" @remove=\"remove\" :badgeValue=\"pendingLabel\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n                </div>\n                <div v-if=\"hasUploadedFiles\" :class=\"cx('fileList')\">\n                    <FileContent :files=\"uploadedFiles\" @remove=\"removeUploadedFile\" :badgeValue=\"completedLabel\" badgeSeverity=\"success\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n                </div>\n            </slot>\n            <div v-if=\"$slots.empty && !hasFiles && !hasUploadedFiles\" v-bind=\"ptm('empty')\">\n                <slot name=\"empty\" :chooseCallback=\"choose\"></slot>\n            </div>\n        </div>\n    </div>\n    <div v-else-if=\"isBasic\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n        <Button\n            :label=\"chooseButtonLabel\"\n            :class=\"chooseButtonClass\"\n            :style=\"style\"\n            :disabled=\"disabled\"\n            :unstyled=\"unstyled\"\n            @mouseup=\"onBasicUploaderClick\"\n            @keydown.enter=\"choose\"\n            @focus=\"onFocus\"\n            @blur=\"onBlur\"\n            v-bind=\"chooseButtonProps\"\n            :pt=\"ptm('pcChooseButton')\"\n        >\n            <template #icon=\"iconProps\">\n                <slot name=\"chooseicon\">\n                    <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n                </slot>\n            </template>\n        </Button>\n        <slot v-if=\"!auto\" name=\"filelabel\" :class=\"cx('filelabel')\">\n            <span :class=\"cx('filelabel')\" :files=\"files\">\n                {{ basicFileChosenLabel }}\n            </span>\n        </slot>\n        <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :disabled=\"disabled\" :multiple=\"multiple\" @change=\"onFileSelect\" @focus=\"onFocus\" @blur=\"onBlur\" v-bind=\"ptm('input')\" />\n    </div>\n</template>\n\n<script>\nimport { addClass, removeClass } from '@digivue/utils/dom';\nimport PlusIcon from '@digivue/icons/plus';\nimport TimesIcon from '@digivue/icons/times';\nimport UploadIcon from '@digivue/icons/upload';\nimport Button from 'digivue/button';\nimport Message from 'digivue/message';\nimport ProgressBar from 'digivue/progressbar';\nimport Ripple from 'digivue/ripple';\nimport BaseFileUpload from './BaseFileUpload.vue';\nimport FileContent from './FileContent.vue';\nimport { useForm } from '@inertiajs/vue3';\n\nexport default {\n    name: 'FileUpload',\n    extends: BaseFileUpload,\n    inheritAttrs: false,\n    emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'remove-uploaded-file'],\n    duplicateIEEvent: false,\n    data() {\n        return {\n            uploadedFileCount: 0,\n            files: [],\n            messages: [],\n            focused: false,\n            progress: null,\n            uploadedFiles: [],\n            uploadForm: this.$inertia.form({\n                type: 'AOIQB18',\n                files: []\n            })\n        };\n    },\n    methods: {\n        upload() {\n            if (this.hasFiles) this.uploader();\n        },\n        onBasicUploaderClick(event) {\n            if (event.button === 0) this.$refs.fileInput.click();\n        },\n        onFileSelect(event) {\n            if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n                this.duplicateIEEvent = false;\n\n                return;\n            }\n\n            if (this.isBasic && this.hasFiles) {\n                this.files = [];\n            }\n\n            this.messages = [];\n            this.files = this.files || [];\n            let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n            for (let file of files) {\n                if (!this.isFileSelected(file) && !this.isFileLimitExceeded()) {\n                    if (this.validate(file)) {\n                        if (this.isImage(file)) {\n                            file.objectURL = window.URL.createObjectURL(file);\n                        } else {\n                            file.objectURL = this.otherFileType(file);\n                        }\n\n                        this.files.push(file);\n                    }\n                }\n            }\n\n            this.$emit('select', { originalEvent: event, files: this.files });\n\n            if (this.fileLimit) {\n                this.checkFileLimit();\n            }\n\n            if (this.auto && this.hasFiles && !this.isFileLimitExceeded()) {\n                this.uploader();\n            }\n\n            if (event.type !== 'drop' && this.isIE11()) {\n                this.clearIEInput();\n            } else {\n                this.clearInputElement();\n            }\n        },\n        choose() {\n            this.$refs.fileInput.click();\n        },\n        uploader() {\n            if (this.customUpload) {\n                if (this.fileLimit) {\n                    this.uploadedFileCount += this.files.length;\n                }\n\n                this.$emit('uploader', { files: this.files });\n                // this.clear();\n            } else {\n                let xhr = new XMLHttpRequest();\n                let formData = new FormData();\n\n                this.$emit('before-upload', {\n                    xhr: xhr,\n                    formData: formData\n                });\n\n                for (let file of this.files) {\n                    formData.append(this.name, file, file.name);\n                }\n\n                xhr.upload.addEventListener('progress', (event) => {\n                    if (event.lengthComputable) {\n                        this.progress = Math.round((event.loaded * 100) / event.total);\n                    }\n\n                    this.$emit('progress', {\n                        originalEvent: event,\n                        progress: this.progress\n                    });\n                });\n\n                xhr.onreadystatechange = () => {\n                    if (xhr.readyState === 4) {\n                        this.progress = 0;\n\n                        if (xhr.status >= 200 && xhr.status < 300) {\n                            if (this.fileLimit) {\n                                this.uploadedFileCount += this.files.length;\n                            }\n\n                            this.$emit('upload', {\n                                xhr: xhr,\n                                files: this.files\n                            });\n                        } else {\n                            this.$emit('error', {\n                                xhr: xhr,\n                                files: this.files\n                            });\n                        }\n\n                        this.uploadedFiles.push(...this.files);\n                        this.clear();\n                    }\n                };\n\n                xhr.open('POST', this.url, true);\n\n                this.$emit('before-send', {\n                    xhr: xhr,\n                    formData: formData\n                });\n\n                xhr.withCredentials = this.withCredentials;\n\n                xhr.send(formData);\n            }\n        },\n        clear() {\n            this.files = [];\n            this.messages = null;\n            this.$emit('clear');\n\n            if (this.isAdvanced) {\n                this.clearInputElement();\n            }\n        },\n        onFocus() {\n            this.focused = true;\n        },\n        onBlur() {\n            this.focused = false;\n        },\n        isFileSelected(file) {\n            if (this.files && this.files.length) {\n                for (let sFile of this.files) {\n                    if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n                }\n            }\n\n            return false;\n        },\n        isIE11() {\n            return !!window['MSInputMethodContext'] && !!document['documentMode'];\n        },\n        validate(file) {\n            if (this.accept && !this.isFileTypeValid(file)) {\n                this.messages.push(this.invalidFileTypeMessage.replace('{0}', file.name).replace('{1}', this.accept));\n\n                return false;\n            }\n\n            if (this.maxFileSize && file.size > this.maxFileSize) {\n                this.messages.push(this.invalidFileSizeMessage.replace('{0}', file.name).replace('{1}', this.formatSize(this.maxFileSize)));\n\n                return false;\n            }\n\n            return true;\n        },\n        isFileTypeValid(file) {\n            let acceptableTypes = this.accept.split(',').map((type) => type.trim());\n\n            for (let type of acceptableTypes) {\n                let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n                if (acceptable) {\n                    return true;\n                }\n            }\n\n            return false;\n        },\n        getTypeClass(fileType) {\n            return fileType.substring(0, fileType.indexOf('/'));\n        },\n        isWildcard(fileType) {\n            return fileType.indexOf('*') !== -1;\n        },\n        getFileExtension(file) {\n            return '.' + file.name.split('.').pop();\n        },\n        isImage(file) {\n            return /^image\\//.test(file.type);\n        },\n        otherFileType(file) {\n            switch (this.getFileExtension(file)) {\n                case '.xls':\n                case '.xlsx':\n                case '.xlsm':\n                case '.xlsb':\n                    return 'data:image/png;base64,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';\n                case '.doc':\n                case '.docx':\n                    return 'data:image/png;base64,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';\n                case '.csv':\n                    return 'data:image/png;base64,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';\n                default:\n                    return 'data:image/png;base64,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';\n            }\n\n            return /(\\.xls|\\.xlsx|\\.xlsm|\\.xlsb)$/i.test(file.name);\n        },\n        onDragEnter(event) {\n            if (!this.disabled) {\n                event.stopPropagation();\n                event.preventDefault();\n            }\n        },\n        onDragOver(event) {\n            if (!this.disabled) {\n                !this.isUnstyled && addClass(this.$refs.content, 'p-fileupload-highlight');\n                this.$refs.content.setAttribute('data-p-highlight', true);\n                event.stopPropagation();\n                event.preventDefault();\n            }\n        },\n        onDragLeave() {\n            if (!this.disabled) {\n                !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n                this.$refs.content.setAttribute('data-p-highlight', false);\n            }\n        },\n        onDrop(event) {\n            if (!this.disabled) {\n                !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n                this.$refs.content.setAttribute('data-p-highlight', false);\n                event.stopPropagation();\n                event.preventDefault();\n\n                const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n                const allowDrop = this.multiple || (files && files.length === 1);\n\n                if (allowDrop) {\n                    this.onFileSelect(event);\n                }\n            }\n        },\n        remove(index) {\n            this.clearInputElement();\n            let removedFile = this.files.splice(index, 1)[0];\n            this.messages = null;\n            if (this.fileLimit) {\n                this.checkFileLimit();\n            }\n\n            this.files = [...this.files];\n            this.$emit('remove', {\n                file: removedFile,\n                files: this.files\n            });\n        },\n        removeUploadedFile(index) {\n            let removedFile = this.uploadedFiles.splice(index, 1)[0];\n\n            this.uploadedFiles = [...this.uploadedFiles];\n            this.$emit('remove-uploaded-file', {\n                file: removedFile,\n                files: this.uploadedFiles\n            });\n        },\n        clearInputElement() {\n            this.$refs.fileInput.value = '';\n        },\n        clearIEInput() {\n            if (this.$refs.fileInput) {\n                this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n                this.$refs.fileInput.value = '';\n            }\n        },\n        formatSize(bytes) {\n            const k = 1024;\n            const dm = 3;\n            const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n            if (bytes === 0) {\n                return `0 ${sizes[0]}`;\n            }\n\n            const i = Math.floor(Math.log(bytes) / Math.log(k));\n            const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n            return `${formattedSize} ${sizes[i]}`;\n        },\n        isFileLimitExceeded() {\n            if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focused) {\n                this.focused = false;\n            }\n\n            return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n        },\n        checkFileLimit() {\n            if (this.isFileLimitExceeded()) {\n                this.messages.push(this.invalidFileLimitMessage.replace('{0}', this.fileLimit.toString()));\n            }\n        },\n        onMessageClose() {\n            this.messages = null;\n        }\n    },\n    computed: {\n        isAdvanced() {\n            return this.mode === 'advanced';\n        },\n        isBasic() {\n            return this.mode === 'basic';\n        },\n        chooseButtonClass() {\n            return [this.cx('pcChooseButton'), this.class];\n        },\n        basicFileChosenLabel() {\n            if (this.auto) return this.chooseButtonLabel;\n            else if (this.hasFiles) {\n                if (this.files && this.files.length === 1) return this.files[0].name;\n\n                return this.$primevue.config.locale?.fileChosenMessage?.replace('{0}', this.files.length);\n            }\n\n            return this.$primevue.config.locale?.noFileChosenMessage || '';\n        },\n        hasFiles() {\n            return this.files && this.files.length > 0;\n        },\n        hasUploadedFiles() {\n            return this.uploadedFiles && this.uploadedFiles.length > 0;\n        },\n        chooseDisabled() {\n            return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);\n        },\n        uploadDisabled() {\n            return this.disabled || !this.hasFiles || (this.fileLimit && this.fileLimit < this.files.length);\n        },\n        cancelDisabled() {\n            return this.disabled || !this.hasFiles;\n        },\n        chooseButtonLabel() {\n            return this.chooseLabel || this.$primevue.config.locale.choose;\n        },\n        uploadButtonLabel() {\n            return this.uploadLabel || this.$primevue.config.locale.upload;\n        },\n        cancelButtonLabel() {\n            return this.cancelLabel || this.$primevue.config.locale.cancel;\n        },\n        completedLabel() {\n            return this.$primevue.config.locale.completed;\n        },\n        pendingLabel() {\n            return this.$primevue.config.locale.pending;\n        }\n    },\n    components: {\n        Button,\n        ProgressBar,\n        Message,\n        FileContent,\n        PlusIcon,\n        UploadIcon,\n        TimesIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div v-if=\"isAdvanced\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <input ref=\"fileInput\" type=\"file\" @change=\"onFileSelect\" :multiple=\"multiple\" :accept=\"accept\" :disabled=\"chooseDisabled\" v-bind=\"ptm('input')\" />\n        <div :class=\"cx('header')\" v-bind=\"ptm('header')\">\n            <slot name=\"header\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :chooseCallback=\"choose\" :uploadCallback=\"uploader\" :clearCallback=\"clear\">\n                <Button\n                    :label=\"chooseButtonLabel\"\n                    :class=\"chooseButtonClass\"\n                    :style=\"style\"\n                    :disabled=\"disabled\"\n                    :unstyled=\"unstyled\"\n                    @click=\"choose\"\n                    @keydown.enter=\"choose\"\n                    @focus=\"onFocus\"\n                    @blur=\"onBlur\"\n                    v-bind=\"chooseButtonProps\"\n                    :pt=\"ptm('pcChooseButton')\"\n                >\n                    <template #icon=\"iconProps\">\n                        <slot name=\"chooseicon\">\n                            <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n                        </slot>\n                    </template>\n                </Button>\n                <Button v-if=\"showUploadButton\" :class=\"cx('pcUploadButton')\" :label=\"uploadButtonLabel\" @click=\"uploader\" :disabled=\"uploadDisabled\" :unstyled=\"unstyled\" v-bind=\"uploadButtonProps\" :pt=\"ptm('pcUploadButton')\">\n                    <template #icon=\"iconProps\">\n                        <slot name=\"uploadicon\">\n                            <component :is=\"uploadIcon ? 'span' : 'UploadIcon'\" :class=\"[iconProps.class, uploadIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcUploadButton')['icon']\" data-pc-section=\"uploadbuttonicon\" />\n                        </slot>\n                    </template>\n                </Button>\n                <Button v-if=\"showCancelButton\" :class=\"cx('pcCancelButton')\" :label=\"cancelButtonLabel\" @click=\"clear\" :disabled=\"cancelDisabled\" :unstyled=\"unstyled\" v-bind=\"cancelButtonProps\" :pt=\"ptm('pcCancelButton')\">\n                    <template #icon=\"iconProps\">\n                        <slot name=\"cancelicon\">\n                            <component :is=\"cancelIcon ? 'span' : 'TimesIcon'\" :class=\"[iconProps.class, cancelIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcCancelButton')['icon']\" data-pc-section=\"cancelbuttonicon\" />\n                        </slot>\n                    </template>\n                </Button>\n            </slot>\n        </div>\n        <div ref=\"content\" :class=\"cx('content')\" @dragenter=\"onDragEnter\" @dragover=\"onDragOver\" @dragleave=\"onDragLeave\" @drop=\"onDrop\" v-bind=\"ptm('content')\" :data-p-highlight=\"false\">\n            <slot name=\"content\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :removeUploadedFileCallback=\"removeUploadedFile\" :removeFileCallback=\"remove\" :progress=\"progress\" :messages=\"messages\">\n                <ProgressBar v-if=\"hasFiles\" :value=\"progress\" :showValue=\"false\" :unstyled=\"unstyled\" :pt=\"ptm('pcProgressbar')\" />\n                <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n                <div v-if=\"hasFiles\" :class=\"cx('fileList')\">\n                    <FileContent :files=\"files\" @remove=\"remove\" :badgeValue=\"pendingLabel\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n                </div>\n                <div v-if=\"hasUploadedFiles\" :class=\"cx('fileList')\">\n                    <FileContent :files=\"uploadedFiles\" @remove=\"removeUploadedFile\" :badgeValue=\"completedLabel\" badgeSeverity=\"success\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n                </div>\n            </slot>\n            <div v-if=\"$slots.empty && !hasFiles && !hasUploadedFiles\" v-bind=\"ptm('empty')\">\n                <slot name=\"empty\" :chooseCallback=\"choose\"></slot>\n            </div>\n        </div>\n    </div>\n    <div v-else-if=\"isBasic\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n        <Button\n            :label=\"chooseButtonLabel\"\n            :class=\"chooseButtonClass\"\n            :style=\"style\"\n            :disabled=\"disabled\"\n            :unstyled=\"unstyled\"\n            @mouseup=\"onBasicUploaderClick\"\n            @keydown.enter=\"choose\"\n            @focus=\"onFocus\"\n            @blur=\"onBlur\"\n            v-bind=\"chooseButtonProps\"\n            :pt=\"ptm('pcChooseButton')\"\n        >\n            <template #icon=\"iconProps\">\n                <slot name=\"chooseicon\">\n                    <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n                </slot>\n            </template>\n        </Button>\n        <slot v-if=\"!auto\" name=\"filelabel\" :class=\"cx('filelabel')\">\n            <span :class=\"cx('filelabel')\" :files=\"files\">\n                {{ basicFileChosenLabel }}\n            </span>\n        </slot>\n        <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :disabled=\"disabled\" :multiple=\"multiple\" @change=\"onFileSelect\" @focus=\"onFocus\" @blur=\"onBlur\" v-bind=\"ptm('input')\" />\n    </div>\n</template>\n\n<script>\nimport { addClass, removeClass } from '@digivue/utils/dom';\nimport PlusIcon from '@digivue/icons/plus';\nimport TimesIcon from '@digivue/icons/times';\nimport UploadIcon from '@digivue/icons/upload';\nimport Button from 'digivue/button';\nimport Message from 'digivue/message';\nimport ProgressBar from 'digivue/progressbar';\nimport Ripple from 'digivue/ripple';\nimport BaseFileUpload from './BaseFileUpload.vue';\nimport FileContent from './FileContent.vue';\nimport { useForm } from '@inertiajs/vue3';\n\nexport default {\n    name: 'FileUpload',\n    extends: BaseFileUpload,\n    inheritAttrs: false,\n    emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'remove-uploaded-file'],\n    duplicateIEEvent: false,\n    data() {\n        return {\n            uploadedFileCount: 0,\n            files: [],\n            messages: [],\n            focused: false,\n            progress: null,\n            uploadedFiles: [],\n            uploadForm: this.$inertia.form({\n                type: 'AOIQB18',\n                files: []\n            })\n        };\n    },\n    methods: {\n        upload() {\n            if (this.hasFiles) this.uploader();\n        },\n        onBasicUploaderClick(event) {\n            if (event.button === 0) this.$refs.fileInput.click();\n        },\n        onFileSelect(event) {\n            if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n                this.duplicateIEEvent = false;\n\n                return;\n            }\n\n            if (this.isBasic && this.hasFiles) {\n                this.files = [];\n            }\n\n            this.messages = [];\n            this.files = this.files || [];\n            let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n            for (let file of files) {\n                if (!this.isFileSelected(file) && !this.isFileLimitExceeded()) {\n                    if (this.validate(file)) {\n                        if (this.isImage(file)) {\n                            file.objectURL = window.URL.createObjectURL(file);\n                        } else {\n                            file.objectURL = this.otherFileType(file);\n                        }\n\n                        this.files.push(file);\n                    }\n                }\n            }\n\n            this.$emit('select', { originalEvent: event, files: this.files });\n\n            if (this.fileLimit) {\n                this.checkFileLimit();\n            }\n\n            if (this.auto && this.hasFiles && !this.isFileLimitExceeded()) {\n                this.uploader();\n            }\n\n            if (event.type !== 'drop' && this.isIE11()) {\n                this.clearIEInput();\n            } else {\n                this.clearInputElement();\n            }\n        },\n        choose() {\n            this.$refs.fileInput.click();\n        },\n        uploader() {\n            if (this.customUpload) {\n                if (this.fileLimit) {\n                    this.uploadedFileCount += this.files.length;\n                }\n\n                this.$emit('uploader', { files: this.files });\n                // this.clear();\n            } else {\n                let xhr = new XMLHttpRequest();\n                let formData = new FormData();\n\n                this.$emit('before-upload', {\n                    xhr: xhr,\n                    formData: formData\n                });\n\n                for (let file of this.files) {\n                    formData.append(this.name, file, file.name);\n                }\n\n                xhr.upload.addEventListener('progress', (event) => {\n                    if (event.lengthComputable) {\n                        this.progress = Math.round((event.loaded * 100) / event.total);\n                    }\n\n                    this.$emit('progress', {\n                        originalEvent: event,\n                        progress: this.progress\n                    });\n                });\n\n                xhr.onreadystatechange = () => {\n                    if (xhr.readyState === 4) {\n                        this.progress = 0;\n\n                        if (xhr.status >= 200 && xhr.status < 300) {\n                            if (this.fileLimit) {\n                                this.uploadedFileCount += this.files.length;\n                            }\n\n                            this.$emit('upload', {\n                                xhr: xhr,\n                                files: this.files\n                            });\n                        } else {\n                            this.$emit('error', {\n                                xhr: xhr,\n                                files: this.files\n                            });\n                        }\n\n                        this.uploadedFiles.push(...this.files);\n                        this.clear();\n                    }\n                };\n\n                xhr.open('POST', this.url, true);\n\n                this.$emit('before-send', {\n                    xhr: xhr,\n                    formData: formData\n                });\n\n                xhr.withCredentials = this.withCredentials;\n\n                xhr.send(formData);\n            }\n        },\n        clear() {\n            this.files = [];\n            this.messages = null;\n            this.$emit('clear');\n\n            if (this.isAdvanced) {\n                this.clearInputElement();\n            }\n        },\n        onFocus() {\n            this.focused = true;\n        },\n        onBlur() {\n            this.focused = false;\n        },\n        isFileSelected(file) {\n            if (this.files && this.files.length) {\n                for (let sFile of this.files) {\n                    if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n                }\n            }\n\n            return false;\n        },\n        isIE11() {\n            return !!window['MSInputMethodContext'] && !!document['documentMode'];\n        },\n        validate(file) {\n            if (this.accept && !this.isFileTypeValid(file)) {\n                this.messages.push(this.invalidFileTypeMessage.replace('{0}', file.name).replace('{1}', this.accept));\n\n                return false;\n            }\n\n            if (this.maxFileSize && file.size > this.maxFileSize) {\n                this.messages.push(this.invalidFileSizeMessage.replace('{0}', file.name).replace('{1}', this.formatSize(this.maxFileSize)));\n\n                return false;\n            }\n\n            return true;\n        },\n        isFileTypeValid(file) {\n            let acceptableTypes = this.accept.split(',').map((type) => type.trim());\n\n            for (let type of acceptableTypes) {\n                let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n                if (acceptable) {\n                    return true;\n                }\n            }\n\n            return false;\n        },\n        getTypeClass(fileType) {\n            return fileType.substring(0, fileType.indexOf('/'));\n        },\n        isWildcard(fileType) {\n            return fileType.indexOf('*') !== -1;\n        },\n        getFileExtension(file) {\n            return '.' + file.name.split('.').pop();\n        },\n        isImage(file) {\n            return /^image\\//.test(file.type);\n        },\n        otherFileType(file) {\n            switch (this.getFileExtension(file)) {\n                case '.xls':\n                case '.xlsx':\n                case '.xlsm':\n                case '.xlsb':\n                    return 'data:image/png;base64,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';\n                case '.doc':\n                case '.docx':\n                    return 'data:image/png;base64,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';\n                case '.csv':\n                    return 'data:image/png;base64,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';\n                default:\n                    return 'data:image/png;base64,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';\n            }\n\n            return /(\\.xls|\\.xlsx|\\.xlsm|\\.xlsb)$/i.test(file.name);\n        },\n        onDragEnter(event) {\n            if (!this.disabled) {\n                event.stopPropagation();\n                event.preventDefault();\n            }\n        },\n        onDragOver(event) {\n            if (!this.disabled) {\n                !this.isUnstyled && addClass(this.$refs.content, 'p-fileupload-highlight');\n                this.$refs.content.setAttribute('data-p-highlight', true);\n                event.stopPropagation();\n                event.preventDefault();\n            }\n        },\n        onDragLeave() {\n            if (!this.disabled) {\n                !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n                this.$refs.content.setAttribute('data-p-highlight', false);\n            }\n        },\n        onDrop(event) {\n            if (!this.disabled) {\n                !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n                this.$refs.content.setAttribute('data-p-highlight', false);\n                event.stopPropagation();\n                event.preventDefault();\n\n                const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n                const allowDrop = this.multiple || (files && files.length === 1);\n\n                if (allowDrop) {\n                    this.onFileSelect(event);\n                }\n            }\n        },\n        remove(index) {\n            this.clearInputElement();\n            let removedFile = this.files.splice(index, 1)[0];\n            this.messages = null;\n            if (this.fileLimit) {\n                this.checkFileLimit();\n            }\n\n            this.files = [...this.files];\n            this.$emit('remove', {\n                file: removedFile,\n                files: this.files\n            });\n        },\n        removeUploadedFile(index) {\n            let removedFile = this.uploadedFiles.splice(index, 1)[0];\n\n            this.uploadedFiles = [...this.uploadedFiles];\n            this.$emit('remove-uploaded-file', {\n                file: removedFile,\n                files: this.uploadedFiles\n            });\n        },\n        clearInputElement() {\n            this.$refs.fileInput.value = '';\n        },\n        clearIEInput() {\n            if (this.$refs.fileInput) {\n                this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n                this.$refs.fileInput.value = '';\n            }\n        },\n        formatSize(bytes) {\n            const k = 1024;\n            const dm = 3;\n            const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n            if (bytes === 0) {\n                return `0 ${sizes[0]}`;\n            }\n\n            const i = Math.floor(Math.log(bytes) / Math.log(k));\n            const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n            return `${formattedSize} ${sizes[i]}`;\n        },\n        isFileLimitExceeded() {\n            if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focused) {\n                this.focused = false;\n            }\n\n            return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n        },\n        checkFileLimit() {\n            if (this.isFileLimitExceeded()) {\n                this.messages.push(this.invalidFileLimitMessage.replace('{0}', this.fileLimit.toString()));\n            }\n        },\n        onMessageClose() {\n            this.messages = null;\n        }\n    },\n    computed: {\n        isAdvanced() {\n            return this.mode === 'advanced';\n        },\n        isBasic() {\n            return this.mode === 'basic';\n        },\n        chooseButtonClass() {\n            return [this.cx('pcChooseButton'), this.class];\n        },\n        basicFileChosenLabel() {\n            if (this.auto) return this.chooseButtonLabel;\n            else if (this.hasFiles) {\n                if (this.files && this.files.length === 1) return this.files[0].name;\n\n                return this.$primevue.config.locale?.fileChosenMessage?.replace('{0}', this.files.length);\n            }\n\n            return this.$primevue.config.locale?.noFileChosenMessage || '';\n        },\n        hasFiles() {\n            return this.files && this.files.length > 0;\n        },\n        hasUploadedFiles() {\n            return this.uploadedFiles && this.uploadedFiles.length > 0;\n        },\n        chooseDisabled() {\n            return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);\n        },\n        uploadDisabled() {\n            return this.disabled || !this.hasFiles || (this.fileLimit && this.fileLimit < this.files.length);\n        },\n        cancelDisabled() {\n            return this.disabled || !this.hasFiles;\n        },\n        chooseButtonLabel() {\n            return this.chooseLabel || this.$primevue.config.locale.choose;\n        },\n        uploadButtonLabel() {\n            return this.uploadLabel || this.$primevue.config.locale.upload;\n        },\n        cancelButtonLabel() {\n            return this.cancelLabel || this.$primevue.config.locale.cancel;\n        },\n        completedLabel() {\n            return this.$primevue.config.locale.completed;\n        },\n        pendingLabel() {\n            return this.$primevue.config.locale.pending;\n        }\n    },\n    components: {\n        Button,\n        ProgressBar,\n        Message,\n        FileContent,\n        PlusIcon,\n        UploadIcon,\n        TimesIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","type","String","url","mode","multiple","Boolean","accept","disabled","auto","maxFileSize","Number","invalidFileSizeMessage","invalidFileTypeMessage","fileLimit","invalidFileLimitMessage","withCredentials","previewWidth","chooseLabel","uploadLabel","cancelLabel","customUpload","showUploadButton","showCancelButton","chooseIcon","undefined","uploadIcon","cancelIcon","style","chooseButtonProps","uploadButtonProps","Object","default","severity","cancelButtonProps","FileUploadStyle","provide","$pcFileUpload","$parentInstance","hostName","emits","files","Array","badgeSeverity","badgeValue","templates","methods","formatSize","bytes","_this$$primevue$confi","k","dm","sizes","$primevue","config","locale","fileSizeTypes","concat","i","Math","floor","log","formattedSize","parseFloat","pow","toFixed","components","Button","Badge","TimesIcon","_openBlock","_createElementBlock","_Fragment","_renderList","$props","file","index","_mergeProps","key","size","_ctx","cx","ptm","_createElementVNode","role","alt","src","objectURL","width","_hoisted_1","_toDisplayString","$options","_createVNode","_component_Badge","value","unstyled","pt","_component_Button","onClick","$event","$emit","text","rounded","icon","_withCtx","iconProps","fileremoveicon","_createBlock","_resolveDynamicComponent","_normalizeClass","_component_TimesIcon","BaseFileUpload","inheritAttrs","duplicateIEEvent","data","uploadedFileCount","messages","focused","progress","uploadedFiles","uploadForm","$inertia","form","upload","hasFiles","uploader","onBasicUploaderClick","event","button","$refs","fileInput","click","onFileSelect","isIE11","isBasic","dataTransfer","target","_iterator","_createForOfIteratorHelper","_step","s","n","done","isFileSelected","isFileLimitExceeded","validate","isImage","window","URL","createObjectURL","otherFileType","push","err","e","f","originalEvent","checkFileLimit","clearIEInput","clearInputElement","choose","_this","length","xhr","XMLHttpRequest","formData","FormData","_iterator2","_step2","append","addEventListener","lengthComputable","round","loaded","total","onreadystatechange","readyState","_this$uploadedFiles","status","apply","_toConsumableArray","clear","open","send","isAdvanced","onFocus","onBlur","_iterator3","_step3","sFile","document","isFileTypeValid","replace","acceptableTypes","split","map","trim","_iterator4","_step4","acceptable","isWildcard","getTypeClass","getFileExtension","toLowerCase","fileType","substring","indexOf","pop","test","onDragEnter","stopPropagation","preventDefault","onDragOver","isUnstyled","addClass","content","setAttribute","onDragLeave","removeClass","onDrop","allowDrop","remove","removedFile","splice","removeUploadedFile","toString","onMessageClose","computed","chooseButtonClass","basicFileChosenLabel","_this$$primevue$confi3","chooseButtonLabel","_this$$primevue$confi2","fileChosenMessage","noFileChosenMessage","hasUploadedFiles","chooseDisabled","uploadDisabled","cancelDisabled","uploadButtonLabel","cancelButtonLabel","cancel","completedLabel","completed","pendingLabel","pending","ProgressBar","Message","FileContent","PlusIcon","UploadIcon","directives","ripple","Ripple","ptmi","ref","onChange","arguments","_renderSlot","$slots","$data","chooseCallback","uploadCallback","clearCallback","label","onKeydown","onDragenter","onDragover","onDragleave","removeUploadedFileCallback","removeFileCallback","_component_ProgressBar","showValue","msg","_component_Message","onClose","_component_FileContent","onRemove","empty","onMouseup","_hoisted_2","_hoisted_3"],"mappings":"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"}