{"version":3,"file":"oy3bHeBq.js","sources":["../../../../composables/useFileUpload.ts","../../../../components/FileUploader/FileUploader.vue"],"sourcesContent":["import { readFileAsDataURL } from '@/utils';\nimport { ref } from 'vue';\n\nexport function useFileUpload(options = {}) {\n const file = ref(null);\n const error = ref('');\n const preview = ref('');\n const fileInput = ref(null);\n\n const triggerFileInput = () => {\n fileInput.value?.click();\n };\n\n const validateFile = async (\n newFile: File,\n validationRules: Array<{\n validate: (file: File) => boolean | Promise;\n message: string;\n }>\n ) => {\n for (const rule of validationRules) {\n if (!(await rule.validate(newFile))) {\n error.value = rule.message;\n return false;\n }\n }\n return true;\n };\n\n const addFile = async (\n newFile: File,\n validationRules: Array<{\n validate: (file: File) => boolean | Promise;\n message: string;\n }>\n ) => {\n error.value = '';\n if (await validateFile(newFile, validationRules)) {\n file.value = newFile;\n if (newFile.type.startsWith('image/')) {\n preview.value = (await readFileAsDataURL(newFile)) as string;\n }\n }\n };\n\n const removeFile = () => {\n file.value = null;\n preview.value = '';\n };\n\n return {\n file,\n error,\n preview,\n fileInput,\n triggerFileInput,\n addFile,\n removeFile\n };\n}\n","\n\n\n"],"names":["useFileUpload","options","file","ref","error","preview","fileInput","triggerFileInput","_a","validateFile","newFile","validationRules","rule","readFileAsDataURL","props","__props","emit","__emit","addFile","removeFile","onFileChange","event"],"mappings":"ocAGgB,SAAAA,EAAcC,EAAU,GAAI,CACpC,MAAAC,EAAOC,EAAiB,IAAI,EAC5BC,EAAQD,EAAY,EAAE,EACtBE,EAAUF,EAAY,EAAE,EACxBG,EAAYH,EAA6B,IAAI,EAE7CI,EAAmB,IAAM,QAC7BC,EAAAF,EAAU,QAAV,MAAAE,EAAiB,OACnB,EAEMC,EAAe,MACnBC,EACAC,IAIG,CACH,UAAWC,KAAQD,EACjB,GAAI,CAAE,MAAMC,EAAK,SAASF,CAAO,EAC/B,OAAAN,EAAM,MAAQQ,EAAK,QACZ,GAGJ,MAAA,EACT,EAuBO,MAAA,CACL,KAAAV,EACA,MAAAE,EACA,QAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,QA3Bc,MACdG,EACAC,IAIG,CACHP,EAAM,MAAQ,GACV,MAAMK,EAAaC,EAASC,CAAe,IAC7CT,EAAK,MAAQQ,EACTA,EAAQ,KAAK,WAAW,QAAQ,IAC1BL,EAAA,MAAS,MAAMQ,EAAkBH,CAAO,GAGtD,EAcE,WAZiB,IAAM,CACvBR,EAAK,MAAQ,KACbG,EAAQ,MAAQ,EAClB,CAUA,CACF,iNCpCE,MAAMS,EAAQC,EAURC,EAAOC,EAIP,CACJ,KAAAf,EACA,MAAAE,EACA,QAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,QAAAW,EACA,WAAAC,GACEnB,EAAc,EAEdc,EAAM,iBACRT,EAAQ,MAAQS,EAAM,gBAGlB,MAAAM,EAAe,MAAOC,GAAiB,OAC3C,MAAMX,GAAWF,EAAAa,EAAM,OAA4B,QAAlC,YAAAb,EAA0C,GACvDE,IACF,MAAMQ,EAAQR,EAASI,EAAM,iBAAmB,CAAA,CAAE,EAC7CE,EAAA,oBAAqBd,EAAK,KAAK,EAExC"}