@payloadcms/next 3.20.0-canary.9f2bca1 → 3.20.0-canary.a7d4b94

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 (135) hide show
  1. package/dist/prod/styles.css +1 -1
  2. package/dist/views/Account/index.d.ts.map +1 -1
  3. package/dist/views/Account/index.js +2 -1
  4. package/dist/views/Account/index.js.map +1 -1
  5. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  6. package/dist/views/CreateFirstUser/index.client.js +4 -2
  7. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  8. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  9. package/dist/views/CreateFirstUser/index.js +2 -1
  10. package/dist/views/CreateFirstUser/index.js.map +1 -1
  11. package/dist/views/Document/getDocumentPermissions.js +2 -2
  12. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  13. package/dist/views/Document/index.d.ts.map +1 -1
  14. package/dist/views/Document/index.js +2 -1
  15. package/dist/views/Document/index.js.map +1 -1
  16. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  17. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +2 -0
  18. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  19. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  20. package/dist/views/LivePreview/index.client.js +5 -2
  21. package/dist/views/LivePreview/index.client.js.map +1 -1
  22. package/dist/views/Version/Default/SelectedLocalesContext.d.ts +8 -0
  23. package/dist/views/Version/Default/SelectedLocalesContext.d.ts.map +1 -0
  24. package/dist/views/Version/Default/SelectedLocalesContext.js +10 -0
  25. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -0
  26. package/dist/views/Version/Default/index.d.ts.map +1 -1
  27. package/dist/views/Version/Default/index.js +89 -159
  28. package/dist/views/Version/Default/index.js.map +1 -1
  29. package/dist/views/Version/Default/types.d.ts +4 -4
  30. package/dist/views/Version/Default/types.d.ts.map +1 -1
  31. package/dist/views/Version/Default/types.js.map +1 -1
  32. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +27 -0
  33. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -0
  34. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +76 -0
  35. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
  36. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +46 -0
  37. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts +6 -0
  38. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -0
  39. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +34 -0
  40. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -0
  41. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +30 -0
  42. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -0
  43. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +288 -0
  44. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -0
  45. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +4 -0
  46. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -0
  47. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +64 -0
  48. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
  49. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +5 -0
  50. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -0
  51. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +69 -0
  52. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
  53. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +14 -0
  54. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +3 -4
  55. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  56. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +100 -63
  57. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  58. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -12
  59. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -4
  60. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  61. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +18 -17
  62. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  63. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +4 -0
  64. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -0
  65. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -0
  66. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
  67. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +2 -4
  68. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  69. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +56 -28
  70. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  71. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -4
  72. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  73. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +146 -42
  74. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  75. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +20 -0
  76. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +2 -4
  77. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  78. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +71 -37
  79. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  80. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -22
  81. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  82. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +13 -9
  83. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  84. package/dist/views/Version/RenderFieldsToDiff/index.d.ts +2 -5
  85. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  86. package/dist/views/Version/RenderFieldsToDiff/index.js +8 -114
  87. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  88. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +2 -20
  89. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  90. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  91. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +21 -0
  92. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -0
  93. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +194 -0
  94. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
  95. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +860 -0
  96. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
  97. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts +2 -0
  98. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts.map +1 -0
  99. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
  100. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
  101. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +46 -0
  102. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
  103. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.d.ts +27 -0
  104. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.d.ts.map +1 -0
  105. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +26 -0
  106. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -0
  107. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +18 -0
  108. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -0
  109. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +44 -0
  110. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
  111. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +122 -0
  112. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
  113. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  114. package/dist/views/Version/Restore/index.js +2 -2
  115. package/dist/views/Version/Restore/index.js.map +1 -1
  116. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  117. package/dist/views/Version/SelectComparison/index.js +7 -3
  118. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  119. package/dist/views/Version/index.d.ts.map +1 -1
  120. package/dist/views/Version/index.js +103 -13
  121. package/dist/views/Version/index.js.map +1 -1
  122. package/dist/views/Versions/getLatestVersion.d.ts +1 -0
  123. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  124. package/dist/views/Versions/getLatestVersion.js +2 -0
  125. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  126. package/package.json +7 -7
  127. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +0 -6
  128. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +0 -1
  129. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -43
  130. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +0 -1
  131. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -14
  132. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +0 -22
  133. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +0 -1
  134. package/dist/views/Version/RenderFieldsToDiff/fields/types.js +0 -2
  135. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +0 -1
@@ -1,12 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
3
+ import { getClientSchemaMap } from '@payloadcms/ui/utilities/getClientSchemaMap';
4
+ import { getSchemaMap } from '@payloadcms/ui/utilities/getSchemaMap';
2
5
  import { notFound } from 'next/navigation.js';
3
6
  import React from 'react';
4
7
  import { getLatestVersion } from '../Versions/getLatestVersion.js';
5
8
  import { DefaultVersionView } from './Default/index.js';
