{"version":3,"file":"getAssetIcon.mjs","sources":["../../../../admin/src/future/utils/getAssetIcon.ts"],"sourcesContent":["import { SVGProps } from 'react';\n\nimport {\n  File as FileIcon,\n  FileCsv,\n  FilePdf,\n  FileXls,\n  FileZip,\n  Play,\n  Headphones,\n  Image,\n} from '@strapi/icons';\nimport { DefaultTheme } from 'styled-components';\n\nimport { AssetType } from '../enums';\n\nimport { getFileExtension } from './files';\n\n// NOTE: IconProps interface is not exported from our design library package, so we need to redefine it here\ninterface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {\n  /**\n   * @default \"currentColor\"\n   */\n  fill?: keyof DefaultTheme['colors'] | string;\n  stroke?: keyof DefaultTheme['colors'] | string;\n}\n\ntype IconComponent = React.FC<IconProps>;\n\nconst DOC_ICON_MAP: Record<string, IconComponent> = {\n  pdf: FilePdf,\n  csv: FileCsv,\n  xls: FileXls,\n  zip: FileZip,\n};\n\nexport const getAssetIcon = (mime: string | undefined, ext: string | undefined): IconComponent => {\n  const fileExtension = getFileExtension(ext);\n\n  if (mime?.includes(AssetType.Image)) {\n    return Image;\n  }\n\n  if (mime?.includes(AssetType.Video)) {\n    return Play;\n  }\n\n  if (mime?.includes(AssetType.Audio)) {\n    return Headphones;\n  }\n\n  return fileExtension ? DOC_ICON_MAP[fileExtension] || FileIcon : FileIcon;\n};\n"],"names":["DOC_ICON_MAP","pdf","FilePdf","csv","FileCsv","xls","FileXls","zip","FileZip","getAssetIcon","mime","ext","fileExtension","getFileExtension","includes","AssetType","Image","Video","Play","Audio","Headphones","FileIcon"],"mappings":";;;;AA6BA,MAAMA,YAAAA,GAA8C;IAClDC,GAAAA,EAAKC,OAAAA;IACLC,GAAAA,EAAKC,OAAAA;IACLC,GAAAA,EAAKC,OAAAA;IACLC,GAAAA,EAAKC;AACP,CAAA;AAEO,MAAMC,YAAAA,GAAe,CAACC,IAAAA,EAA0BC,GAAAA,GAAAA;AACrD,IAAA,MAAMC,gBAAgBC,gBAAAA,CAAiBF,GAAAA,CAAAA;AAEvC,IAAA,IAAID,IAAAA,EAAMI,QAAAA,CAASC,SAAAA,CAAUC,KAAK,CAAA,EAAG;QACnC,OAAOA,KAAAA;AACT,IAAA;AAEA,IAAA,IAAIN,IAAAA,EAAMI,QAAAA,CAASC,SAAAA,CAAUE,KAAK,CAAA,EAAG;QACnC,OAAOC,IAAAA;AACT,IAAA;AAEA,IAAA,IAAIR,IAAAA,EAAMI,QAAAA,CAASC,SAAAA,CAAUI,KAAK,CAAA,EAAG;QACnC,OAAOC,UAAAA;AACT,IAAA;AAEA,IAAA,OAAOR,aAAAA,GAAgBZ,YAAY,CAACY,aAAAA,CAAc,IAAIS,IAAAA,GAAWA,IAAAA;AACnE;;;;"}