{"version":3,"file":"file-icon.mjs","sources":["../../../components/upload/file-icon.ts"],"sourcesContent":["import { computed } from 'vue'\r\n\r\nimport { useIcons } from '@vexip-ui/config'\r\n\r\nimport type { IconsConfig } from '@vexip-ui/config'\r\n\r\nconst iconConfig = new Map<keyof IconsConfig, string[]>()\r\n\r\n// iconConfig.set('fileWord', ['doc', 'docx'])\r\niconConfig.set('fileVideo', [\r\n  'mp4',\r\n  'flv',\r\n  'mkv',\r\n  'rm',\r\n  'rmvb',\r\n  'mov',\r\n  'mtv',\r\n  'wnv',\r\n  'avi',\r\n  '3gp',\r\n  'amv',\r\n  'dmv',\r\n])\r\n// iconConfig.set('filePdf', ['pdf'])\r\niconConfig.set('fileImage', [\r\n  'bmp',\r\n  'jpg',\r\n  'jpeg',\r\n  'png',\r\n  'tif',\r\n  'gif',\r\n  'pcx',\r\n  'tga',\r\n  'exif',\r\n  'fpx',\r\n  'svg',\r\n  'psd',\r\n  'cdr',\r\n  'pcd',\r\n  'dxf',\r\n  'ufo',\r\n  'eps',\r\n  'ai',\r\n  'raw',\r\n  'wmf',\r\n  'webp',\r\n])\r\n// iconConfig.set('fileExcel', ['xls', 'xlsx', 'xlsm', 'xlsb', 'xlam', 'csv'])\r\niconConfig.set(\r\n  'fileCode',\r\n  [\r\n    [\r\n      'json',\r\n      'xml',\r\n      'property',\r\n      'class',\r\n      'c',\r\n      'cpp',\r\n      'cc',\r\n      'cxx',\r\n      'h',\r\n      'hpp',\r\n      'hxx',\r\n      'cs',\r\n      'yml',\r\n      'yaml',\r\n      'ts',\r\n      'tsx',\r\n    ],\r\n    ['js', 'jsx', 'mjs', 'cjs', 'ts', 'tsx', 'mts', 'cts'],\r\n    ['css', 'styl', 'pcss'],\r\n    ['sass', 'scss'],\r\n    ['less'],\r\n    ['java', 'class', 'jsp'],\r\n    ['vue'],\r\n    ['html', 'htm'],\r\n    ['py', 'pyc', 'pyw', 'pyo', 'pyd'],\r\n  ].flat(),\r\n)\r\niconConfig.set('fileAudio', [\r\n  'cd',\r\n  'wave',\r\n  'aiff',\r\n  'mpeg',\r\n  'mp3',\r\n  'mpeg-4',\r\n  'midi',\r\n  'wma',\r\n  'ra',\r\n  'rm',\r\n  'rmx',\r\n  'vqf',\r\n  'amr',\r\n  'ape',\r\n  'flac',\r\n  'aac',\r\n])\r\niconConfig.set('fileZip', [\r\n  'rar',\r\n  'zip',\r\n  '7z',\r\n  'cab',\r\n  'arj',\r\n  'lzh',\r\n  'tar',\r\n  'gz',\r\n  'ace',\r\n  'uue',\r\n  'bz2',\r\n  'jar',\r\n  'iso',\r\n])\r\niconConfig.set(\r\n  'fileText',\r\n  [\r\n    ['doc', 'docx'],\r\n    ['xls', 'xlsx', 'xlsm', 'xlsb', 'xlam', 'csv'],\r\n    ['pdf', 'txt', 'md'],\r\n  ].flat(),\r\n)\r\niconConfig.set('file', ['default'])\r\n\r\nexport function useFileIcons(icons = useIcons()) {\r\n  return computed(() => {\r\n    const map: Record<string, Record<string, any>> = {}\r\n\r\n    for (const [iconName, types] of iconConfig.entries()) {\r\n      if (types?.length) {\r\n        for (const type of types) {\r\n          map[type] = icons.value[iconName]\r\n        }\r\n      }\r\n    }\r\n\r\n    return map\r\n  })\r\n}\r\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;"}