@payloadcms/next 3.49.0-canary.8 → 3.49.1

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.
Files changed (88) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +9 -3
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +12 -4
  5. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +19 -22
  7. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/index.d.ts +2 -4
  9. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/index.js +26 -22
  11. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  12. package/dist/elements/DocumentHeader/index.d.ts +2 -4
  13. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  14. package/dist/elements/DocumentHeader/index.js +4 -6
  15. package/dist/elements/DocumentHeader/index.js.map +1 -1
  16. package/dist/prod/styles.css +1 -1
  17. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  18. package/dist/utilities/initPage/handleAdminPage.js +11 -2
  19. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  20. package/dist/views/API/index.client.d.ts +1 -1
  21. package/dist/views/API/index.client.d.ts.map +1 -1
  22. package/dist/views/API/index.client.js +6 -2
  23. package/dist/views/API/index.client.js.map +1 -1
  24. package/dist/views/Account/index.d.ts.map +1 -1
  25. package/dist/views/Account/index.js +2 -3
  26. package/dist/views/Account/index.js.map +1 -1
  27. package/dist/views/CollectionTrash/index.d.ts +20 -0
  28. package/dist/views/CollectionTrash/index.d.ts.map +1 -0
  29. package/dist/views/CollectionTrash/index.js +25 -0
  30. package/dist/views/CollectionTrash/index.js.map +1 -0
  31. package/dist/views/CollectionTrash/metadata.d.ts +7 -0
  32. package/dist/views/CollectionTrash/metadata.d.ts.map +1 -0
  33. package/dist/views/CollectionTrash/metadata.js +25 -0
  34. package/dist/views/CollectionTrash/metadata.js.map +1 -0
  35. package/dist/views/Document/getDocumentData.d.ts +2 -1
  36. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  37. package/dist/views/Document/getDocumentData.js +4 -0
  38. package/dist/views/Document/getDocumentData.js.map +1 -1
  39. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  40. package/dist/views/Document/getDocumentView.js +69 -4
  41. package/dist/views/Document/getDocumentView.js.map +1 -1
  42. package/dist/views/Document/getMetaBySegment.d.ts +1 -0
  43. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  44. package/dist/views/Document/getMetaBySegment.js +24 -0
  45. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  46. package/dist/views/Document/index.d.ts +2 -1
  47. package/dist/views/Document/index.d.ts.map +1 -1
  48. package/dist/views/Document/index.js +10 -5
  49. package/dist/views/Document/index.js.map +1 -1
  50. package/dist/views/Edit/metadata.d.ts.map +1 -1
  51. package/dist/views/Edit/metadata.js +4 -2
  52. package/dist/views/Edit/metadata.js.map +1 -1
  53. package/dist/views/List/handleGroupBy.d.ts +2 -1
  54. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  55. package/dist/views/List/handleGroupBy.js +4 -1
  56. package/dist/views/List/handleGroupBy.js.map +1 -1
  57. package/dist/views/List/index.d.ts +1 -1
  58. package/dist/views/List/index.d.ts.map +1 -1
  59. package/dist/views/List/index.js +95 -55
  60. package/dist/views/List/index.js.map +1 -1
  61. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  62. package/dist/views/Root/getRouteData.js +33 -2
  63. package/dist/views/Root/getRouteData.js.map +1 -1
  64. package/dist/views/Root/metadata.d.ts.map +1 -1
  65. package/dist/views/Root/metadata.js +12 -1
  66. package/dist/views/Root/metadata.js.map +1 -1
  67. package/dist/views/Version/Default/SetStepNav.d.ts +1 -0
  68. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  69. package/dist/views/Version/Default/SetStepNav.js +34 -19
  70. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  71. package/dist/views/Version/Default/index.d.ts.map +1 -1
  72. package/dist/views/Version/Default/index.js +4 -2
  73. package/dist/views/Version/Default/index.js.map +1 -1
  74. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  75. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -3
  76. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  77. package/dist/views/Versions/buildColumns.d.ts +2 -1
  78. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  79. package/dist/views/Versions/buildColumns.js +2 -0
  80. package/dist/views/Versions/buildColumns.js.map +1 -1
  81. package/dist/views/Versions/cells/CreatedAt/index.d.ts +1 -0
  82. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  83. package/dist/views/Versions/cells/CreatedAt/index.js +9 -6
  84. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  85. package/dist/views/Versions/index.d.ts.map +1 -1
  86. package/dist/views/Versions/index.js +4 -0
  87. package/dist/views/Versions/index.js.map +1 -1
  88. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentView.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","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","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 { getCustomViewByKey } from './getCustomViewByKey.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 = getCustomViewByKey(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 = getCustomViewByKey(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 case 4: {\n switch (segment4) {\n // --> /collections/:collectionSlug/:id/api\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n View = getCustomViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(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/:id/versions/:version\n // --> /collections/:collectionSlug/:id/<custom-segment>/<custom-segment>\n default: {\n // --> /collections/:collectionSlug/:id/versions/:version\n if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(views, 'version') || DefaultVersionView\n } else {\n View = UnauthorizedViewWithGutter\n }\n } else {\n // --> /collections/:collectionSlug/:id/<custom-segment>/<custom-segment>\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 = getCustomViewByKey(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 = getCustomViewByKey(views, 'api') || DefaultAPIView\n }\n\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(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 = getCustomViewByKey(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
+ {"version":3,"file":"getDocumentView.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","UnauthorizedViewWithGutter","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","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 { getCustomViewByKey } from './getCustomViewByKey.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 = getCustomViewByKey(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 = getCustomViewByKey(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 = getCustomViewByKey(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 = getCustomViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n\n case 'versions': {\n // --> /collections/:collectionSlug/:id/versions\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(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 = getCustomViewByKey(views, 'api') || DefaultAPIView\n }\n break\n }\n // --> /collections/:slug/trash/:id/versions\n case 'versions': {\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(views, 'versions') || DefaultVersionsView\n } else {\n View = UnauthorizedViewWithGutter\n }\n break\n }\n\n default: {\n View = getCustomViewByKey(views, 'default') || DefaultEditView\n break\n }\n }\n // --> /collections/:collectionSlug/:id/versions/:version\n } else if (segment4 === 'versions') {\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(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 = getCustomViewByKey(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 = getCustomViewByKey(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 = getCustomViewByKey(views, 'api') || DefaultAPIView\n }\n\n break\n }\n\n case 'versions': {\n // --> /globals/:globalSlug/versions\n if (docPermissions?.readVersions) {\n View = getCustomViewByKey(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 = getCustomViewByKey(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":[]}
@@ -4,6 +4,7 @@ import type { GenerateViewMetadata } from '../Root/index.js';
4
4
  export type GenerateEditViewMetadata = (args: {
5
5
  collectionConfig?: null | SanitizedCollectionConfig;
6
6
  globalConfig?: null | SanitizedGlobalConfig;
7
+ isReadOnly?: boolean;
7
8
  view?: keyof EditConfig;
8
9
  } & Parameters<GenerateViewMetadata>[0]) => Promise<Metadata>;
