{"version":3,"file":"Breadcrumbs.mjs","sources":["../../../../admin/src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import {\n  Breadcrumbs as BaseBreadcrumbs,\n  Crumb,\n  CrumbLink,\n  BreadcrumbsProps as BaseBreadcrumbsProps,\n} from '@strapi/design-system';\nimport { useIntl, MessageDescriptor } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { CrumbSimpleMenuAsync } from './CrumbSimpleMenuAsync';\n\nexport type CrumbDefinition = {\n  id?: number | null;\n  label?: MessageDescriptor | string;\n  href?: string;\n  path?: string;\n};\n\nexport interface BreadcrumbsProps extends BaseBreadcrumbsProps {\n  breadcrumbs: Array<CrumbDefinition>;\n  currentFolderId?: number;\n  onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const Breadcrumbs = ({\n  breadcrumbs,\n  onChangeFolder,\n  currentFolderId,\n  ...props\n}: BreadcrumbsProps) => {\n  const { formatMessage } = useIntl();\n\n  return (\n    <BaseBreadcrumbs {...props}>\n      {breadcrumbs.map((crumb, index) => {\n        if (Array.isArray(crumb)) {\n          return (\n            <CrumbSimpleMenuAsync\n              parentsToOmit={[...breadcrumbs]\n                .splice(index + 1, breadcrumbs.length - 1)\n                .map((parent) => parent.id!)}\n              key={`breadcrumb-${crumb?.id ?? 'menu'}`}\n              currentFolderId={currentFolderId}\n              onChangeFolder={onChangeFolder}\n            />\n          );\n        }\n\n        const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;\n\n        if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {\n          if (onChangeFolder) {\n            return (\n              <CrumbLink\n                key={`breadcrumb-${crumb?.id ?? 'root'}`}\n                type=\"button\"\n                onClick={() => onChangeFolder(crumb.id!, crumb.path)}\n              >\n                {typeof crumb.label !== 'string' && crumb.label?.id\n                  ? formatMessage(crumb.label)\n                  : (crumb.label as string)}\n              </CrumbLink>\n            );\n          }\n          return (\n            <CrumbLink\n              key={`breadcrumb-${crumb?.id ?? 'root'}`}\n              to={crumb.href}\n              // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n              // @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type\n              tag={ReactRouterLink}\n            >\n              {typeof crumb.label !== 'string' && crumb.label?.id\n                ? formatMessage(crumb.label)\n                : (crumb.label as string)}\n            </CrumbLink>\n          );\n        }\n\n        return (\n          <Crumb\n            key={`breadcrumb-${crumb?.id ?? 'root'}`}\n            isCurrent={index + 1 === breadcrumbs.length}\n          >\n            {typeof crumb.label !== 'string' && crumb.label?.id\n              ? formatMessage(crumb.label)\n              : (crumb.label as string)}\n          </Crumb>\n        );\n      })}\n    </BaseBreadcrumbs>\n  );\n};\n"],"names":["Breadcrumbs","breadcrumbs","onChangeFolder","currentFolderId","props","formatMessage","useIntl","_jsx","BaseBreadcrumbs","map","crumb","index","Array","isArray","CrumbSimpleMenuAsync","parentsToOmit","splice","length","parent","id","isCurrentFolderMediaLibrary","undefined","CrumbLink","type","onClick","path","label","to","href","tag","ReactRouterLink","Crumb","isCurrent"],"mappings":";;;;;;AAwBO,MAAMA,WAAAA,GAAc,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KAAAA,EACc,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAAA,CAACC,aAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAAA,CAAYQ,GAAG,CAAC,CAACC,KAAAA,EAAOC,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAAA,CAAAA,EAAQ;AACxB,gBAAA,qBACEH,GAAA,CAACO,oBAAAA,EAAAA;oBACCC,aAAAA,EAAe;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAAA,GAAQ,CAAA,EAAGV,WAAAA,CAAYgB,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAAA,EAAiBA,eAAAA;oBACjBD,cAAAA,EAAgBA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAAA,EAAOS,EAAAA,IAAM,MAAA,CAAA,CAAQ,CAAA;AAK9C,YAAA;AAEA,YAAA,MAAMC,2BAAAA,GAA8BV,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAAA,KAAoBkB,SAAAA;AAE7E,YAAA,IAAIlB,eAAAA,KAAoBO,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAAAA,EAA6B;AAChE,gBAAA,IAAIlB,cAAAA,EAAgB;AAClB,oBAAA,qBACEK,GAAA,CAACe,SAAAA,EAAAA;wBAECC,IAAAA,EAAK,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAAA,CAAeQ,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAAA,CAAMgB,KAAK,KAAK,QAAA,IAAYhB,KAAAA,CAAMgB,KAAK,EAAEP,EAAAA,GAC7Cd,aAAAA,CAAcK,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAAA,EAAOS,EAAAA,IAAM,MAAA,CAAA,CAAQ,CAAA;AAS9C,gBAAA;AACA,gBAAA,qBACEZ,GAAA,CAACe,SAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAAA,EAAKC,IAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAAA,CAAMgB,KAAK,KAAK,QAAA,IAAYhB,KAAAA,CAAMgB,KAAK,EAAEP,EAAAA,GAC7Cd,aAAAA,CAAcK,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAAA,EAAOS,EAAAA,IAAM,MAAA,CAAA,CAAQ,CAAA;AAW9C,YAAA;AAEA,YAAA,qBACEZ,GAAA,CAACwB,KAAAA,EAAAA;gBAECC,SAAAA,EAAWrB,KAAAA,GAAQ,CAAA,KAAMV,WAAAA,CAAYgB,MAAM;AAE1C,gBAAA,QAAA,EAAA,OAAOP,KAAAA,CAAMgB,KAAK,KAAK,QAAA,IAAYhB,KAAAA,CAAMgB,KAAK,EAAEP,EAAAA,GAC7Cd,aAAAA,CAAcK,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AALN,aAAA,EAAA,CAAC,WAAW,EAAEhB,KAAAA,EAAOS,EAAAA,IAAM,MAAA,CAAA,CAAQ,CAAA;AAQ9C,QAAA,CAAA;;AAGN;;;;"}