@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 4.12 kB
Source Map (JSON)
{"version":3,"file":"file-icon.mjs","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":";;AAMA,MAAMA,wBAAiB,IAAiC;AAGxDA,EAAW,IAAI,aAAa;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEDA,EAAW,IAAI,aAAa;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEDA,EAAW;AAAA,EACT;AAAA,EACA;AAAA,IACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,KAAK;AAAA,IACrD,CAAC,OAAO,QAAQ,MAAM;AAAA,IACtB,CAAC,QAAQ,MAAM;AAAA,IACf,CAAC,MAAM;AAAA,IACP,CAAC,QAAQ,SAAS,KAAK;AAAA,IACvB,CAAC,KAAK;AAAA,IACN,CAAC,QAAQ,KAAK;AAAA,IACd,CAAC,MAAM,OAAO,OAAO,OAAO,KAAK;AAAA,EAAA,EACjC,KAAK;AACT;AACAA,EAAW,IAAI,aAAa;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACDA,EAAW,IAAI,WAAW;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACDA,EAAW;AAAA,EACT;AAAA,EACA;AAAA,IACE,CAAC,OAAO,MAAM;AAAA,IACd,CAAC,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,KAAK;AAAA,IAC7C,CAAC,OAAO,OAAO,IAAI;AAAA,EAAA,EACnB,KAAK;AACT;AACAA,EAAW,IAAI,QAAQ,CAAC,SAAS,CAAC;AAElB,SAAAC,EAAaC,IAAQC,KAAY;AAC/C,SAAOC,EAAS,MAAM;AACpB,UAAMC,IAA2C,CAAC;AAElD,eAAW,CAACC,GAAUC,CAAK,KAAKP,EAAW;AACzC,UAAIO,KAAA,QAAAA,EAAO;AACT,mBAAWC,KAAQD;AACjB,UAAAF,EAAIG,CAAI,IAAIN,EAAM,MAAMI,CAAQ;AAK/B,WAAAD;AAAA,EAAA,CACR;AACH;"}