9
10
  export declare const getMetaBySegment: GenerateEditViewMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAU5D,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,IAAI,GAAG,yBAAyB,CAAA;IACnD,YAAY,CAAC,EAAE,IAAI,GAAG,qBAAqB,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,UAAU,CAAA;CACxB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,eAAO,MAAM,gBAAgB,EAAE,wBA+H9B,CAAA"}
1
+ {"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAU5D,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,IAAI,GAAG,yBAAyB,CAAA;IACnD,YAAY,CAAC,EAAE,IAAI,GAAG,qBAAqB,CAAA;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,UAAU,CAAA;CACxB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,eAAO,MAAM,gBAAgB,EAAE,wBAuJ9B,CAAA"}
@@ -24,6 +24,13 @@ export const getMetaBySegment = async ({
24
24
  if (params.segments.length === 3) {
25
25
  fn = generateEditViewMetadata;
26
26
  }
27
+ // `/collections/:collection/trash/:id`
28
+ if (segments.length === 4 && segments[2] === 'trash') {
29
+ fn = args => generateEditViewMetadata({
30
+ ...args,
31
+ isReadOnly: true
32
+ });
33
+ }
27
34
  // `/:collection/:id/:view`
28
35
  if (params.segments.length === 4) {
29
36
  switch (params.segments[3]) {
@@ -50,6 +57,23 @@ export const getMetaBySegment = async ({
50
57
  break;
51
58
  }
52
59
  }
60
+ // `/collections/:collection/trash/:id/:view`
61
+ if (segments.length === 5 && segments[2] === 'trash') {
62
+ switch (segments[4]) {
63
+ case 'api':
64
+ fn = generateAPIViewMetadata;
65
+ break;
66
+ case 'versions':
67
+ fn = generateVersionsViewMetadata;
68
+ break;
69
+ default:
70
+ break;
71
+ }
72
+ }
73
+ // `/collections/:collection/trash/:id/versions/:versionID`
74
+ if (segments.length === 6 && segments[2] === 'trash' && segments[4] === 'versions') {
75
+ fn = generateVersionViewMetadata;
76
+ }
53
77
  }
54
78
  if (isGlobal) {
55
79
  // `/:global`
@@ -1 +1 @@
1
- {"version":3,"file":"getMetaBySegment.js","names":["getNextRequestI18n","generateAPIViewMetadata","generateEditViewMetadata","generateNotFoundViewMetadata","generateVersionViewMetadata","generateVersionsViewMetadata","getDocumentView","getMetaBySegment","collectionConfig","config","globalConfig","params","segments","fn","segmentOne","isCollection","isGlobal","isEditing","Boolean","length","i18n","viewKey","docPermissions","create","delete","fields","read","readVersions","update","routeSegments","customViewConfig","admin","components","views","edit","view"],"sources":["../../../src/views/Document/getMetaBySegment.tsx"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { EditConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAPIViewMetadata } from '../API/metadata.js'\nimport { generateEditViewMetadata } from '../Edit/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateVersionViewMetadata } from '../Version/metadata.js'\nimport { generateVersionsViewMetadata } from '../Versions/metadata.js'\nimport { getDocumentView } from './getDocumentView.js'\n\nexport type GenerateEditViewMetadata = (\n args: {\n collectionConfig?: null | SanitizedCollectionConfig\n globalConfig?: null | SanitizedGlobalConfig\n view?: keyof EditConfig\n } & Parameters<GenerateViewMetadata>[0],\n) => Promise<Metadata>\n\nexport const getMetaBySegment: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n params,\n}) => {\n const { segments } = params\n\n let fn: GenerateEditViewMetadata | null = null\n\n const [segmentOne] = segments\n const isCollection = segmentOne === 'collections'\n const isGlobal = segmentOne === 'globals'\n\n const isEditing =\n isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create')\n\n if (isCollection) {\n // `/:collection/:id`\n if (params.segments.length === 3) {\n fn = generateEditViewMetadata\n }\n\n // `/:collection/:id/:view`\n if (params.segments.length === 4) {\n switch (params.segments[3]) {\n case 'api':\n // `/:collection/:id/api`\n fn = generateAPIViewMetadata\n break\n case 'versions':\n // `/:collection/:id/versions`\n fn = generateVersionsViewMetadata\n break\n default:\n break\n }\n }\n\n // `/:collection/:id/:slug-1/:slug-2`\n if (params.segments.length === 5) {\n switch (params.segments[3]) {\n case 'versions':\n // `/:collection/:id/versions/:version`\n fn = generateVersionViewMetadata\n break\n default:\n break\n }\n }\n }\n\n if (isGlobal) {\n // `/:global`\n if (params.segments?.length === 2) {\n fn = generateEditViewMetadata\n }\n\n // `/:global/:view`\n if (params.segments?.length === 3) {\n switch (params.segments[2]) {\n case 'api':\n // `/:global/api`\n fn = generateAPIViewMetadata\n break\n case 'versions':\n // `/:global/versions`\n fn = generateVersionsViewMetadata\n break\n default:\n break\n }\n }\n\n // `/:global/versions/:version`\n if (params.segments?.length === 4 && params.segments[2] === 'versions') {\n fn = generateVersionViewMetadata\n }\n }\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n if (typeof fn === 'function') {\n return fn({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n })\n } else {\n const { viewKey } = getDocumentView({\n collectionConfig,\n config,\n docPermissions: {\n create: true,\n delete: true,\n fields: true,\n read: true,\n readVersions: true,\n update: true,\n },\n globalConfig,\n routeSegments: typeof segments === 'string' ? [segments] : segments,\n })\n\n if (viewKey) {\n const customViewConfig =\n collectionConfig?.admin?.components?.views?.edit?.[viewKey] ||\n globalConfig?.admin?.components?.views?.edit?.[viewKey]\n\n if (customViewConfig) {\n return generateEditViewMetadata({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view: viewKey as keyof EditConfig,\n })\n }\n }\n }\n\n return generateNotFoundViewMetadata({ config, i18n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getMetaBySegment.js","names":["getNextRequestI18n","generateAPIViewMetadata","generateEditViewMetadata","generateNotFoundViewMetadata","generateVersionViewMetadata","generateVersionsViewMetadata","getDocumentView","getMetaBySegment","collectionConfig","config","globalConfig","params","segments","fn","segmentOne","isCollection","isGlobal","isEditing","Boolean","length","args","isReadOnly","i18n","viewKey","docPermissions","create","delete","fields","read","readVersions","update","routeSegments","customViewConfig","admin","components","views","edit","view"],"sources":["../../../src/views/Document/getMetaBySegment.tsx"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { EditConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAPIViewMetadata } from '../API/metadata.js'\nimport { generateEditViewMetadata } from '../Edit/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateVersionViewMetadata } from '../Version/metadata.js'\nimport { generateVersionsViewMetadata } from '../Versions/metadata.js'\nimport { getDocumentView } from './getDocumentView.js'\n\nexport type GenerateEditViewMetadata = (\n args: {\n collectionConfig?: null | SanitizedCollectionConfig\n globalConfig?: null | SanitizedGlobalConfig\n isReadOnly?: boolean\n view?: keyof EditConfig\n } & Parameters<GenerateViewMetadata>[0],\n) => Promise<Metadata>\n\nexport const getMetaBySegment: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n params,\n}) => {\n const { segments } = params\n\n let fn: GenerateEditViewMetadata | null = null\n\n const [segmentOne] = segments\n const isCollection = segmentOne === 'collections'\n const isGlobal = segmentOne === 'globals'\n\n const isEditing =\n isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create')\n\n if (isCollection) {\n // `/:collection/:id`\n if (params.segments.length === 3) {\n fn = generateEditViewMetadata\n }\n\n // `/collections/:collection/trash/:id`\n if (segments.length === 4 && segments[2] === 'trash') {\n fn = (args) => generateEditViewMetadata({ ...args, isReadOnly: true })\n }\n\n // `/:collection/:id/:view`\n if (params.segments.length === 4) {\n switch (params.segments[3]) {\n case 'api':\n // `/:collection/:id/api`\n fn = generateAPIViewMetadata\n break\n case 'versions':\n // `/:collection/:id/versions`\n fn = generateVersionsViewMetadata\n break\n default:\n break\n }\n }\n\n // `/:collection/:id/:slug-1/:slug-2`\n if (params.segments.length === 5) {\n switch (params.segments[3]) {\n case 'versions':\n // `/:collection/:id/versions/:version`\n fn = generateVersionViewMetadata\n break\n default:\n break\n }\n }\n\n // `/collections/:collection/trash/:id/:view`\n if (segments.length === 5 && segments[2] === 'trash') {\n switch (segments[4]) {\n case 'api':\n fn = generateAPIViewMetadata\n break\n case 'versions':\n fn = generateVersionsViewMetadata\n break\n default:\n break\n }\n }\n\n // `/collections/:collection/trash/:id/versions/:versionID`\n if (segments.length === 6 && segments[2] === 'trash' && segments[4] === 'versions') {\n fn = generateVersionViewMetadata\n }\n }\n\n if (isGlobal) {\n // `/:global`\n if (params.segments?.length === 2) {\n fn = generateEditViewMetadata\n }\n\n // `/:global/:view`\n if (params.segments?.length === 3) {\n switch (params.segments[2]) {\n case 'api':\n // `/:global/api`\n fn = generateAPIViewMetadata\n break\n case 'versions':\n // `/:global/versions`\n fn = generateVersionsViewMetadata\n break\n default:\n break\n }\n }\n\n // `/:global/versions/:version`\n if (params.segments?.length === 4 && params.segments[2] === 'versions') {\n fn = generateVersionViewMetadata\n }\n }\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n if (typeof fn === 'function') {\n return fn({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n })\n } else {\n const { viewKey } = getDocumentView({\n collectionConfig,\n config,\n docPermissions: {\n create: true,\n delete: true,\n fields: true,\n read: true,\n readVersions: true,\n update: true,\n },\n globalConfig,\n routeSegments: typeof segments === 'string' ? [segments] : segments,\n })\n\n if (viewKey) {\n const customViewConfig =\n collectionConfig?.admin?.components?.views?.edit?.[viewKey] ||\n globalConfig?.admin?.components?.views?.edit?.[viewKey]\n\n if (customViewConfig) {\n return generateEditViewMetadata({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view: viewKey as keyof EditConfig,\n })\n }\n }\n }\n\n return generateNotFoundViewMetadata({ config, i18n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,12 +9,13 @@ export type ViewToRender = EditViewComponent | PayloadComponent<DocumentViewServ
9
9
  * - default document edit views
10
10
  * - on-demand edit views within drawers
11
11
  */
12
- export declare const renderDocument: ({ disableActions, documentSubViewType, drawerSlug, importMap, initialData, initPageResult, overrideEntityVisibility, params, redirectAfterCreate, redirectAfterDelete, redirectAfterDuplicate, searchParams, versions, viewType, }: {
12
+ export declare const renderDocument: ({ disableActions, documentSubViewType, drawerSlug, importMap, initialData, initPageResult, overrideEntityVisibility, params, redirectAfterCreate, redirectAfterDelete, redirectAfterDuplicate, redirectAfterRestore, searchParams, versions, viewType, }: {
13
13
  drawerSlug?: string;
14
14
  overrideEntityVisibility?: boolean;
15
15
  readonly redirectAfterCreate?: boolean;
16
16
  readonly redirectAfterDelete?: boolean;
17
17
  readonly redirectAfterDuplicate?: boolean;
18
+ readonly redirectAfterRestore?: boolean;
18
19
  versions?: RenderDocumentVersionsProperties;
19
20
  } & AdminViewServerProps) => Promise<{
20
21
  data: Data;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EAEjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,uOAexB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA4VA,CAAA;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,+QAezD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EAEjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6PAgBxB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAkWA,CAAA;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,+QAezD"}
@@ -37,6 +37,7 @@ export const renderDocument = async ({
37
37
  redirectAfterCreate,
38
38
  redirectAfterDelete,
39
39
  redirectAfterDuplicate,
40
+ redirectAfterRestore,
40
41
  searchParams,
41
42
  versions,
42
43
  viewType
@@ -74,15 +75,16 @@ export const renderDocument = async ({
74
75
  globalSlug
75
76
  });
76
77
  // Fetch the doc required for the view
77
- let doc = initialData || (await getDocumentData({
78
+ let doc = !idFromArgs && !globalSlug ? initialData || null : await getDocumentData({
78
79
  id: idFromArgs,
79
80
  collectionSlug,
80
81
  globalSlug,
81
82
  locale,
82
83
  payload,
83
84
  req,
85
+ segments,
84
86
  user
85
- }));
87
+ });
86
88
  if (isEditing && !doc) {
87
89
  // If it's a collection document that doesn't exist, redirect to collection list
88
90
  if (collectionSlug) {
@@ -97,6 +99,7 @@ export const renderDocument = async ({
97
99
  throw new Error('not-found');
98
100
  }
99
101
  }
102
+ const isTrashedDoc = typeof doc?.deletedAt === 'string';
100
103
  const [docPreferences, {
101
104
  docPermissions,
102
105
  hasPublishPermission,
@@ -159,6 +162,7 @@ export const renderDocument = async ({
159
162
  globalSlug,
160
163
  locale: locale?.code,
161
164
  operation,
165
+ readOnly: isTrashedDoc,
162
166
  renderAllFields: true,
163
167
  req,
164
168
  schemaPath: collectionSlug || globalSlug,
@@ -295,11 +299,13 @@ export const renderDocument = async ({
295
299
  initialState: formState,
296
300
  isEditing: isEditing,
297
301
  isLocked: isLocked,
302
+ isTrashed: isTrashedDoc,
298
303
  lastUpdateTime: lastUpdateTime,
299
304
  mostRecentVersionIsAutosaved: mostRecentVersionIsAutosaved,
300
305
  redirectAfterCreate: redirectAfterCreate,
301
306
  redirectAfterDelete: redirectAfterDelete,
302
307
  redirectAfterDuplicate: redirectAfterDuplicate,
308
+ redirectAfterRestore: redirectAfterRestore,
303
309
  unpublishedVersionCount: unpublishedVersionCount,
304
310
  versionCount: versionCount,
305
311
  children: /*#__PURE__*/_jsxs(LivePreviewProvider, {
@@ -310,9 +316,8 @@ export const renderDocument = async ({
310
316
  children: [showHeader && !drawerSlug && /*#__PURE__*/_jsx(DocumentHeader, {
311
317
  collectionConfig: collectionConfig,
312
318
  globalConfig: globalConfig,
313
- i18n: i18n,
314
- payload: payload,
315
- permissions: permissions
319
+ permissions: permissions,
320
+ req: req
316
321
  }), /*#__PURE__*/_jsx(HydrateAuthProvider, {
317
322
  permissions: permissions
318
323
  }), /*#__PURE__*/_jsx(EditDepthProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","RenderServerComponent","isEditing","getIsEditing","buildFormState","notFound","redirect","logError","formatAdminURL","React","DocumentHeader","getPreferences","NotFoundView","getDocPreferences","getDocumentData","getDocumentPermissions","getDocumentView","getIsLocked","getMetaBySegment","getVersions","renderDocumentSlots","generateMetadata","args","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","Error","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","code","fallbackLocale","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","drafts","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","autosave","validateDraftData","validate","create","depth","draft","documentSlots","clientProps","isLivePreviewEnabled","Boolean","livePreview","includes","livePreviewConfig","livePreviewURL","url","Document","_jsx","initialState","_jsxs","breakpoints","isLivePreviewing","value","editViewType","serverProps","props","RenderedDocument","error","message","err"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n LivePreviewConfig,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { logError } from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getPreferences } from '../../utilities/getPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocPreferences } from './getDocPreferences.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { getIsLocked } from './getIsLocked.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getVersions } from './getVersions.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n initialData ||\n (await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n user,\n }))\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const [\n docPreferences,\n { docPermissions, hasPublishPermission, hasSavePermission },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req,\n }),\n\n // Fetch document lock state\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n ])\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n : ''\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n }\n\n if (!View) {\n View = NotFoundView\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n\n redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n collectionConfig,\n globalConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const isLivePreviewEnabled = Boolean(\n config.admin?.livePreview?.collections?.includes(collectionSlug) ||\n config.admin?.livePreview?.globals?.includes(globalSlug) ||\n collectionConfig?.admin?.livePreview ||\n globalConfig?.admin?.livePreview,\n )\n\n const livePreviewConfig: LivePreviewConfig = {\n ...(isLivePreviewEnabled ? config.admin.livePreview : {}),\n ...(collectionConfig?.admin?.livePreview || {}),\n ...(globalConfig?.admin?.livePreview || {}),\n }\n\n const livePreviewURL =\n operation !== 'create'\n ? typeof livePreviewConfig?.url === 'function'\n ? await livePreviewConfig.url({\n collectionConfig,\n data: doc,\n globalConfig,\n locale,\n req,\n /**\n * @deprecated\n * Use `req.payload` instead. This will be removed in the next major version.\n */\n payload: initPageResult.req.payload,\n })\n : livePreviewConfig?.url\n : ''\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={entityPreferences?.value?.editViewType === 'live-preview'}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n i18n={i18n}\n payload={payload}\n permissions={permissions}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function Document(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","RenderServerComponent","isEditing","getIsEditing","buildFormState","notFound","redirect","logError","formatAdminURL","React","DocumentHeader","getPreferences","NotFoundView","getDocPreferences","getDocumentData","getDocumentPermissions","getDocumentView","getIsLocked","getMetaBySegment","getVersions","renderDocumentSlots","generateMetadata","args","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","Error","isTrashedDoc","deletedAt","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","drafts","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","autosave","validateDraftData","validate","create","depth","draft","documentSlots","clientProps","isLivePreviewEnabled","Boolean","livePreview","includes","livePreviewConfig","livePreviewURL","url","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","serverProps","props","RenderedDocument","error","message","err"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n LivePreviewConfig,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { logError } from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getPreferences } from '../../utilities/getPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocPreferences } from './getDocPreferences.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { getIsLocked } from './getIsLocked.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getVersions } from './getVersions.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = typeof doc?.deletedAt === 'string'\n\n const [\n docPreferences,\n { docPermissions, hasPublishPermission, hasSavePermission },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req,\n }),\n\n // Fetch document lock state\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n ])\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n : ''\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n }\n\n if (!View) {\n View = NotFoundView\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n\n redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n collectionConfig,\n globalConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const isLivePreviewEnabled = Boolean(\n config.admin?.livePreview?.collections?.includes(collectionSlug) ||\n config.admin?.livePreview?.globals?.includes(globalSlug) ||\n collectionConfig?.admin?.livePreview ||\n globalConfig?.admin?.livePreview,\n )\n\n const livePreviewConfig: LivePreviewConfig = {\n ...(isLivePreviewEnabled ? config.admin.livePreview : {}),\n ...(collectionConfig?.admin?.livePreview || {}),\n ...(globalConfig?.admin?.livePreview || {}),\n }\n\n const livePreviewURL =\n operation !== 'create'\n ? typeof livePreviewConfig?.url === 'function'\n ? await livePreviewConfig.url({\n collectionConfig,\n data: doc,\n globalConfig,\n locale,\n req,\n /**\n * @deprecated\n * Use `req.payload` instead. This will be removed in the next major version.\n */\n payload: initPageResult.req.payload,\n })\n : livePreviewConfig?.url\n : ''\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={entityPreferences?.value?.editViewType === 'live-preview'}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function Document(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/metadata.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAyDtC,CAAA"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/metadata.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAgEtC,CAAA"}
@@ -9,17 +9,19 @@ export const generateEditViewMetadata = async ({
9
9
  globalConfig,
10
10
  i18n,
11
11
  isEditing,
12
+ isReadOnly = false,
12
13
  view = 'default'
13
14
  }) => {
14
15
  const {
15
16
  t
16
17
  } = i18n;
17
18
  const entityLabel = collectionConfig ? getTranslation(collectionConfig.labels.singular, i18n) : globalConfig ? getTranslation(globalConfig.label, i18n) : '';
19
+ const verb = isReadOnly ? t('general:viewing') : isEditing ? t('general:editing') : t('general:creating');
18
20
  const metaToUse = {
19
21
  ...(config.admin.meta || {}),
20
- description: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`,
22
+ description: `${verb} - ${entityLabel}`,
21
23
  keywords: `${entityLabel}, Payload, CMS`,
22
- title: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`
24
+ title: `${verb} - ${entityLabel}`
23
25
  };
24
26
  const ogToUse = {
25
27
  title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","names":["getTranslation","generateMetadata","generateEditViewMetadata","collectionConfig","config","globalConfig","i18n","isEditing","view","t","entityLabel","labels","singular","label","metaToUse","admin","meta","description","keywords","title","ogToUse","openGraph","components","views","edit","serverURL"],"sources":["../../../src/views/Edit/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { MetaConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\n/**\n * @todo Remove the type assertion. This is currently required because of how the `Metadata` type from `next` consumes the `URL` type.\n */\nexport const generateEditViewMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view = 'default',\n}): Promise<Metadata> => {\n const { t } = i18n\n\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n const metaToUse: MetaConfig = {\n ...(config.admin.meta || {}),\n description: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`,\n keywords: `${entityLabel}, Payload, CMS`,\n title: `${isEditing ? t('general:editing') : t('general:creating')} - ${entityLabel}`,\n }\n\n const ogToUse: MetaConfig['openGraph'] = {\n title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,\n ...(config.admin.meta.openGraph || {}),\n ...((collectionConfig\n ? {\n ...(collectionConfig?.admin.meta?.openGraph || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}) as MetaConfig['openGraph']),\n ...((globalConfig\n ? {\n ...(globalConfig?.admin.meta?.openGraph || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}) as MetaConfig['openGraph']),\n }\n\n return generateMetadata({\n ...metaToUse,\n openGraph: ogToUse,\n ...((collectionConfig\n ? {\n ...(collectionConfig?.admin.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}) as MetaConfig),\n ...((globalConfig\n ? {\n ...(globalConfig?.admin.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}) as MetaConfig),\n serverURL: config.serverURL,\n })\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAI/B,SAASC,gBAAgB,QAAQ;AAEjC;;;AAGA,OAAO,MAAMC,wBAAA,GAAqD,MAAAA,CAAO;EACvEC,gBAAgB;EAChBC,MAAM;EACNC,YAAY;EACZC,IAAI;EACJC,SAAS;EACTC,IAAA,GAAO;AAAS,CACjB;EACC,MAAM;IAAEC;EAAC,CAAE,GAAGH,IAAA;EAEd,MAAMI,WAAA,GAAcP,gBAAA,GAChBH,cAAA,CAAeG,gBAAA,CAAiBQ,MAAM,CAACC,QAAQ,EAAEN,IAAA,IACjDD,YAAA,GACEL,cAAA,CAAeK,YAAA,CAAaQ,KAAK,EAAEP,IAAA,IACnC;EAEN,MAAMQ,SAAA,GAAwB;IAC5B,IAAIV,MAAA,CAAOW,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BC,WAAA,EAAa,GAAGV,SAAA,GAAYE,CAAA,CAAE,qBAAqBA,CAAA,CAAE,yBAAyBC,WAAA,EAAa;IAC3FQ,QAAA,EAAU,GAAGR,WAAA,gBAA2B;IACxCS,KAAA,EAAO,GAAGZ,SAAA,GAAYE,CAAA,CAAE,qBAAqBA,CAAA,CAAE,yBAAyBC,WAAA;EAC1E;EAEA,MAAMU,OAAA,GAAmC;IACvCD,KAAA,EAAO,GAAGZ,SAAA,GAAYE,CAAA,CAAE,kBAAkBA,CAAA,CAAE,qBAAqBC,WAAA,EAAa;IAC9E,IAAIN,MAAA,CAAOW,KAAK,CAACC,IAAI,CAACK,SAAS,IAAI,CAAC,CAAC;IACrC,IAAKlB,gBAAA,GACD;MACE,IAAIA,gBAAA,EAAkBY,KAAA,CAAMC,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;MACjD,IAAIlB,gBAAA,EAAkBY,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOhB,IAAA,CAAK,EAAEQ,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;IACrF,IACA,CAAC,CAAC;IACN,IAAKhB,YAAA,GACD;MACE,IAAIA,YAAA,EAAcU,KAAA,CAAMC,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;MAC7C,IAAIhB,YAAA,EAAcU,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOhB,IAAA,CAAK,EAAEQ,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;IACjF,IACA,CAAC,CAAC;EACR;EAEA,OAAOpB,gBAAA,CAAiB;IACtB,GAAGa,SAAS;IACZO,SAAA,EAAWD,OAAA;IACX,IAAKjB,gBAAA,GACD;MACE,IAAIA,gBAAA,EAAkBY,KAAA,CAAMC,IAAA,IAAQ,CAAC,CAAC;MACtC,IAAIb,gBAAA,EAAkBY,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOhB,IAAA,CAAK,EAAEQ,IAAA,IAAQ,CAAC,CAAC;IAC1E,IACA,CAAC,CAAC;IACN,IAAKX,YAAA,GACD;MACE,IAAIA,YAAA,EAAcU,KAAA,CAAMC,IAAA,IAAQ,CAAC,CAAC;MAClC,IAAIX,YAAA,EAAcU,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOhB,IAAA,CAAK,EAAEQ,IAAA,IAAQ,CAAC,CAAC;IACtE,IACA,CAAC,CAAC;IACNS,SAAA,EAAWrB,MAAA,CAAOqB;EACpB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"metadata.js","names":["getTranslation","generateMetadata","generateEditViewMetadata","collectionConfig","config","globalConfig","i18n","isEditing","isReadOnly","view","t","entityLabel","labels","singular","label","verb","metaToUse","admin","meta","description","keywords","title","ogToUse","openGraph","components","views","edit","serverURL"],"sources":["../../../src/views/Edit/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { MetaConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\n/**\n * @todo Remove the type assertion. This is currently required because of how the `Metadata` type from `next` consumes the `URL` type.\n */\nexport const generateEditViewMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n isReadOnly = false,\n view = 'default',\n}): Promise<Metadata> => {\n const { t } = i18n\n\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n const verb = isReadOnly\n ? t('general:viewing')\n : isEditing\n ? t('general:editing')\n : t('general:creating')\n\n const metaToUse: MetaConfig = {\n ...(config.admin.meta || {}),\n description: `${verb} - ${entityLabel}`,\n keywords: `${entityLabel}, Payload, CMS`,\n title: `${verb} - ${entityLabel}`,\n }\n\n const ogToUse: MetaConfig['openGraph'] = {\n title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,\n ...(config.admin.meta.openGraph || {}),\n ...((collectionConfig\n ? {\n ...(collectionConfig?.admin.meta?.openGraph || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}) as MetaConfig['openGraph']),\n ...((globalConfig\n ? {\n ...(globalConfig?.admin.meta?.openGraph || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}) as MetaConfig['openGraph']),\n }\n\n return generateMetadata({\n ...metaToUse,\n openGraph: ogToUse,\n ...((collectionConfig\n ? {\n ...(collectionConfig?.admin.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}) as MetaConfig),\n ...((globalConfig\n ? {\n ...(globalConfig?.admin.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}) as MetaConfig),\n serverURL: config.serverURL,\n })\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAI/B,SAASC,gBAAgB,QAAQ;AAEjC;;;AAGA,OAAO,MAAMC,wBAAA,GAAqD,MAAAA,CAAO;EACvEC,gBAAgB;EAChBC,MAAM;EACNC,YAAY;EACZC,IAAI;EACJC,SAAS;EACTC,UAAA,GAAa,KAAK;EAClBC,IAAA,GAAO;AAAS,CACjB;EACC,MAAM;IAAEC;EAAC,CAAE,GAAGJ,IAAA;EAEd,MAAMK,WAAA,GAAcR,gBAAA,GAChBH,cAAA,CAAeG,gBAAA,CAAiBS,MAAM,CAACC,QAAQ,EAAEP,IAAA,IACjDD,YAAA,GACEL,cAAA,CAAeK,YAAA,CAAaS,KAAK,EAAER,IAAA,IACnC;EAEN,MAAMS,IAAA,GAAOP,UAAA,GACTE,CAAA,CAAE,qBACFH,SAAA,GACEG,CAAA,CAAE,qBACFA,CAAA,CAAE;EAER,MAAMM,SAAA,GAAwB;IAC5B,IAAIZ,MAAA,CAAOa,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BC,WAAA,EAAa,GAAGJ,IAAA,MAAUJ,WAAA,EAAa;IACvCS,QAAA,EAAU,GAAGT,WAAA,gBAA2B;IACxCU,KAAA,EAAO,GAAGN,IAAA,MAAUJ,WAAA;EACtB;EAEA,MAAMW,OAAA,GAAmC;IACvCD,KAAA,EAAO,GAAGd,SAAA,GAAYG,CAAA,CAAE,kBAAkBA,CAAA,CAAE,qBAAqBC,WAAA,EAAa;IAC9E,IAAIP,MAAA,CAAOa,KAAK,CAACC,IAAI,CAACK,SAAS,IAAI,CAAC,CAAC;IACrC,IAAKpB,gBAAA,GACD;MACE,IAAIA,gBAAA,EAAkBc,KAAA,CAAMC,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;MACjD,IAAIpB,gBAAA,EAAkBc,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;IACrF,IACA,CAAC,CAAC;IACN,IAAKlB,YAAA,GACD;MACE,IAAIA,YAAA,EAAcY,KAAA,CAAMC,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;MAC7C,IAAIlB,YAAA,EAAcY,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;IACjF,IACA,CAAC,CAAC;EACR;EAEA,OAAOtB,gBAAA,CAAiB;IACtB,GAAGe,SAAS;IACZO,SAAA,EAAWD,OAAA;IACX,IAAKnB,gBAAA,GACD;MACE,IAAIA,gBAAA,EAAkBc,KAAA,CAAMC,IAAA,IAAQ,CAAC,CAAC;MACtC,IAAIf,gBAAA,EAAkBc,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,IAAQ,CAAC,CAAC;IAC1E,IACA,CAAC,CAAC;IACN,IAAKb,YAAA,GACD;MACE,IAAIA,YAAA,EAAcY,KAAA,CAAMC,IAAA,IAAQ,CAAC,CAAC;MAClC,IAAIb,YAAA,EAAcY,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,IAAQ,CAAC,CAAC;IACtE,IACA,CAAC,CAAC;IACNS,SAAA,EAAWvB,MAAA,CAAOuB;EACpB;AACF","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { ClientConfig, Column, ListQuery, PaginatedDocs, PayloadRequest, SanitizedCollectionConfig, Where } from 'payload';
2
- export declare const handleGroupBy: ({ clientConfig, collectionConfig, collectionSlug, columns, customCellProps, drawerSlug, enableRowSelections, query, req, user, where: whereWithMergedSearch, }: {
2
+ export declare const handleGroupBy: ({ clientConfig, collectionConfig, collectionSlug, columns, customCellProps, drawerSlug, enableRowSelections, query, req, trash, user, where: whereWithMergedSearch, }: {
3
3
  clientConfig: ClientConfig;
4
4
  collectionConfig: SanitizedCollectionConfig;
5
5
  collectionSlug: string;
@@ -9,6 +9,7 @@ export declare const handleGroupBy: ({ clientConfig, collectionConfig, collectio
9
9
  enableRowSelections?: boolean;
10
10
  query?: ListQuery;
11
11
  req: PayloadRequest;
12
+ trash?: boolean;
12
13
  user: any;
13
14
  where: Where;
14
15
  }) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"handleGroupBy.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleGroupBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,KAAK,EACN,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,aAAa,mKAYvB;IACD,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,KAAK,CAAA;CACb,KAAG,OAAO,CAAC;IACV,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;CAClD,CA4JA,CAAA"}
1
+ {"version":3,"file":"handleGroupBy.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleGroupBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,KAAK,EACN,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,aAAa,0KAavB;IACD,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,KAAK,CAAA;CACb,KAAG,OAAO,CAAC;IACV,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;CAClD,CA+JA,CAAA"}
@@ -11,6 +11,7 @@ export const handleGroupBy = async ({
11
11
  enableRowSelections,
12
12
  query,
13
13
  req,
14
+ trash = false,
14
15
  user,
15
16
  where: whereWithMergedSearch
16
17
  }) => {
@@ -50,6 +51,7 @@ export const handleGroupBy = async ({
50
51
  populate,
51
52
  req,
52
53
  sort: query?.groupBy,
54
+ trash,
53
55
  where: whereWithMergedSearch
54
56
  });
55
57
  const data = {
@@ -74,6 +76,7 @@ export const handleGroupBy = async ({
74
76
  // Note: if we wanted to enable table-by-table sorting, we could use this:
75
77
  // sort: query?.queryByGroup?.[valueOrRelationshipID]?.sort,
76
78
  sort: query?.sort,
79
+ trash,
77
80
  user,
78
81
  where: {
79
82
  ...(whereWithMergedSearch || {}),
@@ -83,7 +86,7 @@ export const handleGroupBy = async ({
83
86
  }
84
87
  });
85
88
  let heading = valueOrRelationshipID || req.i18n.t('general:noValue');
86
- if (groupByField?.type === 'relationship' && typeof potentiallyPopulatedRelationship === 'object') {
89
+ if (groupByField?.type === 'relationship' && potentiallyPopulatedRelationship && typeof potentiallyPopulatedRelationship === 'object') {
87
90
  heading = potentiallyPopulatedRelationship[relationshipConfig.admin.useAsTitle || 'id'] || valueOrRelationshipID;
88
91
  }
89
92
  if (groupByField.type === 'date') {
@@ -1 +1 @@
1
- {"version":3,"file":"handleGroupBy.js","names":["renderTable","formatDate","flattenAllFields","handleGroupBy","clientConfig","collectionConfig","collectionSlug","columns","customCellProps","drawerSlug","enableRowSelections","query","req","user","where","whereWithMergedSearch","Table","columnState","dataByGroup","clientCollectionConfig","collections","find","c","slug","flattenedFields","fields","groupByFieldPath","groupBy","replace","groupByField","f","name","relationshipConfig","type","relationTo","undefined","populate","Array","isArray","forEach","rel","admin","useAsTitle","distinct","payload","findDistinct","collection","depth","field","limit","Number","locale","overrideAccess","page","sort","data","docs","values","map","Promise","all","distinctValue","i","potentiallyPopulatedRelationship","valueOrRelationshipID","id","groupData","draft","fallbackLocale","includeLockStatus","queryByGroup","equals","heading","i18n","t","date","String","pattern","dateFormat","length","newColumnState","NewTable","groupByValue","key","orderableFieldName","orderable"],"sources":["../../../src/views/List/handleGroupBy.ts"],"sourcesContent":["import type {\n ClientConfig,\n Column,\n ListQuery,\n PaginatedDocs,\n PayloadRequest,\n SanitizedCollectionConfig,\n Where,\n} from 'payload'\n\nimport { renderTable } from '@payloadcms/ui/rsc'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { flattenAllFields } from 'payload'\n\nexport const handleGroupBy = async ({\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n query,\n req,\n user,\n where: whereWithMergedSearch,\n}: {\n clientConfig: ClientConfig\n collectionConfig: SanitizedCollectionConfig\n collectionSlug: string\n columns: any[]\n customCellProps?: Record<string, any>\n drawerSlug?: string\n enableRowSelections?: boolean\n query?: ListQuery\n req: PayloadRequest\n user: any\n where: Where\n}): Promise<{\n columnState: Column[]\n data: PaginatedDocs\n Table: null | React.ReactNode | React.ReactNode[]\n}> => {\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[]\n\n const dataByGroup: Record<string, PaginatedDocs> = {}\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n // NOTE: is there a faster/better way to do this?\n const flattenedFields = flattenAllFields({ fields: collectionConfig.fields })\n\n const groupByFieldPath = query.groupBy.replace(/^-/, '')\n\n const groupByField = flattenedFields.find((f) => f.name === groupByFieldPath)\n\n const relationshipConfig =\n groupByField?.type === 'relationship'\n ? clientConfig.collections.find((c) => c.slug === groupByField.relationTo)\n : undefined\n\n let populate\n\n if (groupByField?.type === 'relationship' && groupByField.relationTo) {\n const relationTo =\n typeof groupByField.relationTo === 'string'\n ? [groupByField.relationTo]\n : groupByField.relationTo\n\n if (Array.isArray(relationTo)) {\n relationTo.forEach((rel) => {\n if (!populate) {\n populate = {}\n }\n populate[rel] = { [relationshipConfig?.admin.useAsTitle || 'id']: true }\n })\n }\n }\n\n const distinct = await req.payload.findDistinct({\n collection: collectionSlug,\n depth: 1,\n field: groupByFieldPath,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n populate,\n req,\n sort: query?.groupBy,\n where: whereWithMergedSearch,\n })\n\n const data = {\n ...distinct,\n docs: distinct.values?.map(() => ({})) || [],\n values: undefined,\n }\n\n await Promise.all(\n distinct.values.map(async (distinctValue, i) => {\n const potentiallyPopulatedRelationship = distinctValue[groupByFieldPath]\n\n const valueOrRelationshipID =\n groupByField?.type === 'relationship' &&\n potentiallyPopulatedRelationship &&\n typeof potentiallyPopulatedRelationship === 'object' &&\n 'id' in potentiallyPopulatedRelationship\n ? potentiallyPopulatedRelationship.id\n : potentiallyPopulatedRelationship\n\n const groupData = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.queryByGroup?.[valueOrRelationshipID]?.limit\n ? Number(query.queryByGroup[valueOrRelationshipID].limit)\n : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.queryByGroup?.[valueOrRelationshipID]?.page\n ? Number(query.queryByGroup[valueOrRelationshipID].page)\n : undefined,\n req,\n // Note: if we wanted to enable table-by-table sorting, we could use this:\n // sort: query?.queryByGroup?.[valueOrRelationshipID]?.sort,\n sort: query?.sort,\n user,\n where: {\n ...(whereWithMergedSearch || {}),\n [groupByFieldPath]: {\n equals: valueOrRelationshipID,\n },\n },\n })\n\n let heading = valueOrRelationshipID || req.i18n.t('general:noValue')\n\n if (\n groupByField?.type === 'relationship' &&\n typeof potentiallyPopulatedRelationship === 'object'\n ) {\n heading =\n potentiallyPopulatedRelationship[relationshipConfig.admin.useAsTitle || 'id'] ||\n valueOrRelationshipID\n }\n\n if (groupByField.type === 'date') {\n heading = formatDate({\n date: String(heading),\n i18n: req.i18n,\n pattern: clientConfig.admin.dateFormat,\n })\n }\n\n if (groupData.docs && groupData.docs.length > 0) {\n const { columnState: newColumnState, Table: NewTable } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data: groupData,\n drawerSlug,\n enableRowSelections,\n groupByFieldPath,\n groupByValue: valueOrRelationshipID,\n heading,\n i18n: req.i18n,\n key: `table-${valueOrRelationshipID}`,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n useAsTitle: collectionConfig.admin.useAsTitle,\n })\n\n // Only need to set `columnState` once, using the first table's column state\n // This will avoid needing to generate column state explicitly for root context that wraps all tables\n if (!columnState) {\n columnState = newColumnState\n }\n\n if (!Table) {\n Table = []\n }\n\n dataByGroup[valueOrRelationshipID] = groupData\n ;(Table as Array<React.ReactNode>)[i] = NewTable\n }\n }),\n )\n\n return {\n columnState,\n data,\n Table,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"handleGroupBy.js","names":["renderTable","formatDate","flattenAllFields","handleGroupBy","clientConfig","collectionConfig","collectionSlug","columns","customCellProps","drawerSlug","enableRowSelections","query","req","trash","user","where","whereWithMergedSearch","Table","columnState","dataByGroup","clientCollectionConfig","collections","find","c","slug","flattenedFields","fields","groupByFieldPath","groupBy","replace","groupByField","f","name","relationshipConfig","type","relationTo","undefined","populate","Array","isArray","forEach","rel","admin","useAsTitle","distinct","payload","findDistinct","collection","depth","field","limit","Number","locale","overrideAccess","page","sort","data","docs","values","map","Promise","all","distinctValue","i","potentiallyPopulatedRelationship","valueOrRelationshipID","id","groupData","draft","fallbackLocale","includeLockStatus","queryByGroup","equals","heading","i18n","t","date","String","pattern","dateFormat","length","newColumnState","NewTable","groupByValue","key","orderableFieldName","orderable"],"sources":["../../../src/views/List/handleGroupBy.ts"],"sourcesContent":["import type {\n ClientConfig,\n Column,\n ListQuery,\n PaginatedDocs,\n PayloadRequest,\n SanitizedCollectionConfig,\n Where,\n} from 'payload'\n\nimport { renderTable } from '@payloadcms/ui/rsc'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { flattenAllFields } from 'payload'\n\nexport const handleGroupBy = async ({\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n query,\n req,\n trash = false,\n user,\n where: whereWithMergedSearch,\n}: {\n clientConfig: ClientConfig\n collectionConfig: SanitizedCollectionConfig\n collectionSlug: string\n columns: any[]\n customCellProps?: Record<string, any>\n drawerSlug?: string\n enableRowSelections?: boolean\n query?: ListQuery\n req: PayloadRequest\n trash?: boolean\n user: any\n where: Where\n}): Promise<{\n columnState: Column[]\n data: PaginatedDocs\n Table: null | React.ReactNode | React.ReactNode[]\n}> => {\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[]\n\n const dataByGroup: Record<string, PaginatedDocs> = {}\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n // NOTE: is there a faster/better way to do this?\n const flattenedFields = flattenAllFields({ fields: collectionConfig.fields })\n\n const groupByFieldPath = query.groupBy.replace(/^-/, '')\n\n const groupByField = flattenedFields.find((f) => f.name === groupByFieldPath)\n\n const relationshipConfig =\n groupByField?.type === 'relationship'\n ? clientConfig.collections.find((c) => c.slug === groupByField.relationTo)\n : undefined\n\n let populate\n\n if (groupByField?.type === 'relationship' && groupByField.relationTo) {\n const relationTo =\n typeof groupByField.relationTo === 'string'\n ? [groupByField.relationTo]\n : groupByField.relationTo\n\n if (Array.isArray(relationTo)) {\n relationTo.forEach((rel) => {\n if (!populate) {\n populate = {}\n }\n populate[rel] = { [relationshipConfig?.admin.useAsTitle || 'id']: true }\n })\n }\n }\n\n const distinct = await req.payload.findDistinct({\n collection: collectionSlug,\n depth: 1,\n field: groupByFieldPath,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n populate,\n req,\n sort: query?.groupBy,\n trash,\n where: whereWithMergedSearch,\n })\n\n const data = {\n ...distinct,\n docs: distinct.values?.map(() => ({})) || [],\n values: undefined,\n }\n\n await Promise.all(\n distinct.values.map(async (distinctValue, i) => {\n const potentiallyPopulatedRelationship = distinctValue[groupByFieldPath]\n\n const valueOrRelationshipID =\n groupByField?.type === 'relationship' &&\n potentiallyPopulatedRelationship &&\n typeof potentiallyPopulatedRelationship === 'object' &&\n 'id' in potentiallyPopulatedRelationship\n ? potentiallyPopulatedRelationship.id\n : potentiallyPopulatedRelationship\n\n const groupData = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.queryByGroup?.[valueOrRelationshipID]?.limit\n ? Number(query.queryByGroup[valueOrRelationshipID].limit)\n : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.queryByGroup?.[valueOrRelationshipID]?.page\n ? Number(query.queryByGroup[valueOrRelationshipID].page)\n : undefined,\n req,\n // Note: if we wanted to enable table-by-table sorting, we could use this:\n // sort: query?.queryByGroup?.[valueOrRelationshipID]?.sort,\n sort: query?.sort,\n trash,\n user,\n where: {\n ...(whereWithMergedSearch || {}),\n [groupByFieldPath]: {\n equals: valueOrRelationshipID,\n },\n },\n })\n\n let heading = valueOrRelationshipID || req.i18n.t('general:noValue')\n\n if (\n groupByField?.type === 'relationship' &&\n potentiallyPopulatedRelationship &&\n typeof potentiallyPopulatedRelationship === 'object'\n ) {\n heading =\n potentiallyPopulatedRelationship[relationshipConfig.admin.useAsTitle || 'id'] ||\n valueOrRelationshipID\n }\n\n if (groupByField.type === 'date') {\n heading = formatDate({\n date: String(heading),\n i18n: req.i18n,\n pattern: clientConfig.admin.dateFormat,\n })\n }\n\n if (groupData.docs && groupData.docs.length > 0) {\n const { columnState: newColumnState, Table: NewTable } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data: groupData,\n drawerSlug,\n enableRowSelections,\n groupByFieldPath,\n groupByValue: valueOrRelationshipID,\n heading,\n i18n: req.i18n,\n key: `table-${valueOrRelationshipID}`,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n useAsTitle: collectionConfig.admin.useAsTitle,\n })\n\n // Only need to set `columnState` once, using the first table's column state\n // This will avoid needing to generate column state explicitly for root context that wraps all tables\n if (!columnState) {\n columnState = newColumnState\n }\n\n if (!Table) {\n Table = []\n }\n\n dataByGroup[valueOrRelationshipID] = groupData\n ;(Table as Array<React.ReactNode>)[i] = NewTable\n }\n }),\n )\n\n return {\n columnState,\n data,\n Table,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AdminViewServerProps, ListQuery } from 'payload';
1
+ import { type AdminViewServerProps, type ListQuery } from 'payload';
2
2
  import React from 'react';
3
3
  type RenderListViewArgs = {
4
4
  customCellProps?: Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EAMV,MAAM,SAAS,CAAA;AAchB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,KAAK,kBAAkB,GAAG;IACxB,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;CACjC,GAAG,oBAAoB,CAAA;AAExB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CA8QA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAWjD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EAIzB,KAAK,SAAS,EAMf,MAAM,SAAS,CAAA;AAShB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,KAAK,kBAAkB,GAAG;IACxB,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;CACjC,GAAG,oBAAoB,CAAA;AAExB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CA0TA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAWjD,CAAA"}