@payloadcms/next 3.41.0-internal.8617025 → 3.41.0-internal.c12584b

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 (71) hide show
  1. package/dist/cjs/withPayload.cjs +3 -3
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +2 -0
  4. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/index.js +19 -1
  6. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/index.scss +1 -1
  8. package/dist/elements/DocumentHeader/index.scss +1 -1
  9. package/dist/elements/Nav/NavWrapper/index.scss +1 -1
  10. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  11. package/dist/elements/Nav/index.client.js +49 -44
  12. package/dist/elements/Nav/index.client.js.map +1 -1
  13. package/dist/elements/Nav/index.scss +1 -1
  14. package/dist/prod/styles.css +1 -1
  15. package/dist/templates/Default/Wrapper/index.scss +1 -1
  16. package/dist/templates/Default/index.scss +1 -1
  17. package/dist/templates/Minimal/index.scss +1 -1
  18. package/dist/views/API/RenderJSON/index.scss +1 -1
  19. package/dist/views/API/index.scss +1 -1
  20. package/dist/views/Account/Settings/index.scss +1 -1
  21. package/dist/views/BrowseByFolder/buildView.d.ts.map +1 -1
  22. package/dist/views/BrowseByFolder/buildView.js +49 -9
  23. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  24. package/dist/views/CollectionFolders/buildView.d.ts.map +1 -1
  25. package/dist/views/CollectionFolders/buildView.js +32 -26
  26. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  27. package/dist/views/CreateFirstUser/index.scss +1 -1
  28. package/dist/views/Dashboard/Default/index.scss +1 -1
  29. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  30. package/dist/views/Document/renderDocumentSlots.js +8 -0
  31. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  32. package/dist/views/LivePreview/Preview/index.scss +1 -1
  33. package/dist/views/LivePreview/Toolbar/Controls/index.scss +1 -1
  34. package/dist/views/LivePreview/Toolbar/index.scss +1 -1
  35. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  36. package/dist/views/LivePreview/index.client.js +15 -11
  37. package/dist/views/LivePreview/index.client.js.map +1 -1
  38. package/dist/views/LivePreview/index.d.ts.map +1 -1
  39. package/dist/views/LivePreview/index.js +6 -0
  40. package/dist/views/LivePreview/index.js.map +1 -1
  41. package/dist/views/LivePreview/index.scss +1 -1
  42. package/dist/views/Logout/index.scss +1 -1
  43. package/dist/views/NotFound/index.scss +1 -1
  44. package/dist/views/ResetPassword/index.scss +1 -1
  45. package/dist/views/Root/getRouteData.d.ts +1 -1
  46. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  47. package/dist/views/Root/getRouteData.js +8 -7
  48. package/dist/views/Root/getRouteData.js.map +1 -1
  49. package/dist/views/Root/index.d.ts.map +1 -1
  50. package/dist/views/Root/index.js +4 -4
  51. package/dist/views/Root/index.js.map +1 -1
  52. package/dist/views/Root/metadata.js +1 -1
  53. package/dist/views/Root/metadata.js.map +1 -1
  54. package/dist/views/Unauthorized/index.scss +1 -1
  55. package/dist/views/Version/Default/index.scss +1 -2
  56. package/dist/views/Version/RenderFieldsToDiff/index.scss +1 -1
  57. package/dist/views/Version/Restore/index.scss +1 -1
  58. package/dist/views/Versions/index.scss +1 -1
  59. package/package.json +20 -16
  60. package/dist/scss/app.scss +0 -207
  61. package/dist/scss/colors.scss +0 -271
  62. package/dist/scss/custom.css +0 -1
  63. package/dist/scss/queries.scss +0 -27
  64. package/dist/scss/resets.scss +0 -19
  65. package/dist/scss/styles.scss +0 -11
  66. package/dist/scss/svg.scss +0 -10
  67. package/dist/scss/toastify.scss +0 -61
  68. package/dist/scss/toasts.scss +0 -144
  69. package/dist/scss/type.scss +0 -110
  70. package/dist/scss/vars.scss +0 -192
  71. package/dist/scss/z-index.scss +0 -9
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .template-default {
@@ -1,4 +1,4 @@
1
- @import '../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .template-default {
@@ -1,4 +1,4 @@
1
- @import '../../scss/styles';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .template-minimal {
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  $tab-width: 16px;
4
4
 
@@ -1,4 +1,4 @@
1
- @import '../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .query-inspector {
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .payload-settings {
@@ -1 +1 @@
1
- {"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EACV,MAAM,SAAS,CAAA;AAWhB,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB,eAAO,MAAM,uBAAuB,SAC5B,mBAAmB,KACxB,OAAO,CAAC,+BAA+B,CAkIzC,CAAA"}
1
+ {"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EAEV,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB,eAAO,MAAM,uBAAuB,SAC5B,mBAAmB,KACxB,OAAO,CAAC,+BAA+B,CAiLzC,CAAA"}
@@ -4,14 +4,15 @@ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerCompo
4
4
  import { formatAdminURL } from '@payloadcms/ui/shared';
5
5
  import { redirect } from 'next/navigation.js';
6
6
  import { getFolderData } from 'payload';
7
+ import { buildFolderWhereConstraints } from 'payload/shared';
7
8
  import React from 'react';
8
9
  import { getPreferences } from '../../utilities/getPreferences.js';
9
10
  export const buildBrowseByFolderView = async args => {
10
11
  const {
12
+ browseByFolderSlugs: browseByFolderSlugsFromArgs = [],
11
13
  disableBulkDelete,
12
14
  disableBulkEdit,
13
15
  enableRowSelections,
14
- folderCollectionSlugs,
15
16
  folderID,
16
17
  initPageResult,
17
18
  isInDrawer,
@@ -33,25 +34,64 @@ export const buildBrowseByFolderView = async args => {
33
34
  },
34
35
  visibleEntities
35
36
  } = initPageResult;
36
- const collections = folderCollectionSlugs.filter(collectionSlug => permissions?.collections?.[collectionSlug]?.read && visibleEntities.collections.includes(collectionSlug));
37
- if (!collections.length) {
37
+ const browseByFolderSlugs = browseByFolderSlugsFromArgs.filter(collectionSlug => permissions?.collections?.[collectionSlug]?.read && visibleEntities.collections.includes(collectionSlug));
38
+ if (config.folders === false || config.folders.browseByFolder === false) {
38
39
  throw new Error('not-found');
39
40
  }
40
41
  const query = queryFromArgs || queryFromReq;
41
- const selectedCollectionSlugs = Array.isArray(query?.relationTo) && query.relationTo.length ? query.relationTo : [...folderCollectionSlugs, config.folders.slug];
42
+ const selectedCollectionSlugs = Array.isArray(query?.relationTo) && query.relationTo.length ? query.relationTo.filter(slug => browseByFolderSlugs.includes(slug) || config.folders && slug === config.folders.slug) : [...browseByFolderSlugs, config.folders.slug];
42
43
  const {
43
44
  routes: {
44
45
  admin: adminRoute
45
46
  }
46
47
  } = config;
48
+ const folderCollectionConfig = payload.collections[config.folders.slug].config;
49
+ const browseByFolderPreferences = await getPreferences('browse-by-folder', payload, user.id, user.collection);
50
+ let documentWhere = undefined;
51
+ let folderWhere = undefined;
52
+ // if folderID, dont make a documentWhere since it only queries root folders
53
+ for (const collectionSlug of selectedCollectionSlugs) {
54
+ if (collectionSlug === config.folders.slug) {
55
+ const folderCollectionConstraints = await buildFolderWhereConstraints({
56
+ collectionConfig: folderCollectionConfig,
57
+ folderID,
58
+ localeCode: fullLocale?.code,
59
+ req: initPageResult.req,
60
+ search: typeof query?.search === 'string' ? query.search : undefined
61
+ });
62
+ if (folderCollectionConstraints) {
63
+ folderWhere = folderCollectionConstraints;
64
+ }
65
+ } else if (folderID) {
66
+ if (!documentWhere) {
67
+ documentWhere = {
68
+ or: []
69
+ };
70
+ }
71
+ const collectionConfig = payload.collections[collectionSlug].config;
72
+ if (collectionConfig.folders && collectionConfig.folders.browseByFolder === true) {
73
+ const collectionConstraints = await buildFolderWhereConstraints({
74
+ collectionConfig,
75
+ folderID,
76
+ localeCode: fullLocale?.code,
77
+ req: initPageResult.req,
78
+ search: typeof query?.search === 'string' ? query.search : undefined
79
+ });
80
+ if (collectionConstraints) {
81
+ documentWhere.or.push(collectionConstraints);
82
+ }
83
+ }
84
+ }
85
+ }
47
86
  const {
48
87
  breadcrumbs,
49
88
  documents,
50
89
  subfolders
51
90
  } = await getFolderData({
91
+ documentWhere,
52
92
  folderID,
53
- req: initPageResult.req,
54
- search: query?.search
93
+ folderWhere,
94
+ req: initPageResult.req
55
95
  });
56
96
  const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
57
97
  if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
@@ -61,7 +101,6 @@ export const buildBrowseByFolderView = async args => {
61
101
  serverURL: config.serverURL
62
102
  }));
63
103
  }
64
- const browseByFolderPreferences = await getPreferences('browse-by-folder', payload, user.id, user.collection);
65
104
  const serverProps = {
66
105
  documents,
67
106
  i18n,
@@ -81,13 +120,14 @@ export const buildBrowseByFolderView = async args => {
81
120
  // serverProps,
82
121
  // })
83
122
  // documents cannot be created without a parent folder in this view
84
- const hasCreatePermissionCollectionSlugs = folderID ? [config.folders.slug, ...folderCollectionSlugs] : [config.folders.slug];
123
+ const hasCreatePermissionCollectionSlugs = folderID ? [config.folders.slug, ...browseByFolderSlugs] : [config.folders.slug];
85
124
  return {
86
125
  View: /*#__PURE__*/_jsxs(FolderProvider, {
87
126
  breadcrumbs: breadcrumbs,
88
127
  documents: documents,
89
128
  filteredCollectionSlugs: selectedCollectionSlugs,
90
- folderCollectionSlugs: folderCollectionSlugs,
129
+ folderCollectionSlugs: browseByFolderSlugs,
130
+ folderFieldName: config.folders.fieldName,
91
131
  folderID: folderID,
92
132
  subfolders: subfolders,
93
133
  children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","redirect","getFolderData","React","getPreferences","buildBrowseByFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderCollectionSlugs","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","filter","collectionSlug","read","includes","length","Error","selectedCollectionSlugs","Array","isArray","relationTo","folders","slug","routes","admin","adminRoute","breadcrumbs","documents","subfolders","search","resolvedFolderID","id","path","browseByFolder","serverURL","browseByFolderPreferences","collection","serverProps","hasCreatePermissionCollectionSlugs","View","_jsxs","filteredCollectionSlugs","_jsx","clientProps","viewPreference","value","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData } from 'payload'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderCollectionSlugs,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collections = folderCollectionSlugs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n if (!collections.length) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n const selectedCollectionSlugs: string[] =\n Array.isArray(query?.relationTo) && query.relationTo.length\n ? query.relationTo\n : [...folderCollectionSlugs, config.folders.slug]\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n folderID,\n req: initPageResult.req,\n search: query?.search as string,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const browseByFolderPreferences = await getPreferences<{ viewPreference: string }>(\n 'browse-by-folder',\n payload,\n user.id,\n user.collection,\n )\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // documents cannot be created without a parent folder in this view\n const hasCreatePermissionCollectionSlugs = folderID\n ? [config.folders.slug, ...folderCollectionSlugs]\n : [config.folders.slug]\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n documents={documents}\n filteredCollectionSlugs={selectedCollectionSlugs}\n folderCollectionSlugs={folderCollectionSlugs}\n folderID={folderID}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermissionCollectionSlugs,\n selectedCollectionSlugs,\n viewPreference: browseByFolderPreferences?.value?.viewPreference,\n },\n // Component:config.folders?.components?.views?.list?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","redirect","getFolderData","buildFolderWhereConstraints","React","getPreferences","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","filter","collectionSlug","collections","read","includes","folders","browseByFolder","Error","selectedCollectionSlugs","Array","isArray","relationTo","length","slug","routes","admin","adminRoute","folderCollectionConfig","browseByFolderPreferences","id","collection","documentWhere","undefined","folderWhere","folderCollectionConstraints","collectionConfig","localeCode","code","search","or","collectionConstraints","push","breadcrumbs","documents","subfolders","resolvedFolderID","path","serverURL","serverProps","hasCreatePermissionCollectionSlugs","View","_jsxs","filteredCollectionSlugs","folderCollectionSlugs","folderFieldName","fieldName","_jsx","clientProps","viewPreference","value","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n Where,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData } from 'payload'\nimport { buildFolderWhereConstraints } from 'payload/shared'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n browseByFolderSlugs: browseByFolderSlugsFromArgs = [],\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const browseByFolderSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n const selectedCollectionSlugs: string[] =\n Array.isArray(query?.relationTo) && query.relationTo.length\n ? query.relationTo.filter(\n (slug) =>\n browseByFolderSlugs.includes(slug) || (config.folders && slug === config.folders.slug),\n )\n : [...browseByFolderSlugs, config.folders.slug]\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const folderCollectionConfig = payload.collections[config.folders.slug].config\n\n const browseByFolderPreferences = await getPreferences<{ viewPreference: string }>(\n 'browse-by-folder',\n payload,\n user.id,\n user.collection,\n )\n\n let documentWhere: undefined | Where = undefined\n let folderWhere: undefined | Where = undefined\n // if folderID, dont make a documentWhere since it only queries root folders\n for (const collectionSlug of selectedCollectionSlugs) {\n if (collectionSlug === config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: folderCollectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n } else if (folderID) {\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConfig = payload.collections[collectionSlug].config\n if (collectionConfig.folders && collectionConfig.folders.browseByFolder === true) {\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n }\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n documentWhere,\n folderID,\n folderWhere,\n req: initPageResult.req,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // documents cannot be created without a parent folder in this view\n const hasCreatePermissionCollectionSlugs = folderID\n ? [config.folders.slug, ...browseByFolderSlugs]\n : [config.folders.slug]\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n documents={documents}\n filteredCollectionSlugs={selectedCollectionSlugs}\n folderCollectionSlugs={browseByFolderSlugs}\n folderFieldName={config.folders.fieldName}\n folderID={folderID}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermissionCollectionSlugs,\n selectedCollectionSlugs,\n viewPreference: browseByFolderPreferences?.value?.viewPreference,\n },\n // Component:config.folders?.components?.views?.list?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n}\n"],"mappings":";AAQA,SAASA,yBAAyB,EAAEC,cAAc,EAAEC,mBAAmB,QAAQ;AAC/E,SAASC,qBAAqB,QAAQ;AACtC,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,2BAA2B,QAAQ;AAC5C,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAa/B,OAAO,MAAMC,uBAAA,GAA0B,MACrCC,IAAA;EAEA,MAAM;IACJC,mBAAA,EAAqBC,2BAAA,GAA8B,EAAE;IACrDC,iBAAiB;IACjBC,eAAe;IACfC,mBAAmB;IACnBC,QAAQ;IACRC,cAAc;IACdC,UAAU;IACVC,MAAM;IACNC,KAAA,EAAOC,aAAa;IACpBC;EAAY,CACb,GAAGZ,IAAA;EAEJ,MAAM;IACJa,MAAA,EAAQC,UAAU;IAClBC,WAAW;IACXC,GAAA,EAAK;MACHC,IAAI;MACJC,OAAO;MACPA,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBT,KAAA,EAAOU,YAAY;MACnBC;IAAI,CACL;IACDC;EAAe,CAChB,GAAGf,cAAA;EAEJ,MAAMN,mBAAA,GAAsBC,2BAAA,CAA4BqB,MAAM,CAC3DC,cAAA,IACCT,WAAA,EAAaU,WAAA,GAAcD,cAAA,CAAe,EAAEE,IAAA,IAC5CJ,eAAA,CAAgBG,WAAW,CAACE,QAAQ,CAACH,cAAA;EAGzC,IAAIL,MAAA,CAAOS,OAAO,KAAK,SAAST,MAAA,CAAOS,OAAO,CAACC,cAAc,KAAK,OAAO;IACvE,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAMpB,KAAA,GAAQC,aAAA,IAAiBS,YAAA;EAC/B,MAAMW,uBAAA,GACJC,KAAA,CAAMC,OAAO,CAACvB,KAAA,EAAOwB,UAAA,KAAexB,KAAA,CAAMwB,UAAU,CAACC,MAAM,GACvDzB,KAAA,CAAMwB,UAAU,CAACX,MAAM,CACpBa,IAAA,IACCnC,mBAAA,CAAoB0B,QAAQ,CAACS,IAAA,KAAUjB,MAAA,CAAOS,OAAO,IAAIQ,IAAA,KAASjB,MAAA,CAAOS,OAAO,CAACQ,IAAI,IAEzF,C,GAAInC,mBAAA,EAAqBkB,MAAA,CAAOS,OAAO,CAACQ,IAAI,CAAC;EAEnD,MAAM;IACJC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGpB,MAAA;EAEJ,MAAMqB,sBAAA,GAAyBtB,OAAA,CAAQO,WAAW,CAACN,MAAA,CAAOS,OAAO,CAACQ,IAAI,CAAC,CAACjB,MAAM;EAE9E,MAAMsB,yBAAA,GAA4B,MAAM3C,cAAA,CACtC,oBACAoB,OAAA,EACAG,IAAA,CAAKqB,EAAE,EACPrB,IAAA,CAAKsB,UAAU;EAGjB,IAAIC,aAAA,GAAmCC,SAAA;EACvC,IAAIC,WAAA,GAAiCD,SAAA;EACrC;EACA,KAAK,MAAMrB,cAAA,IAAkBO,uBAAA,EAAyB;IACpD,IAAIP,cAAA,KAAmBL,MAAA,CAAOS,OAAO,CAACQ,IAAI,EAAE;MAC1C,MAAMW,2BAAA,GAA8B,MAAMnD,2BAAA,CAA4B;QACpEoD,gBAAA,EAAkBR,sBAAA;QAClBlC,QAAA;QACA2C,UAAA,EAAYnC,UAAA,EAAYoC,IAAA;QACxBlC,GAAA,EAAKT,cAAA,CAAeS,GAAG;QACvBmC,MAAA,EAAQ,OAAOzC,KAAA,EAAOyC,MAAA,KAAW,WAAWzC,KAAA,CAAMyC,MAAM,GAAGN;MAC7D;MAEA,IAAIE,2BAAA,EAA6B;QAC/BD,WAAA,GAAcC,2BAAA;MAChB;IACF,OAAO,IAAIzC,QAAA,EAAU;MACnB,IAAI,CAACsC,aAAA,EAAe;QAClBA,aAAA,GAAgB;UACdQ,EAAA,EAAI;QACN;MACF;MAEA,MAAMJ,gBAAA,GAAmB9B,OAAA,CAAQO,WAAW,CAACD,cAAA,CAAe,CAACL,MAAM;MACnE,IAAI6B,gBAAA,CAAiBpB,OAAO,IAAIoB,gBAAA,CAAiBpB,OAAO,CAACC,cAAc,KAAK,MAAM;QAChF,MAAMwB,qBAAA,GAAwB,MAAMzD,2BAAA,CAA4B;UAC9DoD,gBAAA;UACA1C,QAAA;UACA2C,UAAA,EAAYnC,UAAA,EAAYoC,IAAA;UACxBlC,GAAA,EAAKT,cAAA,CAAeS,GAAG;UACvBmC,MAAA,EAAQ,OAAOzC,KAAA,EAAOyC,MAAA,KAAW,WAAWzC,KAAA,CAAMyC,MAAM,GAAGN;QAC7D;QAEA,IAAIQ,qBAAA,EAAuB;UACzBT,aAAA,CAAcQ,EAAE,CAACE,IAAI,CAACD,qBAAA;QACxB;MACF;IACF;EACF;EAEA,MAAM;IAAEE,WAAW;IAAEC,SAAS;IAAEC;EAAU,CAAE,GAAG,MAAM9D,aAAA,CAAc;IACjEiD,aAAA;IACAtC,QAAA;IACAwC,WAAA;IACA9B,GAAA,EAAKT,cAAA,CAAeS;EACtB;EAEA,MAAM0C,gBAAA,GAAmBH,WAAW,CAACA,WAAA,CAAYpB,MAAM,GAAG,EAAE,EAAEO,EAAA;EAE9D,IACE,CAAClC,UAAA,KACAkD,gBAAC,IAAoBpD,QAAA,IAAYA,QAAA,KAAaoD,gBAAA,IAC5CpD,QAAA,IAAY,CAACoD,gBAAgB,GAChC;IACAhE,QAAA,CACED,cAAA,CAAe;MACb8C,UAAA;MACAoB,IAAA,EAAMxC,MAAA,CAAOmB,KAAK,CAACD,MAAM,CAACR,cAAc;MACxC+B,SAAA,EAAWzC,MAAA,CAAOyC;IACpB;EAEJ;EAEA,MAAMC,WAAA,GAA2F;IAC/FL,SAAA;IACAvC,IAAA;IACAJ,MAAA,EAAQC,UAAA;IACRL,MAAA;IACAS,OAAA;IACAH,WAAA;IACAH,YAAA;IACA6C,UAAA;IACApC;EACF;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA,MAAMyC,kCAAA,GAAqCxD,QAAA,GACvC,CAACa,MAAA,CAAOS,OAAO,CAACQ,IAAI,E,GAAKnC,mBAAA,CAAoB,GAC7C,CAACkB,MAAA,CAAOS,OAAO,CAACQ,IAAI,CAAC;EAEzB,OAAO;IACL2B,IAAA,eACEC,KAAA,CAAC1E,cAAA;MACCiE,WAAA,EAAaA,WAAA;MACbC,SAAA,EAAWA,SAAA;MACXS,uBAAA,EAAyBlC,uBAAA;MACzBmC,qBAAA,EAAuBjE,mBAAA;MACvBkE,eAAA,EAAiBhD,MAAA,CAAOS,OAAO,CAACwC,SAAS;MACzC9D,QAAA,EAAUA,QAAA;MACVmD,UAAA,EAAYA,UAAA;8BAEZY,IAAA,CAAC9E,mBAAA;QAAoBwB,WAAA,EAAaA;UACjCvB,qBAAA,CAAsB;QACrB8E,WAAA,EAAa;UACX;UACAnE,iBAAA;UACAC,eAAA;UACAC,mBAAA;UACAyD,kCAAA;UACA/B,uBAAA;UACAwC,cAAA,EAAgB9B,yBAAA,EAA2B+B,KAAA,EAAOD;QACpD;QACA;QACAE,QAAA,EAAUpF,yBAAA;QACVqF,SAAA,EAAWxD,OAAA,CAAQwD,SAAS;QAC5Bb;MACF;;EAGN;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EAEV,MAAM,SAAS,CAAA;AAahB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAC9B,kCAAkC,KACvC,OAAO,CAAC,+BAA+B,CA2KzC,CAAA"}
1
+ {"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EAEV,MAAM,SAAS,CAAA;AAchB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAC9B,kCAAkC,KACvC,OAAO,CAAC,+BAA+B,CAkLzC,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DefaultCollectionFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui';
3
3
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
- import { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared';
4
+ import { formatAdminURL } from '@payloadcms/ui/shared';
5
5
  import { redirect } from 'next/navigation.js';
6
- import { getFolderData, parseDocumentID } from 'payload';
6
+ import { getFolderData } from 'payload';
7
+ import { buildFolderWhereConstraints } from 'payload/shared';
7
8
  import React from 'react';
8
9
  import { getPreferences } from '../../utilities/getPreferences.js';
9
10
  /**
@@ -14,7 +15,6 @@ export const buildCollectionFolderView = async args => {
14
15
  disableBulkDelete,
15
16
  disableBulkEdit,
16
17
  enableRowSelections,
17
- folderCollectionSlugs,
18
18
  folderID,
19
19
  initPageResult,
20
20
  isInDrawer,
@@ -47,35 +47,39 @@ export const buildCollectionFolderView = async args => {
47
47
  if (collectionConfig) {
48
48
  const query = queryFromArgs || queryFromReq;
49
49
  const collectionFolderPreferences = await getPreferences(`${collectionSlug}-collection-folder`, payload, user.id, user.collection);
50
+ const sortPreference = collectionFolderPreferences?.value.sort;
50
51
  const {
51
52
  routes: {
52
53
  admin: adminRoute
53
54
  }
54
55
  } = config;
55
- if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility || !folderCollectionSlugs.includes(collectionSlug)) {
56
+ if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility || !config.folders) {
56
57
  throw new Error('not-found');
57
58
  }
58
- const whereConstraints = [mergeListSearchAndWhere({
59
+ let folderWhere;
60
+ const folderCollectionConfig = payload.collections[config.folders.slug].config;
61
+ const folderCollectionConstraints = await buildFolderWhereConstraints({
62
+ collectionConfig: folderCollectionConfig,
63
+ folderID,
64
+ localeCode: fullLocale?.code,
65
+ req: initPageResult.req,
66
+ search: typeof query?.search === 'string' ? query.search : undefined,
67
+ sort: sortPreference
68
+ });
69
+ if (folderCollectionConstraints) {
70
+ folderWhere = folderCollectionConstraints;
71
+ }
72
+ let documentWhere;
73
+ const collectionConstraints = await buildFolderWhereConstraints({
59
74
  collectionConfig,
75
+ folderID,
76
+ localeCode: fullLocale?.code,
77
+ req: initPageResult.req,
60
78
  search: typeof query?.search === 'string' ? query.search : undefined,
61
- where: query?.where || undefined
62
- })];
63
- if (folderID) {
64
- whereConstraints.push({
65
- [config.folders.fieldName]: {
66
- equals: parseDocumentID({
67
- id: folderID,
68
- collectionSlug,
69
- payload
70
- })
71
- }
72
- });
73
- } else {
74
- whereConstraints.push({
75
- [config.folders.fieldName]: {
76
- exists: false
77
- }
78
- });
79
+ sort: sortPreference
80
+ });
81
+ if (collectionConstraints) {
82
+ documentWhere = collectionConstraints;
79
83
  }
80
84
  const {
81
85
  breadcrumbs,
@@ -83,9 +87,10 @@ export const buildCollectionFolderView = async args => {
83
87
  subfolders
84
88
  } = await getFolderData({
85
89
  collectionSlug,
90
+ documentWhere,
86
91
  folderID,
87
- req: initPageResult.req,
88
- search: query?.search
92
+ folderWhere,
93
+ req: initPageResult.req
89
94
  });
90
95
  const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
91
96
  if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
@@ -132,7 +137,8 @@ export const buildCollectionFolderView = async args => {
132
137
  breadcrumbs: breadcrumbs,
133
138
  collectionSlug: collectionSlug,
134
139
  documents: documents,
135
- folderCollectionSlugs: folderCollectionSlugs,
140
+ folderCollectionSlugs: [collectionSlug],
141
+ folderFieldName: config.folders.fieldName,
136
142
  folderID: folderID,
137
143
  search: search,
138
144
  subfolders: subfolders,
@@ -1 +1 @@
1
- {"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","mergeListSearchAndWhere","redirect","getFolderData","parseDocumentID","React","getPreferences","buildCollectionFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderCollectionSlugs","folderID","initPageResult","isInDrawer","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","collectionFolderPreferences","id","collection","routes","admin","adminRoute","includes","whereConstraints","search","undefined","where","push","folders","fieldName","equals","exists","breadcrumbs","documents","subfolders","resolvedFolderID","length","path","serverURL","newDocumentURL","hasCreatePermission","create","serverProps","View","_jsxs","_jsx","clientProps","viewPreference","value","Component","components","views","list","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n Where,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData, parseDocumentID } from 'payload'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\n// import { renderFolderViewSlots } from './renderFolderViewSlots.js'\n\nexport type BuildCollectionFolderViewStateArgs = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\n/**\n * Builds the entire view for collection-folder views on the server\n */\nexport const buildCollectionFolderView = async (\n args: BuildCollectionFolderViewStateArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderCollectionSlugs,\n folderID,\n initPageResult,\n isInDrawer,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const query = queryFromArgs || queryFromReq\n\n const collectionFolderPreferences = await getPreferences<{ viewPreference: string }>(\n `${collectionSlug}-collection-folder`,\n payload,\n user.id,\n user.collection,\n )\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !folderCollectionSlugs.includes(collectionSlug)\n ) {\n throw new Error('not-found')\n }\n\n const whereConstraints = [\n mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n }),\n ]\n\n if (folderID) {\n whereConstraints.push({\n [config.folders.fieldName]: {\n equals: parseDocumentID({ id: folderID, collectionSlug, payload }),\n },\n })\n } else {\n whereConstraints.push({\n [config.folders.fieldName]: {\n exists: false,\n },\n })\n }\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n collectionSlug,\n folderID,\n req: initPageResult.req,\n search: query?.search as string,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: FolderListViewServerPropsOnly = {\n collectionConfig,\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // We could support slots in the folder view in the future\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // collectionSlug,\n // hasCreatePermission,\n // newDocumentURL,\n // },\n // collectionConfig,\n // description: typeof collectionConfig.admin.description === 'function'\n // ? collectionConfig.admin.description({ t: i18n.t })\n // : collectionConfig.admin.description,\n // payload,\n // serverProps,\n // })\n\n const search = query?.search as string\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n collectionSlug={collectionSlug}\n documents={documents}\n folderCollectionSlugs={folderCollectionSlugs}\n folderID={folderID}\n search={search}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n newDocumentURL,\n viewPreference: collectionFolderPreferences?.value?.viewPreference,\n },\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","redirect","getFolderData","buildFolderWhereConstraints","React","getPreferences","buildCollectionFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","collectionFolderPreferences","id","collection","sortPreference","value","sort","routes","admin","adminRoute","includes","folders","folderWhere","folderCollectionConfig","folderCollectionConstraints","localeCode","code","search","undefined","documentWhere","collectionConstraints","breadcrumbs","documents","subfolders","resolvedFolderID","length","path","serverURL","newDocumentURL","hasCreatePermission","create","serverProps","View","_jsxs","folderCollectionSlugs","folderFieldName","fieldName","_jsx","clientProps","viewPreference","Component","components","views","list","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n Where,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData } from 'payload'\nimport { buildFolderWhereConstraints } from 'payload/shared'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\n// import { renderFolderViewSlots } from './renderFolderViewSlots.js'\n\nexport type BuildCollectionFolderViewStateArgs = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\n/**\n * Builds the entire view for collection-folder views on the server\n */\nexport const buildCollectionFolderView = async (\n args: BuildCollectionFolderViewStateArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const query = queryFromArgs || queryFromReq\n\n const collectionFolderPreferences = await getPreferences<{\n sort?: string\n viewPreference: string\n }>(`${collectionSlug}-collection-folder`, payload, user.id, user.collection)\n\n const sortPreference = collectionFolderPreferences?.value.sort\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n let folderWhere: undefined | Where\n const folderCollectionConfig = payload.collections[config.folders.slug].config\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: folderCollectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n sort: sortPreference,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n let documentWhere: undefined | Where\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n sort: sortPreference,\n })\n if (collectionConstraints) {\n documentWhere = collectionConstraints\n }\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req: initPageResult.req,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: FolderListViewServerPropsOnly = {\n collectionConfig,\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // We could support slots in the folder view in the future\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // collectionSlug,\n // hasCreatePermission,\n // newDocumentURL,\n // },\n // collectionConfig,\n // description: typeof collectionConfig.admin.description === 'function'\n // ? collectionConfig.admin.description({ t: i18n.t })\n // : collectionConfig.admin.description,\n // payload,\n // serverProps,\n // })\n\n const search = query?.search as string\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n collectionSlug={collectionSlug}\n documents={documents}\n folderCollectionSlugs={[collectionSlug]}\n folderFieldName={config.folders.fieldName}\n folderID={folderID}\n search={search}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n newDocumentURL,\n viewPreference: collectionFolderPreferences?.value?.viewPreference,\n },\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- @import '../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .create-first-user {
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .dashboard {
@@ -1 +1 @@
1
- {"version":3,"file":"renderDocumentSlots.d.ts","sourceRoot":"","sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,aAAa,EACb,cAAc,EAGd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EAOtB,MAAM,SAAS,CAAA;AAOhB,eAAO,MAAM,mBAAmB,EAAE,CAAC,IAAI,EAAE;IACvC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,4BAA4B,CAAA;IACzC,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,aAwHL,CAAA;AAED,eAAO,MAAM,0BAA0B,SAC/B;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,yBAAyB,2BAsB7D,CAAA"}
1
+ {"version":3,"file":"renderDocumentSlots.d.ts","sourceRoot":"","sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,aAAa,EAEb,cAAc,EAGd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EAOtB,MAAM,SAAS,CAAA;AAOhB,eAAO,MAAM,mBAAmB,EAAE,CAAC,IAAI,EAAE;IACvC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,4BAA4B,CAAA;IACzC,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,aAkIL,CAAA;AAED,eAAO,MAAM,0BAA0B,SAC/B;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,yBAAyB,2BAsB7D,CAAA"}
@@ -24,6 +24,14 @@ export const renderDocumentSlots = args => {
24
24
  serverProps: serverProps
25
25
  });
26
26
  }
27
+ const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems;
28
+ if (EditMenuItems) {
29
+ components.EditMenuItems = RenderServerComponent({
30
+ Component: EditMenuItems,
31
+ importMap: req.payload.importMap,
32
+ serverProps: serverProps
33
+ });
34
+ }
27
35
  const CustomPreviewButton = collectionConfig?.admin?.components?.edit?.PreviewButton || globalConfig?.admin?.components?.elements?.PreviewButton;
28
36
  if (isPreviewEnabled && CustomPreviewButton) {
29
37
  components.PreviewButton = RenderServerComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"renderDocumentSlots.js","names":["ViewDescription","RenderServerComponent","getDocumentPermissions","renderDocumentSlots","args","collectionConfig","globalConfig","hasSavePermission","req","components","unsavedDraftWithValidations","undefined","isPreviewEnabled","admin","preview","serverProps","i18n","payload","user","BeforeDocumentControls","edit","beforeDocumentControls","elements","Component","importMap","CustomPreviewButton","PreviewButton","descriptionFromConfig","description","staticDescription","t","CustomDescription","Description","hasDescription","clientProps","collectionSlug","slug","Fallback","versions","drafts","CustomPublishButton","PublishButton","CustomSaveDraftButton","SaveDraftButton","draftsEnabled","autosave","CustomSaveButton","SaveButton","upload","Upload","renderDocumentSlotsHandler","collections","config","Error","docPermissions","data","permissions"],"sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"sourcesContent":["import type {\n BeforeDocumentControlsServerPropsOnly,\n DefaultServerFunctionArgs,\n DocumentSlots,\n PayloadRequest,\n PreviewButtonServerPropsOnly,\n PublishButtonServerPropsOnly,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n SaveButtonServerPropsOnly,\n SaveDraftButtonServerPropsOnly,\n ServerProps,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { ViewDescription } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport const renderDocumentSlots: (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasSavePermission: boolean\n permissions: SanitizedDocumentPermissions\n req: PayloadRequest\n}) => DocumentSlots = (args) => {\n const { collectionConfig, globalConfig, hasSavePermission, req } = args\n\n const components: DocumentSlots = {} as DocumentSlots\n\n const unsavedDraftWithValidations = undefined\n\n const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview\n\n const serverProps: ServerProps = {\n i18n: req.i18n,\n payload: req.payload,\n user: req.user,\n // TODO: Add remaining serverProps\n }\n\n const BeforeDocumentControls =\n collectionConfig?.admin?.components?.edit?.beforeDocumentControls ||\n globalConfig?.admin?.components?.elements?.beforeDocumentControls\n\n if (BeforeDocumentControls) {\n components.BeforeDocumentControls = RenderServerComponent({\n Component: BeforeDocumentControls,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies BeforeDocumentControlsServerPropsOnly,\n })\n }\n\n const CustomPreviewButton =\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n\n if (isPreviewEnabled && CustomPreviewButton) {\n components.PreviewButton = RenderServerComponent({\n Component: CustomPreviewButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PreviewButtonServerPropsOnly,\n })\n }\n\n const descriptionFromConfig =\n collectionConfig?.admin?.description || globalConfig?.admin?.description\n\n const staticDescription: StaticDescription =\n typeof descriptionFromConfig === 'function'\n ? descriptionFromConfig({ t: req.i18n.t })\n : descriptionFromConfig\n\n const CustomDescription =\n collectionConfig?.admin?.components?.Description ||\n globalConfig?.admin?.components?.elements?.Description\n\n const hasDescription = CustomDescription || staticDescription\n\n if (hasDescription) {\n components.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig?.slug,\n description: staticDescription,\n } satisfies ViewDescriptionClientProps,\n Component: CustomDescription,\n Fallback: ViewDescription,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n if (hasSavePermission) {\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n const CustomPublishButton =\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n\n if (CustomPublishButton) {\n components.PublishButton = RenderServerComponent({\n Component: CustomPublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PublishButtonServerPropsOnly,\n })\n }\n\n const CustomSaveDraftButton =\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n\n const draftsEnabled =\n (collectionConfig?.versions?.drafts && !collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && !globalConfig?.versions?.drafts?.autosave)\n\n if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {\n components.SaveDraftButton = RenderServerComponent({\n Component: CustomSaveDraftButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveDraftButtonServerPropsOnly,\n })\n }\n } else {\n const CustomSaveButton =\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n\n if (CustomSaveButton) {\n components.SaveButton = RenderServerComponent({\n Component: CustomSaveButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveButtonServerPropsOnly,\n })\n }\n }\n }\n\n if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {\n components.Upload = RenderServerComponent({\n Component: collectionConfig.admin.components.edit.Upload,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n return components\n}\n\nexport const renderDocumentSlotsHandler = async (\n args: { collectionSlug: string } & DefaultServerFunctionArgs,\n) => {\n const { collectionSlug, req } = args\n\n const collectionConfig = req.payload.collections[collectionSlug]?.config\n\n if (!collectionConfig) {\n throw new Error(req.t('error:incorrectCollection'))\n }\n\n const { docPermissions, hasSavePermission } = await getDocumentPermissions({\n collectionConfig,\n data: {},\n req,\n })\n\n return renderDocumentSlots({\n collectionConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderDocumentSlots.js","names":["ViewDescription","RenderServerComponent","getDocumentPermissions","renderDocumentSlots","args","collectionConfig","globalConfig","hasSavePermission","req","components","unsavedDraftWithValidations","undefined","isPreviewEnabled","admin","preview","serverProps","i18n","payload","user","BeforeDocumentControls","edit","beforeDocumentControls","elements","Component","importMap","EditMenuItems","editMenuItems","CustomPreviewButton","PreviewButton","descriptionFromConfig","description","staticDescription","t","CustomDescription","Description","hasDescription","clientProps","collectionSlug","slug","Fallback","versions","drafts","CustomPublishButton","PublishButton","CustomSaveDraftButton","SaveDraftButton","draftsEnabled","autosave","CustomSaveButton","SaveButton","upload","Upload","renderDocumentSlotsHandler","collections","config","Error","docPermissions","data","permissions"],"sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"sourcesContent":["import type {\n BeforeDocumentControlsServerPropsOnly,\n DefaultServerFunctionArgs,\n DocumentSlots,\n EditMenuItemsServerPropsOnly,\n PayloadRequest,\n PreviewButtonServerPropsOnly,\n PublishButtonServerPropsOnly,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n SaveButtonServerPropsOnly,\n SaveDraftButtonServerPropsOnly,\n ServerProps,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { ViewDescription } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport const renderDocumentSlots: (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasSavePermission: boolean\n permissions: SanitizedDocumentPermissions\n req: PayloadRequest\n}) => DocumentSlots = (args) => {\n const { collectionConfig, globalConfig, hasSavePermission, req } = args\n\n const components: DocumentSlots = {} as DocumentSlots\n\n const unsavedDraftWithValidations = undefined\n\n const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview\n\n const serverProps: ServerProps = {\n i18n: req.i18n,\n payload: req.payload,\n user: req.user,\n // TODO: Add remaining serverProps\n }\n\n const BeforeDocumentControls =\n collectionConfig?.admin?.components?.edit?.beforeDocumentControls ||\n globalConfig?.admin?.components?.elements?.beforeDocumentControls\n\n if (BeforeDocumentControls) {\n components.BeforeDocumentControls = RenderServerComponent({\n Component: BeforeDocumentControls,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies BeforeDocumentControlsServerPropsOnly,\n })\n }\n\n const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems\n\n if (EditMenuItems) {\n components.EditMenuItems = RenderServerComponent({\n Component: EditMenuItems,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies EditMenuItemsServerPropsOnly,\n })\n }\n\n const CustomPreviewButton =\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n\n if (isPreviewEnabled && CustomPreviewButton) {\n components.PreviewButton = RenderServerComponent({\n Component: CustomPreviewButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PreviewButtonServerPropsOnly,\n })\n }\n\n const descriptionFromConfig =\n collectionConfig?.admin?.description || globalConfig?.admin?.description\n\n const staticDescription: StaticDescription =\n typeof descriptionFromConfig === 'function'\n ? descriptionFromConfig({ t: req.i18n.t })\n : descriptionFromConfig\n\n const CustomDescription =\n collectionConfig?.admin?.components?.Description ||\n globalConfig?.admin?.components?.elements?.Description\n\n const hasDescription = CustomDescription || staticDescription\n\n if (hasDescription) {\n components.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig?.slug,\n description: staticDescription,\n } satisfies ViewDescriptionClientProps,\n Component: CustomDescription,\n Fallback: ViewDescription,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n if (hasSavePermission) {\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n const CustomPublishButton =\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n\n if (CustomPublishButton) {\n components.PublishButton = RenderServerComponent({\n Component: CustomPublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PublishButtonServerPropsOnly,\n })\n }\n\n const CustomSaveDraftButton =\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n\n const draftsEnabled =\n (collectionConfig?.versions?.drafts && !collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && !globalConfig?.versions?.drafts?.autosave)\n\n if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {\n components.SaveDraftButton = RenderServerComponent({\n Component: CustomSaveDraftButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveDraftButtonServerPropsOnly,\n })\n }\n } else {\n const CustomSaveButton =\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n\n if (CustomSaveButton) {\n components.SaveButton = RenderServerComponent({\n Component: CustomSaveButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveButtonServerPropsOnly,\n })\n }\n }\n }\n\n if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {\n components.Upload = RenderServerComponent({\n Component: collectionConfig.admin.components.edit.Upload,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n return components\n}\n\nexport const renderDocumentSlotsHandler = async (\n args: { collectionSlug: string } & DefaultServerFunctionArgs,\n) => {\n const { collectionSlug, req } = args\n\n const collectionConfig = req.payload.collections[collectionSlug]?.config\n\n if (!collectionConfig) {\n throw new Error(req.t('error:incorrectCollection'))\n }\n\n const { docPermissions, hasSavePermission } = await getDocumentPermissions({\n collectionConfig,\n data: {},\n req,\n })\n\n return renderDocumentSlots({\n collectionConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .live-preview-window {
@@ -1,4 +1,4 @@
1
- @import '../../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .live-preview-toolbar-controls {
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '~@payloadcms/ui/scss';
2
2
 
3
3
  @layer payload-default {
4
4
  .live-preview-toolbar {
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,aAAa,EAEb,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAgChB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAGjF,OAAO,cAAc,CAAA;AAkgBrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CACtC;IACE,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,GAAG,aAAa,CA2DlB,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,aAAa,EAEb,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAgChB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAGjF,OAAO,cAAc,CAAA;AAogBrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CACtC;IACE,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,GAAG,aAAa,CA4DlB,CAAA"}
@@ -24,6 +24,7 @@ const PreviewView = ({
24
24
  collectionConfig,
25
25
  config,
26
26
  Description,
27
+ EditMenuItems,
27
28
  fields,
28
29
  globalConfig,
29
30
  PreviewButton,
@@ -328,6 +329,7 @@ const PreviewView = ({
328
329
  },
329
330
  data: initialData,
330
331
  disableActions: disableActions,
332
+ EditMenuItems: EditMenuItems,
331
333
  hasPublishPermission: hasPublishPermission,
332
334
  hasSavePermission: hasSavePermission,
333
335
  id: id,
@@ -360,7 +362,7 @@ const PreviewView = ({
360
362
  });
361
363
  };
362
364
  export const LivePreviewClient = props => {
363
- const $ = _c(23);
365
+ const $ = _c(24);
364
366
  const {
365
367
  breakpoints,
366
368
  url: incomingUrl
@@ -407,7 +409,7 @@ export const LivePreviewClient = props => {
407
409
  popupRef
408
410
  } = usePopupWindow(t3);
409
411
  let t4;
410
- if ($[4] !== apiRoute || $[5] !== breakpoints || $[6] !== collectionSlug || $[7] !== config || $[8] !== getEntityConfig || $[9] !== globalSlug || $[10] !== isPopupOpen || $[11] !== openPopupWindow || $[12] !== popupRef || $[13] !== props.BeforeDocumentControls || $[14] !== props.Description || $[15] !== props.PreviewButton || $[16] !== props.PublishButton || $[17] !== props.SaveButton || $[18] !== props.SaveDraftButton || $[19] !== props.Upload || $[20] !== serverURL || $[21] !== url) {
412
+ if ($[4] !== apiRoute || $[5] !== breakpoints || $[6] !== collectionSlug || $[7] !== config || $[8] !== getEntityConfig || $[9] !== globalSlug || $[10] !== isPopupOpen || $[11] !== openPopupWindow || $[12] !== popupRef || $[13] !== props.BeforeDocumentControls || $[14] !== props.Description || $[15] !== props.EditMenuItems || $[16] !== props.PreviewButton || $[17] !== props.PublishButton || $[18] !== props.SaveButton || $[19] !== props.SaveDraftButton || $[20] !== props.Upload || $[21] !== serverURL || $[22] !== url) {
411
413
  const collectionConfig = getEntityConfig({
412
414
  collectionSlug
413
415
  });
@@ -429,6 +431,7 @@ export const LivePreviewClient = props => {
429
431
  collectionConfig,
430
432
  config,
431
433
  Description: props.Description,
434
+ EditMenuItems: props.EditMenuItems,
432
435
  fields: (collectionConfig || globalConfig)?.fields,
433
436
  globalConfig,
434
437
  PreviewButton: props.PreviewButton,
@@ -452,16 +455,17 @@ export const LivePreviewClient = props => {
452
455
  $[12] = popupRef;
453
456
  $[13] = props.BeforeDocumentControls;
454
457
  $[14] = props.Description;
455
- $[15] = props.PreviewButton;
456
- $[16] = props.PublishButton;
457
- $[17] = props.SaveButton;
458
- $[18] = props.SaveDraftButton;
459
- $[19] = props.Upload;
460
- $[20] = serverURL;
461
- $[21] = url;
462
- $[22] = t4;
458
+ $[15] = props.EditMenuItems;
459
+ $[16] = props.PreviewButton;
460
+ $[17] = props.PublishButton;
461
+ $[18] = props.SaveButton;
462
+ $[19] = props.SaveDraftButton;
463
+ $[20] = props.Upload;
464
+ $[21] = serverURL;
465
+ $[22] = url;
466
+ $[23] = t4;
463
467
  } else {
464
- t4 = $[22];
468
+ t4 = $[23];
465
469
  }
466
470
  return t4;
467
471
  };