{"version":3,"file":"utils.mjs","sources":["../../../../../packages/preview/utils/utils.ts"],"sourcesContent":["import type {FileRenderType, PreviewType} from '../preview.interface'\nimport {\n    arrayBufferPreviewTypeList,\n    getPreviewTypeByFileType,\n    imagePreviewTypeList,\n    pdfPreviewTypeList,\n    textFilePreviewTypeList,\n    videoPreviewTypeList,\n} from '../preview.const'\n\n/**\n * 获取文件类型\n * @param file\n */\nexport function getFileType(file: File): string {\n    const fileName = file.name\n    const idx = fileName.lastIndexOf('.')\n    return fileName.substring(idx + 1)\n}\n\n/**\n * 获取文件名\n * @param file\n */\nexport function getFileName(file: File): string {\n    const fileAllName = file.name\n    const idx = fileAllName.lastIndexOf('.')\n    return fileAllName.substring(0, idx)\n}\n\n/**\n * 通过文件类型获取fileRender\n */\nexport function getFileRenderByFile(file: File): Promise<ArrayBuffer | string> {\n    const previewType = getPreviewTypeByFileType(getFileType(file))\n    const renderType = getFileRenderType(previewType)\n    return new Promise((resolve) => {\n        const raw = file\n        const fileReader = new FileReader()\n        switch (renderType) {\n            case 'text':\n                fileReader.readAsText(raw)\n                fileReader.onload = () => {\n                    resolve(fileReader.result)\n                }\n                break\n            case 'arrayBuffer':\n                fileReader.readAsArrayBuffer(raw)\n                fileReader.onload = () => {\n                    resolve(fileReader.result)\n                }\n                break\n            case 'image':\n                resolve(window.URL.createObjectURL(raw))\n                break\n            case 'pdf': {\n                const pdfBloBlob = new Blob([raw], {type: 'application/pdf'})\n                const pdfBlobUrl = URL.createObjectURL(pdfBloBlob)\n                resolve(pdfBlobUrl)\n                break\n            }\n            case 'video': {\n                const videoBlobUrl = URL.createObjectURL(new Blob([raw], {type: 'video/mp4'}))\n                resolve(videoBlobUrl)\n                break\n            }\n            default:\n                resolve(window.URL.createObjectURL(raw))\n                break\n        }\n    })\n}\n\n/**\n * 获取文件渲染数据类型\n * @param previewType\n */\nexport function getFileRenderType(previewType: PreviewType): FileRenderType {\n    const types: Record<FileRenderType, boolean> = {\n        text: textFilePreviewTypeList.includes(previewType),\n        arrayBuffer: arrayBufferPreviewTypeList.includes(previewType),\n        image: imagePreviewTypeList.includes(previewType),\n        pdf: pdfPreviewTypeList.includes(previewType),\n        video: videoPreviewTypeList.includes(previewType),\n    }\n    return Object.keys(types)!.find(key => types[key]) as FileRenderType\n}\n"],"names":["getFileType","file","fileName","idx","getFileName","fileAllName","getFileRenderByFile","previewType","getPreviewTypeByFileType","renderType","getFileRenderType","resolve","raw","fileReader","pdfBloBlob","pdfBlobUrl","videoBlobUrl","types","textFilePreviewTypeList","arrayBufferPreviewTypeList","imagePreviewTypeList","pdfPreviewTypeList","videoPreviewTypeList","key"],"mappings":";AAcO,SAASA,EAAYC,GAAoB;AAC5C,QAAMC,IAAWD,EAAK,MAChBE,IAAMD,EAAS,YAAY,GAAG;AAC7B,SAAAA,EAAS,UAAUC,IAAM,CAAC;AACrC;AAMO,SAASC,EAAYH,GAAoB;AAC5C,QAAMI,IAAcJ,EAAK,MACnBE,IAAME,EAAY,YAAY,GAAG;AAChC,SAAAA,EAAY,UAAU,GAAGF,CAAG;AACvC;AAKO,SAASG,EAAoBL,GAA2C;AAC3E,QAAMM,IAAcC,EAAyBR,EAAYC,CAAI,CAAC,GACxDQ,IAAaC,EAAkBH,CAAW;AACzC,SAAA,IAAI,QAAQ,CAACI,MAAY;AAC5B,UAAMC,IAAMX,GACNY,IAAa,IAAI;AACvB,YAAQJ,GAAY;AAAA,MAChB,KAAK;AACD,QAAAI,EAAW,WAAWD,CAAG,GACzBC,EAAW,SAAS,MAAM;AACtB,UAAAF,EAAQE,EAAW,MAAM;AAAA,QAAA;AAE7B;AAAA,MACJ,KAAK;AACD,QAAAA,EAAW,kBAAkBD,CAAG,GAChCC,EAAW,SAAS,MAAM;AACtB,UAAAF,EAAQE,EAAW,MAAM;AAAA,QAAA;AAE7B;AAAA,MACJ,KAAK;AACD,QAAAF,EAAQ,OAAO,IAAI,gBAAgBC,CAAG,CAAC;AACvC;AAAA,MACJ,KAAK,OAAO;AACF,cAAAE,IAAa,IAAI,KAAK,CAACF,CAAG,GAAG,EAAC,MAAM,kBAAA,CAAkB,GACtDG,IAAa,IAAI,gBAAgBD,CAAU;AACjD,QAAAH,EAAQI,CAAU;AAClB;AAAA,MACJ;AAAA,MACA,KAAK,SAAS;AACV,cAAMC,IAAe,IAAI,gBAAgB,IAAI,KAAK,CAACJ,CAAG,GAAG,EAAC,MAAM,YAAW,CAAC,CAAC;AAC7E,QAAAD,EAAQK,CAAY;AACpB;AAAA,MACJ;AAAA,MACA;AACI,QAAAL,EAAQ,OAAO,IAAI,gBAAgBC,CAAG,CAAC;AACvC;AAAA,IACR;AAAA,EAAA,CACH;AACL;AAMO,SAASF,EAAkBH,GAA0C;AACxE,QAAMU,IAAyC;AAAA,IAC3C,MAAMC,EAAwB,SAASX,CAAW;AAAA,IAClD,aAAaY,EAA2B,SAASZ,CAAW;AAAA,IAC5D,OAAOa,EAAqB,SAASb,CAAW;AAAA,IAChD,KAAKc,EAAmB,SAASd,CAAW;AAAA,IAC5C,OAAOe,EAAqB,SAASf,CAAW;AAAA,EAAA;AAE7C,SAAA,OAAO,KAAKU,CAAK,EAAG,KAAK,CAAOM,MAAAN,EAAMM,CAAG,CAAC;AACrD;"}