{"version":3,"file":"CrumbSimpleMenuAsync.mjs","sources":["../../../../admin/src/components/Breadcrumbs/CrumbSimpleMenuAsync.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { CrumbSimpleMenu, Loader, MenuItem } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getFolderParents, getFolderURL, getTrad } from '../../utils';\n\ninterface CrumbSimpleMenuAsyncProps {\n  parentsToOmit?: number[];\n  currentFolderId?: number;\n  onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const CrumbSimpleMenuAsync = ({\n  parentsToOmit = [],\n  currentFolderId,\n  onChangeFolder,\n}: CrumbSimpleMenuAsyncProps) => {\n  const [shouldFetch, setShouldFetch] = React.useState(false);\n  const { data, isLoading } = useFolderStructure({ enabled: shouldFetch });\n  const { pathname } = useLocation();\n  const navigate = useNavigate();\n  const [{ query }] = useQueryParams();\n  const { formatMessage } = useIntl();\n\n  const allAscendants = data && getFolderParents(data, currentFolderId!);\n  const filteredAscendants =\n    allAscendants &&\n    allAscendants.filter(\n      (ascendant) =>\n        typeof ascendant.id === 'number' &&\n        !parentsToOmit.includes(ascendant.id) &&\n        ascendant.id !== null\n    );\n\n  return (\n    <CrumbSimpleMenu\n      onOpen={() => setShouldFetch(true)}\n      onClose={() => setShouldFetch(false)}\n      aria-label={formatMessage({\n        id: getTrad('header.breadcrumbs.menu.label'),\n        defaultMessage: 'Get more ascendants folders',\n      })}\n      label=\"...\"\n    >\n      {isLoading && (\n        <MenuItem>\n          <Loader small>\n            {formatMessage({\n              id: getTrad('content.isLoading'),\n              defaultMessage: 'Content is loading.',\n            })}\n          </Loader>\n        </MenuItem>\n      )}\n      {filteredAscendants &&\n        filteredAscendants.map((ascendant) => {\n          if (onChangeFolder) {\n            return (\n              <MenuItem\n                tag=\"button\"\n                type=\"button\"\n                onClick={() => onChangeFolder(Number(ascendant.id), ascendant.path)}\n                key={ascendant.id}\n              >\n                {ascendant.label}\n              </MenuItem>\n            );\n          }\n\n          const url = getFolderURL(pathname, query, {\n            folder: String(ascendant.id),\n            folderPath: ascendant?.path,\n          });\n\n          return (\n            <MenuItem key={ascendant.id} onClick={() => navigate(url)}>\n              {ascendant.label}\n            </MenuItem>\n          );\n        })}\n    </CrumbSimpleMenu>\n  );\n};\n"],"names":["CrumbSimpleMenuAsync","parentsToOmit","currentFolderId","onChangeFolder","shouldFetch","setShouldFetch","React","useState","data","isLoading","useFolderStructure","enabled","pathname","useLocation","navigate","useNavigate","query","useQueryParams","formatMessage","useIntl","allAscendants","getFolderParents","filteredAscendants","filter","ascendant","id","includes","_jsxs","CrumbSimpleMenu","onOpen","onClose","aria-label","getTrad","defaultMessage","label","_jsx","MenuItem","Loader","small","map","tag","type","onClick","Number","path","url","getFolderURL","folder","String","folderPath"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,aAAAA,GAAgB,EAAE,EAClBC,eAAe,EACfC,cAAc,EACY,GAAA;AAC1B,IAAA,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACrD,IAAA,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGC,kBAAAA,CAAmB;QAAEC,OAAAA,EAASP;AAAY,KAAA,CAAA;IACtE,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMC,aAAAA,GAAgBZ,IAAAA,IAAQa,gBAAAA,CAAiBb,IAAAA,EAAMN,eAAAA,CAAAA;IACrD,MAAMoB,kBAAAA,GACJF,iBACAA,aAAAA,CAAcG,MAAM,CAClB,CAACC,SAAAA,GACC,OAAOA,SAAAA,CAAUC,EAAE,KAAK,QAAA,IACxB,CAACxB,cAAcyB,QAAQ,CAACF,UAAUC,EAAE,CAAA,IACpCD,SAAAA,CAAUC,EAAE,KAAK,IAAA,CAAA;AAGvB,IAAA,qBACEE,IAAA,CAACC,eAAAA,EAAAA;AACCC,QAAAA,MAAAA,EAAQ,IAAMxB,cAAAA,CAAe,IAAA,CAAA;AAC7ByB,QAAAA,OAAAA,EAAS,IAAMzB,cAAAA,CAAe,KAAA,CAAA;AAC9B0B,QAAAA,YAAAA,EAAYb,aAAAA,CAAc;AACxBO,YAAAA,EAAAA,EAAIO,OAAAA,CAAQ,+BAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAC,KAAAA,EAAM,KAAA;;AAELzB,YAAAA,SAAAA,kBACC0B,GAAA,CAACC,QAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAAA,CAACE,MAAAA,EAAAA;oBAAOC,KAAK,EAAA,IAAA;8BACVpB,aAAAA,CAAc;AACbO,wBAAAA,EAAAA,EAAIO,OAAAA,CAAQ,mBAAA,CAAA;wBACZC,cAAAA,EAAgB;AAClB,qBAAA;;;YAILX,kBAAAA,IACCA,kBAAAA,CAAmBiB,GAAG,CAAC,CAACf,SAAAA,GAAAA;AACtB,gBAAA,IAAIrB,cAAAA,EAAgB;AAClB,oBAAA,qBACEgC,GAAA,CAACC,QAAAA,EAAAA;wBACCI,GAAAA,EAAI,QAAA;wBACJC,IAAAA,EAAK,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMvC,cAAAA,CAAewC,MAAAA,CAAOnB,UAAUC,EAAE,CAAA,EAAGD,UAAUoB,IAAI,CAAA;AAGjEpB,wBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AAFNV,qBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAKvB,gBAAA;gBAEA,MAAMoB,GAAAA,GAAMC,YAAAA,CAAalC,QAAAA,EAAUI,KAAAA,EAAO;oBACxC+B,MAAAA,EAAQC,MAAAA,CAAOxB,UAAUC,EAAE,CAAA;AAC3BwB,oBAAAA,UAAAA,EAAYzB,SAAAA,EAAWoB;AACzB,iBAAA,CAAA;AAEA,gBAAA,qBACET,GAAA,CAACC,QAAAA,EAAAA;AAA4BM,oBAAAA,OAAAA,EAAS,IAAM5B,QAAAA,CAAS+B,GAAAA,CAAAA;AAClDrB,oBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AADEV,iBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAI/B,YAAA,CAAA;;;AAGR;;;;"}