{"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"}