@payloadcms/next 3.39.0-internal.32c7661 → 3.39.0-internal.aa8a290

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 (82) hide show
  1. package/dist/cjs/withPayload.cjs +2 -2
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +0 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +23 -36
  6. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +0 -1
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +10 -69
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +1 -0
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +2 -2
  14. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.scss +9 -0
  16. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  17. package/dist/elements/Nav/index.client.js +60 -28
  18. package/dist/elements/Nav/index.client.js.map +1 -1
  19. package/dist/prod/styles.css +1 -1
  20. package/dist/views/BrowseByFolder/buildView.d.ts +13 -0
  21. package/dist/views/BrowseByFolder/buildView.d.ts.map +1 -0
  22. package/dist/views/BrowseByFolder/buildView.js +114 -0
  23. package/dist/views/BrowseByFolder/buildView.js.map +1 -0
  24. package/dist/views/BrowseByFolder/index.d.ts +4 -0
  25. package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
  26. package/dist/views/BrowseByFolder/index.js +18 -0
  27. package/dist/views/BrowseByFolder/index.js.map +1 -0
  28. package/dist/views/BrowseByFolder/metadata.d.ts +4 -0
  29. package/dist/views/BrowseByFolder/metadata.d.ts.map +1 -0
  30. package/dist/views/BrowseByFolder/metadata.js +18 -0
  31. package/dist/views/BrowseByFolder/metadata.js.map +1 -0
  32. package/dist/views/CollectionFolders/buildView.d.ts +15 -0
  33. package/dist/views/CollectionFolders/buildView.d.ts.map +1 -0
  34. package/dist/views/CollectionFolders/buildView.js +163 -0
  35. package/dist/views/CollectionFolders/buildView.js.map +1 -0
  36. package/dist/views/CollectionFolders/index.d.ts +4 -0
  37. package/dist/views/CollectionFolders/index.d.ts.map +1 -0
  38. package/dist/views/CollectionFolders/index.js +18 -0
  39. package/dist/views/CollectionFolders/index.js.map +1 -0
  40. package/dist/views/CollectionFolders/metadata.d.ts +7 -0
  41. package/dist/views/CollectionFolders/metadata.d.ts.map +1 -0
  42. package/dist/views/CollectionFolders/metadata.js +25 -0
  43. package/dist/views/CollectionFolders/metadata.js.map +1 -0
  44. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +11 -0
  45. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +1 -0
  46. package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
  47. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
  48. package/dist/views/Document/index.d.ts +6 -0
  49. package/dist/views/Document/index.d.ts.map +1 -1
  50. package/dist/views/Document/index.js +6 -3
  51. package/dist/views/Document/index.js.map +1 -1
  52. package/dist/views/List/index.d.ts +6 -0
  53. package/dist/views/List/index.d.ts.map +1 -1
  54. package/dist/views/List/index.js +6 -0
  55. package/dist/views/List/index.js.map +1 -1
  56. package/dist/views/Root/getCustomViewByRoute.d.ts +1 -1
  57. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  58. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  59. package/dist/views/Root/{getViewFromConfig.d.ts → getRouteData.d.ts} +7 -5
  60. package/dist/views/Root/getRouteData.d.ts.map +1 -0
  61. package/dist/views/Root/{getViewFromConfig.js → getRouteData.js} +66 -24
  62. package/dist/views/Root/getRouteData.js.map +1 -0
  63. package/dist/views/Root/index.d.ts +1 -1
  64. package/dist/views/Root/index.d.ts.map +1 -1
  65. package/dist/views/Root/index.js +20 -5
  66. package/dist/views/Root/index.js.map +1 -1
  67. package/dist/views/Root/metadata.d.ts.map +1 -1
  68. package/dist/views/Root/metadata.js +61 -24
  69. package/dist/views/Root/metadata.js.map +1 -1
  70. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  71. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +23 -11
  72. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  73. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  74. package/dist/views/Versions/cells/AutosaveCell/index.js +2 -0
  75. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  76. package/dist/withPayload.d.ts +1 -3
  77. package/dist/withPayload.d.ts.map +1 -1
  78. package/dist/withPayload.js +2 -2
  79. package/dist/withPayload.js.map +1 -1
  80. package/package.json +7 -7
  81. package/dist/views/Root/getViewFromConfig.d.ts.map +0 -1
  82. package/dist/views/Root/getViewFromConfig.js.map +0 -1
