{"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,oBAAuB,GAAA,CAAC,EACnCC,aAAAA,GAAgB,EAAE,EAClBC,eAAe,EACfC,cAAc,EACY,GAAA;AAC1B,IAAA,MAAM,CAACC,WAAaC,EAAAA,cAAAA,CAAe,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACrD,IAAA,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGC,kBAAmB,CAAA;QAAEC,OAASP,EAAAA;AAAY,KAAA,CAAA;IACtE,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAMC,QAAWC,GAAAA,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,IAAQa,IAAAA,gBAAAA,CAAiBb,IAAMN,EAAAA,eAAAA,CAAAA;IACrD,MAAMoB,kBAAAA,GACJF,iBACAA,aAAcG,CAAAA,MAAM,CAClB,CAACC,SAAAA,GACC,OAAOA,SAAUC,CAAAA,EAAE,KAAK,QACxB,IAAA,CAACxB,cAAcyB,QAAQ,CAACF,UAAUC,EAAE,CAAA,IACpCD,SAAUC,CAAAA,EAAE,KAAK,IAAA,CAAA;AAGvB,IAAA,qBACEE,IAACC,CAAAA,eAAAA,EAAAA;AACCC,QAAAA,MAAAA,EAAQ,IAAMxB,cAAe,CAAA,IAAA,CAAA;AAC7ByB,QAAAA,OAAAA,EAAS,IAAMzB,cAAe,CAAA,KAAA,CAAA;AAC9B0B,QAAAA,YAAAA,EAAYb,aAAc,CAAA;AACxBO,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,+BAAA,CAAA;YACZC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,KAAM,EAAA,KAAA;;AAELzB,YAAAA,SAAAA,kBACC0B,GAACC,CAAAA,QAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,MAAAA,EAAAA;oBAAOC,KAAK,EAAA,IAAA;8BACVpB,aAAc,CAAA;AACbO,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,mBAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;YAILX,kBACCA,IAAAA,kBAAAA,CAAmBiB,GAAG,CAAC,CAACf,SAAAA,GAAAA;AACtB,gBAAA,IAAIrB,cAAgB,EAAA;AAClB,oBAAA,qBACEgC,GAACC,CAAAA,QAAAA,EAAAA;wBACCI,GAAI,EAAA,QAAA;wBACJC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMvC,cAAewC,CAAAA,MAAAA,CAAOnB,UAAUC,EAAE,CAAA,EAAGD,UAAUoB,IAAI,CAAA;AAGjEpB,wBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AAFNV,qBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAKvB;gBAEA,MAAMoB,GAAAA,GAAMC,YAAalC,CAAAA,QAAAA,EAAUI,KAAO,EAAA;oBACxC+B,MAAQC,EAAAA,MAAAA,CAAOxB,UAAUC,EAAE,CAAA;AAC3BwB,oBAAAA,UAAAA,EAAYzB,SAAWoB,EAAAA;AACzB,iBAAA,CAAA;AAEA,gBAAA,qBACET,GAACC,CAAAA,QAAAA,EAAAA;AAA4BM,oBAAAA,OAAAA,EAAS,IAAM5B,QAAS+B,CAAAA,GAAAA,CAAAA;AAClDrB,oBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AADEV,iBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAI/B,aAAA;;;AAGR;;;;"}