node_modules ignore

This commit is contained in:
oier committed 2025-05-08 23:43:47 +02:00
1 parent e19d52f172
commit 4574544c9f
65041 files changed
+10593536

No files matched your search

@@ -0,0 +1,49 @@
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var designSystem = require('@strapi/design-system');
var reactIntl = require('react-intl');
var reactRouterDom = require('react-router-dom');
var CrumbSimpleMenuAsync = require('./CrumbSimpleMenuAsync.js');
const Breadcrumbs = ({ breadcrumbs, onChangeFolder, currentFolderId, ...props })=>{
const { formatMessage } = reactIntl.useIntl();
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Breadcrumbs, {
...props,
children: breadcrumbs.map((crumb, index)=>{
if (Array.isArray(crumb)) {
return /*#__PURE__*/ jsxRuntime.jsx(CrumbSimpleMenuAsync.CrumbSimpleMenuAsync, {
parentsToOmit: [
...breadcrumbs
].splice(index + 1, breadcrumbs.length - 1).map((parent)=>parent.id),
currentFolderId: currentFolderId,
onChangeFolder: onChangeFolder
}, `breadcrumb-${crumb?.id ?? 'menu'}`);
}
const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;
if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {
if (onChangeFolder) {
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.CrumbLink, {
type: "button",
onClick: ()=>onChangeFolder(crumb.id, crumb.path),
children: typeof crumb.label !== 'string' && crumb.label?.id ? formatMessage(crumb.label) : crumb.label
}, `breadcrumb-${crumb?.id ?? 'root'}`);
}
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.CrumbLink, {
to: crumb.href,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type
tag: reactRouterDom.Link,
children: typeof crumb.label !== 'string' && crumb.label?.id ? formatMessage(crumb.label) : crumb.label
}, `breadcrumb-${crumb?.id ?? 'root'}`);
}
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Crumb, {
isCurrent: index + 1 === breadcrumbs.length,
children: typeof crumb.label !== 'string' && crumb.label?.id ? formatMessage(crumb.label) : crumb.label
}, `breadcrumb-${crumb?.id ?? 'root'}`);
})
});
};
exports.Breadcrumbs = Breadcrumbs;
//# sourceMappingURL=Breadcrumbs.js.map
@@ -0,0 +1 @@
{"version":3,"file":"Breadcrumbs.js","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,WAAc,GAAA,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KACc,EAAA,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAACC,CAAAA,wBAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAYQ,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAQ,CAAA,EAAA;AACxB,gBAAA,qBACEH,cAACO,CAAAA,yCAAAA,EAAAA;oBACCC,aAAe,EAAA;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAQ,GAAA,CAAA,EAAGV,WAAYgB,CAAAA,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAiBA,EAAAA,eAAAA;oBACjBD,cAAgBA,EAAAA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAK9C;AAEA,YAAA,MAAMC,2BAA8BV,GAAAA,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAoBkB,KAAAA,SAAAA;AAE7E,YAAA,IAAIlB,eAAoBO,KAAAA,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAA6B,EAAA;AAChE,gBAAA,IAAIlB,cAAgB,EAAA;AAClB,oBAAA,qBACEK,cAACe,CAAAA,sBAAAA,EAAAA;wBAECC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAeQ,CAAAA,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAS9C;AACA,gBAAA,qBACEZ,cAACe,CAAAA,sBAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAKC,EAAAA,mBAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAALine truncated
@@ -0,0 +1,47 @@
import { jsx } from 'react/jsx-runtime';
import { Breadcrumbs as Breadcrumbs$1, CrumbLink, Crumb } from '@strapi/design-system';
import { useIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import { CrumbSimpleMenuAsync } from './CrumbSimpleMenuAsync.mjs';
const Breadcrumbs = ({ breadcrumbs, onChangeFolder, currentFolderId, ...props })=>{
const { formatMessage } = useIntl();
return /*#__PURE__*/ jsx(Breadcrumbs$1, {
...props,
children: breadcrumbs.map((crumb, index)=>{
if (Array.isArray(crumb)) {
return /*#__PURE__*/ jsx(CrumbSimpleMenuAsync, {
parentsToOmit: [
...breadcrumbs
].splice(index + 1, breadcrumbs.length - 1).map((parent)=>parent.id),
currentFolderId: currentFolderId,
onChangeFolder: onChangeFolder
}, `breadcrumb-${crumb?.id ?? 'menu'}`);
}
const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;
if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {
if (onChangeFolder) {
return /*#__PURE__*/ jsx(CrumbLink, {
type: "button",
onClick: ()=>onChangeFolder(crumb.id, crumb.path),
children: typeof crumb.label !== 'string' && crumb.label?.id ? formatMessage(crumb.label) : crumb.label
}, `breadcrumb-${crumb?.id ?? 'root'}`);
}
return /*#__PURE__*/ jsx(CrumbLink, {
to: crumb.href,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type
tag: Link,
children: typeof crumb.label !== 'string' && crumb.label?.id ? formatMessage(crumb.label) : crumb.label
}, `breadcrumb-${crumb?.id ?? 'root'}`);
}
return /*#__PURE__*/ jsx(Crumb, {
isCurrent: index + 1 === breadcrumbs.length,
children: typeof crumb.label !== 'string' && crumb.label?.id ? formatMessage(crumb.label) : crumb.label
}, `breadcrumb-${crumb?.id ?? 'root'}`);
})
});
};
export { Breadcrumbs };
//# sourceMappingURL=Breadcrumbs.mjs.map
@@ -0,0 +1 @@
{"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,WAAc,GAAA,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KACc,EAAA,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAACC,CAAAA,aAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAYQ,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAQ,CAAA,EAAA;AACxB,gBAAA,qBACEH,GAACO,CAAAA,oBAAAA,EAAAA;oBACCC,aAAe,EAAA;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAQ,GAAA,CAAA,EAAGV,WAAYgB,CAAAA,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAiBA,EAAAA,eAAAA;oBACjBD,cAAgBA,EAAAA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAK9C;AAEA,YAAA,MAAMC,2BAA8BV,GAAAA,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAoBkB,KAAAA,SAAAA;AAE7E,YAAA,IAAIlB,eAAoBO,KAAAA,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAA6B,EAAA;AAChE,gBAAA,IAAIlB,cAAgB,EAAA;AAClB,oBAAA,qBACEK,GAACe,CAAAA,SAAAA,EAAAA;wBAECC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAeQ,CAAAA,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAS9C;AACA,gBAAA,qBACEZ,GAACe,CAAAA,SAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAKC,EAAAA,IAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAAEhB,KALine truncated
@@ -0,0 +1,89 @@
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var strapiAdmin = require('@strapi/admin/strapi-admin');
var designSystem = require('@strapi/design-system');
var reactIntl = require('react-intl');
var reactRouterDom = require('react-router-dom');
var useFolderStructure = require('../../hooks/useFolderStructure.js');
require('byte-size');
require('date-fns');
var getTrad = require('../../utils/getTrad.js');
var getFolderURL = require('../../utils/getFolderURL.js');
var getFolderParents = require('../../utils/getFolderParents.js');
require('../../constants.js');
require('../../utils/urlYupSchema.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
const CrumbSimpleMenuAsync = ({ parentsToOmit = [], currentFolderId, onChangeFolder })=>{
const [shouldFetch, setShouldFetch] = React__namespace.useState(false);
const { data, isLoading } = useFolderStructure.useFolderStructure({
enabled: shouldFetch
});
const { pathname } = reactRouterDom.useLocation();
const [{ query }] = strapiAdmin.useQueryParams();
const { formatMessage } = reactIntl.useIntl();
const allAscendants = data && getFolderParents.getFolderParents(data, currentFolderId);
const filteredAscendants = allAscendants && allAscendants.filter((ascendant)=>typeof ascendant.id === 'number' && !parentsToOmit.includes(ascendant.id) && ascendant.id !== null);
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.CrumbSimpleMenu, {
onOpen: ()=>setShouldFetch(true),
onClose: ()=>setShouldFetch(false),
"aria-label": formatMessage({
id: getTrad.getTrad('header.breadcrumbs.menu.label'),
defaultMessage: 'Get more ascendants folders'
}),
label: "...",
children: [
isLoading && /*#__PURE__*/ jsxRuntime.jsx(designSystem.MenuItem, {
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
small: true,
children: formatMessage({
id: getTrad.getTrad('content.isLoading'),
defaultMessage: 'Content is loading.'
})
})
}),
filteredAscendants && filteredAscendants.map((ascendant)=>{
if (onChangeFolder) {
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.MenuItem, {
tag: "button",
type: "button",
onClick: ()=>onChangeFolder(Number(ascendant.id), ascendant.path),
children: ascendant.label
}, ascendant.id);
}
const url = getFolderURL.getFolderURL(pathname, query, {
folder: typeof ascendant?.id === 'string' ? ascendant.id : undefined,
folderPath: ascendant?.path
});
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.MenuItem, {
isLink: true,
href: url,
children: ascendant.label
}, ascendant.id);
})
]
});
};
exports.CrumbSimpleMenuAsync = CrumbSimpleMenuAsync;
//# sourceMappingURL=CrumbSimpleMenuAsync.js.map
@@ -0,0 +1 @@
{"version":3,"file":"CrumbSimpleMenuAsync.js","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 } 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 [{ 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: typeof ascendant?.id === 'string' ? ascendant.id : undefined,\n folderPath: ascendant?.path,\n });\n\n return (\n <MenuItem isLink href={url} key={ascendant.id}>\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","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","undefined","folderPath","isLink","href"],"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,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACrD,IAAA,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGC,qCAAmB,CAAA;QAAEC,OAASP,EAAAA;AAAY,KAAA,CAAA;IACtE,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,MAAMC,aAAAA,GAAgBV,IAAQW,IAAAA,iCAAAA,CAAiBX,IAAMN,EAAAA,eAAAA,CAAAA;IACrD,MAAMkB,kBAAAA,GACJF,iBACAA,aAAcG,CAAAA,MAAM,CAClB,CAACC,SAAAA,GACC,OAAOA,SAAUC,CAAAA,EAAE,KAAK,QACxB,IAAA,CAACtB,cAAcuB,QAAQ,CAACF,UAAUC,EAAE,CAAA,IACpCD,SAAUC,CAAAA,EAAE,KAAK,IAAA,CAAA;AAGvB,IAAA,qBACEE,eAACC,CAAAA,4BAAAA,EAAAA;AACCC,QAAAA,MAAAA,EAAQ,IAAMtB,cAAe,CAAA,IAAA,CAAA;AAC7BuB,QAAAA,OAAAA,EAAS,IAAMvB,cAAe,CAAA,KAAA,CAAA;AAC9BwB,QAAAA,YAAAA,EAAYb,aAAc,CAAA;AACxBO,YAAAA,EAAAA,EAAIO,eAAQ,CAAA,+BAAA,CAAA;YACZC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,KAAM,EAAA,KAAA;;AAELvB,YAAAA,SAAAA,kBACCwB,cAACC,CAAAA,qBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,cAACE,CAAAA,mBAAAA,EAAAA;oBAAOC,KAAK,EAAA,IAAA;8BACVpB,aAAc,CAAA;AACbO,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,mBAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;YAILX,kBACCA,IAAAA,kBAAAA,CAAmBiB,GAAG,CAAC,CAACf,SAAAA,GAAAA;AACtB,gBAAA,IAAInB,cAAgB,EAAA;AAClB,oBAAA,qBACE8B,cAACC,CAAAA,qBAAAA,EAAAA;wBACCI,GAAI,EAAA,QAAA;wBACJC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMrC,cAAesC,CAAAA,MAAAA,CAAOnB,UAAUC,EAAE,CAAA,EAAGD,UAAUoB,IAAI,CAAA;AAGjEpB,wBAAAA,QAAAA,EAAAA,SAAALine truncated
@@ -0,0 +1,68 @@
import { jsxs, jsx } from 'react/jsx-runtime';
import * as React from 'react';
import { useQueryParams } from '@strapi/admin/strapi-admin';
import { CrumbSimpleMenu, MenuItem, Loader } from '@strapi/design-system';
import { useIntl } from 'react-intl';
import { useLocation } from 'react-router-dom';
import { useFolderStructure } from '../../hooks/useFolderStructure.mjs';
import 'byte-size';
import 'date-fns';
import { getTrad } from '../../utils/getTrad.mjs';
import { getFolderURL } from '../../utils/getFolderURL.mjs';
import { getFolderParents } from '../../utils/getFolderParents.mjs';
import '../../constants.mjs';
import '../../utils/urlYupSchema.mjs';
const CrumbSimpleMenuAsync = ({ parentsToOmit = [], currentFolderId, onChangeFolder })=>{
const [shouldFetch, setShouldFetch] = React.useState(false);
const { data, isLoading } = useFolderStructure({
enabled: shouldFetch
});
const { pathname } = useLocation();
const [{ query }] = useQueryParams();
const { formatMessage } = useIntl();
const allAscendants = data && getFolderParents(data, currentFolderId);
const filteredAscendants = allAscendants && allAscendants.filter((ascendant)=>typeof ascendant.id === 'number' && !parentsToOmit.includes(ascendant.id) && ascendant.id !== null);
return /*#__PURE__*/ jsxs(CrumbSimpleMenu, {
onOpen: ()=>setShouldFetch(true),
onClose: ()=>setShouldFetch(false),
"aria-label": formatMessage({
id: getTrad('header.breadcrumbs.menu.label'),
defaultMessage: 'Get more ascendants folders'
}),
label: "...",
children: [
isLoading && /*#__PURE__*/ jsx(MenuItem, {
children: /*#__PURE__*/ jsx(Loader, {
small: true,
children: formatMessage({
id: getTrad('content.isLoading'),
defaultMessage: 'Content is loading.'
})
})
}),
filteredAscendants && filteredAscendants.map((ascendant)=>{
if (onChangeFolder) {
return /*#__PURE__*/ jsx(MenuItem, {
tag: "button",
type: "button",
onClick: ()=>onChangeFolder(Number(ascendant.id), ascendant.path),
children: ascendant.label
}, ascendant.id);
}
const url = getFolderURL(pathname, query, {
folder: typeof ascendant?.id === 'string' ? ascendant.id : undefined,
folderPath: ascendant?.path
});
return /*#__PURE__*/ jsx(MenuItem, {
isLink: true,
href: url,
children: ascendant.label
}, ascendant.id);
})
]
});
};
export { CrumbSimpleMenuAsync };
//# sourceMappingURL=CrumbSimpleMenuAsync.mjs.map
@@ -0,0 +1 @@
{"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 } 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 [{ 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: typeof ascendant?.id === 'string' ? ascendant.id : undefined,\n folderPath: ascendant?.path,\n });\n\n return (\n <MenuItem isLink href={url} key={ascendant.id}>\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","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","undefined","folderPath","isLink","href"],"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,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMC,aAAAA,GAAgBV,IAAQW,IAAAA,gBAAAA,CAAiBX,IAAMN,EAAAA,eAAAA,CAAAA;IACrD,MAAMkB,kBAAAA,GACJF,iBACAA,aAAcG,CAAAA,MAAM,CAClB,CAACC,SAAAA,GACC,OAAOA,SAAUC,CAAAA,EAAE,KAAK,QACxB,IAAA,CAACtB,cAAcuB,QAAQ,CAACF,UAAUC,EAAE,CAAA,IACpCD,SAAUC,CAAAA,EAAE,KAAK,IAAA,CAAA;AAGvB,IAAA,qBACEE,IAACC,CAAAA,eAAAA,EAAAA;AACCC,QAAAA,MAAAA,EAAQ,IAAMtB,cAAe,CAAA,IAAA,CAAA;AAC7BuB,QAAAA,OAAAA,EAAS,IAAMvB,cAAe,CAAA,KAAA,CAAA;AAC9BwB,QAAAA,YAAAA,EAAYb,aAAc,CAAA;AACxBO,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,+BAAA,CAAA;YACZC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,KAAM,EAAA,KAAA;;AAELvB,YAAAA,SAAAA,kBACCwB,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,IAAInB,cAAgB,EAAA;AAClB,oBAAA,qBACE8B,GAACC,CAAAA,QAAAA,EAAAA;wBACCI,GAAI,EAAA,QAAA;wBACJC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMrC,cAAesC,CAAAA,MAAAA,CAAOnB,UAAUC,EAAE,CAAA,EAAGD,UAAUoB,IAAI,CAAA;AAGjEpB,wBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AAFNV,qBAAAA,EAAAA,SLine truncated