{"version":3,"file":"AttributeIcon.mjs","sources":["../../../admin/src/components/AttributeIcon.tsx"],"sourcesContent":["import { ComponentType, SVGProps } from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n  BooleanField,\n  CollectionType,\n  ComponentField,\n  DateField,\n  DynamicZoneField,\n  EmailField,\n  EnumerationField,\n  JsonField,\n  MediaField,\n  NumberField,\n  PasswordField,\n  RelationField,\n  MarkdownField,\n  SingleType,\n  TextField,\n  UidField,\n  BlocksField,\n} from '@strapi/icons/symbols';\nimport { styled } from 'styled-components';\n\nconst iconByTypes: Record<string, ComponentType<SVGProps<SVGSVGElement>>> = {\n  biginteger: NumberField,\n  blocks: BlocksField,\n  boolean: BooleanField,\n  collectionType: CollectionType,\n  component: ComponentField,\n  contentType: CollectionType,\n  date: DateField,\n  datetime: DateField,\n  decimal: NumberField,\n  dynamiczone: DynamicZoneField,\n  email: EmailField,\n  enum: EnumerationField,\n  enumeration: EnumerationField,\n  file: MediaField,\n  files: MediaField,\n  float: NumberField,\n  integer: NumberField,\n  json: JsonField,\n  JSON: JsonField,\n  media: MediaField,\n  number: NumberField,\n  password: PasswordField,\n  relation: RelationField,\n  richtext: MarkdownField,\n  singleType: SingleType,\n  string: TextField,\n  text: TextField,\n  time: DateField,\n  timestamp: DateField,\n  uid: UidField,\n};\n\nconst IconBox = styled(Box)`\n  svg {\n    height: 100%;\n    width: 100%;\n  }\n`;\n\nexport type IconByType = keyof typeof iconByTypes;\n\ntype AttributeIconProps = {\n  type: IconByType;\n  customField?: string | null;\n};\n\nexport const AttributeIcon = ({ type, customField = null, ...rest }: AttributeIconProps) => {\n  const getCustomField = useStrapiApp('AttributeIcon', (state) => state.customFields.get);\n\n  let Compo = iconByTypes[type];\n\n  if (customField) {\n    const customFieldObject = getCustomField(customField);\n    const icon = customFieldObject?.icon as ComponentType<SVGProps<SVGSVGElement>> | undefined;\n    if (icon !== undefined) {\n      Compo = icon;\n    }\n  }\n\n  if (!iconByTypes[type]) {\n    return null;\n  }\n\n  return (\n    <IconBox width=\"3.2rem\" height=\"3.2rem\" shrink={0} {...rest} aria-hidden>\n      <Box tag={Compo} />\n    </IconBox>\n  );\n};\n"],"names":["iconByTypes","biginteger","NumberField","blocks","BlocksField","boolean","BooleanField","collectionType","CollectionType","component","ComponentField","contentType","date","DateField","datetime","decimal","dynamiczone","DynamicZoneField","email","EmailField","enum","EnumerationField","enumeration","file","MediaField","files","float","integer","json","JsonField","JSON","media","number","password","PasswordField","relation","RelationField","richtext","MarkdownField","singleType","SingleType","string","TextField","text","time","timestamp","uid","UidField","IconBox","styled","Box","AttributeIcon","type","customField","rest","getCustomField","useStrapiApp","state","customFields","get","Compo","customFieldObject","icon","undefined","_jsx","width","height","shrink","aria-hidden","tag"],"mappings":";;;;;;AAyBA,MAAMA,WAAAA,GAAsE;IAC1EC,UAAAA,EAAYC,WAAAA;IACZC,MAAAA,EAAQC,WAAAA;IACRC,OAAAA,EAASC,YAAAA;IACTC,cAAAA,EAAgBC,cAAAA;IAChBC,SAAAA,EAAWC,cAAAA;IACXC,WAAAA,EAAaH,cAAAA;IACbI,IAAAA,EAAMC,SAAAA;IACNC,QAAAA,EAAUD,SAAAA;IACVE,OAAAA,EAASb,WAAAA;IACTc,WAAAA,EAAaC,gBAAAA;IACbC,KAAAA,EAAOC,UAAAA;IACPC,IAAAA,EAAMC,gBAAAA;IACNC,WAAAA,EAAaD,gBAAAA;IACbE,IAAAA,EAAMC,UAAAA;IACNC,KAAAA,EAAOD,UAAAA;IACPE,KAAAA,EAAOxB,WAAAA;IACPyB,OAAAA,EAASzB,WAAAA;IACT0B,IAAAA,EAAMC,SAAAA;IACNC,IAAAA,EAAMD,SAAAA;IACNE,KAAAA,EAAOP,UAAAA;IACPQ,MAAAA,EAAQ9B,WAAAA;IACR+B,QAAAA,EAAUC,aAAAA;IACVC,QAAAA,EAAUC,aAAAA;IACVC,QAAAA,EAAUC,aAAAA;IACVC,UAAAA,EAAYC,UAAAA;IACZC,MAAAA,EAAQC,SAAAA;IACRC,IAAAA,EAAMD,SAAAA;IACNE,IAAAA,EAAM/B,SAAAA;IACNgC,SAAAA,EAAWhC,SAAAA;IACXiC,GAAAA,EAAKC;AACP,CAAA;AAEA,MAAMC,OAAAA,GAAUC,MAAAA,CAAOC,GAAAA,CAAI;;;;;AAK3B,CAAC;AASM,MAAMC,aAAAA,GAAgB,CAAC,EAAEC,IAAI,EAAEC,WAAAA,GAAc,IAAI,EAAE,GAAGC,IAAAA,EAA0B,GAAA;IACrF,MAAMC,cAAAA,GAAiBC,aAAa,eAAA,EAAiB,CAACC,QAAUA,KAAAA,CAAMC,YAAY,CAACC,GAAG,CAAA;IAEtF,IAAIC,KAAAA,GAAQ5D,WAAW,CAACoD,IAAAA,CAAK;AAE7B,IAAA,IAAIC,WAAAA,EAAa;AACf,QAAA,MAAMQ,oBAAoBN,cAAAA,CAAeF,WAAAA,CAAAA;AACzC,QAAA,MAAMS,OAAOD,iBAAAA,EAAmBC,IAAAA;AAChC,QAAA,IAAIA,SAASC,SAAAA,EAAW;YACtBH,KAAAA,GAAQE,IAAAA;AACV,QAAA;AACF,IAAA;AAEA,IAAA,IAAI,CAAC9D,WAAW,CAACoD,IAAAA,CAAK,EAAE;QACtB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBACEY,GAAA,CAAChB,OAAAA,EAAAA;QAAQiB,KAAAA,EAAM,QAAA;QAASC,MAAAA,EAAO,QAAA;QAASC,MAAAA,EAAQ,CAAA;AAAI,QAAA,GAAGb,IAAI;QAAEc,aAAW,EAAA,IAAA;AACtE,QAAA,QAAA,gBAAAJ,GAAA,CAACd,GAAAA,EAAAA;YAAImB,GAAAA,EAAKT;;;AAGhB;;;;"}