@payloadcms/next 3.80.0-internal.cdd7ef7 → 3.80.0

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 (105) hide show
  1. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  2. package/dist/elements/Nav/getNavPrefs.js +2 -36
  3. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  4. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  5. package/dist/elements/Nav/index.client.js +44 -27
  6. package/dist/elements/Nav/index.client.js.map +1 -1
  7. package/dist/elements/Nav/index.d.ts.map +1 -1
  8. package/dist/elements/Nav/index.js +7 -35
  9. package/dist/elements/Nav/index.js.map +1 -1
  10. package/dist/exports/client.d.ts +1 -2
  11. package/dist/exports/client.d.ts.map +1 -1
  12. package/dist/exports/client.js +1 -2
  13. package/dist/exports/client.js.map +1 -1
  14. package/dist/exports/rsc.d.ts +1 -2
  15. package/dist/exports/rsc.d.ts.map +1 -1
  16. package/dist/exports/rsc.js +1 -2
  17. package/dist/exports/rsc.js.map +1 -1
  18. package/dist/exports/utilities.d.ts +0 -2
  19. package/dist/exports/utilities.d.ts.map +1 -1
  20. package/dist/exports/utilities.js +0 -1
  21. package/dist/exports/utilities.js.map +1 -1
  22. package/dist/prod/styles.css +1 -1
  23. package/dist/utilities/handleServerFunctions.js +2 -2
  24. package/dist/utilities/handleServerFunctions.js.map +1 -1
  25. package/dist/views/BrowseByFolder/buildView.d.ts +13 -0
  26. package/dist/views/BrowseByFolder/buildView.d.ts.map +1 -0
  27. package/dist/views/BrowseByFolder/buildView.js +170 -0
  28. package/dist/views/BrowseByFolder/buildView.js.map +1 -0
  29. package/dist/views/BrowseByFolder/index.d.ts +4 -0
  30. package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
  31. package/dist/views/BrowseByFolder/index.js +20 -0
  32. package/dist/views/BrowseByFolder/index.js.map +1 -0
  33. package/dist/views/BrowseByFolder/metadata.d.ts +4 -0
  34. package/dist/views/BrowseByFolder/metadata.d.ts.map +1 -0
  35. package/dist/views/BrowseByFolder/metadata.js +18 -0
  36. package/dist/views/BrowseByFolder/metadata.js.map +1 -0
  37. package/dist/views/CollectionFolders/buildView.d.ts +15 -0
  38. package/dist/views/CollectionFolders/buildView.d.ts.map +1 -0
  39. package/dist/views/CollectionFolders/buildView.js +156 -0
  40. package/dist/views/CollectionFolders/buildView.js.map +1 -0
  41. package/dist/views/CollectionFolders/index.d.ts +4 -0
  42. package/dist/views/CollectionFolders/index.d.ts.map +1 -0
  43. package/dist/views/CollectionFolders/index.js +20 -0
  44. package/dist/views/CollectionFolders/index.js.map +1 -0
  45. package/dist/views/CollectionFolders/metadata.d.ts +7 -0
  46. package/dist/views/CollectionFolders/metadata.d.ts.map +1 -0
  47. package/dist/views/CollectionFolders/metadata.js +25 -0
  48. package/dist/views/CollectionFolders/metadata.js.map +1 -0
  49. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +11 -0
  50. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +1 -0
  51. package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
  52. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
  53. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  54. package/dist/views/Document/renderDocumentSlots.js +0 -8
  55. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  56. package/dist/views/List/index.d.ts.map +1 -1
  57. package/dist/views/List/index.js +28 -84
  58. package/dist/views/List/index.js.map +1 -1
  59. package/dist/views/Root/getRouteData.d.ts +4 -1
  60. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  61. package/dist/views/Root/getRouteData.js +91 -27
  62. package/dist/views/Root/getRouteData.js.map +1 -1
  63. package/dist/views/Root/index.d.ts.map +1 -1
  64. package/dist/views/Root/index.js +11 -5
  65. package/dist/views/Root/index.js.map +1 -1
  66. package/dist/views/Root/metadata.d.ts.map +1 -1
  67. package/dist/views/Root/metadata.js +37 -1
  68. package/dist/views/Root/metadata.js.map +1 -1
  69. package/package.json +7 -7
  70. package/dist/elements/HierarchyTypeField/index.d.ts +0 -9
  71. package/dist/elements/HierarchyTypeField/index.d.ts.map +0 -1
  72. package/dist/elements/HierarchyTypeField/index.js +0 -114
  73. package/dist/elements/HierarchyTypeField/index.js.map +0 -1
  74. package/dist/elements/HierarchyTypeField/index.server.d.ts +0 -9
  75. package/dist/elements/HierarchyTypeField/index.server.d.ts.map +0 -1
  76. package/dist/elements/HierarchyTypeField/index.server.js +0 -32
  77. package/dist/elements/HierarchyTypeField/index.server.js.map +0 -1
  78. package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts +0 -8
  79. package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts.map +0 -1
  80. package/dist/elements/Nav/SidebarTabs/TabError/index.js +0 -42
  81. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +0 -1
  82. package/dist/elements/Nav/SidebarTabs/constants.d.ts +0 -2
  83. package/dist/elements/Nav/SidebarTabs/constants.d.ts.map +0 -1
  84. package/dist/elements/Nav/SidebarTabs/constants.js +0 -2
  85. package/dist/elements/Nav/SidebarTabs/constants.js.map +0 -1
  86. package/dist/elements/Nav/SidebarTabs/index.client.d.ts +0 -22
  87. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +0 -1
  88. package/dist/elements/Nav/SidebarTabs/index.client.js +0 -194
  89. package/dist/elements/Nav/SidebarTabs/index.client.js.map +0 -1
  90. package/dist/elements/Nav/SidebarTabs/index.d.ts +0 -17
  91. package/dist/elements/Nav/SidebarTabs/index.d.ts.map +0 -1
  92. package/dist/elements/Nav/SidebarTabs/index.js +0 -85
  93. package/dist/elements/Nav/SidebarTabs/index.js.map +0 -1
  94. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +0 -10
  95. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +0 -1
  96. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +0 -54
  97. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +0 -1
  98. package/dist/utilities/getHierarchyAncestry.d.ts +0 -24
  99. package/dist/utilities/getHierarchyAncestry.d.ts.map +0 -1
  100. package/dist/utilities/getHierarchyAncestry.js +0 -103
  101. package/dist/utilities/getHierarchyAncestry.js.map +0 -1
  102. package/dist/views/List/handleHierarchy.d.ts +0 -18
  103. package/dist/views/List/handleHierarchy.d.ts.map +0 -1
  104. package/dist/views/List/handleHierarchy.js +0 -258
  105. package/dist/views/List/handleHierarchy.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc';
