vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 3.63 kB
Source Map (JSON)
{"version":3,"file":"file-icon.cjs","sources":["../../../components/upload/file-icon.ts"],"sourcesContent":["import { computed } from 'vue'\n\nimport { useIcons } from '@vexip-ui/config'\n\nimport type { IconsConfig } from '@vexip-ui/config'\n\nconst iconConfig = new Map<keyof IconsConfig, string[]>()\n\n// iconConfig.set('fileWord', ['doc', 'docx'])\niconConfig.set('fileVideo', [\n 'mp4',\n 'flv',\n 'mkv',\n 'rm',\n 'rmvb',\n 'mov',\n 'mtv',\n 'wnv',\n 'avi',\n '3gp',\n 'amv',\n 'dmv',\n])\n// iconConfig.set('filePdf', ['pdf'])\niconConfig.set('fileImage', [\n 'bmp',\n 'jpg',\n 'jpeg',\n 'png',\n 'tif',\n 'gif',\n 'pcx',\n 'tga',\n 'exif',\n 'fpx',\n 'svg',\n 'psd',\n 'cdr',\n 'pcd',\n 'dxf',\n 'ufo',\n 'eps',\n 'ai',\n 'raw',\n 'wmf',\n 'webp',\n])\n// iconConfig.set('fileExcel', ['xls', 'xlsx', 'xlsm', 'xlsb', 'xlam', 'csv'])\niconConfig.set(\n 'fileCode',\n [\n [\n 'json',\n 'xml',\n 'property',\n 'class',\n 'c',\n 'cpp',\n 'cc',\n 'cxx',\n 'h',\n 'hpp',\n 'hxx',\n 'cs',\n 'yml',\n 'yaml',\n 'ts',\n 'tsx',\n ],\n ['js', 'jsx', 'mjs', 'cjs', 'ts', 'tsx', 'mts', 'cts'],\n ['css', 'styl', 'pcss'],\n ['sass', 'scss'],\n ['less'],\n ['java', 'class', 'jsp'],\n ['vue'],\n ['html', 'htm'],\n ['py', 'pyc', 'pyw', 'pyo', 'pyd'],\n ].flat(),\n)\niconConfig.set('fileAudio', [\n 'cd',\n 'wave',\n 'aiff',\n 'mpeg',\n 'mp3',\n 'mpeg-4',\n 'midi',\n 'wma',\n 'ra',\n 'rm',\n 'rmx',\n 'vqf',\n 'amr',\n 'ape',\n 'flac',\n 'aac',\n])\niconConfig.set('fileZip', [\n 'rar',\n 'zip',\n '7z',\n 'cab',\n 'arj',\n 'lzh',\n 'tar',\n 'gz',\n 'ace',\n 'uue',\n 'bz2',\n 'jar',\n 'iso',\n])\niconConfig.set(\n 'fileText',\n [\n ['doc', 'docx'],\n ['xls', 'xlsx', 'xlsm', 'xlsb', 'xlam', 'csv'],\n ['pdf', 'txt', 'md'],\n ].flat(),\n)\niconConfig.set('file', ['default'])\n\nexport function useFileIcons(icons = useIcons()) {\n return computed(() => {\n const map: Record<string, Record<string, any>> = {}\n\n for (const [iconName, types] of iconConfig.entries()) {\n if (types?.length) {\n for (const type of types) {\n map[type] = icons.value[iconName]\n }\n }\n }\n\n return map\n })\n}\n"],"names":["iconConfig","useFileIcons","icons","useIcons","computed","map","iconName","types","type"],"mappings":"qIAMMA,MAAiB,IAGvBA,EAAW,IAAI,YAAa,CAC1B,MACA,MACA,MACA,KACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,CAAC,EAEDA,EAAW,IAAI,YAAa,CAC1B,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACF,CAAC,EAEDA,EAAW,IACT,WACA,CACE,CACE,OACA,MACA,WACA,QACA,IACA,MACA,KACA,MACA,IACA,MACA,MACA,KACA,MACA,OACA,KACA,KACF,EACA,CAAC,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,KAAK,EACrD,CAAC,MAAO,OAAQ,MAAM,EACtB,CAAC,OAAQ,MAAM,EACf,CAAC,MAAM,EACP,CAAC,OAAQ,QAAS,KAAK,EACvB,CAAC,KAAK,EACN,CAAC,OAAQ,KAAK,EACd,CAAC,KAAM,MAAO,MAAO,MAAO,KAAK,CAAA,EACjC,KAAK,CACT,EACAA,EAAW,IAAI,YAAa,CAC1B,KACA,OACA,OACA,OACA,MACA,SACA,OACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,OACA,KACF,CAAC,EACDA,EAAW,IAAI,UAAW,CACxB,MACA,MACA,KACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,KACF,CAAC,EACDA,EAAW,IACT,WACA,CACE,CAAC,MAAO,MAAM,EACd,CAAC,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,KAAK,EAC7C,CAAC,MAAO,MAAO,IAAI,CAAA,EACnB,KAAK,CACT,EACAA,EAAW,IAAI,OAAQ,CAAC,SAAS,CAAC,EAElB,SAAAC,EAAaC,EAAQC,EAAAA,WAAY,CAC/C,OAAOC,WAAS,IAAM,CACpB,MAAMC,EAA2C,CAAC,EAElD,SAAW,CAACC,EAAUC,CAAK,IAAKP,EAAW,UACzC,GAAIO,GAAA,MAAAA,EAAO,OACT,UAAWC,KAAQD,EACjBF,EAAIG,CAAI,EAAIN,EAAM,MAAMI,CAAQ,EAK/B,OAAAD,CAAA,CACR,CACH"}