9
+ import { RenderDiff } from './RenderFieldsToDiff/index.js';
6
10
  export const VersionView = async props => {
7
11
  const {
12
+ i18n,
8
13
  initPageResult,
9
- routeSegments
14
+ routeSegments,
15
+ searchParams
10
16
  } = props;
11
17
  const {
12
18
  collectionConfig,
@@ -25,6 +31,8 @@ export const VersionView = async props => {
25
31
  const versionID = routeSegments[routeSegments.length - 1];
26
32
  const collectionSlug = collectionConfig?.slug;
27
33
  const globalSlug = globalConfig?.slug;
34
+ const localeCodesFromParams = searchParams.localeCodes ? JSON.parse(searchParams.localeCodes) : null;
35
+ const comparisonVersionIDFromParams = searchParams.compareValue;
28
36
  const {
29
37
  localization
30
38
  } = config;
@@ -42,7 +50,7 @@ export const VersionView = async props => {
42
50
  id: versionID,
43
51
  collection: slug,
44
52
  depth: 1,
45
- locale: '*',
53
+ locale: 'all',
46
54
  overrideAccess: false,
47
55
  req,
48
56
  user
@@ -51,6 +59,7 @@ export const VersionView = async props => {
51
59
  latestDraftVersion = await getLatestVersion({
52
60
  slug,
53
61
  type: 'collection',
62
+ locale: 'all',
54
63
  parentID: id,
55
64
  payload,
56
65
  status: 'draft'
@@ -58,6 +67,7 @@ export const VersionView = async props => {
58
67
  latestPublishedVersion = await getLatestVersion({
59
68
  slug,
60
69
  type: 'collection',
70
+ locale: 'all',
61
71
  parentID: id,
62
72
  payload,
63
73
  status: 'published'
@@ -76,7 +86,7 @@ export const VersionView = async props => {
76
86
  id: versionID,
77
87
  slug,
78
88
  depth: 1,
79
- locale: '*',
89
+ locale: 'all',
80
90
  overrideAccess: false,
81
91
  req,
82
92
  user
@@ -85,12 +95,14 @@ export const VersionView = async props => {
85
95
  latestDraftVersion = await getLatestVersion({
86
96
  slug,
87
97
  type: 'global',
98
+ locale: 'all',
88
99
  payload,
89
100
  status: 'draft'
90
101
  });
91
102
  latestPublishedVersion = await getLatestVersion({
92
103
  slug,
93
104
  type: 'global',
105
+ locale: 'all',
94
106
  payload,
95
107
  status: 'published'
96
108
  });
@@ -106,24 +118,102 @@ export const VersionView = async props => {
106
118
  updatedAt: ''
107
119
  };
108
120
  }
109
- const localeOptions = localization && localization.locales.map(({
110
- code,
111
- label
112
- }) => ({
113
- label,
114
- value: code
115
- }));
121
+ const selectedLocales = [];
122
+ if (localization) {
123
+ if (localeCodesFromParams) {
124
+ for (const code of localeCodesFromParams) {
125
+ const locale = localization.locales.find(locale => locale.code === code);
126
+ if (locale) {
127
+ selectedLocales.push({
128
+ label: locale.label,
129
+ value: locale.code
130
+ });
131
+ }
132
+ }
133
+ } else {
134
+ for (const {
135
+ code,
136
+ label
137
+ } of localization.locales) {
138
+ selectedLocales.push({
139
+ label,
140
+ value: code
141
+ });
142
+ }
143
+ }
144
+ }
116
145
  const latestVersion = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt ? latestPublishedVersion : latestDraftVersion;
117
146
  if (!doc) {
118
147
  return notFound();
119
148
  }
149
+ /**
150
+ * The doc to compare this version to is either the latest version, or a specific version if specified in the URL.
151
+ * This specific version is added to the URL when a user selects a version to compare to.
152
+ */
153
+ let comparisonDoc = null;
154
+ if (comparisonVersionIDFromParams) {
155
+ if (collectionSlug) {
156
+ comparisonDoc = await payload.findVersionByID({
157
+ id: comparisonVersionIDFromParams,
158
+ collection: collectionSlug,
159
+ depth: 0,
160
+ locale: 'all'
161
+ });
162
+ } else {
163
+ comparisonDoc = await payload.findGlobalVersionByID({
164
+ id: comparisonVersionIDFromParams,
165
+ slug: globalSlug,
166
+ depth: 0,
167
+ locale: 'all'
168
+ });
169
+ }
170
+ } else {
171
+ comparisonDoc = latestVersion;
172
+ }
173
+ const schemaMap = getSchemaMap({
174
+ collectionSlug,
175
+ config,
176
+ globalSlug,
177
+ i18n
178
+ });
179
+ const clientSchemaMap = getClientSchemaMap({
180
+ collectionSlug,
181
+ config: getClientConfig({
182
+ config: payload.config,
183
+ i18n,
184
+ importMap: payload.importMap
185
+ }),
186
+ globalSlug,
187
+ i18n,
188
+ payload,
189
+ schemaMap
190
+ });
191
+ const RenderedDiff = RenderDiff({
192
+ clientSchemaMap,
193
+ comparisonSiblingData: comparisonDoc?.version,
194
+ customDiffComponents: {},
195
+ entitySlug: collectionSlug || globalSlug,
196
+ fieldPermissions: docPermissions?.fields,
197
+ fields: (collectionConfig || globalConfig)?.fields,
198
+ i18n,
199
+ parentIndexPath: '',
200
+ parentPath: '',
201
+ parentSchemaPath: '',
202
+ req,
203
+ selectedLocales: selectedLocales && selectedLocales.map(locale => locale.value),
204
+ versionSiblingData: globalConfig ? {
205
+ ...doc?.version,
206
+ createdAt: doc?.version?.createdAt || doc.createdAt,
207
+ updatedAt: doc?.version?.updatedAt || doc.updatedAt
208
+ } : doc?.version
209
+ });
120
210
  return /*#__PURE__*/_jsx(DefaultVersionView, {
211
+ canUpdate: docPermissions?.update,
121
212
  doc: doc,
122
- docPermissions: docPermissions,
123
- initialComparisonDoc: latestVersion,
124
213
  latestDraftVersion: latestDraftVersion?.id,
125
214
  latestPublishedVersion: latestPublishedVersion?.id,
126
- localeOptions: localeOptions,
215
+ RenderedDiff: RenderedDiff,
216
+ selectedLocales: selectedLocales,
127
217
  versionID: versionID
128
218
  });
129
219
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["notFound","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","type","parentID","status","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","_jsx","initialComparisonDoc"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n Document,\n EditViewComponent,\n OptionObject,\n PayloadServerReactComponent,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: PayloadServerReactComponent<EditViewComponent> = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug,\n type: 'collection',\n parentID: id,\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'collection',\n parentID: id,\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug,\n type: 'global',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'global',\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization.locales.map(({ code, label }) => ({\n label,\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getClientConfig","getClientSchemaMap","getSchemaMap","notFound","React","getLatestVersion","DefaultVersionView","RenderDiff","VersionView","props","i18n","initPageResult","routeSegments","searchParams","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localeCodesFromParams","localeCodes","JSON","parse","comparisonVersionIDFromParams","compareValue","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","type","parentID","status","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","selectedLocales","code","locales","find","push","label","value","latestVersion","comparisonDoc","schemaMap","clientSchemaMap","importMap","RenderedDiff","comparisonSiblingData","version","customDiffComponents","entitySlug","fieldPermissions","fields","parentIndexPath","parentPath","parentSchemaPath","map","versionSiblingData","createdAt","_jsx","canUpdate","update"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n Document,\n EditViewComponent,\n OptionObject,\n PayloadServerReactComponent,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { getClientSchemaMap } from '@payloadcms/ui/utilities/getClientSchemaMap'\nimport { getSchemaMap } from '@payloadcms/ui/utilities/getSchemaMap'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\nimport { RenderDiff } from './RenderFieldsToDiff/index.js'\n\nexport const VersionView: PayloadServerReactComponent<EditViewComponent> = async (props) => {\n const { i18n, initPageResult, routeSegments, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const localeCodesFromParams = searchParams.localeCodes\n ? JSON.parse(searchParams.localeCodes as string)\n : null\n const comparisonVersionIDFromParams: string = searchParams.compareValue as string\n\n const { localization } = config\n\n let docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug,\n type: 'collection',\n locale: 'all',\n parentID: id,\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'collection',\n locale: 'all',\n parentID: id,\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug,\n type: 'global',\n locale: 'all',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'global',\n locale: 'all',\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const selectedLocales: OptionObject[] = []\n if (localization) {\n if (localeCodesFromParams) {\n for (const code of localeCodesFromParams) {\n const locale = localization.locales.find((locale) => locale.code === code)\n if (locale) {\n selectedLocales.push({\n label: locale.label,\n value: locale.code,\n })\n }\n }\n } else {\n for (const { code, label } of localization.locales) {\n selectedLocales.push({\n label,\n value: code,\n })\n }\n }\n }\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n /**\n * The doc to compare this version to is either the latest version, or a specific version if specified in the URL.\n * This specific version is added to the URL when a user selects a version to compare to.\n */\n let comparisonDoc = null\n if (comparisonVersionIDFromParams) {\n if (collectionSlug) {\n comparisonDoc = await payload.findVersionByID({\n id: comparisonVersionIDFromParams,\n collection: collectionSlug,\n depth: 0,\n locale: 'all',\n })\n } else {\n comparisonDoc = await payload.findGlobalVersionByID({\n id: comparisonVersionIDFromParams,\n slug: globalSlug,\n depth: 0,\n locale: 'all',\n })\n }\n } else {\n comparisonDoc = latestVersion\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({ config: payload.config, i18n, importMap: payload.importMap }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const RenderedDiff = RenderDiff({\n clientSchemaMap,\n comparisonSiblingData: comparisonDoc?.version,\n customDiffComponents: {},\n entitySlug: collectionSlug || globalSlug,\n fieldPermissions: docPermissions?.fields,\n fields: (collectionConfig || globalConfig)?.fields,\n i18n,\n parentIndexPath: '',\n parentPath: '',\n parentSchemaPath: '',\n req,\n selectedLocales: selectedLocales && selectedLocales.map((locale) => locale.value),\n versionSiblingData: globalConfig\n ? {\n ...doc?.version,\n createdAt: doc?.version?.createdAt || doc.createdAt,\n updatedAt: doc?.version?.updatedAt || doc.updatedAt,\n }\n : doc?.version,\n })\n\n return (\n <DefaultVersionView\n canUpdate={docPermissions?.update}\n doc={doc}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionID={versionID}\n />\n )\n}\n"],"mappings":";AASA,SAASA,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,YAAY,QAAQ;AAC7B,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,WAAA,GAA8D,MAAOC,KAAA;EAChF,MAAM;IAAEC,IAAI;IAAEC,cAAc;IAAEC,aAAa;IAAEC;EAAY,CAAE,GAAGJ,KAAA;EAE9D,MAAM;IACJK,gBAAgB;IAChBC,KAAA,EAAOC,EAAE;IACTC,YAAY;IACZC,WAAW;IACXC,GAAG;IACHA,GAAA,EAAK;MAAEC,OAAO;MAAEA,OAAA,EAAS;QAAEC;MAAM,CAAE,GAAG,CAAC,CAAC;MAAEC;IAAI,CAAE,GAAG,CAAC;EAAC,CACtD,GAAGX,cAAA;EAEJ,MAAMY,SAAA,GAAYX,aAAa,CAACA,aAAA,CAAcY,MAAM,GAAG,EAAE;EAEzD,MAAMC,cAAA,GAAiBX,gBAAA,EAAkBY,IAAA;EACzC,MAAMC,UAAA,GAAaV,YAAA,EAAcS,IAAA;EAEjC,MAAME,qBAAA,GAAwBf,YAAA,CAAagB,WAAW,GAClDC,IAAA,CAAKC,KAAK,CAAClB,YAAA,CAAagB,WAAW,IACnC;EACJ,MAAMG,6BAAA,GAAwCnB,YAAA,CAAaoB,YAAY;EAEvE,MAAM;IAAEC;EAAY,CAAE,GAAGb,MAAA;EAEzB,IAAIc,cAAA;EACJ,IAAIT,IAAA;EAEJ,IAAIU,GAAA;EACJ,IAAIC,sBAAA,GAAyB;EAC7B,IAAIC,kBAAA,GAAqB;EAEzB,IAAIb,cAAA,EAAgB;IAClB;IACAC,IAAA,GAAOD,cAAA;IACPU,cAAA,GAAiBjB,WAAA,CAAYqB,WAAW,CAACd,cAAA,CAAe;IAExD,IAAI;MACFW,GAAA,GAAM,MAAMhB,OAAA,CAAQoB,eAAe,CAAC;QAClCxB,EAAA,EAAIO,SAAA;QACJkB,UAAA,EAAYf,IAAA;QACZgB,KAAA,EAAO;QACPC,MAAA,EAAQ;QACRC,cAAA,EAAgB;QAChBzB,GAAA;QACAG;MACF;MAEA,IAAIR,gBAAA,EAAkB+B,QAAA,EAAUC,MAAA,EAAQ;QACtCR,kBAAA,GAAqB,MAAMjC,gBAAA,CAAiB;UAC1CqB,IAAA;UACAqB,IAAA,EAAM;UACNJ,MAAA,EAAQ;UACRK,QAAA,EAAUhC,EAAA;UACVI,OAAA;UACA6B,MAAA,EAAQ;QACV;QACAZ,sBAAA,GAAyB,MAAMhC,gBAAA,CAAiB;UAC9CqB,IAAA;UACAqB,IAAA,EAAM;UACNJ,MAAA,EAAQ;UACRK,QAAA,EAAUhC,EAAA;UACVI,OAAA;UACA6B,MAAA,EAAQ;QACV;MACF;IACF,EAAE,OAAOC,KAAA,EAAO;MACd,OAAO/C,QAAA;IACT;EACF;EAEA,IAAIwB,UAAA,EAAY;IACd;IACAD,IAAA,GAAOC,UAAA;IACPQ,cAAA,GAAiBjB,WAAA,CAAYiC,OAAO,CAACxB,UAAA,CAAW;IAEhD,IAAI;MACFS,GAAA,GAAM,MAAMhB,OAAA,CAAQgC,qBAAqB,CAAC;QACxCpC,EAAA,EAAIO,SAAA;QACJG,IAAA;QACAgB,KAAA,EAAO;QACPC,MAAA,EAAQ;QACRC,cAAA,EAAgB;QAChBzB,GAAA;QACAG;MACF;MAEA,IAAIL,YAAA,EAAc4B,QAAA,EAAUC,MAAA,EAAQ;QAClCR,kBAAA,GAAqB,MAAMjC,gBAAA,CAAiB;UAC1CqB,IAAA;UACAqB,IAAA,EAAM;UACNJ,MAAA,EAAQ;UACRvB,OAAA;UACA6B,MAAA,EAAQ;QACV;QACAZ,sBAAA,GAAyB,MAAMhC,gBAAA,CAAiB;UAC9CqB,IAAA;UACAqB,IAAA,EAAM;UACNJ,MAAA,EAAQ;UACRvB,OAAA;UACA6B,MAAA,EAAQ;QACV;MACF;IACF,EAAE,OAAOC,KAAA,EAAO;MACd,OAAO/C,QAAA;IACT;EACF;EAEA,MAAMkD,uBAAA,GAA0BhB,sBAAA,EAAwBiB,SAAA,GAAYhB,kBAAA,EAAoBgB,SAAA;EAExF,IAAID,uBAAA,EAAyB;IAC3Bf,kBAAA,GAAqB;MACnBtB,EAAA,EAAI;MACJsC,SAAA,EAAW;IACb;EACF;EAEA,MAAMC,eAAA,GAAkC,EAAE;EAC1C,IAAIrB,YAAA,EAAc;IAChB,IAAIN,qBAAA,EAAuB;MACzB,KAAK,MAAM4B,IAAA,IAAQ5B,qBAAA,EAAuB;QACxC,MAAMe,MAAA,GAAST,YAAA,CAAauB,OAAO,CAACC,IAAI,CAAEf,MAAA,IAAWA,MAAA,CAAOa,IAAI,KAAKA,IAAA;QACrE,IAAIb,MAAA,EAAQ;UACVY,eAAA,CAAgBI,IAAI,CAAC;YACnBC,KAAA,EAAOjB,MAAA,CAAOiB,KAAK;YACnBC,KAAA,EAAOlB,MAAA,CAAOa;UAChB;QACF;MACF;IACF,OAAO;MACL,KAAK,MAAM;QAAEA,IAAI;QAAEI;MAAK,CAAE,IAAI1B,YAAA,CAAauB,OAAO,EAAE;QAClDF,eAAA,CAAgBI,IAAI,CAAC;UACnBC,KAAA;UACAC,KAAA,EAAOL;QACT;MACF;IACF;EACF;EAEA,MAAMM,aAAA,GACJzB,sBAAA,EAAwBiB,SAAA,GAAYhB,kBAAA,EAAoBgB,SAAA,GACpDjB,sBAAA,GACAC,kBAAA;EAEN,IAAI,CAACF,GAAA,EAAK;IACR,OAAOjC,QAAA;EACT;EAEA;;;;EAIA,IAAI4D,aAAA,GAAgB;EACpB,IAAI/B,6BAAA,EAA+B;IACjC,IAAIP,cAAA,EAAgB;MAClBsC,aAAA,GAAgB,MAAM3C,OAAA,CAAQoB,eAAe,CAAC;QAC5CxB,EAAA,EAAIgB,6BAAA;QACJS,UAAA,EAAYhB,cAAA;QACZiB,KAAA,EAAO;QACPC,MAAA,EAAQ;MACV;IACF,OAAO;MACLoB,aAAA,GAAgB,MAAM3C,OAAA,CAAQgC,qBAAqB,CAAC;QAClDpC,EAAA,EAAIgB,6BAAA;QACJN,IAAA,EAAMC,UAAA;QACNe,KAAA,EAAO;QACPC,MAAA,EAAQ;MACV;IACF;EACF,OAAO;IACLoB,aAAA,GAAgBD,aAAA;EAClB;EAEA,MAAME,SAAA,GAAY9D,YAAA,CAAa;IAC7BuB,cAAA;IACAJ,MAAA;IACAM,UAAA;IACAjB;EACF;EAEA,MAAMuD,eAAA,GAAkBhE,kBAAA,CAAmB;IACzCwB,cAAA;IACAJ,MAAA,EAAQrB,eAAA,CAAgB;MAAEqB,MAAA,EAAQD,OAAA,CAAQC,MAAM;MAAEX,IAAA;MAAMwD,SAAA,EAAW9C,OAAA,CAAQ8C;IAAU;IACrFvC,UAAA;IACAjB,IAAA;IACAU,OAAA;IACA4C;EACF;EAEA,MAAMG,YAAA,GAAe5D,UAAA,CAAW;IAC9B0D,eAAA;IACAG,qBAAA,EAAuBL,aAAA,EAAeM,OAAA;IACtCC,oBAAA,EAAsB,CAAC;IACvBC,UAAA,EAAY9C,cAAA,IAAkBE,UAAA;IAC9B6C,gBAAA,EAAkBrC,cAAA,EAAgBsC,MAAA;IAClCA,MAAA,EAAS,CAAA3D,gBAAA,IAAoBG,YAAW,GAAIwD,MAAA;IAC5C/D,IAAA;IACAgE,eAAA,EAAiB;IACjBC,UAAA,EAAY;IACZC,gBAAA,EAAkB;IAClBzD,GAAA;IACAoC,eAAA,EAAiBA,eAAA,IAAmBA,eAAA,CAAgBsB,GAAG,CAAElC,MAAA,IAAWA,MAAA,CAAOkB,KAAK;IAChFiB,kBAAA,EAAoB7D,YAAA,GAChB;MACE,GAAGmB,GAAA,EAAKiC,OAAO;MACfU,SAAA,EAAW3C,GAAA,EAAKiC,OAAA,EAASU,SAAA,IAAa3C,GAAA,CAAI2C,SAAS;MACnDzB,SAAA,EAAWlB,GAAA,EAAKiC,OAAA,EAASf,SAAA,IAAalB,GAAA,CAAIkB;IAC5C,IACAlB,GAAA,EAAKiC;EACX;EAEA,oBACEW,IAAA,CAAC1E,kBAAA;IACC2E,SAAA,EAAW9C,cAAA,EAAgB+C,MAAA;IAC3B9C,GAAA,EAAKA,GAAA;IACLE,kBAAA,EAAoBA,kBAAA,EAAoBtB,EAAA;IACxCqB,sBAAA,EAAwBA,sBAAA,EAAwBrB,EAAA;IAChDmD,YAAA,EAAcA,YAAA;IACdZ,eAAA,EAAiBA,eAAA;IACjBhC,SAAA,EAAWA;;AAGjB","ignoreList":[]}
@@ -4,6 +4,7 @@ type ReturnType = {
4
4
  updatedAt: string;
5
5
  } | null;
6
6
  type Args = {
7
+ locale?: string;
7
8
  parentID?: number | string;
8
9
  payload: Payload;
9
10
  slug: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestVersion.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/getLatestVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,SAAS,CAAA;AAI7C,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAA;AAER,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,GAAG,WAAW,CAAA;IAC7B,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B,CAAA;AACD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAqDtE"}
1
+ {"version":3,"file":"getLatestVersion.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/getLatestVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,SAAS,CAAA;AAI7C,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAA;AAER,KAAK,IAAI,GAAG;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,GAAG,WAAW,CAAA;IAC7B,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B,CAAA;AACD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAsDtE"}
@@ -3,6 +3,7 @@ export async function getLatestVersion(args) {
3
3
  const {
4
4
  slug,
5
5
  type = 'collection',
6
+ locale,
6
7
  parentID,
7
8
  payload,
8
9
  status
@@ -23,6 +24,7 @@ export async function getLatestVersion(args) {
23
24
  const sharedOptions = {
24
25
  depth: 0,
25
26
  limit: 1,
27
+ locale,
26
28
  sort: '-updatedAt',
27
29
  where: {
28
30
  and
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestVersion.js","names":["logError","getLatestVersion","args","slug","type","parentID","payload","status","and","equals","push","parent","sharedOptions","depth","limit","sort","where","response","findVersions","collection","findGlobalVersions","docs","length","id","updatedAt","err"],"sources":["../../../src/views/Versions/getLatestVersion.ts"],"sourcesContent":["import type { Payload, Where } from 'payload'\n\nimport { logError } from 'payload'\n\ntype ReturnType = {\n id: string\n updatedAt: string\n} | null\n\ntype Args = {\n parentID?: number | string\n payload: Payload\n slug: string\n status: 'draft' | 'published'\n type: 'collection' | 'global'\n}\nexport async function getLatestVersion(args: Args): Promise<ReturnType> {\n const { slug, type = 'collection', parentID, payload, status } = args\n\n const and: Where[] = [\n {\n 'version._status': {\n equals: status,\n },\n },\n ]\n\n if (type === 'collection' && parentID) {\n and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n try {\n const sharedOptions = {\n depth: 0,\n limit: 1,\n sort: '-updatedAt',\n where: {\n and,\n },\n }\n\n const response =\n type === 'collection'\n ? await payload.findVersions({\n collection: slug,\n ...sharedOptions,\n })\n : await payload.findGlobalVersions({\n slug,\n ...sharedOptions,\n })\n\n if (!response.docs.length) {\n return null\n }\n\n return {\n id: response.docs[0].id,\n updatedAt: response.docs[0].updatedAt,\n }\n } catch (err) {\n logError({ err, payload })\n\n return null\n }\n}\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ;AAczB,OAAO,eAAeC,iBAAiBC,IAAU;EAC/C,MAAM;IAAEC,IAAI;IAAEC,IAAA,GAAO,YAAY;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAAM,CAAE,GAAGL,IAAA;EAEjE,MAAMM,GAAA,GAAe,CACnB;IACE,mBAAmB;MACjBC,MAAA,EAAQF;IACV;EACF,EACD;EAED,IAAIH,IAAA,KAAS,gBAAgBC,QAAA,EAAU;IACrCG,GAAA,CAAIE,IAAI,CAAC;MACPC,MAAA,EAAQ;QACNF,MAAA,EAAQJ;MACV;IACF;EACF;EAEA,IAAI;IACF,MAAMO,aAAA,GAAgB;MACpBC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,IAAA,EAAM;MACNC,KAAA,EAAO;QACLR;MACF;IACF;IAEA,MAAMS,QAAA,GACJb,IAAA,KAAS,eACL,MAAME,OAAA,CAAQY,YAAY,CAAC;MACzBC,UAAA,EAAYhB,IAAA;MACZ,GAAGS;IACL,KACA,MAAMN,OAAA,CAAQc,kBAAkB,CAAC;MAC/BjB,IAAA;MACA,GAAGS;IACL;IAEN,IAAI,CAACK,QAAA,CAASI,IAAI,CAACC,MAAM,EAAE;MACzB,OAAO;IACT;IAEA,OAAO;MACLC,EAAA,EAAIN,QAAA,CAASI,IAAI,CAAC,EAAE,CAACE,EAAE;MACvBC,SAAA,EAAWP,QAAA,CAASI,IAAI,CAAC,EAAE,CAACG;IAC9B;EACF,EAAE,OAAOC,GAAA,EAAK;IACZzB,QAAA,CAAS;MAAEyB,GAAA;MAAKnB;IAAQ;IAExB,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getLatestVersion.js","names":["logError","getLatestVersion","args","slug","type","locale","parentID","payload","status","and","equals","push","parent","sharedOptions","depth","limit","sort","where","response","findVersions","collection","findGlobalVersions","docs","length","id","updatedAt","err"],"sources":["../../../src/views/Versions/getLatestVersion.ts"],"sourcesContent":["import type { Payload, Where } from 'payload'\n\nimport { logError } from 'payload'\n\ntype ReturnType = {\n id: string\n updatedAt: string\n} | null\n\ntype Args = {\n locale?: string\n parentID?: number | string\n payload: Payload\n slug: string\n status: 'draft' | 'published'\n type: 'collection' | 'global'\n}\nexport async function getLatestVersion(args: Args): Promise<ReturnType> {\n const { slug, type = 'collection', locale, parentID, payload, status } = args\n\n const and: Where[] = [\n {\n 'version._status': {\n equals: status,\n },\n },\n ]\n\n if (type === 'collection' && parentID) {\n and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n try {\n const sharedOptions = {\n depth: 0,\n limit: 1,\n locale,\n sort: '-updatedAt',\n where: {\n and,\n },\n }\n\n const response =\n type === 'collection'\n ? await payload.findVersions({\n collection: slug,\n ...sharedOptions,\n })\n : await payload.findGlobalVersions({\n slug,\n ...sharedOptions,\n })\n\n if (!response.docs.length) {\n return null\n }\n\n return {\n id: response.docs[0].id,\n updatedAt: response.docs[0].updatedAt,\n }\n } catch (err) {\n logError({ err, payload })\n\n return null\n }\n}\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ;AAezB,OAAO,eAAeC,iBAAiBC,IAAU;EAC/C,MAAM;IAAEC,IAAI;IAAEC,IAAA,GAAO,YAAY;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAAM,CAAE,GAAGN,IAAA;EAEzE,MAAMO,GAAA,GAAe,CACnB;IACE,mBAAmB;MACjBC,MAAA,EAAQF;IACV;EACF,EACD;EAED,IAAIJ,IAAA,KAAS,gBAAgBE,QAAA,EAAU;IACrCG,GAAA,CAAIE,IAAI,CAAC;MACPC,MAAA,EAAQ;QACNF,MAAA,EAAQJ;MACV;IACF;EACF;EAEA,IAAI;IACF,MAAMO,aAAA,GAAgB;MACpBC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPV,MAAA;MACAW,IAAA,EAAM;MACNC,KAAA,EAAO;QACLR;MACF;IACF;IAEA,MAAMS,QAAA,GACJd,IAAA,KAAS,eACL,MAAMG,OAAA,CAAQY,YAAY,CAAC;MACzBC,UAAA,EAAYjB,IAAA;MACZ,GAAGU;IACL,KACA,MAAMN,OAAA,CAAQc,kBAAkB,CAAC;MAC/BlB,IAAA;MACA,GAAGU;IACL;IAEN,IAAI,CAACK,QAAA,CAASI,IAAI,CAACC,MAAM,EAAE;MACzB,OAAO;IACT;IAEA,OAAO;MACLC,EAAA,EAAIN,QAAA,CAASI,IAAI,CAAC,EAAE,CAACE,EAAE;MACvBC,SAAA,EAAWP,QAAA,CAASI,IAAI,CAAC,EAAE,CAACG;IAC9B;EACF,EAAE,OAAOC,GAAA,EAAK;IACZ1B,QAAA,CAAS;MAAE0B,GAAA;MAAKnB;IAAQ;IAExB,OAAO;EACT;AACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.20.0-canary.9f2bca1",
3
+ "version": "3.20.0-canary.a7d4b94",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -75,13 +75,13 @@
75
75
  "http-status": "2.1.0",
76
76
  "path-to-regexp": "6.3.0",
77
77
  "qs-esm": "7.0.2",
78
- "react-diff-viewer-continued": "3.2.6",
78
+ "react-diff-viewer-continued": "3.4.0",
79
79
  "sass": "1.77.4",
80
80
  "sonner": "^1.7.0",
81
81
  "uuid": "10.0.0",
82
- "@payloadcms/translations": "3.20.0-canary.9f2bca1",
83
- "@payloadcms/ui": "3.20.0-canary.9f2bca1",
84
- "@payloadcms/graphql": "3.20.0-canary.9f2bca1"
82
+ "@payloadcms/graphql": "3.20.0-canary.a7d4b94",
83
+ "@payloadcms/translations": "3.20.0-canary.a7d4b94",
84
+ "@payloadcms/ui": "3.20.0-canary.a7d4b94"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@babel/cli": "7.25.9",
@@ -100,12 +100,12 @@
100
100
  "eslint-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124",
101
101
  "swc-plugin-transform-remove-imports": "2.0.0",
102
102
  "@payloadcms/eslint-config": "3.9.0",
103
- "payload": "3.20.0-canary.9f2bca1"
103
+ "payload": "3.20.0-canary.a7d4b94"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "graphql": "^16.8.1",
107
107
  "next": "^15.0.0",
108
- "payload": "3.20.0-canary.9f2bca1"
108
+ "payload": "3.20.0-canary.a7d4b94"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^18.20.2 || >=20.9.0"
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { DiffComponentProps } from '../types.js';
3
- import './index.scss';
4
- declare const Nested: React.FC<DiffComponentProps>;
5
- export default Nested;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Nested/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqCxC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,43 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { getTranslation } from '@payloadcms/translations';
5
- import React from 'react';
6
- import RenderFieldsToDiff from '../../index.js';
7
- import Label from '../../Label/index.js';
8
- const baseClass = 'nested-diff';
9
- const Nested = ({
10
- comparison,
11
- diffComponents,
12
- disableGutter = false,
13
- field,
14
- fieldPermissions,
15
- fields,
16
- i18n,
17
- locale,
18
- locales,
19
- version
20
- }) => {
21
- return /*#__PURE__*/_jsxs("div", {
22
- className: baseClass,
23
- children: ['label' in field && field.label && typeof field.label !== 'function' && /*#__PURE__*/_jsxs(Label, {
24
- children: [locale && /*#__PURE__*/_jsx("span", {
25
- className: `${baseClass}__locale-label`,
26
- children: locale
27
- }), getTranslation(field.label, i18n)]
28
- }), /*#__PURE__*/_jsx("div", {
29
- className: [`${baseClass}__wrap`, !disableGutter && `${baseClass}__wrap--gutter`].filter(Boolean).join(' '),
30
- children: /*#__PURE__*/_jsx(RenderFieldsToDiff, {
31
- comparison: comparison,
32
- diffComponents: diffComponents,
33
- fieldPermissions: fieldPermissions,
34
- fields: fields,
35
- i18n: i18n,
36
- locales: locales,
37
- version: version
38
- })
39
- })]
40
- });
41
- };
42
- export default Nested;
43
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","RenderFieldsToDiff","Label","baseClass","Nested","comparison","diffComponents","disableGutter","field","fieldPermissions","fields","i18n","locale","locales","version","_jsxs","className","label","_jsx","filter","Boolean","join"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Nested/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport RenderFieldsToDiff from '../../index.js'\nimport Label from '../../Label/index.js'\nimport './index.scss'\n\nconst baseClass = 'nested-diff'\n\nconst Nested: React.FC<DiffComponentProps> = ({\n comparison,\n diffComponents,\n disableGutter = false,\n field,\n fieldPermissions,\n fields,\n i18n,\n locale,\n locales,\n version,\n}) => {\n return (\n <div className={baseClass}>\n {'label' in field && field.label && typeof field.label !== 'function' && (\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.label, i18n)}\n </Label>\n )}\n <div\n className={[`${baseClass}__wrap`, !disableGutter && `${baseClass}__wrap--gutter`]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={fields}\n i18n={i18n}\n locales={locales}\n version={version}\n />\n </div>\n </div>\n )\n}\n\nexport default Nested\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAOC,kBAAA,MAAwB;AAC/B,OAAOC,KAAA,MAAW;AAGlB,MAAMC,SAAA,GAAY;AAElB,MAAMC,MAAA,GAAuCA,CAAC;EAC5CC,UAAU;EACVC,cAAc;EACdC,aAAA,GAAgB,KAAK;EACrBC,KAAK;EACLC,gBAAgB;EAChBC,MAAM;EACNC,IAAI;EACJC,MAAM;EACNC,OAAO;EACPC;AAAO,CACR;EACC,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWb,SAAA;eACb,WAAWK,KAAA,IAASA,KAAA,CAAMS,KAAK,IAAI,OAAOT,KAAA,CAAMS,KAAK,KAAK,2BACzDF,KAAA,CAACb,KAAA;iBACEU,MAAA,iBAAUM,IAAA,CAAC;QAAKF,SAAA,EAAW,GAAGb,SAAA,gBAAyB;kBAAGS;UAC1Db,cAAA,CAAeS,KAAA,CAAMS,KAAK,EAAEN,IAAA;qBAGjCO,IAAA,CAAC;MACCF,SAAA,EAAW,CAAC,GAAGb,SAAA,QAAiB,EAAE,CAACI,aAAA,IAAiB,GAAGJ,SAAA,gBAAyB,CAAC,CAC9EgB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;gBAER,aAAAH,IAAA,CAACjB,kBAAA;QACCI,UAAA,EAAYA,UAAA;QACZC,cAAA,EAAgBA,cAAA;QAChBG,gBAAA,EAAkBA,gBAAA;QAClBC,MAAA,EAAQA,MAAA;QACRC,IAAA,EAAMA,IAAA;QACNE,OAAA,EAASA,OAAA;QACTC,OAAA,EAASA;;;;AAKnB;AAEA,eAAeV,MAAA","ignoreList":[]}
@@ -1,14 +0,0 @@
1
- @layer payload-default {
2
- .nested-diff {
3
- &__wrap--gutter {
4
- [dir='ltr'] & {
5
- padding-left: calc(var(--base) * 0.25);
6
- // border-left: $style-stroke-width-s solid var(--theme-elevation-150);
7
- }
8
- [dir='rtl'] & {
9
- padding-right: calc(var(--base) * 0.25);
10
- // border-right: $style-stroke-width-s solid var(--theme-elevation-150);
11
- }
12
- }
13
- }
14
- }
@@ -1,22 +0,0 @@
1
- import type { I18nClient } from '@payloadcms/translations';
2
- import type { ClientField, SanitizedFieldPermissions } from 'payload';
3
- import type React from 'react';
4
- import type { DiffMethod } from 'react-diff-viewer-continued';
5
- export type DiffComponents = Record<string, React.FC<DiffComponentProps>>;
6
- export type DiffComponentProps<TField extends ClientField = ClientField> = {
7
- readonly comparison: any;
8
- readonly diffComponents: DiffComponents;
9
- readonly diffMethod?: DiffMethod;
10
- readonly disableGutter?: boolean;
11
- readonly field: TField;
12
- readonly fieldPermissions?: {
13
- [key: string]: SanitizedFieldPermissions;
14
- } | true;
15
- readonly fields: ClientField[];
16
- readonly i18n: I18nClient;
17
- readonly isRichText?: boolean;
18
- readonly locale?: string;
19
- readonly locales?: string[];
20
- readonly version: any;
21
- };
22
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,IAAI;IACzE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,CAAC,EACtB;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAAA;KACzC,GACD,IAAI,CAAA;IACR,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;CACtB,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientField, SanitizedFieldPermissions } from 'payload'\nimport type React from 'react'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nexport type DiffComponents = Record<string, React.FC<DiffComponentProps>>\n\nexport type DiffComponentProps<TField extends ClientField = ClientField> = {\n readonly comparison: any\n readonly diffComponents: DiffComponents\n readonly diffMethod?: DiffMethod\n readonly disableGutter?: boolean\n readonly field: TField\n readonly fieldPermissions?:\n | {\n [key: string]: SanitizedFieldPermissions\n }\n | true\n readonly fields: ClientField[]\n readonly i18n: I18nClient\n readonly isRichText?: boolean\n readonly locale?: string\n readonly locales?: string[]\n readonly version: any\n}\n"],"mappings":"AAOA","ignoreList":[]}