2
2
  import { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState';
3
3
  import { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState';
4
+ import { getFolderResultsComponentAndDataHandler } from '@payloadcms/ui/utilities/getFolderResultsComponentAndData';
4
5
  import { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler';
5
- import { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js';
6
6
  import { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js';
7
7
  import { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js';
8
8
  import { renderDocumentHandler } from '../views/Document/handleServerFunction.js';
@@ -14,11 +14,11 @@ const baseServerFunctions = {
14
14
  'copy-data-from-locale': copyDataFromLocaleHandler,
15
15
  'form-state': buildFormStateHandler,
16
16
  'get-default-layout': getDefaultLayoutHandler,
17
+ 'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,
17
18
  'render-document': renderDocumentHandler,
18
19
  'render-document-slots': renderDocumentSlotsHandler,
19
20
  'render-field': _internal_renderFieldHandler,
20
21
  'render-list': renderListHandler,
21
- 'render-tab': renderTabHandler,
22
22
  'render-widget': renderWidgetHandler,
23
23
  'schedule-publish': schedulePublishHandler,
24
24
  slugify: slugifyHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","schedulePublishHandler","renderTabHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","slugifyHandler","baseServerFunctions","slugify","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","cookies","locale","permissions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { DefaultServerFunctionArgs, ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js'\nimport { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\nimport { slugifyHandler } from './slugify.js'\n\nconst baseServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'table-state': buildTableStateHandler,\n}\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { cookies, locale, permissions, req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: DefaultServerFunctionArgs = {\n ...fnArgs,\n cookies,\n importMap,\n locale,\n permissions,\n req,\n }\n\n const fn = extraServerFunctions?.[fnKey] || baseServerFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,yBAAyB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAE/B,MAAMC,mBAAA,GAAgE;EACpE,yBAAyBZ,yBAAA;EACzB,cAAcC,qBAAA;EACd,sBAAsBI,uBAAA;EACtB,mBAAmBE,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBT,4BAAA;EAChB,eAAeU,iBAAA;EACf,cAAcL,gBAAA;EACd,iBAAiBE,mBAAA;EACjB,oBAAoBH,sBAAA;EACpBU,OAAA,EAASF,cAAA;EACT,eAAeT;AACjB;AAEA,OAAO,MAAMY,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IACJC,IAAA,EAAMC,KAAK;IACXF,IAAA,EAAMG,MAAM;IACZC,MAAA,EAAQC,aAAa;IACrBC,SAAS;IACTC,eAAA,EAAiBC;EAAoB,CACtC,GAAGR,IAAA;EAEJ,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAG,MAAMjB,OAAA,CAAQ;IAC1DU,aAAA;IACAC,SAAA;IACAO,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA2C;IAC/C,GAAGX,MAAM;IACTM,OAAA;IACAH,SAAA;IACAI,MAAA;IACAC,WAAA;IACAC;EACF;EAEA,MAAMG,EAAA,GAAKP,oBAAA,GAAuBN,KAAA,CAAM,IAAIL,mBAAmB,CAACK,KAAA,CAAM;EAEtE,IAAI,CAACa,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4Bd,KAAA,EAAO;EACrD;EAEA,OAAOa,EAAA,CAAGD,aAAA;AACZ","ignoreList":[]}
1
+ {"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","getFolderResultsComponentAndDataHandler","schedulePublishHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","slugifyHandler","baseServerFunctions","slugify","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","cookies","locale","permissions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { DefaultServerFunctionArgs, ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { getFolderResultsComponentAndDataHandler } from '@payloadcms/ui/utilities/getFolderResultsComponentAndData'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js'\nimport { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\nimport { slugifyHandler } from './slugify.js'\n\nconst baseServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'table-state': buildTableStateHandler,\n}\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { cookies, locale, permissions, req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: DefaultServerFunctionArgs = {\n ...fnArgs,\n cookies,\n importMap,\n locale,\n permissions,\n req,\n }\n\n const fn = extraServerFunctions?.[fnKey] || baseServerFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,yBAAyB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,uCAAuC,QAAQ;AACxD,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAE/B,MAAMC,mBAAA,GAAgE;EACpE,yBAAyBZ,yBAAA;EACzB,cAAcC,qBAAA;EACd,sBAAsBI,uBAAA;EACtB,yCAAyCF,uCAAA;EACzC,mBAAmBI,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBT,4BAAA;EAChB,eAAeU,iBAAA;EACf,iBAAiBH,mBAAA;EACjB,oBAAoBF,sBAAA;EACpBS,OAAA,EAASF,cAAA;EACT,eAAeT;AACjB;AAEA,OAAO,MAAMY,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IACJC,IAAA,EAAMC,KAAK;IACXF,IAAA,EAAMG,MAAM;IACZC,MAAA,EAAQC,aAAa;IACrBC,SAAS;IACTC,eAAA,EAAiBC;EAAoB,CACtC,GAAGR,IAAA;EAEJ,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAG,MAAMjB,OAAA,CAAQ;IAC1DU,aAAA;IACAC,SAAA;IACAO,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA2C;IAC/C,GAAGX,MAAM;IACTM,OAAA;IACAH,SAAA;IACAI,MAAA;IACAC,WAAA;IACAC;EACF;EAEA,MAAMG,EAAA,GAAKP,oBAAA,GAAuBN,KAAA,CAAM,IAAIL,mBAAmB,CAACK,KAAA,CAAM;EAEtE,IAAI,CAACa,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4Bd,KAAA,EAAO;EACrD;EAEA,OAAOa,EAAA,CAAGD,aAAA;AACZ","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import type { AdminViewServerProps, BuildCollectionFolderViewResult, ListQuery } from 'payload';
2
+ export type BuildFolderViewArgs = {
3
+ customCellProps?: Record<string, any>;
4
+ disableBulkDelete?: boolean;
5
+ disableBulkEdit?: boolean;
6
+ enableRowSelections: boolean;
7
+ folderID?: number | string;
8
+ isInDrawer?: boolean;
9
+ overrideEntityVisibility?: boolean;
10
+ query: ListQuery;
11
+ } & AdminViewServerProps;
12
+ export declare const buildBrowseByFolderView: (args: BuildFolderViewArgs) => Promise<BuildCollectionFolderViewResult>;
13
+ //# sourceMappingURL=buildView.d.ts.map
@@ -0,0 +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,EAI/B,SAAS,EACV,MAAM,SAAS,CAAA;AAUhB,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,CAwMzC,CAAA"}
@@ -0,0 +1,170 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui';
3
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
+ import { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc';
5
+ import { formatAdminURL } from '@payloadcms/ui/shared';
6
+ import { redirect } from 'next/navigation.js';
7
+ import { PREFERENCE_KEYS } from 'payload/shared';
8
+ import React from 'react';
9
+ export const buildBrowseByFolderView = async args => {
10
+ const {
11
+ browseByFolderSlugs: browseByFolderSlugsFromArgs = [],
12
+ disableBulkDelete,
13
+ disableBulkEdit,
14
+ enableRowSelections,
15
+ folderID,
16
+ initPageResult,
17
+ isInDrawer,
18
+ params,
19
+ query: queryFromArgs,
20
+ searchParams
21
+ } = args;
22
+ const {
23
+ locale: fullLocale,
24
+ permissions,
25
+ req: {
26
+ i18n,
27
+ payload,
28
+ payload: {
29
+ config
30
+ },
31
+ query: queryFromReq,
32
+ user
33
+ },
34
+ visibleEntities
35
+ } = initPageResult;
36
+ if (config.folders === false || config.folders.browseByFolder === false) {
37
+ throw new Error('not-found');
38
+ }
39
+ const foldersSlug = config.folders.slug;
40
+ /**
41
+ * All visiible folder enabled collection slugs that the user has read permissions for.
42
+ */
43
+ const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(collectionSlug => permissions?.collections?.[collectionSlug]?.read && visibleEntities.collections.includes(collectionSlug));
44
+ const query = queryFromArgs || (queryFromReq ? {
45
+ ...queryFromReq,
46
+ relationTo: typeof queryFromReq?.relationTo === 'string' ? JSON.parse(queryFromReq.relationTo) : undefined
47
+ } : {});
48
+ /**
49
+ * If a folderID is provided and the relationTo query param exists,
50
+ * we filter the collection slugs to only those that are allowed to be read.
51
+ *
52
+ * If no folderID is provided, only folders should be active and displayed (the root view).
53
+ */
54
+ let collectionsToDisplay = [];
55
+ if (folderID && Array.isArray(query?.relationTo)) {
56
+ collectionsToDisplay = query.relationTo.filter(slug => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug);
57
+ } else if (folderID) {
58
+ collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug];
59
+ } else {
60
+ collectionsToDisplay = [foldersSlug];
61
+ }
62
+ const {
63
+ routes: {
64
+ admin: adminRoute
65
+ }
66
+ } = config;
67
+ /**
68
+ * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.
69
+ * This will ensure that prefs are only updated when explicitly set by the user
70
+ * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie
71
+ */
72
+ const browseByFolderPreferences = await upsertPreferences({
73
+ key: PREFERENCE_KEYS.BROWSE_BY_FOLDER,
74
+ req: initPageResult.req,
75
+ value: {
76
+ sort: query?.sort
77
+ }
78
+ });
79
+ const sortPreference = browseByFolderPreferences?.sort || 'name';
80
+ const viewPreference = browseByFolderPreferences?.viewPreference || 'grid';
81
+ const {
82
+ breadcrumbs,
83
+ documents,
84
+ folderAssignedCollections,
85
+ FolderResultsComponent,
86
+ subfolders
87
+ } = await getFolderResultsComponentAndData({
88
+ browseByFolder: true,
89
+ collectionsToDisplay,
90
+ displayAs: viewPreference,
91
+ folderAssignedCollections: collectionsToDisplay.filter(slug => slug !== foldersSlug) || [],
92
+ folderID,
93
+ req: initPageResult.req,
94
+ sort: sortPreference
95
+ });
96
+ const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
97
+ if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
98
+ redirect(formatAdminURL({
99
+ adminRoute,
100
+ path: config.admin.routes.browseByFolder
101
+ }));
102
+ }
103
+ const serverProps = {
104
+ documents,
105
+ i18n,
106
+ locale: fullLocale,
107
+ params,
108
+ payload,
109
+ permissions,
110
+ searchParams,
111
+ subfolders,
112
+ user
113
+ };
114
+ // const folderViewSlots = renderFolderViewSlots({
115
+ // clientProps: {
116
+ // },
117
+ // description: staticDescription,
118
+ // payload,
119
+ // serverProps,
120
+ // })
121
+ // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to
122
+ const allAvailableCollectionSlugs = folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length ? allowReadCollectionSlugs.filter(slug => folderAssignedCollections.includes(slug)) : allowReadCollectionSlugs;
123
+ // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to
124
+ const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter(slug => {
125
+ if (slug === foldersSlug) {
126
+ return permissions?.collections?.[foldersSlug]?.read;
127
+ } else {
128
+ return !folderAssignedCollections || folderAssignedCollections.includes(slug);
129
+ }
130
+ });
131
+ // Documents cannot be created without a parent folder in this view
132
+ const allowCreateCollectionSlugs = (resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]).filter(collectionSlug => {
133
+ if (collectionSlug === foldersSlug) {
134
+ return permissions?.collections?.[foldersSlug]?.create;
135
+ }
136
+ return permissions?.collections?.[collectionSlug]?.create && visibleEntities.collections.includes(collectionSlug);
137
+ });
138
+ return {
139
+ View: /*#__PURE__*/_jsxs(_Fragment, {
140
+ children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
141
+ permissions: permissions
142
+ }), RenderServerComponent({
143
+ clientProps: {
144
+ // ...folderViewSlots,
145
+ activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,
146
+ allCollectionFolderSlugs: allAvailableCollectionSlugs,
147
+ allowCreateCollectionSlugs,
148
+ baseFolderPath: `/browse-by-folder`,
149
+ breadcrumbs,
150
+ disableBulkDelete,
151
+ disableBulkEdit,
152
+ documents,
153
+ enableRowSelections,
154
+ folderAssignedCollections,
155
+ folderFieldName: config.folders.fieldName,
156
+ folderID: resolvedFolderID || null,
157
+ FolderResultsComponent,
158
+ sort: sortPreference,
159
+ subfolders,
160
+ viewPreference
161
+ },
162
+ // Component:config.folders?.components?.views?.BrowseByFolders?.Component,
163
+ Fallback: DefaultBrowseByFolderView,
164
+ importMap: payload.importMap,
165
+ serverProps
166
+ })]
167
+ })
168
+ };
169
+ };
170
+ //# sourceMappingURL=buildView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","PREFERENCE_KEYS","React","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","browseByFolder","Error","foldersSlug","slug","allowReadCollectionSlugs","filter","collectionSlug","collections","read","includes","relationTo","JSON","parse","undefined","collectionsToDisplay","Array","isArray","routes","admin","adminRoute","browseByFolderPreferences","key","BROWSE_BY_FOLDER","value","sort","sortPreference","viewPreference","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","displayAs","resolvedFolderID","length","id","path","serverProps","allAvailableCollectionSlugs","availableActiveCollectionFolderSlugs","allowCreateCollectionSlugs","create","View","_jsxs","_Fragment","_jsx","clientProps","activeCollectionFolderSlugs","allCollectionFolderSlugs","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { PREFERENCE_KEYS } from 'payload/shared'\nimport React from 'react'\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 if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const foldersSlug = config.folders.slug\n\n /**\n * All visiible folder enabled collection slugs that the user has read permissions for.\n */\n const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n const query =\n queryFromArgs ||\n ((queryFromReq\n ? {\n ...queryFromReq,\n relationTo:\n typeof queryFromReq?.relationTo === 'string'\n ? JSON.parse(queryFromReq.relationTo)\n : undefined,\n }\n : {}) as ListQuery)\n\n /**\n * If a folderID is provided and the relationTo query param exists,\n * we filter the collection slugs to only those that are allowed to be read.\n *\n * If no folderID is provided, only folders should be active and displayed (the root view).\n */\n let collectionsToDisplay: string[] = []\n if (folderID && Array.isArray(query?.relationTo)) {\n collectionsToDisplay = query.relationTo.filter(\n (slug) => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug,\n )\n } else if (folderID) {\n collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug]\n } else {\n collectionsToDisplay = [foldersSlug]\n }\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const browseByFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: PREFERENCE_KEYS.BROWSE_BY_FOLDER,\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = browseByFolderPreferences?.sort || 'name'\n const viewPreference = browseByFolderPreferences?.viewPreference || 'grid'\n\n const { breadcrumbs, documents, folderAssignedCollections, FolderResultsComponent, subfolders } =\n await getFolderResultsComponentAndData({\n browseByFolder: true,\n collectionsToDisplay,\n displayAs: viewPreference,\n folderAssignedCollections: collectionsToDisplay.filter((slug) => slug !== foldersSlug) || [],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\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 }),\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 // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to\n const allAvailableCollectionSlugs =\n folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length\n ? allowReadCollectionSlugs.filter((slug) => folderAssignedCollections.includes(slug))\n : allowReadCollectionSlugs\n\n // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to\n const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter((slug) => {\n if (slug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.read\n } else {\n return !folderAssignedCollections || folderAssignedCollections.includes(slug)\n }\n })\n\n // Documents cannot be created without a parent folder in this view\n const allowCreateCollectionSlugs = (\n resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]\n ).filter((collectionSlug) => {\n if (collectionSlug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.create\n }\n return (\n permissions?.collections?.[collectionSlug]?.create &&\n visibleEntities.collections.includes(collectionSlug)\n )\n })\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,\n allCollectionFolderSlugs: allAvailableCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath: `/browse-by-folder`,\n breadcrumbs,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component:config.folders?.components?.views?.BrowseByFolders?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type React from 'react';
2
+ import type { BuildFolderViewArgs } from './buildView.js';
3
+ export declare const BrowseByFolder: React.FC<BuildFolderViewArgs>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/BrowseByFolder/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAIzD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAcxD,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { notFound } from 'next/navigation.js';
2
+ import { buildBrowseByFolderView } from './buildView.js';
3
+ export const BrowseByFolder = async args => {
4
+ try {
5
+ const {
6
+ View
7
+ } = await buildBrowseByFolderView(args);
8
+ return View;
9
+ } catch (error) {
10
+ if (error?.message === 'NEXT_REDIRECT') {
11
+ throw error;
12
+ }
13
+ if (error.message === 'not-found') {
14
+ notFound();
15
+ } else {
16
+ console.error(error); // eslint-disable-line no-console
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["notFound","buildBrowseByFolderView","BrowseByFolder","args","View","error","message","console"],"sources":["../../../src/views/BrowseByFolder/index.tsx"],"sourcesContent":["import type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport type { BuildFolderViewArgs } from './buildView.js'\n\nimport { buildBrowseByFolderView } from './buildView.js'\n\nexport const BrowseByFolder: React.FC<BuildFolderViewArgs> = async (args) => {\n try {\n const { View } = await buildBrowseByFolderView(args)\n return View\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ;AAIzB,SAASC,uBAAuB,QAAQ;AAExC,OAAO,MAAMC,cAAA,GAAgD,MAAOC,IAAA;EAClE,IAAI;IACF,MAAM;MAAEC;IAAI,CAAE,GAAG,MAAMH,uBAAA,CAAwBE,IAAA;IAC/C,OAAOC,IAAA;EACT,EAAE,OAAOC,KAAA,EAAO;IACd,IAAIA,KAAA,EAAOC,OAAA,KAAY,iBAAiB;MACtC,MAAMD,KAAA;IACR;IACA,IAAIA,KAAA,CAAMC,OAAO,KAAK,aAAa;MACjCN,QAAA;IACF,OAAO;MACLO,OAAA,CAAQF,KAAK,CAACA,KAAA,GAAO;IACvB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { Metadata } from 'next';
2
+ import type { GenerateViewMetadata } from '../Root/index.js';
3
+ export declare const generateBrowseByFolderMetadata: (args: Parameters<GenerateViewMetadata>[0]) => Promise<Metadata>;
4
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/BrowseByFolder/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAEpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAI5D,eAAO,MAAM,8BAA8B,SACnC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACxC,OAAO,CAAC,QAAQ,CAclB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { generateMetadata } from '../../utilities/meta.js';
2
+ export const generateBrowseByFolderMetadata = async args => {
3
+ const {
4
+ config,
5
+ i18n
6
+ } = args;
7
+ const title = i18n.t('folder:browseByFolder');
8
+ const description = '';
9
+ const keywords = '';
10
+ return generateMetadata({
11
+ ...(config.admin.meta || {}),
12
+ description,
13
+ keywords,
14
+ serverURL: config.serverURL,
15
+ title
16
+ });
17
+ };
18
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["generateMetadata","generateBrowseByFolderMetadata","args","config","i18n","title","t","description","keywords","admin","meta","serverURL"],"sources":["../../../src/views/BrowseByFolder/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\nexport const generateBrowseByFolderMetadata = async (\n args: Parameters<GenerateViewMetadata>[0],\n): Promise<Metadata> => {\n const { config, i18n } = args\n\n const title: string = i18n.t('folder:browseByFolder')\n const description: string = ''\n const keywords: string = ''\n\n return generateMetadata({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n })\n}\n"],"mappings":"AAIA,SAASA,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,8BAAA,GAAiC,MAC5CC,IAAA;EAEA,MAAM;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAGF,IAAA;EAEzB,MAAMG,KAAA,GAAgBD,IAAA,CAAKE,CAAC,CAAC;EAC7B,MAAMC,WAAA,GAAsB;EAC5B,MAAMC,QAAA,GAAmB;EAEzB,OAAOR,gBAAA,CAAiB;IACtB,IAAIG,MAAA,CAAOM,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BH,WAAA;IACAC,QAAA;IACAG,SAAA,EAAWR,MAAA,CAAOQ,SAAS;IAC3BN;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import type { AdminViewServerProps, BuildCollectionFolderViewResult, ListQuery } from 'payload';
2
+ export type BuildCollectionFolderViewStateArgs = {
3
+ disableBulkDelete?: boolean;
4
+ disableBulkEdit?: boolean;
5
+ enableRowSelections: boolean;
6
+ folderID?: number | string;
7
+ isInDrawer?: boolean;
8
+ overrideEntityVisibility?: boolean;
9
+ query: ListQuery;
10
+ } & AdminViewServerProps;
11
+ /**
12
+ * Builds the entire view for collection-folder views on the server
13
+ */
14
+ export declare const buildCollectionFolderView: (args: BuildCollectionFolderViewStateArgs) => Promise<BuildCollectionFolderViewResult>;
15
+ //# sourceMappingURL=buildView.d.ts.map
@@ -0,0 +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,EAI/B,SAAS,EACV,MAAM,SAAS,CAAA;AAWhB,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,CAiLzC,CAAA"}
@@ -0,0 +1,156 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui';
3
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
+ import { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc';
5
+ import { formatAdminURL } from '@payloadcms/ui/shared';
6
+ import { redirect } from 'next/navigation.js';
7
+ import React from 'react';
8
+ /**
9
+ * Builds the entire view for collection-folder views on the server
10
+ */
11
+ export const buildCollectionFolderView = async args => {
12
+ const {
13
+ disableBulkDelete,
14
+ disableBulkEdit,
15
+ enableRowSelections,
16
+ folderID,
17
+ initPageResult,
18
+ isInDrawer,
19
+ overrideEntityVisibility,
20
+ params,
21
+ query: queryFromArgs,
22
+ searchParams
23
+ } = args;
24
+ const {
25
+ collectionConfig,
26
+ collectionConfig: {
27
+ slug: collectionSlug
28
+ },
29
+ locale: fullLocale,
30
+ permissions,
31
+ req: {
32
+ i18n,
33
+ payload,
34
+ payload: {
35
+ config
36
+ },
37
+ query: queryFromReq,
38
+ user
39
+ },
40
+ visibleEntities
41
+ } = initPageResult;
42
+ if (!config.folders) {
43
+ throw new Error('not-found');
44
+ }
45
+ if (!permissions?.collections?.[collectionSlug]?.read || !permissions?.collections?.[config.folders.slug].read) {
46
+ throw new Error('not-found');
47
+ }
48
+ if (collectionConfig) {
49
+ if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility || !config.folders) {
50
+ throw new Error('not-found');
51
+ }
52
+ const query = queryFromArgs || queryFromReq;
53
+ /**
54
+ * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.
55
+ * This will ensure that prefs are only updated when explicitly set by the user
56
+ * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie
57
+ */
58
+ const collectionFolderPreferences = await upsertPreferences({
59
+ key: `${collectionSlug}-collection-folder`,
60
+ req: initPageResult.req,
61
+ value: {
62
+ sort: query?.sort
63
+ }
64
+ });
65
+ const sortPreference = collectionFolderPreferences?.sort || 'name';
66
+ const viewPreference = collectionFolderPreferences?.viewPreference || 'grid';
67
+ const {
68
+ routes: {
69
+ admin: adminRoute
70
+ }
71
+ } = config;
72
+ const {
73
+ breadcrumbs,
74
+ documents,
75
+ folderAssignedCollections,
76
+ FolderResultsComponent,
77
+ subfolders
78
+ } = await getFolderResultsComponentAndData({
79
+ browseByFolder: false,
80
+ collectionsToDisplay: [config.folders.slug, collectionSlug],
81
+ displayAs: viewPreference,
82
+ folderAssignedCollections: [collectionSlug],
83
+ folderID,
84
+ req: initPageResult.req,
85
+ sort: sortPreference
86
+ });
87
+ const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
88
+ if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
89
+ redirect(formatAdminURL({
90
+ adminRoute,
91
+ path: `/collections/${collectionSlug}/${config.folders.slug}`
92
+ }));
93
+ }
94
+ const serverProps = {
95
+ collectionConfig,
96
+ documents,
97
+ i18n,
98
+ locale: fullLocale,
99
+ params,
100
+ payload,
101
+ permissions,
102
+ searchParams,
103
+ subfolders,
104
+ user
105
+ };
106
+ // We could support slots in the folder view in the future
107
+ // const folderViewSlots = renderFolderViewSlots({
108
+ // clientProps: {
109
+ // collectionSlug,
110
+ // hasCreatePermission,
111
+ // newDocumentURL,
112
+ // },
113
+ // collectionConfig,
114
+ // description: typeof collectionConfig.admin.description === 'function'
115
+ // ? collectionConfig.admin.description({ t: i18n.t })
116
+ // : collectionConfig.admin.description,
117
+ // payload,
118
+ // serverProps,
119
+ // })
120
+ const search = query?.search;
121
+ return {
122
+ View: /*#__PURE__*/_jsxs(_Fragment, {
123
+ children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
124
+ permissions: permissions
125
+ }), RenderServerComponent({
126
+ clientProps: {
127
+ // ...folderViewSlots,
128
+ allCollectionFolderSlugs: [config.folders.slug, collectionSlug],
129
+ allowCreateCollectionSlugs: [permissions?.collections?.[config.folders.slug]?.create ? config.folders.slug : null, resolvedFolderID && permissions?.collections?.[collectionSlug]?.create ? collectionSlug : null].filter(Boolean),
130
+ baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,
131
+ breadcrumbs,
132
+ collectionSlug,
133
+ disableBulkDelete,
134
+ disableBulkEdit,
135
+ documents,
136
+ enableRowSelections,
137
+ folderAssignedCollections,
138
+ folderFieldName: config.folders.fieldName,
139
+ folderID: resolvedFolderID || null,
140
+ FolderResultsComponent,
141
+ search,
142
+ sort: sortPreference,
143
+ subfolders,
144
+ viewPreference
145
+ },
146
+ // Component: collectionConfig?.admin?.components?.views?.Folders?.Component,
147
+ Fallback: DefaultCollectionFolderView,
148
+ importMap: payload.importMap,
149
+ serverProps
150
+ })]
151
+ })
152
+ };
153
+ }
154
+ throw new Error('not-found');
155
+ };
156
+ //# sourceMappingURL=buildView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","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","folders","Error","collections","read","includes","collectionFolderPreferences","key","value","sort","sortPreference","viewPreference","routes","admin","adminRoute","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","browseByFolder","collectionsToDisplay","displayAs","resolvedFolderID","length","id","path","serverProps","search","View","_jsxs","_Fragment","_jsx","clientProps","allCollectionFolderSlugs","allowCreateCollectionSlugs","create","filter","Boolean","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\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 (!config.folders) {\n throw new Error('not-found')\n }\n\n if (\n !permissions?.collections?.[collectionSlug]?.read ||\n !permissions?.collections?.[config.folders.slug].read\n ) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const collectionFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: `${collectionSlug}-collection-folder`,\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = collectionFolderPreferences?.sort || 'name'\n const viewPreference = collectionFolderPreferences?.viewPreference || 'grid'\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const {\n breadcrumbs,\n documents,\n folderAssignedCollections,\n FolderResultsComponent,\n subfolders,\n } = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [config.folders.slug, collectionSlug],\n displayAs: viewPreference,\n folderAssignedCollections: [collectionSlug],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\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 }),\n )\n }\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 <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n allCollectionFolderSlugs: [config.folders.slug, collectionSlug],\n allowCreateCollectionSlugs: [\n permissions?.collections?.[config.folders.slug]?.create\n ? config.folders.slug\n : null,\n resolvedFolderID && permissions?.collections?.[collectionSlug]?.create\n ? collectionSlug\n : null,\n ].filter(Boolean),\n baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,\n breadcrumbs,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n search,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component: collectionConfig?.admin?.components?.views?.Folders?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type React from 'react';
2
+ import type { BuildCollectionFolderViewStateArgs } from './buildView.js';
3
+ export declare const CollectionFolderView: React.FC<BuildCollectionFolderViewStateArgs>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAA;AAIxE,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,kCAAkC,CAc7E,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { notFound } from 'next/navigation.js';
2
+ import { buildCollectionFolderView } from './buildView.js';
3
+ export const CollectionFolderView = async args => {
4
+ try {
5
+ const {
6
+ View
7
+ } = await buildCollectionFolderView(args);
8
+ return View;
9
+ } catch (error) {
10
+ if (error?.message === 'NEXT_REDIRECT') {
11
+ throw error;
12
+ }
13
+ if (error.message === 'not-found') {
14
+ notFound();
15
+ } else {
16
+ console.error(error); // eslint-disable-line no-console
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["notFound","buildCollectionFolderView","CollectionFolderView","args","View","error","message","console"],"sources":["../../../src/views/CollectionFolders/index.tsx"],"sourcesContent":["import type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport type { BuildCollectionFolderViewStateArgs } from './buildView.js'\n\nimport { buildCollectionFolderView } from './buildView.js'\n\nexport const CollectionFolderView: React.FC<BuildCollectionFolderViewStateArgs> = async (args) => {\n try {\n const { View } = await buildCollectionFolderView(args)\n return View\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ;AAIzB,SAASC,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,oBAAA,GAAqE,MAAOC,IAAA;EACvF,IAAI;IACF,MAAM;MAAEC;IAAI,CAAE,GAAG,MAAMH,yBAAA,CAA0BE,IAAA;IACjD,OAAOC,IAAA;EACT,EAAE,OAAOC,KAAA,EAAO;IACd,IAAIA,KAAA,EAAOC,OAAA,KAAY,iBAAiB;MACtC,MAAMD,KAAA;IACR;IACA,IAAIA,KAAA,CAAMC,OAAO,KAAK,aAAa;MACjCN,QAAA;IACF,OAAO;MACLO,OAAA,CAAQF,KAAK,CAACA,KAAA,GAAO;IACvB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { Metadata } from 'next';
2
+ import type { SanitizedCollectionConfig } from 'payload';
3
+ import type { GenerateViewMetadata } from '../Root/index.js';
4
+ export declare const generateCollectionFolderMetadata: (args: {
5
+ collectionConfig: SanitizedCollectionConfig;
6
+ } & Parameters<GenerateViewMetadata>[0]) => Promise<Metadata>;
7
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAI5D,eAAO,MAAM,gCAAgC,SACrC;IACJ,gBAAgB,EAAE,yBAAyB,CAAA;CAC5C,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,QAAQ,CAqBlB,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { getTranslation } from '@payloadcms/translations';
2
+ import { generateMetadata } from '../../utilities/meta.js';
3
+ export const generateCollectionFolderMetadata = async args => {
4
+ const {
5
+ collectionConfig,
6
+ config,
7
+ i18n
8
+ } = args;
9
+ let title = '';
10
+ const description = '';
11
+ const keywords = '';
12
+ if (collectionConfig) {
13
+ title = getTranslation(collectionConfig.labels.singular, i18n);
14
+ }
15
+ title = `${title ? `${title} ` : title}${i18n.t('folder:folders')}`;
16
+ return generateMetadata({
17
+ ...(config.admin.meta || {}),
18
+ description,
19
+ keywords,
20
+ serverURL: config.serverURL,
21
+ title,
22
+ ...(collectionConfig?.admin?.meta || {})
23
+ });
24
+ };
25
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["getTranslation","generateMetadata","generateCollectionFolderMetadata","args","collectionConfig","config","i18n","title","description","keywords","labels","singular","t","admin","meta","serverURL"],"sources":["../../../src/views/CollectionFolders/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\nexport const generateCollectionFolderMetadata = async (\n args: {\n collectionConfig: SanitizedCollectionConfig\n } & Parameters<GenerateViewMetadata>[0],\n): Promise<Metadata> => {\n const { collectionConfig, config, i18n } = args\n\n let title: string = ''\n const description: string = ''\n const keywords: string = ''\n\n if (collectionConfig) {\n title = getTranslation(collectionConfig.labels.singular, i18n)\n }\n\n title = `${title ? `${title} ` : title}${i18n.t('folder:folders')}`\n\n return generateMetadata({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n ...(collectionConfig?.admin?.meta || {}),\n })\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAI/B,SAASC,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,gCAAA,GAAmC,MAC9CC,IAAA;EAIA,MAAM;IAAEC,gBAAgB;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAGH,IAAA;EAE3C,IAAII,KAAA,GAAgB;EACpB,MAAMC,WAAA,GAAsB;EAC5B,MAAMC,QAAA,GAAmB;EAEzB,IAAIL,gBAAA,EAAkB;IACpBG,KAAA,GAAQP,cAAA,CAAeI,gBAAA,CAAiBM,MAAM,CAACC,QAAQ,EAAEL,IAAA;EAC3D;EAEAC,KAAA,GAAQ,GAAGA,KAAA,GAAQ,GAAGA,KAAA,GAAQ,GAAGA,KAAA,GAAQD,IAAA,CAAKM,CAAC,CAAC,mBAAmB;EAEnE,OAAOX,gBAAA,CAAiB;IACtB,IAAII,MAAA,CAAOQ,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BN,WAAA;IACAC,QAAA;IACAM,SAAA,EAAWV,MAAA,CAAOU,SAAS;IAC3BR,KAAA;IACA,IAAIH,gBAAA,EAAkBS,KAAA,EAAOC,IAAA,IAAQ,CAAC,CAAC;EACzC;AACF","ignoreList":[]}