@@ -2,12 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
3
3
  import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
4
4
  import { notFound, redirect } from 'next/navigation.js';
5
+ import { parseDocumentID } from 'payload';
5
6
  import { formatAdminURL } from 'payload/shared';
6
- import React, { Fragment } from 'react';
7
+ import React from 'react';
7
8
  import { DefaultTemplate } from '../../templates/Default/index.js';
8
9
  import { MinimalTemplate } from '../../templates/Minimal/index.js';
9
10
  import { initPage } from '../../utilities/initPage/index.js';
10
- import { getViewFromConfig } from './getViewFromConfig.js';
11
+ import { getRouteData } from './getRouteData.js';
11
12
  export const RootPage = async ({
12
13
  config: configPromise,
13
14
  importMap,
@@ -36,12 +37,14 @@ export const RootPage = async ({
36
37
  const {
37
38
  DefaultView,
38
39
  documentSubViewType,
40
+ folderCollectionSlugs,
41
+ folderID: folderIDParam,
39
42
  initPageOptions,
40
43
  serverProps,
41
44
  templateClassName,
42
45
  templateType,
43
46
  viewType
44
- } = getViewFromConfig({
47
+ } = getRouteData({
45
48
  adminRoute,
46
49
  config,
47
50
  currentRoute,
@@ -54,6 +57,10 @@ export const RootPage = async ({
54
57
  collection: userSlug,
55
58
  req: initPageResult?.req
56
59
  })?.then(doc => !!doc));
60
+ /**
61
+ * This function is responsible for handling the case where the view is not found.
62
+ * The current route did not match any default views or custom route views.
63
+ */
57
64
  if (!DefaultView?.Component && !DefaultView?.payloadComponent) {
58
65
  if (initPageResult?.req?.user) {
59
66
  notFound();
@@ -92,10 +99,17 @@ export const RootPage = async ({
92
99
  i18n: initPageResult?.req.i18n,
93
100
  importMap
94
101
  });
102
+ const payload = initPageResult?.req.payload;
103
+ const folderID = parseDocumentID({
104
+ id: folderIDParam,
105
+ collectionSlug: payload.config.folders.slug,
106
+ payload
107
+ });
95
108
  const RenderedView = RenderServerComponent({
96
109
  clientProps: {
97
110
  clientConfig,
98
111
  documentSubViewType,
112
+ folderCollectionSlugs,
99
113
  viewType
100
114
  },
101
115
  Component: DefaultView.payloadComponent,
@@ -105,6 +119,7 @@ export const RootPage = async ({
105
119
  ...serverProps,
106
120
  clientConfig,
107
121
  docID: initPageResult?.docID,
122
+ folderID,
108
123
  i18n: initPageResult?.req.i18n,
109
124
  importMap,
110
125
  initPageResult,
@@ -113,8 +128,8 @@ export const RootPage = async ({
113
128
  searchParams
114
129
  }
115
130
  });
116
- return /*#__PURE__*/_jsxs(Fragment, {
117
- children: [!templateType && /*#__PURE__*/_jsx(Fragment, {
131
+ return /*#__PURE__*/_jsxs(React.Fragment, {
132
+ children: [!templateType && /*#__PURE__*/_jsx(React.Fragment, {
118
133
  children: RenderedView
119
134
  }), templateType === 'minimal' && /*#__PURE__*/_jsx(MinimalTemplate, {
120
135
  className: templateClassName,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RenderServerComponent","getClientConfig","notFound","redirect","formatAdminURL","React","Fragment","DefaultTemplate","MinimalTemplate","initPage","getViewFromConfig","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","documentSubViewType","initPageOptions","serverProps","templateClassName","templateType","viewType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","RenderedView","clientProps","Fallback","docID","_jsxs","_jsx","className","collectionSlug","globalSlug","globalConfig","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type {\n AdminViewClientProps,\n AdminViewServerPropsOnly,\n ImportMap,\n SanitizedConfig,\n} from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getViewFromConfig } from './getViewFromConfig.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n documentSubViewType,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n } = getViewFromConfig({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: { clientConfig, documentSubViewType, viewType } satisfies AdminViewClientProps,\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n } satisfies AdminViewServerPropsOnly,\n })\n\n return (\n <Fragment>\n {!templateType && <Fragment>{RenderedView}</Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n documentSubViewType={documentSubViewType}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n req={initPageResult?.req}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","getClientConfig","notFound","redirect","parseDocumentID","formatAdminURL","React","DefaultTemplate","MinimalTemplate","initPage","getRouteData","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","documentSubViewType","folderCollectionSlugs","folderID","folderIDParam","initPageOptions","serverProps","templateClassName","templateType","viewType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","id","collectionSlug","folders","RenderedView","clientProps","Fallback","docID","_jsxs","Fragment","_jsx","className","globalSlug","globalConfig","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport {\n type AdminViewClientProps,\n type AdminViewServerPropsOnly,\n type ImportMap,\n parseDocumentID,\n type SanitizedConfig,\n} from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getRouteData } from './getRouteData.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n documentSubViewType,\n folderCollectionSlugs,\n folderID: folderIDParam,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n } = getRouteData({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n /**\n * This function is responsible for handling the case where the view is not found.\n * The current route did not match any default views or custom route views.\n */\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const payload = initPageResult?.req.payload\n const folderID = parseDocumentID({\n id: folderIDParam,\n collectionSlug: payload.config.folders.slug,\n payload,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: {\n clientConfig,\n documentSubViewType,\n folderCollectionSlugs,\n viewType,\n } satisfies AdminViewClientProps,\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n folderID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n } satisfies AdminViewServerPropsOnly,\n })\n\n return (\n <React.Fragment>\n {!templateType && <React.Fragment>{RenderedView}</React.Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n documentSubViewType={documentSubViewType}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n req={initPageResult?.req}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/Root/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA0B9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE,OAAO,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,CAAA;AAED,eAAO,MAAM,oBAAoB,sDAG9B,IAAI,sBAsHN,CAAA"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/views/Root/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA6B9C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE,OAAO,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,CAAA;AAED,eAAO,MAAM,oBAAoB,sDAG9B,IAAI,sBAkJN,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js';
2
2
  import { generateAccountViewMetadata } from '../Account/metadata.js';
3
+ import { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js';
4
+ import { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js';
3
5
  import { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js';
4
6
  import { generateDashboardViewMetadata } from '../Dashboard/metadata.js';
5
7
  import { generateDocumentViewMetadata } from '../Document/metadata.js';
@@ -14,6 +16,7 @@ import { generateCustomViewMetadata } from './generateCustomViewMetadata.js';
14
16
  import { getCustomViewByRoute } from './getCustomViewByRoute.js';
15
17
  const oneSegmentMeta = {
16
18
  'create-first-user': generateCreateFirstUserViewMetadata,
19
+ folders: generateBrowseByFolderMetadata,
17
20
  forgot: generateForgotPasswordViewMetadata,
18
21
  login: generateLoginViewMetadata,
19
22
  logout: generateUnauthorizedViewMetadata,
@@ -26,9 +29,18 @@ export const generatePageMetadata = async ({
26
29
  }) => {
27
30
  const config = await configPromise;
28
31
  const params = await paramsPromise;
32
+ const folderCollectionSlugs = config.collections.reduce((acc, {
33
+ slug,
34
+ admin
35
+ }) => {
36
+ if (admin?.folders) {
37
+ return [...acc, slug];
38
+ }
39
+ return acc;
40
+ }, []);
29
41
  const segments = Array.isArray(params.segments) ? params.segments : [];
30
42
  const currentRoute = `/${segments.join('/')}`;
31
- const [segmentOne, segmentTwo] = segments;
43
+ const [segmentOne, segmentTwo, segmentThree] = segments;
32
44
  const isGlobal = segmentOne === 'globals';
33
45
  const isCollection = segmentOne === 'collections';
34
46
  const i18n = await getNextRequestI18n({
@@ -49,7 +61,20 @@ export const generatePageMetadata = async ({
49
61
  }
50
62
  case 1:
51
63
  {
52
- if (oneSegmentMeta[segmentOne] && segmentOne !== 'account') {
64
+ if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {
65
+ // --> /:folderCollectionSlug
66
+ meta = await oneSegmentMeta.folders({
67
+ config,
68
+ i18n
69
+ });
70
+ } else if (segmentOne === 'account') {
71
+ // --> /account
72
+ meta = await generateAccountViewMetadata({
73
+ config,
74
+ i18n
75
+ });
76
+ break;
77
+ } else if (oneSegmentMeta[segmentOne]) {
53
78
  // --> /create-first-user
54
79
  // --> /forgot
55
80
  // --> /login
@@ -61,13 +86,6 @@ export const generatePageMetadata = async ({
61
86
  i18n
62
87
  });
63
88
  break;
64
- } else if (segmentOne === 'account') {
65
- // --> /account
66
- meta = await generateAccountViewMetadata({
67
- config,
68
- i18n
69
- });
70
- break;
71
89
  }
72
90
  break;
73
91
  }
@@ -79,8 +97,13 @@ export const generatePageMetadata = async ({
79
97
  config,
80
98
  i18n
81
99
  });
82
- }
83
- if (isCollection) {
100
+ } else if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {
101
+ // --> /browse-by-folder/:folderID
102
+ meta = await generateBrowseByFolderMetadata({
103
+ config,
104
+ i18n
105
+ });
106
+ } else if (isCollection) {
84
107
  // --> /collections/:collectionSlug
85
108
  meta = await generateListViewMetadata({
86
109
  collectionConfig,
@@ -107,20 +130,34 @@ export const generatePageMetadata = async ({
107
130
  i18n
108
131
  });
109
132
  } else if (isCollection) {
110
- // Custom Views
111
- // --> /collections/:collectionSlug/:id
112
- // --> /collections/:collectionSlug/:id/preview
113
- // --> /collections/:collectionSlug/:id/versions
114
- // --> /collections/:collectionSlug/:id/versions/:version
115
- // --> /collections/:collectionSlug/:id/api
116
- meta = await generateDocumentViewMetadata({
117
- collectionConfig,
118
- config,
119
- i18n,
120
- params
121
- });
133
+ if (segmentThree === config.folders.slug) {
134
+ if (folderCollectionSlugs.includes(collectionConfig.slug)) {
135
+ // Collection Folder Views
136
+ // --> /collections/:collectionSlug/:folderCollectionSlug
137
+ // --> /collections/:collectionSlug/:folderCollectionSlug/:id
138
+ meta = await generateCollectionFolderMetadata({
139
+ collectionConfig,
140
+ config,
141
+ i18n,
142
+ params
143
+ });
144
+ }
145
+ } else {
146
+ // Collection Document Views
147
+ // --> /collections/:collectionSlug/:id
148
+ // --> /collections/:collectionSlug/:id/preview
149
+ // --> /collections/:collectionSlug/:id/versions
150
+ // --> /collections/:collectionSlug/:id/versions/:version
151
+ // --> /collections/:collectionSlug/:id/api
152
+ meta = await generateDocumentViewMetadata({
153
+ collectionConfig,
154
+ config,
155
+ i18n,
156
+ params
157
+ });
158
+ }
122
159
  } else if (isGlobal) {
123
- // Custom Views
160
+ // Global Document Views
124
161
  // --> /globals/:globalSlug/versions
125
162
  // --> /globals/:globalSlug/versions/:version
126
163
  // --> /globals/:globalSlug/preview
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","names":["getNextRequestI18n","generateAccountViewMetadata","generateCreateFirstUserViewMetadata","generateDashboardViewMetadata","generateDocumentViewMetadata","generateForgotPasswordViewMetadata","generateListViewMetadata","generateLoginViewMetadata","generateNotFoundViewMetadata","generateResetPasswordViewMetadata","generateUnauthorizedViewMetadata","generateVerifyViewMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","paramsPromise","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","isGlobal","isCollection","i18n","meta","collectionConfig","length","collections","find","collection","slug","globalConfig","globals","global","admin","routes","reset","viewConfig","viewKey"],"sources":["../../../src/views/Root/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountViewMetadata } from '../Account/metadata.js'\nimport { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js'\nimport { generateDashboardViewMetadata } from '../Dashboard/metadata.js'\nimport { generateDocumentViewMetadata } from '../Document/metadata.js'\nimport { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js'\nimport { generateListViewMetadata } from '../List/metadata.js'\nimport { generateLoginViewMetadata } from '../Login/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js'\nimport { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js'\nimport { generateVerifyViewMetadata } from '../Verify/metadata.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserViewMetadata,\n forgot: generateForgotPasswordViewMetadata,\n login: generateLoginViewMetadata,\n logout: generateUnauthorizedViewMetadata,\n 'logout-inactivity': generateUnauthorizedViewMetadata,\n unauthorized: generateUnauthorizedViewMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: Promise<{\n [key: string]: string | string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n params: paramsPromise,\n}: Args) => {\n const config = await configPromise\n\n const params = await paramsPromise\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardViewMetadata({ config, i18n })\n break\n }\n case 1: {\n if (oneSegmentMeta[segmentOne] && segmentOne !== 'account') {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountViewMetadata({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n meta = await generateResetPasswordViewMetadata({ config, i18n })\n }\n if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListViewMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyViewMetadata({ config, i18n })\n } else if (isCollection) {\n // Custom Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentViewMetadata({ collectionConfig, config, i18n, params })\n } else if (isGlobal) {\n // Custom Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundViewMetadata({ config, i18n })\n }\n }\n\n return meta\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"metadata.js","names":["getNextRequestI18n","generateAccountViewMetadata","generateBrowseByFolderMetadata","generateCollectionFolderMetadata","generateCreateFirstUserViewMetadata","generateDashboardViewMetadata","generateDocumentViewMetadata","generateForgotPasswordViewMetadata","generateListViewMetadata","generateLoginViewMetadata","generateNotFoundViewMetadata","generateResetPasswordViewMetadata","generateUnauthorizedViewMetadata","generateVerifyViewMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","folders","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","paramsPromise","folderCollectionSlugs","collections","reduce","acc","slug","admin","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","segmentThree","isGlobal","isCollection","i18n","meta","collectionConfig","length","find","collection","globalConfig","globals","global","routes","browseByFolder","reset","includes","viewConfig","viewKey"],"sources":["../../../src/views/Root/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountViewMetadata } from '../Account/metadata.js'\nimport { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js'\nimport { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js'\nimport { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js'\nimport { generateDashboardViewMetadata } from '../Dashboard/metadata.js'\nimport { generateDocumentViewMetadata } from '../Document/metadata.js'\nimport { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js'\nimport { generateListViewMetadata } from '../List/metadata.js'\nimport { generateLoginViewMetadata } from '../Login/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js'\nimport { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js'\nimport { generateVerifyViewMetadata } from '../Verify/metadata.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserViewMetadata,\n folders: generateBrowseByFolderMetadata,\n forgot: generateForgotPasswordViewMetadata,\n login: generateLoginViewMetadata,\n logout: generateUnauthorizedViewMetadata,\n 'logout-inactivity': generateUnauthorizedViewMetadata,\n unauthorized: generateUnauthorizedViewMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: Promise<{\n [key: string]: string | string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n params: paramsPromise,\n}: Args) => {\n const config = await configPromise\n const params = await paramsPromise\n\n const folderCollectionSlugs = config.collections.reduce((acc, { slug, admin }) => {\n if (admin?.folders) {\n return [...acc, slug]\n }\n return acc\n }, [])\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo, segmentThree] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardViewMetadata({ config, i18n })\n break\n }\n case 1: {\n if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {\n // --> /:folderCollectionSlug\n meta = await oneSegmentMeta.folders({ config, i18n })\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountViewMetadata({ config, i18n })\n break\n } else if (oneSegmentMeta[segmentOne]) {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n meta = await generateResetPasswordViewMetadata({ config, i18n })\n } else if (\n folderCollectionSlugs.length &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n meta = await generateBrowseByFolderMetadata({ config, i18n })\n } else if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListViewMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyViewMetadata({ config, i18n })\n } else if (isCollection) {\n if (segmentThree === config.folders.slug) {\n if (folderCollectionSlugs.includes(collectionConfig.slug)) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:id\n meta = await generateCollectionFolderMetadata({\n collectionConfig,\n config,\n i18n,\n params,\n })\n }\n } else {\n // Collection Document Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentViewMetadata({ collectionConfig, config, i18n, params })\n }\n } else if (isGlobal) {\n // Global Document Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundViewMetadata({ config, i18n })\n }\n }\n\n return meta\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,GACR,EAAE,IAAI,UAwKN;AAED,KAAK,4BAA4B,GAAG;IAClC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,cAAmB,EACnB,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,WAAgB,GACjB,EAAE,4BAA4B,UA6B9B"}
1
+ {"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,GACR,EAAE,IAAI,UAoLN;AAED,KAAK,4BAA4B,GAAG;IAClC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,cAAmB,EACnB,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,WAAgB,GACjB,EAAE,4BAA4B,UA6B9B"}
@@ -1,4 +1,4 @@
1
- import { fieldShouldBeLocalized } from 'payload/shared';
1
+ import { fieldShouldBeLocalized, groupHasName } from 'payload/shared';
2
2
  import { fieldHasChanges } from './fieldHasChanges.js';
3
3
  import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
4
4
  /**
@@ -105,28 +105,40 @@ export function countChangedFields({
105
105
  // Fields that have nested fields and nest their fields' data.
106
106
  case 'group':
107
107
  {
108
- if (locales && fieldShouldBeLocalized({
109
- field,
110
- parentIsLocalized
111
- })) {
112
- locales.forEach(locale => {
108
+ if (groupHasName(field)) {
109
+ if (locales && fieldShouldBeLocalized({
110
+ field,
111
+ parentIsLocalized
112
+ })) {
113
+ locales.forEach(locale => {
114
+ count += countChangedFields({
115
+ comparison: comparison?.[field.name]?.[locale],
116
+ config,
117
+ fields: field.fields,
118
+ locales,
119
+ parentIsLocalized: parentIsLocalized || field.localized,
120
+ version: version?.[field.name]?.[locale]
121
+ });
122
+ });
123
+ } else {
113
124
  count += countChangedFields({
114
- comparison: comparison?.[field.name]?.[locale],
125
+ comparison: comparison?.[field.name],
115
126
  config,
116
127
  fields: field.fields,
117
128
  locales,
118
129
  parentIsLocalized: parentIsLocalized || field.localized,
119
- version: version?.[field.name]?.[locale]
130
+ version: version?.[field.name]
120
131
  });
121
- });
132
+ }
122
133
  } else {
134
+ // Unnamed group field: data is NOT nested under `field.name`
123
135
  count += countChangedFields({
124
- comparison: comparison?.[field.name],
136
+ comparison,
125
137
  config,
126
138
  fields: field.fields,
127
139
  locales,
128
140
  parentIsLocalized: parentIsLocalized || field.localized,
129
- version: version?.[field.name]
141
+ version
130
142
  });
131
143
  }
132
144
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","groupHasName","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized, groupHasName } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (groupHasName(field)) {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n } else {\n // Unnamed group field: data is NOT nested under `field.name`\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,UAAU,6GAWtB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkDpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,UAAU,6GAatB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkDpD,CAAA"}
@@ -8,8 +8,10 @@ export const renderPill = (data, latestVersion, currentLabel, previousLabel, pil
8
8
  return /*#__PURE__*/_jsxs(React.Fragment, {
9
9
  children: [data?.id === latestVersion ? /*#__PURE__*/_jsx(Pill, {
10
10
  pillStyle: pillStyle,
11
+ size: "small",
11
12
  children: currentLabel
12
13
  }) : /*#__PURE__*/_jsx(Pill, {
14
+ size: "small",
13
15
  children: previousLabel
14
16
  }), "  "]
15
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Pill","useConfig","useTranslation","React","Fragment","renderPill","data","latestVersion","currentLabel","previousLabel","pillStyle","_jsxs","id","_jsx","AutosaveCell","t0","$","latestDraftVersion","latestPublishedVersion","rowData","t1","t2","undefined","autosave","publishedLocale","version","i18n","t","config","t3","localization","status","_status","t4","language","publishedLocalePill","versionInfo","draft","published","locales","localeCode","Array","isArray","t5","loc","code","locale","find","formattedLabel","label","children"],"sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"sourcesContent":["'use client'\nimport { Pill, useConfig, useTranslation } from '@payloadcms/ui'\nimport React, { Fragment } from 'react'\n\ntype AutosaveCellProps = {\n latestDraftVersion?: string\n latestPublishedVersion?: string\n rowData?: {\n autosave?: boolean\n publishedLocale?: string\n version: {\n _status?: string\n }\n }\n}\n\nexport const renderPill = (data, latestVersion, currentLabel, previousLabel, pillStyle) => {\n return (\n <React.Fragment>\n {data?.id === latestVersion ? (\n <Pill pillStyle={pillStyle}>{currentLabel}</Pill>\n ) : (\n <Pill>{previousLabel}</Pill>\n )}\n &nbsp;&nbsp;\n </React.Fragment>\n )\n}\n\nexport const AutosaveCell: React.FC<AutosaveCellProps> = ({\n latestDraftVersion,\n latestPublishedVersion,\n rowData = { autosave: undefined, publishedLocale: undefined, version: undefined },\n}) => {\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const publishedLocale = rowData?.publishedLocale || undefined\n const status = rowData?.version._status\n let publishedLocalePill = null\n\n const versionInfo = {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersion,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentPublishedVersion'),\n latestVersion: latestPublishedVersion,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n\n const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {}\n\n if (localization && localization?.locales && publishedLocale) {\n const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale\n\n const locale = localization.locales.find((loc) => loc.code === localeCode)\n const formattedLabel = locale?.label?.[i18n?.language] || locale?.label\n\n if (formattedLabel) {\n publishedLocalePill = <Pill>{formattedLabel}</Pill>\n }\n }\n\n return (\n <Fragment>\n {rowData?.autosave && <Pill>{t('version:autosave')}</Pill>}\n {status && renderPill(rowData, latestVersion, currentLabel, previousLabel, pillStyle)}\n {publishedLocalePill}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Pill","useConfig","useTranslation","React","Fragment","renderPill","data","latestVersion","currentLabel","previousLabel","pillStyle","_jsxs","id","_jsx","size","AutosaveCell","t0","$","latestDraftVersion","latestPublishedVersion","rowData","t1","t2","undefined","autosave","publishedLocale","version","i18n","t","config","t3","localization","status","_status","t4","language","publishedLocalePill","versionInfo","draft","published","locales","localeCode","Array","isArray","t5","loc","code","locale","find","formattedLabel","label","children"],"sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"sourcesContent":["'use client'\nimport { Pill, useConfig, useTranslation } from '@payloadcms/ui'\nimport React, { Fragment } from 'react'\n\ntype AutosaveCellProps = {\n latestDraftVersion?: string\n latestPublishedVersion?: string\n rowData?: {\n autosave?: boolean\n publishedLocale?: string\n version: {\n _status?: string\n }\n }\n}\n\nexport const renderPill = (data, latestVersion, currentLabel, previousLabel, pillStyle) => {\n return (\n <React.Fragment>\n {data?.id === latestVersion ? (\n <Pill pillStyle={pillStyle} size=\"small\">\n {currentLabel}\n </Pill>\n ) : (\n <Pill size=\"small\">{previousLabel}</Pill>\n )}\n &nbsp;&nbsp;\n </React.Fragment>\n )\n}\n\nexport const AutosaveCell: React.FC<AutosaveCellProps> = ({\n latestDraftVersion,\n latestPublishedVersion,\n rowData = { autosave: undefined, publishedLocale: undefined, version: undefined },\n}) => {\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const publishedLocale = rowData?.publishedLocale || undefined\n const status = rowData?.version._status\n let publishedLocalePill = null\n\n const versionInfo = {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersion,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentPublishedVersion'),\n latestVersion: latestPublishedVersion,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n\n const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {}\n\n if (localization && localization?.locales && publishedLocale) {\n const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale\n\n const locale = localization.locales.find((loc) => loc.code === localeCode)\n const formattedLabel = locale?.label?.[i18n?.language] || locale?.label\n\n if (formattedLabel) {\n publishedLocalePill = <Pill>{formattedLabel}</Pill>\n }\n }\n\n return (\n <Fragment>\n {rowData?.autosave && <Pill>{t('version:autosave')}</Pill>}\n {status && renderPill(rowData, latestVersion, currentLabel, previousLabel, pillStyle)}\n {publishedLocalePill}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,3 @@
1
- export function withPayload(nextConfig?: import("next").NextConfig, options?: {
2
- devBundleServerPackages?: boolean;
3
- }): import("next").NextConfig;
1
+ export function withPayload(nextConfig?: import("next").NextConfig, options?: {}): import("next").NextConfig;
4
2
  export default withPayload;
5
3
  //# sourceMappingURL=withPayload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAOO,yCANI,OAAO,MAAM,EAAE,UAAU,YAEjC;IAA0B,uBAAuB,GAAzC,OAAO;CAA6F,GAElG,OAAO,MAAM,EAAE,UAAU,CA2KrC"}
1
+ {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAOO,yCANI,OAAO,MAAM,EAAE,UAAU,iBAIvB,OAAO,MAAM,EAAE,UAAU,CA2KrC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @param {import('next').NextConfig} nextConfig
3
- * @param {Object} [options] - Optional configuration options
4
- * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true
3
+ * @param {Object} [sortOnOptions] - Optional configuration options
4
+ * @param {boolean} [sortOnOptions.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true
5
5
  *
6
6
  * @returns {import('next').NextConfig}
7
7
  * */export const withPayload = (nextConfig = {}, options = {}) => {
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","options","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","outputFileTracingExcludes","outputFileTracingIncludes","headers","headersFromConfig","source","serverExternalPackages","NODE_ENV","devBundleServerPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","plugins","IgnorePlugin","resourceRegExp","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [options] - Optional configuration options\n * @param {boolean} [options.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n // Do not bundle server-only packages during dev to improve compile speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","options","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","outputFileTracingExcludes","outputFileTracingIncludes","headers","headersFromConfig","source","serverExternalPackages","NODE_ENV","devBundleServerPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","plugins","IgnorePlugin","resourceRegExp","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n * @param {Object} [sortOnOptions] - Optional configuration options\n * @param {boolean} [sortOnOptions.devBundleServerPackages] - Whether to bundle server packages in development mode. @default true\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}, options = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n // Do not bundle server-only packages during dev to improve compile speed\n ...(process.env.NODE_ENV === 'development' && options.devBundleServerPackages === false\n ? [\n 'payload',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-redirects',\n // TODO: Add the following packages, excluding their /client subpath exports, once Next.js supports it\n //'@payloadcms/plugin-cloud-storage',\n //'@payloadcms/plugin-sentry',\n //'@payloadcms/plugin-stripe',\n // @payloadcms/richtext-lexical\n //'@payloadcms/storage-azure',\n //'@payloadcms/storage-gcs',\n //'@payloadcms/storage-s3',\n //'@payloadcms/storage-uploadthing',\n //'@payloadcms/storage-vercel-blob',\n ]\n : []),\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n 'require-in-the-middle',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n plugins: [\n ...(incomingWebpackConfig?.plugins || []),\n // Fix cloudflare:sockets error: https://github.com/vercel/next.js/discussions/50177\n new webpackOptions.webpack.IgnorePlugin({\n resourceRegExp: /^pg-native$|^cloudflare:sockets$/,\n }),\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"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","ignoreList":[]}