@payloadcms/next 3.84.0 → 4.0.0-internal.38b7f1d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/withPayload.cjs +15 -176
- package/dist/cjs/withPayload.cjs.map +4 -4
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +0 -4
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/HierarchyTypeField/index.d.ts +9 -0
- package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -0
- package/dist/elements/HierarchyTypeField/index.js +114 -0
- package/dist/elements/HierarchyTypeField/index.js.map +1 -0
- package/dist/elements/HierarchyTypeField/index.server.d.ts +9 -0
- package/dist/elements/HierarchyTypeField/index.server.d.ts.map +1 -0
- package/dist/elements/HierarchyTypeField/index.server.js +32 -0
- package/dist/elements/HierarchyTypeField/index.server.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.css +29 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts +8 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.js +42 -0
- package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/constants.d.ts +2 -0
- package/dist/elements/Nav/SidebarTabs/constants.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/constants.js +2 -0
- package/dist/elements/Nav/SidebarTabs/constants.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts +22 -0
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.client.js +195 -0
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.css +80 -0
- package/dist/elements/Nav/SidebarTabs/index.d.ts +17 -0
- package/dist/elements/Nav/SidebarTabs/index.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/index.js +85 -0
- package/dist/elements/Nav/SidebarTabs/index.js.map +1 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +10 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +54 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -0
- package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
- package/dist/elements/Nav/getNavPrefs.js +36 -2
- package/dist/elements/Nav/getNavPrefs.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +48 -63
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.css +155 -0
- package/dist/elements/Nav/index.d.ts +1 -1
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +39 -8
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/exports/client.d.ts +2 -1
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/rsc.d.ts +2 -1
- package/dist/exports/rsc.d.ts.map +1 -1
- package/dist/exports/rsc.js +2 -1
- package/dist/exports/rsc.js.map +1 -1
- package/dist/exports/utilities.d.ts +2 -67
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +1 -49
- package/dist/exports/utilities.js.map +1 -1
- package/dist/layouts/Root/index.d.ts +18 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +25 -4
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/getHierarchyAncestry.d.ts +24 -0
- package/dist/utilities/getHierarchyAncestry.d.ts.map +1 -0
- package/dist/utilities/getHierarchyAncestry.js +103 -0
- package/dist/utilities/getHierarchyAncestry.js.map +1 -0
- package/dist/utilities/getRequestHighContrast.d.ts +10 -0
- package/dist/utilities/getRequestHighContrast.d.ts.map +1 -0
- package/dist/utilities/getRequestHighContrast.js +18 -0
- package/dist/utilities/getRequestHighContrast.js.map +1 -0
- package/dist/utilities/handleServerFunctions.js +2 -2
- package/dist/utilities/handleServerFunctions.js.map +1 -1
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +2 -1
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/ToggleHighContrast/index.d.ts +3 -0
- package/dist/views/Account/ToggleHighContrast/index.d.ts.map +1 -0
- package/dist/views/Account/ToggleHighContrast/index.js +45 -0
- package/dist/views/Account/ToggleHighContrast/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -3
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Document/getDocumentView.d.ts.map +1 -1
- package/dist/views/Document/getDocumentView.js +3 -9
- package/dist/views/Document/getDocumentView.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +16 -8
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Hierarchy/index.d.ts +18 -0
- package/dist/views/Hierarchy/index.d.ts.map +1 -0
- package/dist/views/Hierarchy/index.js +20 -0
- package/dist/views/Hierarchy/index.js.map +1 -0
- package/dist/views/List/handleHierarchy.d.ts +18 -0
- package/dist/views/List/handleHierarchy.d.ts.map +1 -0
- package/dist/views/List/handleHierarchy.js +258 -0
- package/dist/views/List/handleHierarchy.js.map +1 -0
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +101 -30
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts +12 -0
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -0
- package/dist/views/Root/getCustomGlobalViewByRoute.js +46 -0
- package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -0
- package/dist/views/Root/getRouteData.d.ts +1 -4
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +83 -110
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +5 -12
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/metadata.d.ts.map +1 -1
- package/dist/views/Root/metadata.js +1 -37
- package/dist/views/Root/metadata.js.map +1 -1
- package/dist/views/Version/Restore/index.js +1 -1
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/withPayload/withPayload.d.ts +127 -1
- package/dist/withPayload/withPayload.d.ts.map +1 -1
- package/dist/withPayload/withPayload.js +8 -22
- package/dist/withPayload/withPayload.js.map +1 -1
- package/dist/withPayload/withPayload.utils.d.ts +0 -14
- package/dist/withPayload/withPayload.utils.d.ts.map +1 -1
- package/dist/withPayload/withPayload.utils.js +0 -73
- package/dist/withPayload/withPayload.utils.js.map +1 -1
- package/package.json +11 -11
- package/dist/views/BrowseByFolder/buildView.d.ts +0 -13
- package/dist/views/BrowseByFolder/buildView.d.ts.map +0 -1
- package/dist/views/BrowseByFolder/buildView.js +0 -170
- package/dist/views/BrowseByFolder/buildView.js.map +0 -1
- package/dist/views/BrowseByFolder/index.d.ts +0 -4
- package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
- package/dist/views/BrowseByFolder/index.js +0 -20
- package/dist/views/BrowseByFolder/index.js.map +0 -1
- package/dist/views/BrowseByFolder/metadata.d.ts +0 -4
- package/dist/views/BrowseByFolder/metadata.d.ts.map +0 -1
- package/dist/views/BrowseByFolder/metadata.js +0 -18
- package/dist/views/BrowseByFolder/metadata.js.map +0 -1
- package/dist/views/CollectionFolders/buildView.d.ts +0 -15
- package/dist/views/CollectionFolders/buildView.d.ts.map +0 -1
- package/dist/views/CollectionFolders/buildView.js +0 -156
- package/dist/views/CollectionFolders/buildView.js.map +0 -1
- package/dist/views/CollectionFolders/index.d.ts +0 -4
- package/dist/views/CollectionFolders/index.d.ts.map +0 -1
- package/dist/views/CollectionFolders/index.js +0 -20
- package/dist/views/CollectionFolders/index.js.map +0 -1
- package/dist/views/CollectionFolders/metadata.d.ts +0 -7
- package/dist/views/CollectionFolders/metadata.d.ts.map +0 -1
- package/dist/views/CollectionFolders/metadata.js +0 -25
- package/dist/views/CollectionFolders/metadata.js.map +0 -1
- package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +0 -11
- package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +0 -1
- package/dist/views/CollectionFolders/renderFolderViewSlots.js +0 -64
- package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +0 -1
- package/dist/withPayload/withPayloadLegacy.d.ts +0 -2
- package/dist/withPayload/withPayloadLegacy.d.ts.map +0 -1
- package/dist/withPayload/withPayloadLegacy.js +0 -47
- package/dist/withPayload/withPayloadLegacy.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentView.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomDocumentViewByKey","getCustomViewByRoute","getDocumentView","collectionConfig","config","docPermissions","globalConfig","routeSegments","View","viewKey","routes","admin","adminRoute","views","components","read","Error","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","length","create","baseRoute","filter","Boolean","join","currentRoute","Component","CustomViewComponent","customViewKey","hideAPIURL","readVersions","isTrashedVersionView","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getDocumentView.tsx"],"sourcesContent":["import type {\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n} from 'payload'\nimport type React from 'react'\n\nimport type { ViewToRender } from './index.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getDocumentView = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n}): {\n View: ViewToRender\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let View: ViewToRender = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n if (!docPermissions?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/create\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n // --> /collections/:collectionSlug/create\n case 'create': {\n if ('create' in docPermissions && docPermissions.create) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n } else {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/<custom-segment>\n // --> /collections/:collectionSlug/trash/:id\n case 4: {\n // --> /collections/:collectionSlug/trash/:id\n if (segment3 === 'trash' && segment4) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n switch (segment4) {\n // --> /collections/:collectionSlug/:id/api\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/<custom-segment>\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/<custom-segment>\n // --> /collections/:collectionSlug/:id/versions/:version\n case 5: {\n // --> /collections/:slug/trash/:id/api\n if (segment3 === 'trash') {\n switch (segment5) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n // --> /collections/:slug/trash/:id/versions\n case 'versions': {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n default: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n }\n // --> /collections/:collectionSlug/:id/versions/:version\n } else if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n default: {\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n const isTrashedVersionView = segment3 === 'trash' && segment5 === 'versions'\n\n if (isTrashedVersionView) {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n switch (routeSegments.length) {\n // --> /globals/:globalSlug\n case 2: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n\n case 3: {\n // --> /globals/:globalSlug/api\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/<custom-segment>\n switch (segment3) {\n // --> /globals/:globalSlug/api\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n }\n\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /globals/:globalSlug/<custom-segment>\n default: {\n if (docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n View = CustomViewComponent\n } else {\n View = DefaultEditView\n }\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n }\n break\n }\n\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n default: {\n // --> /globals/:globalSlug/versions/:version\n if (segment3 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n return {\n View,\n viewKey,\n }\n}\n"],"mappings":"AAYA,SAASA,OAAA,IAAWC,cAAc,QAAQ;AAC1C,SAASC,QAAA,IAAYC,eAAe,QAAQ;AAC5C,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,WAAA,IAAeC,kBAAkB,QAAQ;AAClD,SAASC,YAAA,IAAgBC,mBAAmB,QAAQ;AACpD,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,oBAAoB,QAAQ;AAOrC,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAC9BC,gBAAgB;EAChBC,MAAM;EACNC,cAAc;EACdC,YAAY;EACZC;AAAa,CAOd;EAIC;EACA,IAAIC,IAAA,GAAqB;EACzB,IAAIC,OAAA;EAEJ,MAAM;IACJC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGR,MAAA;EAEJ,MAAMS,KAAA,GACJV,gBAAC,IAAoBA,gBAAA,EAAkBQ,KAAA,EAAOG,UAAA,EAAYD,KAAA,IACzDP,YAAA,IAAgBA,YAAA,EAAcK,KAAA,EAAOG,UAAA,EAAYD,KAAA;EAEpD,IAAI,CAACR,cAAA,EAAgBU,IAAA,EAAM;IACzB,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,IAAIb,gBAAA,EAAkB;IACpB,MAAM,CAACc,gBAAA,EAAkBC,cAAA,EAAgBC,QAAA,EAAUC,QAAA,EAAUC,QAAA,EAAU,GAAGC,iBAAA,CAAkB,GAC1Ff,aAAA;IAEF;IACA;IACA,QAAQA,aAAA,CAAcgB,MAAM;MAC1B,KAAK;QAAG;UACN,QAAQJ,QAAA;YACN;YACA,KAAK;cAAU;gBACb,IAAI,YAAYd,cAAA,IAAkBA,cAAA,CAAemB,MAAM,EAAE;kBACvDhB,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAcnB,eAAA;gBACzD,OAAO;kBACLc,IAAA,GAAOb,0BAAA;gBACT;gBACA;cACF;YAEA;YACA;cAAS;gBACP,MAAM8B,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtB,eACAM,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAM;kBAAEE,SAAA,EAAWC,mBAAmB;kBAAEtB,OAAA,EAASuB;gBAAa,CAAE,GAAG/B,oBAAA,CACjE;kBACEwB,SAAA;kBACAI,YAAA;kBACAhB;gBACF;gBAGF,IAAImB,aAAA,EAAe;kBACjBvB,OAAA,GAAUuB,aAAA;kBACVxB,IAAA,GAAOuB,mBAAA;gBACT,OAAO;kBACLvB,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAcnB,eAAA;gBACzD;gBAEA;cACF;UACF;UACA;QACF;MAEA;MACA;MACA;MACA;MACA,KAAK;QAAG;UACN;UACA,IAAIyB,QAAA,KAAa,WAAWC,QAAA,EAAU;YACpCZ,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAcnB,eAAA;YACvD;UACF;UACA,QAAQ0B,QAAA;YACN;YACA,KAAK;cAAO;gBACV,IAAIjB,gBAAA,EAAkBQ,KAAA,EAAOsB,UAAA,KAAe,MAAM;kBAChDzB,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,UAAUrB,cAAA;gBACrD;gBACA;cACF;YAEA,KAAK;cAAY;gBACf;gBACA,IAAIa,cAAA,EAAgB6B,YAAA,EAAc;kBAChC1B,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,eAAed,mBAAA;gBAC1D,OAAO;kBACLS,IAAA,GAAOb,0BAAA;gBACT;gBACA;cACF;YAEA;YACA;cAAS;gBACP,MAAM8B,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtB,eACAM,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,MAAM;kBAAEE,SAAA,EAAWC,mBAAmB;kBAAEtB,OAAA,EAASuB;gBAAa,CAAE,GAAG/B,oBAAA,CACjE;kBACEwB,SAAA;kBACAI,YAAA;kBACAhB;gBACF;gBAGF,IAAImB,aAAA,EAAe;kBACjBvB,OAAA,GAAUuB,aAAA;kBACVxB,IAAA,GAAOuB,mBAAA;gBACT;gBAEA;cACF;UACF;UACA;QACF;MAEA;MACA;MACA;MACA;MACA,KAAK;QAAG;UACN;UACA,IAAIZ,QAAA,KAAa,SAAS;YACxB,QAAQE,QAAA;cACN,KAAK;gBAAO;kBACV,IAAIlB,gBAAA,EAAkBQ,KAAA,EAAOsB,UAAA,KAAe,MAAM;oBAChDzB,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,UAAUrB,cAAA;kBACrD;kBACA;gBACF;cACA;cACA,KAAK;gBAAY;kBACf,IAAIa,cAAA,EAAgB6B,YAAA,EAAc;oBAChC1B,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,eAAed,mBAAA;kBAC1D,OAAO;oBACLS,IAAA,GAAOb,0BAAA;kBACT;kBACA;gBACF;cAEA;gBAAS;kBACPa,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAcnB,eAAA;kBACvD;gBACF;YACF;YACA;UACF,OAAO,IAAI0B,QAAA,KAAa,YAAY;YAClC,IAAIf,cAAA,EAAgB6B,YAAA,EAAc;cAChC1B,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAchB,kBAAA;YACzD,OAAO;cACLW,IAAA,GAAOb,0BAAA;YACT;UACF,OAAO;YACL;YACA,MAAM8B,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtBK,gBAAA,EACAC,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAM;cAAEE,SAAA,EAAWC,mBAAmB;cAAEtB,OAAA,EAASuB;YAAa,CAAE,GAAG/B,oBAAA,CAAqB;cACtFwB,SAAA;cACAI,YAAA;cACAhB;YACF;YAEA,IAAImB,aAAA,EAAe;cACjBvB,OAAA,GAAUuB,aAAA;cACVxB,IAAA,GAAOuB,mBAAA;YACT;UACF;UAEA;QACF;MAEA;MACA;MACA;QAAS;UACP;UACA,MAAMI,oBAAA,GAAuBhB,QAAA,KAAa,WAAWE,QAAA,KAAa;UAElE,IAAIc,oBAAA,EAAsB;YACxB,IAAI9B,cAAA,EAAgB6B,YAAA,EAAc;cAChC1B,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAchB,kBAAA;YACzD,OAAO;cACLW,IAAA,GAAOb,0BAAA;YACT;UACF,OAAO;YACL;YACA,MAAM8B,SAAA,GAAY,CAChBb,UAAA,KAAe,OAAOA,UAAA,EACtBK,gBAAA,EACAC,cAAA,EACAC,QAAA,CACD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWL,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAM;cAAEE,SAAA,EAAWC,mBAAmB;cAAEtB,OAAA,EAASuB;YAAa,CAAE,GAAG/B,oBAAA,CAAqB;cACtFwB,SAAA;cACAI,YAAA;cACAhB;YACF;YAEA,IAAImB,aAAA,EAAe;cACjBvB,OAAA,GAAUuB,aAAA;cACVxB,IAAA,GAAOuB,mBAAA;YACT;UACF;UAEA;QACF;IACF;EACF;EAEA,IAAIzB,YAAA,EAAc;IAChB,MAAM,CAAC8B,YAAA,EAAcC,UAAA,EAAYlB,QAAA,EAAU,GAAGG,iBAAA,CAAkB,GAAGf,aAAA;IAEnE,QAAQA,aAAA,CAAcgB,MAAM;MAC1B;MACA,KAAK;QAAG;UACNf,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAcnB,eAAA;UACvD;QACF;MAEA,KAAK;QAAG;UACN;UACA;UACA;UACA,QAAQyB,QAAA;YACN;YACA,KAAK;cAAO;gBACV,IAAIb,YAAA,EAAcK,KAAA,EAAOsB,UAAA,KAAe,MAAM;kBAC5CzB,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,UAAUrB,cAAA;gBACrD;gBAEA;cACF;YAEA,KAAK;cAAY;gBACf;gBACA,IAAIa,cAAA,EAAgB6B,YAAA,EAAc;kBAChC1B,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,eAAed,mBAAA;gBAC1D,OAAO;kBACLS,IAAA,GAAOb,0BAAA;gBACT;gBACA;cACF;YAEA;YACA;cAAS;gBACP,IAAIU,cAAA,EAAgBU,IAAA,EAAM;kBACxB,MAAMU,SAAA,GAAY,CAACb,UAAA,EAAYwB,YAAA,EAAcC,UAAA,EAAYlB,QAAA,CAAS,CAC/DO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWN,QAAA,E,GAAaG,iBAAA,CAAkB,CAC7DI,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAM;oBAAEE,SAAA,EAAWC,mBAAmB;oBAAEtB,OAAA,EAASuB;kBAAa,CAAE,GAC9D/B,oBAAA,CAAqB;oBACnBwB,SAAA;oBACAI,YAAA;oBACAhB;kBACF;kBAEF,IAAImB,aAAA,EAAe;oBACjBvB,OAAA,GAAUuB,aAAA;oBAEVxB,IAAA,GAAOuB,mBAAA;kBACT,OAAO;oBACLvB,IAAA,GAAOd,eAAA;kBACT;gBACF,OAAO;kBACLc,IAAA,GAAOb,0BAAA;gBACT;gBACA;cACF;UACF;UACA;QACF;MAEA;MACA;MACA;QAAS;UACP;UACA,IAAIwB,QAAA,KAAa,YAAY;YAC3B,IAAId,cAAA,EAAgB6B,YAAA,EAAc;cAChC1B,IAAA,GAAOR,0BAAA,CAA2Ba,KAAA,EAAO,cAAchB,kBAAA;YACzD,OAAO;cACLW,IAAA,GAAOb,0BAAA;YACT;UACF,OAAO;YACL;YACA,MAAM8B,SAAA,GAAY,CAACb,UAAA,KAAe,OAAOA,UAAA,EAAY,WAAWyB,UAAA,CAAW,CACxEX,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;YAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWN,QAAA,E,GAAaG,iBAAA,CAAkB,CAACI,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;YAEtF,MAAM;cAAEE,SAAA,EAAWC,mBAAmB;cAAEtB,OAAA,EAASuB;YAAa,CAAE,GAAG/B,oBAAA,CAAqB;cACtFwB,SAAA;cACAI,YAAA;cACAhB;YACF;YAEA,IAAImB,aAAA,EAAe;cACjBvB,OAAA,GAAUuB,aAAA;cACVxB,IAAA,GAAOuB,mBAAA;YACT;UACF;UAEA;QACF;IACF;EACF;EAEA,OAAO;IACLvB,IAAA;IACAC;EACF;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getDocumentView.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomDocumentViewByKey","getCustomViewByRoute","getDocumentView","collectionConfig","config","docPermissions","globalConfig","routeSegments","View","viewKey","routes","admin","adminRoute","views","components","read","Error","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","length","create","baseRoute","filter","Boolean","join","currentRoute","Component","CustomViewComponent","customViewKey","readVersions","isTrashedVersionView","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getDocumentView.tsx"],"sourcesContent":["import type {\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n} from 'payload'\nimport type React from 'react'\n\nimport type { ViewToRender } from './index.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { UnauthorizedViewWithGutter } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomDocumentViewByKey } from './getCustomDocumentViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getDocumentView = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n}): {\n View: ViewToRender\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let View: ViewToRender = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n if (!docPermissions?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/create\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n // --> /collections/:collectionSlug/create\n case 'create': {\n if ('create' in docPermissions && docPermissions.create) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n } else {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/<custom-segment>\n // --> /collections/:collectionSlug/trash/:id\n case 4: {\n // --> /collections/:collectionSlug/trash/:id\n if (segment3 === 'trash' && segment4) {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n switch (segment4) {\n // --> /collections/:collectionSlug/:id/api\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /collections/:collectionSlug/:id/<custom-segment>\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n\n break\n }\n }\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/<custom-segment>\n // --> /collections/:collectionSlug/:id/versions/:version\n case 5: {\n // --> /collections/:slug/trash/:id/api\n if (segment3 === 'trash') {\n switch (segment5) {\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n // --> /collections/:slug/trash/:id/versions\n case 'versions': {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n default: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n }\n // --> /collections/:collectionSlug/:id/versions/:version\n } else if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n default: {\n // --> /collections/:collectionSlug/trash/:id/versions/:version\n const isTrashedVersionView = segment3 === 'trash' && segment5 === 'versions'\n\n if (isTrashedVersionView) {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom>/<custom>/<custom...>\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n switch (routeSegments.length) {\n // --> /globals/:globalSlug\n case 2: {\n View = getCustomDocumentViewByKey(views, 'default') || DefaultEditView\n break\n }\n\n case 3: {\n // --> /globals/:globalSlug/api\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/<custom-segment>\n switch (segment3) {\n // --> /globals/:globalSlug/api\n case 'api': {\n View = getCustomDocumentViewByKey(views, 'api') || DefaultAPIView\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n // --> /globals/:globalSlug/<custom-segment>\n default: {\n if (docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n View = CustomViewComponent\n } else {\n View = DefaultEditView\n }\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n }\n break\n }\n\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n default: {\n // --> /globals/:globalSlug/versions/:version\n if (segment3 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomDocumentViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /globals/:globalSlug/<custom-segment>/<custom-segment>\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments].filter(Boolean).join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n View = CustomViewComponent\n }\n }\n\n break\n }\n }\n }\n\n return {\n View,\n viewKey,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderDocumentSlots.d.ts","sourceRoot":"","sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,MAAM,EACN,cAAc,EAGd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EAGpB,cAAc,EAMf,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,mBAAmB,EAAE,CAAC,IAAI,EAAE;IACvC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,
|
|
1
|
+
{"version":3,"file":"renderDocumentSlots.d.ts","sourceRoot":"","sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,MAAM,EACN,cAAc,EAGd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EAGpB,cAAc,EAMf,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,mBAAmB,EAAE,CAAC,IAAI,EAAE;IACvC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,aA4LL,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,cAAc,CAAC;IACtD,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAwBA,CAAA"}
|
|
@@ -23,7 +23,7 @@ export const renderDocumentSlots = args => {
|
|
|
23
23
|
permissions,
|
|
24
24
|
user: req.user
|
|
25
25
|
};
|
|
26
|
-
const BeforeDocumentControls = collectionConfig?.admin?.components?.edit?.beforeDocumentControls || globalConfig?.admin?.components?.
|
|
26
|
+
const BeforeDocumentControls = collectionConfig?.admin?.components?.edit?.beforeDocumentControls || globalConfig?.admin?.components?.edit?.beforeDocumentControls;
|
|
27
27
|
if (BeforeDocumentControls) {
|
|
28
28
|
components.BeforeDocumentControls = RenderServerComponent({
|
|
29
29
|
Component: BeforeDocumentControls,
|
|
@@ -31,6 +31,14 @@ export const renderDocumentSlots = args => {
|
|
|
31
31
|
serverProps: serverProps
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
+
const BeforeDocumentMeta = collectionConfig?.admin?.components?.edit?.BeforeDocumentMeta || globalConfig?.admin?.components?.edit?.BeforeDocumentMeta;
|
|
35
|
+
if (BeforeDocumentMeta) {
|
|
36
|
+
components.BeforeDocumentMeta = RenderServerComponent({
|
|
37
|
+
Component: BeforeDocumentMeta,
|
|
38
|
+
importMap: req.payload.importMap,
|
|
39
|
+
serverProps
|
|
40
|
+
});
|
|
41
|
+
}
|
|
34
42
|
const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems;
|
|
35
43
|
if (EditMenuItems) {
|
|
36
44
|
components.EditMenuItems = RenderServerComponent({
|
|
@@ -39,7 +47,7 @@ export const renderDocumentSlots = args => {
|
|
|
39
47
|
serverProps: serverProps
|
|
40
48
|
});
|
|
41
49
|
}
|
|
42
|
-
const CustomPreviewButton = collectionConfig?.admin?.components?.edit?.PreviewButton || globalConfig?.admin?.components?.
|
|
50
|
+
const CustomPreviewButton = collectionConfig?.admin?.components?.edit?.PreviewButton || globalConfig?.admin?.components?.edit?.PreviewButton;
|
|
43
51
|
if (isPreviewEnabled && CustomPreviewButton) {
|
|
44
52
|
components.PreviewButton = RenderServerComponent({
|
|
45
53
|
Component: CustomPreviewButton,
|
|
@@ -59,7 +67,7 @@ export const renderDocumentSlots = args => {
|
|
|
59
67
|
const staticDescription = typeof descriptionFromConfig === 'function' ? descriptionFromConfig({
|
|
60
68
|
t: req.i18n.t
|
|
61
69
|
}) : descriptionFromConfig;
|
|
62
|
-
const CustomDescription = collectionConfig?.admin?.components?.Description || globalConfig?.admin?.components?.
|
|
70
|
+
const CustomDescription = collectionConfig?.admin?.components?.Description || globalConfig?.admin?.components?.Description;
|
|
63
71
|
const hasDescription = CustomDescription || staticDescription;
|
|
64
72
|
if (hasDescription) {
|
|
65
73
|
components.Description = RenderServerComponent({
|
|
@@ -74,7 +82,7 @@ export const renderDocumentSlots = args => {
|
|
|
74
82
|
});
|
|
75
83
|
}
|
|
76
84
|
if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {
|
|
77
|
-
const CustomStatus = collectionConfig?.admin?.components?.edit?.Status || globalConfig?.admin?.components?.
|
|
85
|
+
const CustomStatus = collectionConfig?.admin?.components?.edit?.Status || globalConfig?.admin?.components?.edit?.Status;
|
|
78
86
|
if (CustomStatus) {
|
|
79
87
|
components.Status = RenderServerComponent({
|
|
80
88
|
Component: CustomStatus,
|
|
@@ -85,7 +93,7 @@ export const renderDocumentSlots = args => {
|
|
|
85
93
|
}
|
|
86
94
|
if (hasSavePermission) {
|
|
87
95
|
if (hasDraftsEnabled(collectionConfig || globalConfig)) {
|
|
88
|
-
const CustomPublishButton = collectionConfig?.admin?.components?.edit?.PublishButton || globalConfig?.admin?.components?.
|
|
96
|
+
const CustomPublishButton = collectionConfig?.admin?.components?.edit?.PublishButton || globalConfig?.admin?.components?.edit?.PublishButton;
|
|
89
97
|
if (CustomPublishButton) {
|
|
90
98
|
components.PublishButton = RenderServerComponent({
|
|
91
99
|
Component: CustomPublishButton,
|
|
@@ -93,7 +101,7 @@ export const renderDocumentSlots = args => {
|
|
|
93
101
|
serverProps: serverProps
|
|
94
102
|
});
|
|
95
103
|
}
|
|
96
|
-
const CustomUnpublishButton = collectionConfig?.admin?.components?.edit?.UnpublishButton || globalConfig?.admin?.components?.
|
|
104
|
+
const CustomUnpublishButton = collectionConfig?.admin?.components?.edit?.UnpublishButton || globalConfig?.admin?.components?.edit?.UnpublishButton;
|
|
97
105
|
if (CustomUnpublishButton) {
|
|
98
106
|
components.UnpublishButton = RenderServerComponent({
|
|
99
107
|
Component: CustomUnpublishButton,
|
|
@@ -101,7 +109,7 @@ export const renderDocumentSlots = args => {
|
|
|
101
109
|
serverProps: serverProps
|
|
102
110
|
});
|
|
103
111
|
}
|
|
104
|
-
const CustomSaveDraftButton = collectionConfig?.admin?.components?.edit?.SaveDraftButton || globalConfig?.admin?.components?.
|
|
112
|
+
const CustomSaveDraftButton = collectionConfig?.admin?.components?.edit?.SaveDraftButton || globalConfig?.admin?.components?.edit?.SaveDraftButton;
|
|
105
113
|
const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig);
|
|
106
114
|
if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {
|
|
107
115
|
components.SaveDraftButton = RenderServerComponent({
|
|
@@ -111,7 +119,7 @@ export const renderDocumentSlots = args => {
|
|
|
111
119
|
});
|
|
112
120
|
}
|
|
113
121
|
} else {
|
|
114
|
-
const CustomSaveButton = collectionConfig?.admin?.components?.edit?.SaveButton || globalConfig?.admin?.components?.
|
|
122
|
+
const CustomSaveButton = collectionConfig?.admin?.components?.edit?.SaveButton || globalConfig?.admin?.components?.edit?.SaveButton;
|
|
115
123
|
if (CustomSaveButton) {
|
|
116
124
|
components.SaveButton = RenderServerComponent({
|
|
117
125
|
Component: CustomSaveButton,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderDocumentSlots.js","names":["ViewDescription","RenderServerComponent","hasDraftsEnabled","getDocumentPermissions","renderDocumentSlots","args","id","collectionConfig","globalConfig","hasSavePermission","locale","permissions","req","components","unsavedDraftWithValidations","undefined","isPreviewEnabled","admin","preview","serverProps","i18n","payload","user","BeforeDocumentControls","edit","beforeDocumentControls","elements","Component","importMap","EditMenuItems","editMenuItems","CustomPreviewButton","PreviewButton","LivePreview","views","livePreview","descriptionFromConfig","description","staticDescription","t","CustomDescription","Description","hasDescription","clientProps","collectionSlug","slug","Fallback","versions","drafts","CustomStatus","Status","CustomPublishButton","PublishButton","CustomUnpublishButton","UnpublishButton","CustomSaveDraftButton","SaveDraftButton","draftsEnabled","CustomSaveButton","SaveButton","upload","Upload","controls","UploadControls","renderDocumentSlotsHandler","collections","config","Error","data"],"sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"sourcesContent":["import type {\n BeforeDocumentControlsServerPropsOnly,\n DocumentSlots,\n EditMenuItemsServerPropsOnly,\n Locale,\n PayloadRequest,\n PreviewButtonServerPropsOnly,\n PublishButtonServerPropsOnly,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n SaveButtonServerPropsOnly,\n SaveDraftButtonServerPropsOnly,\n ServerFunction,\n ServerProps,\n StaticDescription,\n UnpublishButtonServerPropsOnly,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { ViewDescription } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { hasDraftsEnabled } from 'payload/shared'\n\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport const renderDocumentSlots: (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasSavePermission: boolean\n id?: number | string\n locale: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}) => DocumentSlots = (args) => {\n const { id, collectionConfig, globalConfig, hasSavePermission, locale, permissions, req } = args\n\n const components: DocumentSlots = {} as DocumentSlots\n\n const unsavedDraftWithValidations = undefined\n\n const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview\n\n const serverProps: ServerProps = {\n id,\n i18n: req.i18n,\n locale,\n payload: req.payload,\n permissions,\n user: req.user,\n // TODO: Add remaining serverProps\n }\n\n const BeforeDocumentControls =\n collectionConfig?.admin?.components?.edit?.beforeDocumentControls ||\n globalConfig?.admin?.components?.elements?.beforeDocumentControls\n\n if (BeforeDocumentControls) {\n components.BeforeDocumentControls = RenderServerComponent({\n Component: BeforeDocumentControls,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies BeforeDocumentControlsServerPropsOnly,\n })\n }\n\n const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems\n\n if (EditMenuItems) {\n components.EditMenuItems = RenderServerComponent({\n Component: EditMenuItems,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies EditMenuItemsServerPropsOnly,\n })\n }\n\n const CustomPreviewButton =\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n\n if (isPreviewEnabled && CustomPreviewButton) {\n components.PreviewButton = RenderServerComponent({\n Component: CustomPreviewButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PreviewButtonServerPropsOnly,\n })\n }\n\n const LivePreview =\n collectionConfig?.admin?.components?.views?.edit?.livePreview ||\n globalConfig?.admin?.components?.views?.edit?.livePreview\n\n if (LivePreview?.Component) {\n components.LivePreview = RenderServerComponent({\n Component: LivePreview.Component,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n const descriptionFromConfig =\n collectionConfig?.admin?.description || globalConfig?.admin?.description\n\n const staticDescription: StaticDescription =\n typeof descriptionFromConfig === 'function'\n ? descriptionFromConfig({ t: req.i18n.t })\n : descriptionFromConfig\n\n const CustomDescription =\n collectionConfig?.admin?.components?.Description ||\n globalConfig?.admin?.components?.elements?.Description\n\n const hasDescription = CustomDescription || staticDescription\n\n if (hasDescription) {\n components.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig?.slug,\n description: staticDescription,\n } satisfies ViewDescriptionClientProps,\n Component: CustomDescription,\n Fallback: ViewDescription,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n const CustomStatus =\n collectionConfig?.admin?.components?.edit?.Status ||\n globalConfig?.admin?.components?.elements?.Status\n\n if (CustomStatus) {\n components.Status = RenderServerComponent({\n Component: CustomStatus,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n }\n\n if (hasSavePermission) {\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n const CustomPublishButton =\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n\n if (CustomPublishButton) {\n components.PublishButton = RenderServerComponent({\n Component: CustomPublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PublishButtonServerPropsOnly,\n })\n }\n\n const CustomUnpublishButton =\n collectionConfig?.admin?.components?.edit?.UnpublishButton ||\n globalConfig?.admin?.components?.elements?.UnpublishButton\n\n if (CustomUnpublishButton) {\n components.UnpublishButton = RenderServerComponent({\n Component: CustomUnpublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies UnpublishButtonServerPropsOnly,\n })\n }\n\n const CustomSaveDraftButton =\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n\n const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig)\n\n if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {\n components.SaveDraftButton = RenderServerComponent({\n Component: CustomSaveDraftButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveDraftButtonServerPropsOnly,\n })\n }\n } else {\n const CustomSaveButton =\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n\n if (CustomSaveButton) {\n components.SaveButton = RenderServerComponent({\n Component: CustomSaveButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveButtonServerPropsOnly,\n })\n }\n }\n }\n\n if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {\n components.Upload = RenderServerComponent({\n Component: collectionConfig.admin.components.edit.Upload,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n if (collectionConfig?.upload && collectionConfig.upload.admin?.components?.controls) {\n components.UploadControls = RenderServerComponent({\n Component: collectionConfig.upload.admin.components.controls,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n return components\n}\n\nexport const renderDocumentSlotsHandler: ServerFunction<{\n collectionSlug: string\n id?: number | string\n}> = async (args) => {\n const { id, collectionSlug, locale, permissions, req } = args\n\n const collectionConfig = req.payload.collections[collectionSlug]?.config\n\n if (!collectionConfig) {\n throw new Error(req.t('error:incorrectCollection'))\n }\n\n const { hasSavePermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n req,\n })\n\n return renderDocumentSlots({\n id,\n collectionConfig,\n hasSavePermission,\n locale,\n permissions,\n req,\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderDocumentSlots.js","names":["ViewDescription","RenderServerComponent","hasDraftsEnabled","getDocumentPermissions","renderDocumentSlots","args","id","collectionConfig","globalConfig","hasSavePermission","locale","permissions","req","components","unsavedDraftWithValidations","undefined","isPreviewEnabled","admin","preview","serverProps","i18n","payload","user","BeforeDocumentControls","edit","beforeDocumentControls","Component","importMap","BeforeDocumentMeta","EditMenuItems","editMenuItems","CustomPreviewButton","PreviewButton","LivePreview","views","livePreview","descriptionFromConfig","description","staticDescription","t","CustomDescription","Description","hasDescription","clientProps","collectionSlug","slug","Fallback","versions","drafts","CustomStatus","Status","CustomPublishButton","PublishButton","CustomUnpublishButton","UnpublishButton","CustomSaveDraftButton","SaveDraftButton","draftsEnabled","CustomSaveButton","SaveButton","upload","Upload","controls","UploadControls","renderDocumentSlotsHandler","collections","config","Error","data"],"sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"sourcesContent":["import type {\n BeforeDocumentControlsServerPropsOnly,\n DocumentSlots,\n EditMenuItemsServerPropsOnly,\n Locale,\n PayloadRequest,\n PreviewButtonServerPropsOnly,\n PublishButtonServerPropsOnly,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n SaveButtonServerPropsOnly,\n SaveDraftButtonServerPropsOnly,\n ServerFunction,\n ServerProps,\n StaticDescription,\n UnpublishButtonServerPropsOnly,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { ViewDescription } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { hasDraftsEnabled } from 'payload/shared'\n\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport const renderDocumentSlots: (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasSavePermission: boolean\n id?: number | string\n locale: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}) => DocumentSlots = (args) => {\n const { id, collectionConfig, globalConfig, hasSavePermission, locale, permissions, req } = args\n\n const components: DocumentSlots = {} as DocumentSlots\n\n const unsavedDraftWithValidations = undefined\n\n const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview\n\n const serverProps: ServerProps = {\n id,\n i18n: req.i18n,\n locale,\n payload: req.payload,\n permissions,\n user: req.user,\n // TODO: Add remaining serverProps\n }\n\n const BeforeDocumentControls =\n collectionConfig?.admin?.components?.edit?.beforeDocumentControls ||\n globalConfig?.admin?.components?.edit?.beforeDocumentControls\n\n if (BeforeDocumentControls) {\n components.BeforeDocumentControls = RenderServerComponent({\n Component: BeforeDocumentControls,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies BeforeDocumentControlsServerPropsOnly,\n })\n }\n\n const BeforeDocumentMeta =\n collectionConfig?.admin?.components?.edit?.BeforeDocumentMeta ||\n globalConfig?.admin?.components?.edit?.BeforeDocumentMeta\n\n if (BeforeDocumentMeta) {\n components.BeforeDocumentMeta = RenderServerComponent({\n Component: BeforeDocumentMeta,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems\n\n if (EditMenuItems) {\n components.EditMenuItems = RenderServerComponent({\n Component: EditMenuItems,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies EditMenuItemsServerPropsOnly,\n })\n }\n\n const CustomPreviewButton =\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.edit?.PreviewButton\n\n if (isPreviewEnabled && CustomPreviewButton) {\n components.PreviewButton = RenderServerComponent({\n Component: CustomPreviewButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PreviewButtonServerPropsOnly,\n })\n }\n\n const LivePreview =\n collectionConfig?.admin?.components?.views?.edit?.livePreview ||\n globalConfig?.admin?.components?.views?.edit?.livePreview\n\n if (LivePreview?.Component) {\n components.LivePreview = RenderServerComponent({\n Component: LivePreview.Component,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n const descriptionFromConfig =\n collectionConfig?.admin?.description || globalConfig?.admin?.description\n\n const staticDescription: StaticDescription =\n typeof descriptionFromConfig === 'function'\n ? descriptionFromConfig({ t: req.i18n.t })\n : descriptionFromConfig\n\n const CustomDescription =\n collectionConfig?.admin?.components?.Description || globalConfig?.admin?.components?.Description\n\n const hasDescription = CustomDescription || staticDescription\n\n if (hasDescription) {\n components.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig?.slug,\n description: staticDescription,\n } satisfies ViewDescriptionClientProps,\n Component: CustomDescription,\n Fallback: ViewDescription,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n const CustomStatus =\n collectionConfig?.admin?.components?.edit?.Status ||\n globalConfig?.admin?.components?.edit?.Status\n\n if (CustomStatus) {\n components.Status = RenderServerComponent({\n Component: CustomStatus,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n }\n\n if (hasSavePermission) {\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n const CustomPublishButton =\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.edit?.PublishButton\n\n if (CustomPublishButton) {\n components.PublishButton = RenderServerComponent({\n Component: CustomPublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PublishButtonServerPropsOnly,\n })\n }\n\n const CustomUnpublishButton =\n collectionConfig?.admin?.components?.edit?.UnpublishButton ||\n globalConfig?.admin?.components?.edit?.UnpublishButton\n\n if (CustomUnpublishButton) {\n components.UnpublishButton = RenderServerComponent({\n Component: CustomUnpublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies UnpublishButtonServerPropsOnly,\n })\n }\n\n const CustomSaveDraftButton =\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.edit?.SaveDraftButton\n\n const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig)\n\n if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {\n components.SaveDraftButton = RenderServerComponent({\n Component: CustomSaveDraftButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveDraftButtonServerPropsOnly,\n })\n }\n } else {\n const CustomSaveButton =\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.edit?.SaveButton\n\n if (CustomSaveButton) {\n components.SaveButton = RenderServerComponent({\n Component: CustomSaveButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveButtonServerPropsOnly,\n })\n }\n }\n }\n\n if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {\n components.Upload = RenderServerComponent({\n Component: collectionConfig.admin.components.edit.Upload,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n if (collectionConfig?.upload && collectionConfig.upload.admin?.components?.controls) {\n components.UploadControls = RenderServerComponent({\n Component: collectionConfig.upload.admin.components.controls,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n return components\n}\n\nexport const renderDocumentSlotsHandler: ServerFunction<{\n collectionSlug: string\n id?: number | string\n}> = async (args) => {\n const { id, collectionSlug, locale, permissions, req } = args\n\n const collectionConfig = req.payload.collections[collectionSlug]?.config\n\n if (!collectionConfig) {\n throw new Error(req.t('error:incorrectCollection'))\n }\n\n const { hasSavePermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n req,\n })\n\n return renderDocumentSlots({\n id,\n collectionConfig,\n hasSavePermission,\n locale,\n permissions,\n req,\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AdminViewServerProps, ListQuery } from 'payload';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
type RenderHierarchyViewArgs = {
|
|
4
|
+
customCellProps?: Record<string, any>;
|
|
5
|
+
disableBulkDelete?: boolean;
|
|
6
|
+
disableBulkEdit?: boolean;
|
|
7
|
+
disableQueryPresets?: boolean;
|
|
8
|
+
drawerSlug?: string;
|
|
9
|
+
enableRowSelections: boolean;
|
|
10
|
+
overrideEntityVisibility?: boolean;
|
|
11
|
+
query: ListQuery;
|
|
12
|
+
redirectAfterDelete?: boolean;
|
|
13
|
+
redirectAfterDuplicate?: boolean;
|
|
14
|
+
redirectAfterRestore?: boolean;
|
|
15
|
+
} & AdminViewServerProps;
|
|
16
|
+
export declare const HierarchyView: React.FC<Omit<RenderHierarchyViewArgs, 'enableRowSelections'>>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Hierarchy/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,KAAK,uBAAuB,GAAG;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,GAAG,oBAAoB,CAAA;AAExB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAiBxF,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { notFound } from 'next/navigation.js';
|
|
2
|
+
import { renderListView } from '../List/index.js';
|
|
3
|
+
export const HierarchyView = async args => {
|
|
4
|
+
try {
|
|
5
|
+
const {
|
|
6
|
+
List: HierarchyList
|
|
7
|
+
} = await renderListView({
|
|
8
|
+
...args,
|
|
9
|
+
enableRowSelections: true,
|
|
10
|
+
viewType: 'hierarchy'
|
|
11
|
+
});
|
|
12
|
+
return HierarchyList;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
if (error.message === 'not-found') {
|
|
15
|
+
notFound();
|
|
16
|
+
}
|
|
17
|
+
console.error(error); // eslint-disable-line no-console
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["notFound","renderListView","HierarchyView","args","List","HierarchyList","enableRowSelections","viewType","error","message","console"],"sources":["../../../src/views/Hierarchy/index.tsx"],"sourcesContent":["import type { AdminViewServerProps, ListQuery } from 'payload'\nimport type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { renderListView } from '../List/index.js'\n\ntype RenderHierarchyViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n redirectAfterRestore?: boolean\n} & AdminViewServerProps\n\nexport const HierarchyView: React.FC<Omit<RenderHierarchyViewArgs, 'enableRowSelections'>> = async (\n args,\n) => {\n try {\n const { List: HierarchyList } = await renderListView({\n ...args,\n enableRowSelections: true,\n viewType: 'hierarchy',\n })\n\n return HierarchyList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n }\n console.error(error) // eslint-disable-line no-console\n }\n}\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AAEzB,SAASC,cAAc,QAAQ;AAgB/B,OAAO,MAAMC,aAAA,GAAgF,MAC3FC,IAAA;EAEA,IAAI;IACF,MAAM;MAAEC,IAAA,EAAMC;IAAa,CAAE,GAAG,MAAMJ,cAAA,CAAe;MACnD,GAAGE,IAAI;MACPG,mBAAA,EAAqB;MACrBC,QAAA,EAAU;IACZ;IAEA,OAAOF,aAAA;EACT,EAAE,OAAOG,KAAA,EAAO;IACd,IAAIA,KAAA,CAAMC,OAAO,KAAK,aAAa;MACjCT,QAAA;IACF;IACAU,OAAA,CAAQF,KAAK,CAACA,KAAA,GAAO;EACvB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { HierarchyViewData, PayloadRequest, SanitizedCollectionConfig, SanitizedPermissions, Where } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Fetches hierarchy data for a collection with a selected parent.
|
|
4
|
+
* Returns data that can be rendered client-side by HierarchyTable.
|
|
5
|
+
*/
|
|
6
|
+
export declare const handleHierarchy: ({ baseFilter, collectionConfig, collectionSlug, parentId, permissions, req, search, typeFilter, user, }: {
|
|
7
|
+
baseFilter?: null | Where;
|
|
8
|
+
collectionConfig: SanitizedCollectionConfig;
|
|
9
|
+
collectionSlug: string;
|
|
10
|
+
parentId: null | number | string;
|
|
11
|
+
permissions?: SanitizedPermissions;
|
|
12
|
+
req: PayloadRequest;
|
|
13
|
+
search?: string;
|
|
14
|
+
/** Filter hierarchy items by their collectionSpecific type field */
|
|
15
|
+
typeFilter?: string[];
|
|
16
|
+
user: PayloadRequest["user"];
|
|
17
|
+
}) => Promise<HierarchyViewData>;
|
|
18
|
+
//# sourceMappingURL=handleHierarchy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleHierarchy.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleHierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,yBAAyB,EACzB,oBAAoB,EAEpB,KAAK,EACN,MAAM,SAAS,CAAA;AAMhB;;;GAGG;AACH,eAAO,MAAM,eAAe,4GAUzB;IACD,UAAU,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACzB,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAG,OAAO,CAAC,iBAAiB,CAkP5B,CAAA"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
2
|
+
import { getAncestors } from 'payload';
|
|
3
|
+
import { combineWhereConstraints, DEFAULT_HIERARCHY_LIST_LIMIT } from 'payload/shared';
|
|
4
|
+
/**
|
|
5
|
+
* Fetches hierarchy data for a collection with a selected parent.
|
|
6
|
+
* Returns data that can be rendered client-side by HierarchyTable.
|
|
7
|
+
*/
|
|
8
|
+
export const handleHierarchy = async ({
|
|
9
|
+
baseFilter,
|
|
10
|
+
collectionConfig,
|
|
11
|
+
collectionSlug,
|
|
12
|
+
parentId,
|
|
13
|
+
permissions,
|
|
14
|
+
req,
|
|
15
|
+
search,
|
|
16
|
+
typeFilter,
|
|
17
|
+
user
|
|
18
|
+
}) => {
|
|
19
|
+
const hierarchyConfig = collectionConfig.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
|
|
20
|
+
if (!hierarchyConfig) {
|
|
21
|
+
throw new Error('Collection is not a hierarchy');
|
|
22
|
+
}
|
|
23
|
+
const parentFieldName = hierarchyConfig.parentFieldName;
|
|
24
|
+
const useAsTitle = collectionConfig.admin?.useAsTitle || 'id';
|
|
25
|
+
// Fetch the parent item and breadcrumbs (skip for root level)
|
|
26
|
+
let parent = null;
|
|
27
|
+
let breadcrumbs = [];
|
|
28
|
+
if (parentId !== null) {
|
|
29
|
+
try {
|
|
30
|
+
const [item, ancestors] = await Promise.all([req.payload.findByID({
|
|
31
|
+
id: parentId,
|
|
32
|
+
collection: collectionSlug,
|
|
33
|
+
depth: 0,
|
|
34
|
+
overrideAccess: false,
|
|
35
|
+
req,
|
|
36
|
+
user
|
|
37
|
+
}), getAncestors({
|
|
38
|
+
id: parentId,
|
|
39
|
+
collectionSlug,
|
|
40
|
+
req
|
|
41
|
+
})]);
|
|
42
|
+
parent = item;
|
|
43
|
+
breadcrumbs = ancestors;
|
|
44
|
+
} catch (_error) {
|
|
45
|
+
req.payload.logger.warn({
|
|
46
|
+
msg: `Hierarchy item not found: ${parentId}`
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Build children where clause
|
|
51
|
+
// For root level (parentId is null), find items without a parent
|
|
52
|
+
// For nested level, find items with this specific parent
|
|
53
|
+
const parentCondition = parentId === null ? {
|
|
54
|
+
or: [{
|
|
55
|
+
[parentFieldName]: {
|
|
56
|
+
exists: false
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
59
|
+
[parentFieldName]: {
|
|
60
|
+
equals: null
|
|
61
|
+
}
|
|
62
|
+
}]
|
|
63
|
+
} : {
|
|
64
|
+
[parentFieldName]: {
|
|
65
|
+
equals: parentId
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
// Build type filter condition if typeFilter is provided and collectionSpecific is configured
|
|
69
|
+
// Filter to folders that allow ANY of the selected types OR are unrestricted
|
|
70
|
+
let typeCondition;
|
|
71
|
+
if (typeFilter && typeFilter.length > 0 && hierarchyConfig.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object') {
|
|
72
|
+
const typeFieldName = hierarchyConfig.collectionSpecific.fieldName;
|
|
73
|
+
// Exclude the hierarchy collection itself from the filter (folders always show folders)
|
|
74
|
+
const filteredTypes = typeFilter.filter(t => t !== collectionSlug);
|
|
75
|
+
if (filteredTypes.length > 0) {
|
|
76
|
+
typeCondition = {
|
|
77
|
+
or: [{
|
|
78
|
+
[typeFieldName]: {
|
|
79
|
+
in: filteredTypes
|
|
80
|
+
}
|
|
81
|
+
}, {
|
|
82
|
+
[typeFieldName]: {
|
|
83
|
+
exists: false
|
|
84
|
+
}
|
|
85
|
+
}]
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Combine conditions: parent + search + typeFilter
|
|
90
|
+
const conditions = [parentCondition];
|
|
91
|
+
if (search) {
|
|
92
|
+
conditions.push({
|
|
93
|
+
[useAsTitle]: {
|
|
94
|
+
like: search
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (typeCondition) {
|
|
99
|
+
conditions.push(typeCondition);
|
|
100
|
+
}
|
|
101
|
+
const childrenWhere = conditions.length > 1 ? {
|
|
102
|
+
and: conditions
|
|
103
|
+
} : parentCondition;
|
|
104
|
+
// Fetch children (hierarchy items with this parent, or root items if parentId is null)
|
|
105
|
+
const childrenData = await req.payload.find({
|
|
106
|
+
collection: collectionSlug,
|
|
107
|
+
depth: 0,
|
|
108
|
+
draft: true,
|
|
109
|
+
fallbackLocale: false,
|
|
110
|
+
includeLockStatus: true,
|
|
111
|
+
limit: DEFAULT_HIERARCHY_LIST_LIMIT,
|
|
112
|
+
locale: req.locale,
|
|
113
|
+
overrideAccess: false,
|
|
114
|
+
page: 1,
|
|
115
|
+
req,
|
|
116
|
+
user,
|
|
117
|
+
where: combineWhereConstraints([childrenWhere, baseFilter])
|
|
118
|
+
});
|
|
119
|
+
// Fetch related documents from other collections
|
|
120
|
+
// At root level: show unassigned documents (where hierarchy field doesn't exist)
|
|
121
|
+
// At nested level: show documents assigned to the selected hierarchy item
|
|
122
|
+
const relatedDocumentsByCollection = {};
|
|
123
|
+
const relatedBaseFilters = {};
|
|
124
|
+
// Use pre-computed relatedCollections from sanitized hierarchy config
|
|
125
|
+
const relatedCollectionsConfig = hierarchyConfig.relatedCollections || {};
|
|
126
|
+
for (const [relatedSlug, fieldInfo] of Object.entries(relatedCollectionsConfig)) {
|
|
127
|
+
if (relatedSlug === collectionSlug) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const relatedCollectionConfig = req.payload.collections[relatedSlug]?.config;
|
|
131
|
+
if (!relatedCollectionConfig) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
// Check if user has read permission for this collection
|
|
135
|
+
if (!permissions?.collections?.[relatedSlug]?.read) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const {
|
|
139
|
+
fieldName,
|
|
140
|
+
hasMany
|
|
141
|
+
} = fieldInfo;
|
|
142
|
+
// Get baseFilter for this related collection
|
|
143
|
+
const relatedBaseFilter = await (relatedCollectionConfig.admin?.baseFilter ?? relatedCollectionConfig.admin?.baseListFilter)?.({
|
|
144
|
+
limit: DEFAULT_HIERARCHY_LIST_LIMIT,
|
|
145
|
+
page: 1,
|
|
146
|
+
req,
|
|
147
|
+
sort: undefined
|
|
148
|
+
});
|
|
149
|
+
if (relatedBaseFilter) {
|
|
150
|
+
relatedBaseFilters[relatedSlug] = relatedBaseFilter;
|
|
151
|
+
}
|
|
152
|
+
// Build where clause based on whether we're at root or nested level
|
|
153
|
+
let relationshipWhere;
|
|
154
|
+
if (parentId === null) {
|
|
155
|
+
// Root level: find documents where hierarchy field doesn't exist, is null, or is empty array
|
|
156
|
+
const conditions = [{
|
|
157
|
+
[fieldName]: {
|
|
158
|
+
exists: false
|
|
159
|
+
}
|
|
160
|
+
}, {
|
|
161
|
+
[fieldName]: {
|
|
162
|
+
equals: null
|
|
163
|
+
}
|
|
164
|
+
}];
|
|
165
|
+
if (hasMany) {
|
|
166
|
+
// hasMany fields store cleared values as empty arrays
|
|
167
|
+
conditions.push({
|
|
168
|
+
[fieldName]: {
|
|
169
|
+
equals: []
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
relationshipWhere = {
|
|
174
|
+
or: conditions
|
|
175
|
+
};
|
|
176
|
+
} else {
|
|
177
|
+
// Nested level: find documents assigned to this hierarchy item
|
|
178
|
+
// "in" operator works for both hasMany and single relationship fields
|
|
179
|
+
relationshipWhere = {
|
|
180
|
+
[fieldName]: {
|
|
181
|
+
in: [parentId]
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
// Add search filter if provided
|
|
186
|
+
const relatedUseAsTitle = relatedCollectionConfig.admin?.useAsTitle || 'id';
|
|
187
|
+
const whereWithSearch = search ? {
|
|
188
|
+
and: [relationshipWhere, {
|
|
189
|
+
[relatedUseAsTitle]: {
|
|
190
|
+
like: search
|
|
191
|
+
}
|
|
192
|
+
}]
|
|
193
|
+
} : relationshipWhere;
|
|
194
|
+
// Combine relationship where with related collection's baseFilter
|
|
195
|
+
const where = combineWhereConstraints([whereWithSearch, relatedBaseFilter]);
|
|
196
|
+
try {
|
|
197
|
+
const data = await req.payload.find({
|
|
198
|
+
collection: relatedSlug,
|
|
199
|
+
depth: 0,
|
|
200
|
+
draft: true,
|
|
201
|
+
fallbackLocale: false,
|
|
202
|
+
includeLockStatus: true,
|
|
203
|
+
limit: DEFAULT_HIERARCHY_LIST_LIMIT,
|
|
204
|
+
locale: req.locale,
|
|
205
|
+
overrideAccess: false,
|
|
206
|
+
page: 1,
|
|
207
|
+
req,
|
|
208
|
+
user,
|
|
209
|
+
where
|
|
210
|
+
});
|
|
211
|
+
if (data.totalDocs > 0) {
|
|
212
|
+
relatedDocumentsByCollection[relatedSlug] = {
|
|
213
|
+
hasMany,
|
|
214
|
+
label: getTranslation(relatedCollectionConfig.labels?.plural, req.i18n),
|
|
215
|
+
result: data
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
} catch (error) {
|
|
219
|
+
req.payload.logger.warn({
|
|
220
|
+
err: error,
|
|
221
|
+
msg: `Failed to query related collection ${relatedSlug}`
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Extract allowed collections from parent's collectionSpecific field
|
|
226
|
+
// - undefined: collectionSpecific not configured, no filtering needed
|
|
227
|
+
// - []: parent folder accepts everything, can only move to unrestricted destinations
|
|
228
|
+
// - [{ slug, label }, ...]: parent folder has restrictions
|
|
229
|
+
let allowedCollections;
|
|
230
|
+
if (hierarchyConfig.collectionSpecific && parent) {
|
|
231
|
+
const typeFieldName = hierarchyConfig.collectionSpecific.fieldName;
|
|
232
|
+
const typeValues = parent[typeFieldName];
|
|
233
|
+
if (typeValues && typeValues.length > 0) {
|
|
234
|
+
allowedCollections = typeValues.map(slug => {
|
|
235
|
+
const config = req.payload.collections[slug]?.config;
|
|
236
|
+
const label = config ? getTranslation(config.labels?.plural, req.i18n) : slug;
|
|
237
|
+
return {
|
|
238
|
+
slug,
|
|
239
|
+
label
|
|
240
|
+
};
|
|
241
|
+
});
|
|
242
|
+
} else {
|
|
243
|
+
// Parent folder accepts everything (type is null or empty)
|
|
244
|
+
allowedCollections = [];
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
allowedCollections,
|
|
249
|
+
breadcrumbs,
|
|
250
|
+
childrenData,
|
|
251
|
+
parent,
|
|
252
|
+
parentFieldName,
|
|
253
|
+
parentId,
|
|
254
|
+
relatedBaseFilters: Object.keys(relatedBaseFilters).length > 0 ? relatedBaseFilters : undefined,
|
|
255
|
+
relatedDocumentsByCollection
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=handleHierarchy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleHierarchy.js","names":["getTranslation","getAncestors","combineWhereConstraints","DEFAULT_HIERARCHY_LIST_LIMIT","handleHierarchy","baseFilter","collectionConfig","collectionSlug","parentId","permissions","req","search","typeFilter","user","hierarchyConfig","hierarchy","undefined","Error","parentFieldName","useAsTitle","admin","parent","breadcrumbs","item","ancestors","Promise","all","payload","findByID","id","collection","depth","overrideAccess","_error","logger","warn","msg","parentCondition","or","exists","equals","typeCondition","length","collectionSpecific","typeFieldName","fieldName","filteredTypes","filter","t","in","conditions","push","like","childrenWhere","and","childrenData","find","draft","fallbackLocale","includeLockStatus","limit","locale","page","where","relatedDocumentsByCollection","relatedBaseFilters","relatedCollectionsConfig","relatedCollections","relatedSlug","fieldInfo","Object","entries","relatedCollectionConfig","collections","config","read","hasMany","relatedBaseFilter","baseListFilter","sort","relationshipWhere","relatedUseAsTitle","whereWithSearch","data","totalDocs","label","labels","plural","i18n","result","error","err","allowedCollections","typeValues","map","slug","keys"],"sources":["../../../src/views/List/handleHierarchy.ts"],"sourcesContent":["import type {\n HierarchyViewData,\n PayloadRequest,\n RelatedDocumentsGrouped,\n SanitizedCollectionConfig,\n SanitizedPermissions,\n TypeWithID,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getAncestors } from 'payload'\nimport { combineWhereConstraints, DEFAULT_HIERARCHY_LIST_LIMIT } from 'payload/shared'\n\n/**\n * Fetches hierarchy data for a collection with a selected parent.\n * Returns data that can be rendered client-side by HierarchyTable.\n */\nexport const handleHierarchy = async ({\n baseFilter,\n collectionConfig,\n collectionSlug,\n parentId,\n permissions,\n req,\n search,\n typeFilter,\n user,\n}: {\n baseFilter?: null | Where\n collectionConfig: SanitizedCollectionConfig\n collectionSlug: string\n parentId: null | number | string\n permissions?: SanitizedPermissions\n req: PayloadRequest\n search?: string\n /** Filter hierarchy items by their collectionSpecific type field */\n typeFilter?: string[]\n user: PayloadRequest['user']\n}): Promise<HierarchyViewData> => {\n const hierarchyConfig =\n collectionConfig.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n\n if (!hierarchyConfig) {\n throw new Error('Collection is not a hierarchy')\n }\n\n const parentFieldName = hierarchyConfig.parentFieldName\n\n const useAsTitle = collectionConfig.admin?.useAsTitle || 'id'\n\n // Fetch the parent item and breadcrumbs (skip for root level)\n let parent: null | (Record<string, unknown> & TypeWithID) = null\n let breadcrumbs: Array<{ id: number | string; title: string }> = []\n\n if (parentId !== null) {\n try {\n const [item, ancestors] = await Promise.all([\n req.payload.findByID({\n id: parentId,\n collection: collectionSlug,\n depth: 0,\n overrideAccess: false,\n req,\n user,\n }),\n getAncestors({\n id: parentId,\n collectionSlug,\n req,\n }),\n ])\n\n parent = item\n breadcrumbs = ancestors\n } catch (_error) {\n req.payload.logger.warn({\n msg: `Hierarchy item not found: ${parentId}`,\n })\n }\n }\n\n // Build children where clause\n // For root level (parentId is null), find items without a parent\n // For nested level, find items with this specific parent\n const parentCondition =\n parentId === null\n ? {\n or: [{ [parentFieldName]: { exists: false } }, { [parentFieldName]: { equals: null } }],\n }\n : { [parentFieldName]: { equals: parentId } }\n\n // Build type filter condition if typeFilter is provided and collectionSpecific is configured\n // Filter to folders that allow ANY of the selected types OR are unrestricted\n let typeCondition: Record<string, unknown> | undefined\n\n if (\n typeFilter &&\n typeFilter.length > 0 &&\n hierarchyConfig.collectionSpecific &&\n typeof hierarchyConfig.collectionSpecific === 'object'\n ) {\n const typeFieldName = hierarchyConfig.collectionSpecific.fieldName\n // Exclude the hierarchy collection itself from the filter (folders always show folders)\n const filteredTypes = typeFilter.filter((t) => t !== collectionSlug)\n\n if (filteredTypes.length > 0) {\n typeCondition = {\n or: [\n { [typeFieldName]: { in: filteredTypes } },\n { [typeFieldName]: { exists: false } }, // Include unrestricted folders\n ],\n }\n }\n }\n\n // Combine conditions: parent + search + typeFilter\n const conditions: Record<string, unknown>[] = [parentCondition]\n\n if (search) {\n conditions.push({ [useAsTitle]: { like: search } })\n }\n\n if (typeCondition) {\n conditions.push(typeCondition)\n }\n\n const childrenWhere = conditions.length > 1 ? { and: conditions } : parentCondition\n\n // Fetch children (hierarchy items with this parent, or root items if parentId is null)\n const childrenData = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: DEFAULT_HIERARCHY_LIST_LIMIT,\n locale: req.locale,\n overrideAccess: false,\n page: 1,\n req,\n user,\n where: combineWhereConstraints([childrenWhere, baseFilter]),\n })\n\n // Fetch related documents from other collections\n // At root level: show unassigned documents (where hierarchy field doesn't exist)\n // At nested level: show documents assigned to the selected hierarchy item\n const relatedDocumentsByCollection: RelatedDocumentsGrouped = {}\n const relatedBaseFilters: Record<string, Where> = {}\n\n // Use pre-computed relatedCollections from sanitized hierarchy config\n const relatedCollectionsConfig = hierarchyConfig.relatedCollections || {}\n\n for (const [relatedSlug, fieldInfo] of Object.entries(relatedCollectionsConfig)) {\n if (relatedSlug === collectionSlug) {\n continue\n }\n\n const relatedCollectionConfig = req.payload.collections[relatedSlug]?.config\n if (!relatedCollectionConfig) {\n continue\n }\n\n // Check if user has read permission for this collection\n if (!permissions?.collections?.[relatedSlug]?.read) {\n continue\n }\n\n const { fieldName, hasMany } = fieldInfo\n\n // Get baseFilter for this related collection\n const relatedBaseFilter = await (\n relatedCollectionConfig.admin?.baseFilter ?? relatedCollectionConfig.admin?.baseListFilter\n )?.({\n limit: DEFAULT_HIERARCHY_LIST_LIMIT,\n page: 1,\n req,\n sort: undefined,\n })\n\n if (relatedBaseFilter) {\n relatedBaseFilters[relatedSlug] = relatedBaseFilter\n }\n\n // Build where clause based on whether we're at root or nested level\n let relationshipWhere: Record<string, unknown>\n\n if (parentId === null) {\n // Root level: find documents where hierarchy field doesn't exist, is null, or is empty array\n const conditions: Record<string, unknown>[] = [\n { [fieldName]: { exists: false } },\n { [fieldName]: { equals: null } },\n ]\n if (hasMany) {\n // hasMany fields store cleared values as empty arrays\n conditions.push({ [fieldName]: { equals: [] } })\n }\n relationshipWhere = { or: conditions }\n } else {\n // Nested level: find documents assigned to this hierarchy item\n // \"in\" operator works for both hasMany and single relationship fields\n relationshipWhere = {\n [fieldName]: { in: [parentId] },\n }\n }\n\n // Add search filter if provided\n const relatedUseAsTitle = relatedCollectionConfig.admin?.useAsTitle || 'id'\n const whereWithSearch = search\n ? { and: [relationshipWhere, { [relatedUseAsTitle]: { like: search } }] }\n : relationshipWhere\n\n // Combine relationship where with related collection's baseFilter\n const where = combineWhereConstraints([whereWithSearch, relatedBaseFilter])\n\n try {\n const data = await req.payload.find({\n collection: relatedSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: DEFAULT_HIERARCHY_LIST_LIMIT,\n locale: req.locale,\n overrideAccess: false,\n page: 1,\n req,\n user,\n where,\n })\n\n if (data.totalDocs > 0) {\n relatedDocumentsByCollection[relatedSlug] = {\n hasMany,\n label: getTranslation(relatedCollectionConfig.labels?.plural, req.i18n),\n result: data,\n }\n }\n } catch (error) {\n req.payload.logger.warn({\n err: error,\n msg: `Failed to query related collection ${relatedSlug}`,\n })\n }\n }\n\n // Extract allowed collections from parent's collectionSpecific field\n // - undefined: collectionSpecific not configured, no filtering needed\n // - []: parent folder accepts everything, can only move to unrestricted destinations\n // - [{ slug, label }, ...]: parent folder has restrictions\n let allowedCollections: Array<{ label: string; slug: string }> | undefined\n\n if (hierarchyConfig.collectionSpecific && parent) {\n const typeFieldName = hierarchyConfig.collectionSpecific.fieldName\n const typeValues = parent[typeFieldName] as null | string[] | undefined\n\n if (typeValues && typeValues.length > 0) {\n allowedCollections = typeValues.map((slug) => {\n const config = req.payload.collections[slug]?.config\n const label = config ? getTranslation(config.labels?.plural, req.i18n) : slug\n return { slug, label }\n })\n } else {\n // Parent folder accepts everything (type is null or empty)\n allowedCollections = []\n }\n }\n\n return {\n allowedCollections,\n breadcrumbs,\n childrenData,\n parent,\n parentFieldName,\n parentId,\n relatedBaseFilters: Object.keys(relatedBaseFilters).length > 0 ? relatedBaseFilters : undefined,\n relatedDocumentsByCollection,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|