@payloadcms/next 3.55.0-canary.7 → 3.55.0-internal.92d1d86

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 (27) hide show
  1. package/dist/auth/refresh.js +8 -8
  2. package/dist/auth/refresh.js.map +1 -1
  3. package/dist/prod/styles.css +1 -1
  4. package/dist/views/CollectionFolders/buildView.d.ts.map +1 -1
  5. package/dist/views/CollectionFolders/buildView.js +1 -1
  6. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  7. package/dist/views/Version/Default/SetStepNav.d.ts +0 -1
  8. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  9. package/dist/views/Version/Default/SetStepNav.js +28 -38
  10. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  11. package/dist/views/Version/Default/index.d.ts.map +1 -1
  12. package/dist/views/Version/Default/index.js +2 -4
  13. package/dist/views/Version/Default/index.js.map +1 -1
  14. package/dist/views/Version/Default/types.d.ts +0 -1
  15. package/dist/views/Version/Default/types.d.ts.map +1 -1
  16. package/dist/views/Version/Default/types.js.map +1 -1
  17. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +3 -5
  18. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  19. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +60 -37
  20. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  21. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  22. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +5 -2
  23. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  24. package/dist/views/Version/index.d.ts.map +1 -1
  25. package/dist/views/Version/index.js +2 -5
  26. package/dist/views/Version/index.js.map +1 -1
  27. package/package.json +7 -7
@@ -1,7 +1,7 @@
1
1
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
2
2
  import { dequal } from 'dequal/lite';
3
3
  import { MissingEditorProp } from 'payload';
4
- import { fieldIsID, fieldShouldBeLocalized, getFieldPaths, getFieldPermissions, getUniqueListBy, tabHasName } from 'payload/shared';
4
+ import { fieldIsID, fieldShouldBeLocalized, getFieldPaths, getUniqueListBy, tabHasName } from 'payload/shared';
5
5
  import { diffComponents } from './fields/index.js';
6
6
  /**
7
7
  * Build up an object that contains rendered diff components for each field.
@@ -14,8 +14,8 @@ export const buildVersionFields = ({
14
14
  clientSchemaMap,
15
15
  customDiffComponents,
16
16
  entitySlug,
17
- fieldPermissions,
18
17
  fields,
18
+ fieldsPermissions,
19
19
  i18n,
20
20
  modifiedOnly,
21
21
  nestingLevel = 0,
@@ -76,12 +76,12 @@ export const buildVersionFields = ({
76
76
  customDiffComponents,
77
77
  entitySlug,
78
78
  field,
79
- fieldPermissions,
80
79
  i18n,
81
80
  indexPath,
82
81
  locale,
83
82
  modifiedOnly,
84
83
  nestingLevel,
84
+ parentFieldsPermissions: fieldsPermissions,
85
85
  parentIsLocalized: true,
86
86
  parentPath,
87
87
  parentSchemaPath,
@@ -103,11 +103,11 @@ export const buildVersionFields = ({
103
103
  customDiffComponents,
104
104
  entitySlug,
105
105
  field,
106
- fieldPermissions,
107
106
  i18n,
108
107
  indexPath,
109
108
  modifiedOnly,
110
109
  nestingLevel,
110
+ parentFieldsPermissions: fieldsPermissions,
111
111
  parentIsLocalized: parentIsLocalized || 'localized' in field && field.localized,
112
112
  parentPath,
113
113
  parentSchemaPath,
@@ -136,12 +136,12 @@ const buildVersionField = ({
136
136
  customDiffComponents,
137
137
  entitySlug,
138
138
  field,
139
- fieldPermissions,
140
139
  i18n,
141
140
  indexPath,
142
141
  locale,
143
142
  modifiedOnly,
144
143
  nestingLevel,
144
+ parentFieldsPermissions,
145
145
  parentIsLocalized,
146
146
  parentPath,
147
147
  parentSchemaPath,
@@ -152,16 +152,27 @@ const buildVersionField = ({
152
152
  valueFrom,
153
153
  valueTo
154
154
  }) => {
155
- const {
156
- permissions,
157
- read: hasReadPermission
158
- } = getFieldPermissions({
159
- field,
160
- operation: 'read',
161
- parentName: parentPath?.includes('.') ? parentPath.split('.')[parentPath.split('.').length - 1] : parentPath,
162
- permissions: fieldPermissions
163
- });
155
+ let hasReadPermission = false;
156
+ let fieldPermissions = undefined;
157
+ if (typeof parentFieldsPermissions === 'boolean') {
158
+ hasReadPermission = parentFieldsPermissions;
159
+ fieldPermissions = parentFieldsPermissions;
160
+ } else {
161
+ if ('name' in field) {
162
+ fieldPermissions = parentFieldsPermissions?.[field.name];
163
+ if (typeof fieldPermissions === 'boolean') {
164
+ hasReadPermission = fieldPermissions;
165
+ } else if (typeof fieldPermissions?.read === 'boolean') {
166
+ hasReadPermission = fieldPermissions.read;
167
+ }
168
+ } else {
169
+ // If the field is unnamed and parentFieldsPermissions is an object, its sub-fields will decide their read permissions state.
170
+ // As far as this field is concerned, we are allowed to read it, as we need to reach its sub-fields to determine their read permissions.
171
+ hasReadPermission = true;
172
+ }
173
+ }
164
174
  if (!hasReadPermission) {
175
+ // HasReadPermission is only valid if the field has a name. E.g. for a tabs field it would incorrectly return `false`.
165
176
  return null;
166
177
  }
167
178
  if (modifiedOnly && dequal(valueFrom, valueTo)) {
@@ -211,14 +222,21 @@ const buildVersionField = ({
211
222
  parentPath,
212
223
  parentSchemaPath
213
224
  });
214
- let tabPermissions = undefined;
215
- if (typeof permissions === 'boolean') {
216
- tabPermissions = permissions;
217
- } else if (permissions && typeof permissions === 'object') {
225
+ // At this point, permissions === fieldPermissions (FieldsPermissions)
226
+ let tabFieldsPermissions = undefined;
227
+ // The tabs field does not have its own permissions as it's unnamed => use parentFieldsPermissions
228
+ if (typeof parentFieldsPermissions === 'boolean') {
229
+ tabFieldsPermissions = parentFieldsPermissions;
230
+ } else {
218
231
  if ('name' in tab) {
219
- tabPermissions = typeof permissions.fields?.[tab.name] === 'object' ? permissions.fields?.[tab.name].fields : permissions.fields?.[tab.name];
232
+ const tabPermissions = parentFieldsPermissions?.[tab.name];
233
+ if (typeof tabPermissions === 'boolean') {
234
+ tabFieldsPermissions = tabPermissions;
235
+ } else {
236
+ tabFieldsPermissions = tabPermissions?.fields;
237
+ }
220
238
  } else {
221
- tabPermissions = permissions.fields;
239
+ tabFieldsPermissions = parentFieldsPermissions;
222
240
  }
223
241
  }
224
242
  const tabVersion = {
@@ -227,8 +245,8 @@ const buildVersionField = ({
227
245
  clientSchemaMap,
228
246
  customDiffComponents,
229
247
  entitySlug,
230
- fieldPermissions: tabPermissions,
231
248
  fields: tab.fields,
249
+ fieldsPermissions: tabFieldsPermissions,
232
250
  i18n,
233
251
  modifiedOnly,
234
252
  nestingLevel: nestingLevel + 1,
@@ -254,11 +272,13 @@ const buildVersionField = ({
254
272
  return null;
255
273
  }
256
274
  } else if ('fields' in field) {
257
- let subfieldPermissions = undefined;
258
- if (typeof permissions === 'boolean') {
259
- subfieldPermissions = permissions;
260
- } else if (permissions && typeof permissions === 'object') {
261
- subfieldPermissions = permissions.fields;
275
+ let subFieldsPermissions = undefined;
276
+ if ('name' in field && typeof fieldPermissions !== 'undefined') {
277
+ // Named fields like arrays
278
+ subFieldsPermissions = typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions.fields;
279
+ } else {
280
+ // Unnamed fields like collapsible and row inherit directly from parent permissions
281
+ subFieldsPermissions = parentFieldsPermissions;
262
282
  }
263
283
  if (field.type === 'array' && (valueTo || valueFrom)) {
264
284
  const maxLength = Math.max(Array.isArray(valueTo) ? valueTo.length : 0, Array.isArray(valueFrom) ? valueFrom.length : 0);
@@ -270,8 +290,8 @@ const buildVersionField = ({
270
290
  clientSchemaMap,
271
291
  customDiffComponents,
272
292
  entitySlug,
273
- fieldPermissions: subfieldPermissions,
274
293
  fields: field.fields,
294
+ fieldsPermissions: subFieldsPermissions,
275
295
  i18n,
276
296
  modifiedOnly,
277
297
  nestingLevel: nestingLevel + 1,
@@ -293,8 +313,8 @@ const buildVersionField = ({
293
313
  clientSchemaMap,
294
314
  customDiffComponents,
295
315
  entitySlug,
296
- fieldPermissions: subfieldPermissions,
297
316
  fields: field.fields,
317
+ fieldsPermissions: subFieldsPermissions,
298
318
  i18n,
299
319
  modifiedOnly,
300
320
  nestingLevel: field.type !== 'row' ? nestingLevel + 1 : nestingLevel,
@@ -331,23 +351,26 @@ const buildVersionField = ({
331
351
  fields = toBlock.fields;
332
352
  }
333
353
  }
334
- let blockPermissions = undefined;
335
- if (permissions === true) {
336
- blockPermissions = true;
354
+ let blockFieldsPermissions = undefined;
355
+ // fieldPermissions will be set here, as the blocks field has a name
356
+ if (typeof fieldPermissions === 'boolean') {
357
+ blockFieldsPermissions = fieldPermissions;
358
+ } else if (typeof fieldPermissions?.blocks === 'boolean') {
359
+ blockFieldsPermissions = fieldPermissions.blocks;
337
360
  } else {
338
- const permissionsBlockSpecific = permissions?.blocks?.[blockSlugToMatch];
339
- if (permissionsBlockSpecific === true) {
340
- blockPermissions = true;
361
+ const permissionsBlockSpecific = fieldPermissions?.blocks?.[blockSlugToMatch];
362
+ if (typeof permissionsBlockSpecific === 'boolean') {
363
+ blockFieldsPermissions = permissionsBlockSpecific;
341
364
  } else {
342
- blockPermissions = permissionsBlockSpecific?.fields;
365
+ blockFieldsPermissions = permissionsBlockSpecific?.fields;
343
366
  }
344
367
  }
345
368
  baseVersionField.rows[i] = buildVersionFields({
346
369
  clientSchemaMap,
347
370
  customDiffComponents,
348
371
  entitySlug,
349
- fieldPermissions: blockPermissions,
350
372
  fields,
373
+ fieldsPermissions: blockFieldsPermissions,
351
374
  i18n,
352
375
  modifiedOnly,
353
376
  nestingLevel: nestingLevel + 1,
@@ -379,7 +402,7 @@ const buildVersionField = ({
379
402
  */
380
403
  diffMethod: 'diffWordsWithSpace',
381
404
  field: clientField,
382
- fieldPermissions: typeof permissions === 'object' ? permissions.fields : permissions,
405
+ fieldPermissions: typeof fieldPermissions === 'undefined' ? parentFieldsPermissions : fieldPermissions,
383
406
  parentIsLocalized,
384
407
  nestingLevel: nestingLevel ? nestingLevel : undefined,
385
408
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"buildVersionFields.js","names":["RenderServerComponent","dequal","MissingEditorProp","fieldIsID","fieldShouldBeLocalized","getFieldPaths","getFieldPermissions","getUniqueListBy","tabHasName","diffComponents","buildVersionFields","clientSchemaMap","customDiffComponents","entitySlug","fieldPermissions","fields","i18n","modifiedOnly","nestingLevel","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","req","selectedLocales","versionFromSiblingData","versionToSiblingData","versionFields","fieldIndex","field","indexPath","path","schemaPath","index","clientField","get","payload","logger","error","clientFieldKey","clientSchemaMapKeys","Array","from","keys","msg","Error","versionField","isLocalized","fieldName","name","valueFrom","valueTo","fieldByLocale","locale","localizedVersionField","buildVersionField","baseVersionField","localized","Object","length","push","permissions","read","hasReadPermission","operation","parentName","includes","split","CustomComponent","type","editor","CellComponent","DiffComponent","admin","components","Diff","DefaultComponent","tabs","tabIndex","tab","isNamedTab","tabAsField","tabIndexPath","tabPath","tabSchemaPath","tabPermissions","undefined","tabVersion","label","t","subfieldPermissions","maxLength","Math","max","isArray","rows","i","fromRow","toRow","blockSlugToMatch","blockType","toBlock","blocks","blockReferences","find","block","slug","fromBlockSlugToMatch","fromBlock","blockPermissions","permissionsBlockSpecific","clientDiffProps","comparisonValue","diffMethod","versionValue","serverDiffProps","clientProps","Component","Fallback","importMap","key","serverProps"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { dequal } from 'dequal/lite'\nimport {\n type BaseVersionField,\n type ClientField,\n type ClientFieldSchemaMap,\n type Field,\n type FieldDiffClientProps,\n type FieldDiffServerProps,\n type FieldTypes,\n type FlattenedBlock,\n MissingEditorProp,\n type PayloadComponent,\n type PayloadRequest,\n type SanitizedFieldPermissions,\n type VersionField,\n} from 'payload'\nimport {\n fieldIsID,\n fieldShouldBeLocalized,\n getFieldPaths,\n getFieldPermissions,\n getUniqueListBy,\n tabHasName,\n} from 'payload/shared'\n\nimport { diffComponents } from './fields/index.js'\n\nexport type BuildVersionFieldsArgs = {\n clientSchemaMap: ClientFieldSchemaMap\n customDiffComponents: Partial<\n Record<FieldTypes, PayloadComponent<FieldDiffServerProps, FieldDiffClientProps>>\n >\n entitySlug: string\n fieldPermissions:\n | {\n [key: string]: SanitizedFieldPermissions\n }\n | true\n fields: Field[]\n i18n: I18nClient\n modifiedOnly: boolean\n nestingLevel?: number\n parentIndexPath: string\n parentIsLocalized: boolean\n parentPath: string\n parentSchemaPath: string\n req: PayloadRequest\n selectedLocales: string[]\n versionFromSiblingData: object\n versionToSiblingData: object\n}\n\n/**\n * Build up an object that contains rendered diff components for each field.\n * This is then sent to the client to be rendered.\n *\n * Here, the server is responsible for traversing through the document data and building up this\n * version state object.\n */\nexport const buildVersionFields = ({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fieldPermissions,\n fields,\n i18n,\n modifiedOnly,\n nestingLevel = 0,\n parentIndexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData,\n versionToSiblingData,\n}: BuildVersionFieldsArgs): {\n versionFields: VersionField[]\n} => {\n const versionFields: VersionField[] = []\n let fieldIndex = -1\n\n for (const field of fields) {\n fieldIndex++\n\n if (fieldIsID(field)) {\n continue\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const clientField = clientSchemaMap.get(entitySlug + '.' + schemaPath)\n\n if (!clientField) {\n req.payload.logger.error({\n clientFieldKey: entitySlug + '.' + schemaPath,\n clientSchemaMapKeys: Array.from(clientSchemaMap.keys()),\n msg: 'No client field found for ' + entitySlug + '.' + schemaPath,\n parentPath,\n parentSchemaPath,\n path,\n schemaPath,\n })\n throw new Error('No client field found for ' + entitySlug + '.' + schemaPath)\n }\n\n const versionField: VersionField = {}\n const isLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n const fieldName: null | string = 'name' in field ? field.name : null\n\n const valueFrom = fieldName ? versionFromSiblingData?.[fieldName] : versionFromSiblingData\n const valueTo = fieldName ? versionToSiblingData?.[fieldName] : versionToSiblingData\n\n if (isLocalized) {\n versionField.fieldByLocale = {}\n\n for (const locale of selectedLocales) {\n const localizedVersionField = buildVersionField({\n clientField: clientField as ClientField,\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n field,\n fieldPermissions,\n i18n,\n indexPath,\n locale,\n modifiedOnly,\n nestingLevel,\n parentIsLocalized: true,\n parentPath,\n parentSchemaPath,\n path,\n req,\n schemaPath,\n selectedLocales,\n valueFrom: valueFrom?.[locale],\n valueTo: valueTo?.[locale],\n })\n if (localizedVersionField) {\n versionField.fieldByLocale[locale] = localizedVersionField\n }\n }\n } else {\n const baseVersionField = buildVersionField({\n clientField: clientField as ClientField,\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n field,\n fieldPermissions,\n i18n,\n indexPath,\n modifiedOnly,\n nestingLevel,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n parentPath,\n parentSchemaPath,\n path,\n req,\n schemaPath,\n selectedLocales,\n valueFrom,\n valueTo,\n })\n\n if (baseVersionField) {\n versionField.field = baseVersionField\n }\n }\n\n if (\n versionField.field ||\n (versionField.fieldByLocale && Object.keys(versionField.fieldByLocale).length)\n ) {\n versionFields.push(versionField)\n }\n }\n\n return {\n versionFields,\n }\n}\n\nconst buildVersionField = ({\n clientField,\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n field,\n fieldPermissions,\n i18n,\n indexPath,\n locale,\n modifiedOnly,\n nestingLevel,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n path,\n req,\n schemaPath,\n selectedLocales,\n valueFrom,\n valueTo,\n}: {\n clientField: ClientField\n field: Field\n indexPath: string\n locale?: string\n modifiedOnly?: boolean\n nestingLevel: number\n parentIsLocalized: boolean\n path: string\n schemaPath: string\n valueFrom: unknown\n valueTo: unknown\n} & Omit<\n BuildVersionFieldsArgs,\n 'fields' | 'parentIndexPath' | 'versionFromSiblingData' | 'versionToSiblingData'\n>): BaseVersionField | null => {\n const { permissions, read: hasReadPermission } = getFieldPermissions({\n field,\n operation: 'read',\n parentName: parentPath?.includes('.')\n ? parentPath.split('.')[parentPath.split('.').length - 1]\n : parentPath,\n permissions: fieldPermissions,\n })\n\n if (!hasReadPermission) {\n return null\n }\n\n if (modifiedOnly && dequal(valueFrom, valueTo)) {\n return null\n }\n\n let CustomComponent = customDiffComponents?.[field.type]\n if (field?.type === 'richText') {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (field.editor.CellComponent) {\n CustomComponent = field.editor.DiffComponent\n }\n }\n if (field?.admin?.components?.Diff) {\n CustomComponent = field.admin.components.Diff\n }\n\n const DefaultComponent = diffComponents?.[field.type]\n\n const baseVersionField: BaseVersionField = {\n type: field.type,\n fields: [],\n path,\n schemaPath,\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n baseVersionField.tabs = []\n let tabIndex = -1\n for (const tab of field.tabs) {\n tabIndex++\n const isNamedTab = tabHasName(tab)\n\n const tabAsField = { ...tab, type: 'tab' }\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: tabAsField,\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let tabPermissions: typeof fieldPermissions = undefined\n\n if (typeof permissions === 'boolean') {\n tabPermissions = permissions\n } else if (permissions && typeof permissions === 'object') {\n if ('name' in tab) {\n tabPermissions =\n typeof permissions.fields?.[tab.name] === 'object'\n ? permissions.fields?.[tab.name].fields\n : permissions.fields?.[tab.name]\n } else {\n tabPermissions = permissions.fields\n }\n }\n\n const tabVersion = {\n name: 'name' in tab ? tab.name : null,\n fields: buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fieldPermissions: tabPermissions,\n fields: tab.fields,\n i18n,\n modifiedOnly,\n nestingLevel: nestingLevel + 1,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentIsLocalized: parentIsLocalized || tab.localized,\n parentPath: isNamedTab ? tabPath : 'name' in field ? path : parentPath,\n parentSchemaPath: isNamedTab\n ? tabSchemaPath\n : 'name' in field\n ? schemaPath\n : parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData: 'name' in tab ? valueFrom?.[tab.name] : valueFrom,\n versionToSiblingData: 'name' in tab ? valueTo?.[tab.name] : valueTo,\n }).versionFields,\n label: typeof tab.label === 'function' ? tab.label({ i18n, t: i18n.t }) : tab.label,\n }\n if (tabVersion?.fields?.length) {\n baseVersionField.tabs.push(tabVersion)\n }\n }\n\n if (modifiedOnly && !baseVersionField.tabs.length) {\n return null\n }\n } // At this point, we are dealing with a `row`, `collapsible`, etc\n else if ('fields' in field) {\n let subfieldPermissions: typeof fieldPermissions = undefined\n\n if (typeof permissions === 'boolean') {\n subfieldPermissions = permissions\n } else if (permissions && typeof permissions === 'object') {\n subfieldPermissions = permissions.fields\n }\n if (field.type === 'array' && (valueTo || valueFrom)) {\n const maxLength = Math.max(\n Array.isArray(valueTo) ? valueTo.length : 0,\n Array.isArray(valueFrom) ? valueFrom.length : 0,\n )\n baseVersionField.rows = []\n\n for (let i = 0; i < maxLength; i++) {\n const fromRow = (Array.isArray(valueFrom) && valueFrom?.[i]) || {}\n const toRow = (Array.isArray(valueTo) && valueTo?.[i]) || {}\n\n baseVersionField.rows[i] = buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fieldPermissions: subfieldPermissions,\n fields: field.fields,\n i18n,\n modifiedOnly,\n nestingLevel: nestingLevel + 1,\n parentIndexPath: 'name' in field ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: ('name' in field ? path : parentPath) + '.' + i,\n parentSchemaPath: 'name' in field ? schemaPath : parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData: fromRow,\n versionToSiblingData: toRow,\n }).versionFields\n }\n\n if (!baseVersionField.rows?.length && modifiedOnly) {\n return null\n }\n } else {\n baseVersionField.fields = buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fieldPermissions: subfieldPermissions,\n fields: field.fields,\n i18n,\n modifiedOnly,\n nestingLevel: field.type !== 'row' ? nestingLevel + 1 : nestingLevel,\n parentIndexPath: 'name' in field ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n parentPath: 'name' in field ? path : parentPath,\n parentSchemaPath: 'name' in field ? schemaPath : parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData: valueFrom as object,\n versionToSiblingData: valueTo as object,\n }).versionFields\n\n if (modifiedOnly && !baseVersionField.fields?.length) {\n return null\n }\n }\n } else if (field.type === 'blocks') {\n baseVersionField.rows = []\n\n const maxLength = Math.max(\n Array.isArray(valueTo) ? valueTo.length : 0,\n Array.isArray(valueFrom) ? valueFrom.length : 0,\n )\n\n for (let i = 0; i < maxLength; i++) {\n const fromRow = (Array.isArray(valueFrom) && valueFrom?.[i]) || {}\n const toRow = (Array.isArray(valueTo) && valueTo?.[i]) || {}\n\n const blockSlugToMatch: string = toRow?.blockType ?? fromRow?.blockType\n const toBlock =\n req.payload.blocks[blockSlugToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockSlugToMatch,\n ) as FlattenedBlock | undefined)\n\n let fields = []\n\n if (toRow.blockType === fromRow.blockType) {\n fields = toBlock.fields\n } else {\n const fromBlockSlugToMatch: string = toRow?.blockType ?? fromRow?.blockType\n\n const fromBlock =\n req.payload.blocks[fromBlockSlugToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === fromBlockSlugToMatch,\n ) as FlattenedBlock | undefined)\n\n if (fromBlock) {\n fields = getUniqueListBy<Field>([...toBlock.fields, ...fromBlock.fields], 'name')\n } else {\n fields = toBlock.fields\n }\n }\n\n let blockPermissions: typeof fieldPermissions = undefined\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[blockSlugToMatch]\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n\n baseVersionField.rows[i] = buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fieldPermissions: blockPermissions,\n fields,\n i18n,\n modifiedOnly,\n nestingLevel: nestingLevel + 1,\n parentIndexPath: 'name' in field ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n parentPath: ('name' in field ? path : parentPath) + '.' + i,\n parentSchemaPath: ('name' in field ? schemaPath : parentSchemaPath) + '.' + toBlock.slug,\n req,\n selectedLocales,\n versionFromSiblingData: fromRow,\n versionToSiblingData: toRow,\n }).versionFields\n }\n if (!baseVersionField.rows?.length && modifiedOnly) {\n return null\n }\n }\n\n const clientDiffProps: FieldDiffClientProps = {\n baseVersionField: {\n ...baseVersionField,\n CustomComponent: undefined,\n },\n /**\n * TODO: Change to valueFrom in 4.0\n */\n comparisonValue: valueFrom,\n /**\n * @deprecated remove in 4.0. Each field should handle its own diffing logic\n */\n diffMethod: 'diffWordsWithSpace',\n field: clientField,\n fieldPermissions: typeof permissions === 'object' ? permissions.fields : permissions,\n parentIsLocalized,\n\n nestingLevel: nestingLevel ? nestingLevel : undefined,\n /**\n * TODO: Change to valueTo in 4.0\n */\n versionValue: valueTo,\n }\n if (locale) {\n clientDiffProps.locale = locale\n }\n\n const serverDiffProps: FieldDiffServerProps = {\n ...clientDiffProps,\n clientField,\n field,\n i18n,\n req,\n selectedLocales,\n }\n\n baseVersionField.CustomComponent = RenderServerComponent({\n clientProps: clientDiffProps,\n Component: CustomComponent,\n Fallback: DefaultComponent,\n importMap: req.payload.importMap,\n key: 'diff component',\n serverProps: serverDiffProps,\n })\n\n return baseVersionField\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildVersionFields.js","names":["RenderServerComponent","dequal","MissingEditorProp","fieldIsID","fieldShouldBeLocalized","getFieldPaths","getUniqueListBy","tabHasName","diffComponents","buildVersionFields","clientSchemaMap","customDiffComponents","entitySlug","fields","fieldsPermissions","i18n","modifiedOnly","nestingLevel","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","req","selectedLocales","versionFromSiblingData","versionToSiblingData","versionFields","fieldIndex","field","indexPath","path","schemaPath","index","clientField","get","payload","logger","error","clientFieldKey","clientSchemaMapKeys","Array","from","keys","msg","Error","versionField","isLocalized","fieldName","name","valueFrom","valueTo","fieldByLocale","locale","localizedVersionField","buildVersionField","parentFieldsPermissions","baseVersionField","localized","Object","length","push","hasReadPermission","fieldPermissions","undefined","read","CustomComponent","type","editor","CellComponent","DiffComponent","admin","components","Diff","DefaultComponent","tabs","tabIndex","tab","isNamedTab","tabAsField","tabIndexPath","tabPath","tabSchemaPath","tabFieldsPermissions","tabPermissions","tabVersion","label","t","subFieldsPermissions","maxLength","Math","max","isArray","rows","i","fromRow","toRow","blockSlugToMatch","blockType","toBlock","blocks","blockReferences","find","block","slug","fromBlockSlugToMatch","fromBlock","blockFieldsPermissions","permissionsBlockSpecific","clientDiffProps","comparisonValue","diffMethod","versionValue","serverDiffProps","clientProps","Component","Fallback","importMap","key","serverProps"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { dequal } from 'dequal/lite'\nimport {\n type BaseVersionField,\n type ClientField,\n type ClientFieldSchemaMap,\n type Field,\n type FieldDiffClientProps,\n type FieldDiffServerProps,\n type FieldTypes,\n type FlattenedBlock,\n MissingEditorProp,\n type PayloadComponent,\n type PayloadRequest,\n type SanitizedFieldPermissions,\n type SanitizedFieldsPermissions,\n type VersionField,\n} from 'payload'\nimport {\n fieldIsID,\n fieldShouldBeLocalized,\n getFieldPaths,\n getUniqueListBy,\n tabHasName,\n} from 'payload/shared'\n\nimport { diffComponents } from './fields/index.js'\n\nexport type BuildVersionFieldsArgs = {\n clientSchemaMap: ClientFieldSchemaMap\n customDiffComponents: Partial<\n Record<FieldTypes, PayloadComponent<FieldDiffServerProps, FieldDiffClientProps>>\n >\n entitySlug: string\n fields: Field[]\n fieldsPermissions: SanitizedFieldsPermissions\n i18n: I18nClient\n modifiedOnly: boolean\n nestingLevel?: number\n parentIndexPath: string\n parentIsLocalized: boolean\n parentPath: string\n parentSchemaPath: string\n req: PayloadRequest\n selectedLocales: string[]\n versionFromSiblingData: object\n versionToSiblingData: object\n}\n\n/**\n * Build up an object that contains rendered diff components for each field.\n * This is then sent to the client to be rendered.\n *\n * Here, the server is responsible for traversing through the document data and building up this\n * version state object.\n */\nexport const buildVersionFields = ({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fields,\n fieldsPermissions,\n i18n,\n modifiedOnly,\n nestingLevel = 0,\n parentIndexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData,\n versionToSiblingData,\n}: BuildVersionFieldsArgs): {\n versionFields: VersionField[]\n} => {\n const versionFields: VersionField[] = []\n let fieldIndex = -1\n\n for (const field of fields) {\n fieldIndex++\n\n if (fieldIsID(field)) {\n continue\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const clientField = clientSchemaMap.get(entitySlug + '.' + schemaPath)\n\n if (!clientField) {\n req.payload.logger.error({\n clientFieldKey: entitySlug + '.' + schemaPath,\n clientSchemaMapKeys: Array.from(clientSchemaMap.keys()),\n msg: 'No client field found for ' + entitySlug + '.' + schemaPath,\n parentPath,\n parentSchemaPath,\n path,\n schemaPath,\n })\n throw new Error('No client field found for ' + entitySlug + '.' + schemaPath)\n }\n\n const versionField: VersionField = {}\n const isLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n const fieldName: null | string = 'name' in field ? field.name : null\n\n const valueFrom = fieldName ? versionFromSiblingData?.[fieldName] : versionFromSiblingData\n const valueTo = fieldName ? versionToSiblingData?.[fieldName] : versionToSiblingData\n\n if (isLocalized) {\n versionField.fieldByLocale = {}\n\n for (const locale of selectedLocales) {\n const localizedVersionField = buildVersionField({\n clientField: clientField as ClientField,\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n field,\n i18n,\n indexPath,\n locale,\n modifiedOnly,\n nestingLevel,\n parentFieldsPermissions: fieldsPermissions,\n parentIsLocalized: true,\n parentPath,\n parentSchemaPath,\n path,\n req,\n schemaPath,\n selectedLocales,\n valueFrom: valueFrom?.[locale],\n valueTo: valueTo?.[locale],\n })\n if (localizedVersionField) {\n versionField.fieldByLocale[locale] = localizedVersionField\n }\n }\n } else {\n const baseVersionField = buildVersionField({\n clientField: clientField as ClientField,\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n field,\n i18n,\n indexPath,\n modifiedOnly,\n nestingLevel,\n parentFieldsPermissions: fieldsPermissions,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n parentPath,\n parentSchemaPath,\n path,\n req,\n schemaPath,\n selectedLocales,\n valueFrom,\n valueTo,\n })\n\n if (baseVersionField) {\n versionField.field = baseVersionField\n }\n }\n\n if (\n versionField.field ||\n (versionField.fieldByLocale && Object.keys(versionField.fieldByLocale).length)\n ) {\n versionFields.push(versionField)\n }\n }\n\n return {\n versionFields,\n }\n}\n\nconst buildVersionField = ({\n clientField,\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n field,\n i18n,\n indexPath,\n locale,\n modifiedOnly,\n nestingLevel,\n parentFieldsPermissions,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n path,\n req,\n schemaPath,\n selectedLocales,\n valueFrom,\n valueTo,\n}: {\n clientField: ClientField\n field: Field\n indexPath: string\n locale?: string\n modifiedOnly?: boolean\n nestingLevel: number\n parentFieldsPermissions: SanitizedFieldsPermissions\n parentIsLocalized: boolean\n path: string\n schemaPath: string\n valueFrom: unknown\n valueTo: unknown\n} & Omit<\n BuildVersionFieldsArgs,\n | 'fields'\n | 'fieldsPermissions'\n | 'parentIndexPath'\n | 'versionFromSiblingData'\n | 'versionToSiblingData'\n>): BaseVersionField | null => {\n let hasReadPermission: boolean = false\n let fieldPermissions: SanitizedFieldPermissions | undefined = undefined\n\n if (typeof parentFieldsPermissions === 'boolean') {\n hasReadPermission = parentFieldsPermissions\n fieldPermissions = parentFieldsPermissions\n } else {\n if ('name' in field) {\n fieldPermissions = parentFieldsPermissions?.[field.name]\n if (typeof fieldPermissions === 'boolean') {\n hasReadPermission = fieldPermissions\n } else if (typeof fieldPermissions?.read === 'boolean') {\n hasReadPermission = fieldPermissions.read\n }\n } else {\n // If the field is unnamed and parentFieldsPermissions is an object, its sub-fields will decide their read permissions state.\n // As far as this field is concerned, we are allowed to read it, as we need to reach its sub-fields to determine their read permissions.\n hasReadPermission = true\n }\n }\n\n if (!hasReadPermission) {\n // HasReadPermission is only valid if the field has a name. E.g. for a tabs field it would incorrectly return `false`.\n return null\n }\n\n if (modifiedOnly && dequal(valueFrom, valueTo)) {\n return null\n }\n\n let CustomComponent = customDiffComponents?.[field.type]\n if (field?.type === 'richText') {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (field.editor.CellComponent) {\n CustomComponent = field.editor.DiffComponent\n }\n }\n if (field?.admin?.components?.Diff) {\n CustomComponent = field.admin.components.Diff\n }\n\n const DefaultComponent = diffComponents?.[field.type]\n\n const baseVersionField: BaseVersionField = {\n type: field.type,\n fields: [],\n path,\n schemaPath,\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n baseVersionField.tabs = []\n let tabIndex = -1\n for (const tab of field.tabs) {\n tabIndex++\n const isNamedTab = tabHasName(tab)\n\n const tabAsField = { ...tab, type: 'tab' }\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: tabAsField,\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n // At this point, permissions === fieldPermissions (FieldsPermissions)\n\n let tabFieldsPermissions: SanitizedFieldsPermissions = undefined\n\n // The tabs field does not have its own permissions as it's unnamed => use parentFieldsPermissions\n if (typeof parentFieldsPermissions === 'boolean') {\n tabFieldsPermissions = parentFieldsPermissions\n } else {\n if ('name' in tab) {\n const tabPermissions = parentFieldsPermissions?.[tab.name]\n if (typeof tabPermissions === 'boolean') {\n tabFieldsPermissions = tabPermissions\n } else {\n tabFieldsPermissions = tabPermissions?.fields\n }\n } else {\n tabFieldsPermissions = parentFieldsPermissions\n }\n }\n\n const tabVersion = {\n name: 'name' in tab ? tab.name : null,\n fields: buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fields: tab.fields,\n fieldsPermissions: tabFieldsPermissions,\n i18n,\n modifiedOnly,\n nestingLevel: nestingLevel + 1,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentIsLocalized: parentIsLocalized || tab.localized,\n parentPath: isNamedTab ? tabPath : 'name' in field ? path : parentPath,\n parentSchemaPath: isNamedTab\n ? tabSchemaPath\n : 'name' in field\n ? schemaPath\n : parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData: 'name' in tab ? valueFrom?.[tab.name] : valueFrom,\n versionToSiblingData: 'name' in tab ? valueTo?.[tab.name] : valueTo,\n }).versionFields,\n label: typeof tab.label === 'function' ? tab.label({ i18n, t: i18n.t }) : tab.label,\n }\n if (tabVersion?.fields?.length) {\n baseVersionField.tabs.push(tabVersion)\n }\n }\n\n if (modifiedOnly && !baseVersionField.tabs.length) {\n return null\n }\n } // At this point, we are dealing with a `row`, `collapsible`, array`, etc\n else if ('fields' in field) {\n let subFieldsPermissions: SanitizedFieldsPermissions = undefined\n\n if ('name' in field && typeof fieldPermissions !== 'undefined') {\n // Named fields like arrays\n subFieldsPermissions =\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions.fields\n } else {\n // Unnamed fields like collapsible and row inherit directly from parent permissions\n subFieldsPermissions = parentFieldsPermissions\n }\n\n if (field.type === 'array' && (valueTo || valueFrom)) {\n const maxLength = Math.max(\n Array.isArray(valueTo) ? valueTo.length : 0,\n Array.isArray(valueFrom) ? valueFrom.length : 0,\n )\n baseVersionField.rows = []\n\n for (let i = 0; i < maxLength; i++) {\n const fromRow = (Array.isArray(valueFrom) && valueFrom?.[i]) || {}\n const toRow = (Array.isArray(valueTo) && valueTo?.[i]) || {}\n\n baseVersionField.rows[i] = buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fields: field.fields,\n fieldsPermissions: subFieldsPermissions,\n i18n,\n modifiedOnly,\n nestingLevel: nestingLevel + 1,\n parentIndexPath: 'name' in field ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: ('name' in field ? path : parentPath) + '.' + i,\n parentSchemaPath: 'name' in field ? schemaPath : parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData: fromRow,\n versionToSiblingData: toRow,\n }).versionFields\n }\n\n if (!baseVersionField.rows?.length && modifiedOnly) {\n return null\n }\n } else {\n baseVersionField.fields = buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fields: field.fields,\n fieldsPermissions: subFieldsPermissions,\n i18n,\n modifiedOnly,\n nestingLevel: field.type !== 'row' ? nestingLevel + 1 : nestingLevel,\n parentIndexPath: 'name' in field ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n parentPath: 'name' in field ? path : parentPath,\n parentSchemaPath: 'name' in field ? schemaPath : parentSchemaPath,\n req,\n selectedLocales,\n versionFromSiblingData: valueFrom as object,\n versionToSiblingData: valueTo as object,\n }).versionFields\n\n if (modifiedOnly && !baseVersionField.fields?.length) {\n return null\n }\n }\n } else if (field.type === 'blocks') {\n baseVersionField.rows = []\n\n const maxLength = Math.max(\n Array.isArray(valueTo) ? valueTo.length : 0,\n Array.isArray(valueFrom) ? valueFrom.length : 0,\n )\n\n for (let i = 0; i < maxLength; i++) {\n const fromRow = (Array.isArray(valueFrom) && valueFrom?.[i]) || {}\n const toRow = (Array.isArray(valueTo) && valueTo?.[i]) || {}\n\n const blockSlugToMatch: string = toRow?.blockType ?? fromRow?.blockType\n const toBlock =\n req.payload.blocks[blockSlugToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockSlugToMatch,\n ) as FlattenedBlock | undefined)\n\n let fields = []\n\n if (toRow.blockType === fromRow.blockType) {\n fields = toBlock.fields\n } else {\n const fromBlockSlugToMatch: string = toRow?.blockType ?? fromRow?.blockType\n\n const fromBlock =\n req.payload.blocks[fromBlockSlugToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === fromBlockSlugToMatch,\n ) as FlattenedBlock | undefined)\n\n if (fromBlock) {\n fields = getUniqueListBy<Field>([...toBlock.fields, ...fromBlock.fields], 'name')\n } else {\n fields = toBlock.fields\n }\n }\n\n let blockFieldsPermissions: SanitizedFieldsPermissions = undefined\n\n // fieldPermissions will be set here, as the blocks field has a name\n if (typeof fieldPermissions === 'boolean') {\n blockFieldsPermissions = fieldPermissions\n } else if (typeof fieldPermissions?.blocks === 'boolean') {\n blockFieldsPermissions = fieldPermissions.blocks\n } else {\n const permissionsBlockSpecific = fieldPermissions?.blocks?.[blockSlugToMatch]\n if (typeof permissionsBlockSpecific === 'boolean') {\n blockFieldsPermissions = permissionsBlockSpecific\n } else {\n blockFieldsPermissions = permissionsBlockSpecific?.fields\n }\n }\n\n baseVersionField.rows[i] = buildVersionFields({\n clientSchemaMap,\n customDiffComponents,\n entitySlug,\n fields,\n fieldsPermissions: blockFieldsPermissions,\n i18n,\n modifiedOnly,\n nestingLevel: nestingLevel + 1,\n parentIndexPath: 'name' in field ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || ('localized' in field && field.localized),\n parentPath: ('name' in field ? path : parentPath) + '.' + i,\n parentSchemaPath: ('name' in field ? schemaPath : parentSchemaPath) + '.' + toBlock.slug,\n req,\n selectedLocales,\n versionFromSiblingData: fromRow,\n versionToSiblingData: toRow,\n }).versionFields\n }\n if (!baseVersionField.rows?.length && modifiedOnly) {\n return null\n }\n }\n\n const clientDiffProps: FieldDiffClientProps = {\n baseVersionField: {\n ...baseVersionField,\n CustomComponent: undefined,\n },\n /**\n * TODO: Change to valueFrom in 4.0\n */\n comparisonValue: valueFrom,\n /**\n * @deprecated remove in 4.0. Each field should handle its own diffing logic\n */\n diffMethod: 'diffWordsWithSpace',\n field: clientField,\n fieldPermissions:\n typeof fieldPermissions === 'undefined' ? parentFieldsPermissions : fieldPermissions,\n parentIsLocalized,\n\n nestingLevel: nestingLevel ? nestingLevel : undefined,\n /**\n * TODO: Change to valueTo in 4.0\n */\n versionValue: valueTo,\n }\n if (locale) {\n clientDiffProps.locale = locale\n }\n\n const serverDiffProps: FieldDiffServerProps = {\n ...clientDiffProps,\n clientField,\n field,\n i18n,\n req,\n selectedLocales,\n }\n\n baseVersionField.CustomComponent = RenderServerComponent({\n clientProps: clientDiffProps,\n Component: CustomComponent,\n Fallback: DefaultComponent,\n importMap: req.payload.importMap,\n key: 'diff component',\n serverProps: serverDiffProps,\n })\n\n return baseVersionField\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"generateLabelFromValue.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAA;AAI5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAE5D,eAAO,MAAM,sBAAsB,sDAMhC;IACD,KAAK,EAAE,iBAAiB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,0BAA0B,CAAA;CAClC,KAAG,MAgDH,CAAA"}
1
+ {"version":3,"file":"generateLabelFromValue.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAA;AAS5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAE5D,eAAO,MAAM,sBAAsB,sDAMhC;IACD,KAAK,EAAE,iBAAiB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,0BAA0B,CAAA;CAClC,KAAG,MAqDH,CAAA"}
@@ -1,4 +1,4 @@
1
- import { fieldAffectsData, fieldIsPresentationalOnly, fieldShouldBeLocalized } from 'payload/shared';
1
+ import { fieldAffectsData, fieldIsPresentationalOnly, fieldShouldBeLocalized, flattenTopLevelFields } from 'payload/shared';
2
2
  export const generateLabelFromValue = ({
3
3
  field,
4
4
  locale,
@@ -18,7 +18,10 @@ export const generateLabelFromValue = ({
18
18
  }
19
19
  const relatedCollection = req.payload.collections[relationTo].config;
20
20
  const useAsTitle = relatedCollection?.admin?.useAsTitle;
21
- const useAsTitleField = relatedCollection.fields.find(f => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle);
21
+ const flattenedRelatedCollectionFields = flattenTopLevelFields(relatedCollection.fields, {
22
+ moveSubFieldsToTop: true
23
+ });
24
+ const useAsTitleField = flattenedRelatedCollectionFields.find(f => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle);
22
25
  let titleFieldIsLocalized = false;
23
26
  if (useAsTitleField && fieldAffectsData(useAsTitleField)) {
24
27
  titleFieldIsLocalized = fieldShouldBeLocalized({
@@ -1 +1 @@
1
- {"version":3,"file":"generateLabelFromValue.js","names":["fieldAffectsData","fieldIsPresentationalOnly","fieldShouldBeLocalized","generateLabelFromValue","field","locale","parentIsLocalized","req","value","relatedDoc","relationTo","valueToReturn","relatedCollection","payload","collections","config","useAsTitle","admin","useAsTitleField","fields","find","f","name","titleFieldIsLocalized","String","id","JSON","stringify"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.ts"],"sourcesContent":["import type { PayloadRequest, RelationshipField, TypeWithID } from 'payload'\n\nimport { fieldAffectsData, fieldIsPresentationalOnly, fieldShouldBeLocalized } from 'payload/shared'\n\nimport type { PopulatedRelationshipValue } from './index.js'\n\nexport const generateLabelFromValue = ({\n field,\n locale,\n parentIsLocalized,\n req,\n value,\n}: {\n field: RelationshipField\n locale: string\n parentIsLocalized: boolean\n req: PayloadRequest\n value: PopulatedRelationshipValue\n}): string => {\n let relatedDoc: TypeWithID\n let relationTo: string = field.relationTo as string\n let valueToReturn: string = ''\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n relationTo = value.relationTo\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = req.payload.collections[relationTo].config\n\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = fieldShouldBeLocalized({ field: useAsTitleField, parentIsLocalized })\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else {\n valueToReturn = String(relatedDoc.id)\n }\n\n if (\n typeof valueToReturn === 'object' &&\n valueToReturn &&\n titleFieldIsLocalized &&\n valueToReturn?.[locale]\n ) {\n valueToReturn = valueToReturn[locale]\n }\n\n if (\n (valueToReturn && typeof valueToReturn === 'object' && valueToReturn !== null) ||\n typeof valueToReturn !== 'string'\n ) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,yBAAyB,EAAEC,sBAAsB,QAAQ;AAIpF,OAAO,MAAMC,sBAAA,GAAyBA,CAAC;EACrCC,KAAK;EACLC,MAAM;EACNC,iBAAiB;EACjBC,GAAG;EACHC;AAAK,CAON;EACC,IAAIC,UAAA;EACJ,IAAIC,UAAA,GAAqBN,KAAA,CAAMM,UAAU;EACzC,IAAIC,aAAA,GAAwB;EAE5B,IAAI,OAAOH,KAAA,KAAU,YAAY,gBAAgBA,KAAA,EAAO;IACtDC,UAAA,GAAaD,KAAA,CAAMA,KAAK;IACxBE,UAAA,GAAaF,KAAA,CAAME,UAAU;EAC/B,OAAO;IACL;IACAD,UAAA,GAAaD,KAAA;EACf;EAEA,MAAMI,iBAAA,GAAoBL,GAAA,CAAIM,OAAO,CAACC,WAAW,CAACJ,UAAA,CAAW,CAACK,MAAM;EAEpE,MAAMC,UAAA,GAAaJ,iBAAA,EAAmBK,KAAA,EAAOD,UAAA;EAC7C,MAAME,eAAA,GAAkBN,iBAAA,CAAkBO,MAAM,CAACC,IAAI,CAClDC,CAAA,IAAMrB,gBAAA,CAAiBqB,CAAA,KAAM,CAACpB,yBAAA,CAA0BoB,CAAA,KAAMA,CAAA,CAAEC,IAAI,KAAKN,UAAA;EAE5E,IAAIO,qBAAA,GAAwB;EAE5B,IAAIL,eAAA,IAAmBlB,gBAAA,CAAiBkB,eAAA,GAAkB;IACxDK,qBAAA,GAAwBrB,sBAAA,CAAuB;MAAEE,KAAA,EAAOc,eAAA;MAAiBZ;IAAkB;EAC7F;EAEA,IAAI,OAAOG,UAAA,GAAaO,UAAA,CAAW,KAAK,aAAa;IACnDL,aAAA,GAAgBF,UAAU,CAACO,UAAA,CAAW;EACxC,OAAO;IACLL,aAAA,GAAgBa,MAAA,CAAOf,UAAA,CAAWgB,EAAE;EACtC;EAEA,IACE,OAAOd,aAAA,KAAkB,YACzBA,aAAA,IACAY,qBAAA,IACAZ,aAAA,GAAgBN,MAAA,CAAO,EACvB;IACAM,aAAA,GAAgBA,aAAa,CAACN,MAAA,CAAO;EACvC;EAEA,IACEM,aAAC,IAAiB,OAAOA,aAAA,KAAkB,YAAYA,aAAA,KAAkB,QACzE,OAAOA,aAAA,KAAkB,UACzB;IACAA,aAAA,GAAgBe,IAAA,CAAKC,SAAS,CAAChB,aAAA;EACjC;EAEA,OAAOA,aAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"generateLabelFromValue.js","names":["fieldAffectsData","fieldIsPresentationalOnly","fieldShouldBeLocalized","flattenTopLevelFields","generateLabelFromValue","field","locale","parentIsLocalized","req","value","relatedDoc","relationTo","valueToReturn","relatedCollection","payload","collections","config","useAsTitle","admin","flattenedRelatedCollectionFields","fields","moveSubFieldsToTop","useAsTitleField","find","f","name","titleFieldIsLocalized","String","id","JSON","stringify"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.ts"],"sourcesContent":["import type { PayloadRequest, RelationshipField, TypeWithID } from 'payload'\n\nimport {\n fieldAffectsData,\n fieldIsPresentationalOnly,\n fieldShouldBeLocalized,\n flattenTopLevelFields,\n} from 'payload/shared'\n\nimport type { PopulatedRelationshipValue } from './index.js'\n\nexport const generateLabelFromValue = ({\n field,\n locale,\n parentIsLocalized,\n req,\n value,\n}: {\n field: RelationshipField\n locale: string\n parentIsLocalized: boolean\n req: PayloadRequest\n value: PopulatedRelationshipValue\n}): string => {\n let relatedDoc: TypeWithID\n let relationTo: string = field.relationTo as string\n let valueToReturn: string = ''\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n relationTo = value.relationTo\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = req.payload.collections[relationTo].config\n\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n\n const flattenedRelatedCollectionFields = flattenTopLevelFields(relatedCollection.fields, {\n moveSubFieldsToTop: true,\n })\n\n const useAsTitleField = flattenedRelatedCollectionFields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = fieldShouldBeLocalized({ field: useAsTitleField, parentIsLocalized })\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else {\n valueToReturn = String(relatedDoc.id)\n }\n\n if (\n typeof valueToReturn === 'object' &&\n valueToReturn &&\n titleFieldIsLocalized &&\n valueToReturn?.[locale]\n ) {\n valueToReturn = valueToReturn[locale]\n }\n\n if (\n (valueToReturn && typeof valueToReturn === 'object' && valueToReturn !== null) ||\n typeof valueToReturn !== 'string'\n ) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n"],"mappings":"AAEA,SACEA,gBAAgB,EAChBC,yBAAyB,EACzBC,sBAAsB,EACtBC,qBAAqB,QAChB;AAIP,OAAO,MAAMC,sBAAA,GAAyBA,CAAC;EACrCC,KAAK;EACLC,MAAM;EACNC,iBAAiB;EACjBC,GAAG;EACHC;AAAK,CAON;EACC,IAAIC,UAAA;EACJ,IAAIC,UAAA,GAAqBN,KAAA,CAAMM,UAAU;EACzC,IAAIC,aAAA,GAAwB;EAE5B,IAAI,OAAOH,KAAA,KAAU,YAAY,gBAAgBA,KAAA,EAAO;IACtDC,UAAA,GAAaD,KAAA,CAAMA,KAAK;IACxBE,UAAA,GAAaF,KAAA,CAAME,UAAU;EAC/B,OAAO;IACL;IACAD,UAAA,GAAaD,KAAA;EACf;EAEA,MAAMI,iBAAA,GAAoBL,GAAA,CAAIM,OAAO,CAACC,WAAW,CAACJ,UAAA,CAAW,CAACK,MAAM;EAEpE,MAAMC,UAAA,GAAaJ,iBAAA,EAAmBK,KAAA,EAAOD,UAAA;EAE7C,MAAME,gCAAA,GAAmChB,qBAAA,CAAsBU,iBAAA,CAAkBO,MAAM,EAAE;IACvFC,kBAAA,EAAoB;EACtB;EAEA,MAAMC,eAAA,GAAkBH,gCAAA,CAAiCI,IAAI,CAC1DC,CAAA,IAAMxB,gBAAA,CAAiBwB,CAAA,KAAM,CAACvB,yBAAA,CAA0BuB,CAAA,KAAMA,CAAA,CAAEC,IAAI,KAAKR,UAAA;EAE5E,IAAIS,qBAAA,GAAwB;EAE5B,IAAIJ,eAAA,IAAmBtB,gBAAA,CAAiBsB,eAAA,GAAkB;IACxDI,qBAAA,GAAwBxB,sBAAA,CAAuB;MAAEG,KAAA,EAAOiB,eAAA;MAAiBf;IAAkB;EAC7F;EAEA,IAAI,OAAOG,UAAA,GAAaO,UAAA,CAAW,KAAK,aAAa;IACnDL,aAAA,GAAgBF,UAAU,CAACO,UAAA,CAAW;EACxC,OAAO;IACLL,aAAA,GAAgBe,MAAA,CAAOjB,UAAA,CAAWkB,EAAE;EACtC;EAEA,IACE,OAAOhB,aAAA,KAAkB,YACzBA,aAAA,IACAc,qBAAA,IACAd,aAAA,GAAgBN,MAAA,CAAO,EACvB;IACAM,aAAA,GAAgBA,aAAa,CAACN,MAAA,CAAO;EACvC;EAEA,IACEM,aAAC,IAAiB,OAAOA,aAAA,KAAkB,YAAYA,aAAA,KAAkB,QACzE,OAAOA,aAAA,KAAkB,UACzB;IACAA,aAAA,GAAgBiB,IAAA,CAAKC,SAAS,CAAClB,aAAA;EACjC;EAEA,OAAOA,aAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAKxB,MAAM,SAAS,CAAA;AAOhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,wBAAsB,WAAW,CAAC,KAAK,EAAE,uBAAuB,8BA4Z/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAKxB,MAAM,SAAS,CAAA;AAOhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,wBAAsB,WAAW,CAAC,KAAK,EAAE,uBAAuB,8BAsZ/D"}
@@ -190,8 +190,8 @@ export async function VersionView(props) {
190
190
  clientSchemaMap,
191
191
  customDiffComponents: {},
192
192
  entitySlug: collectionSlug || globalSlug,
193
- fieldPermissions: docPermissions?.fields,
194
193
  fields: (collectionConfig || globalConfig)?.fields,
194
+ fieldsPermissions: docPermissions?.fields,
195
195
  i18n,
196
196
  modifiedOnly,
197
197
  parentIndexPath: '',
@@ -325,8 +325,6 @@ export async function VersionView(props) {
325
325
  value: option.value
326
326
  });
327
327
  }
328
- const useAsTitleFieldName = collectionConfig?.admin?.useAsTitle || 'id';
329
- const versionToUseAsTitle = useAsTitleFieldName === 'id' ? String(versionTo.parent) : versionTo.version?.[useAsTitleFieldName];
330
328
  return /*#__PURE__*/_jsx(DefaultVersionView, {
331
329
  canUpdate: docPermissions?.update,
332
330
  modifiedOnly: modifiedOnly,
@@ -342,8 +340,7 @@ export async function VersionView(props) {
342
340
  labelStyle: 'pill'
343
341
  }),
344
342
  versionToID: versionTo.id,
345
- versionToStatus: versionTo.version?._status,
346
- versionToUseAsTitle: versionToUseAsTitle
343
+ versionToStatus: versionTo.version?._status
347
344
  });
348
345
  }
349
346
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["formatDate","getClientConfig","getClientSchemaMap","getSchemaMap","notFound","React","DefaultVersionView","fetchLatestVersion","fetchVersion","fetchVersions","RenderDiff","getVersionLabel","VersionPillLabel","VersionView","props","hasPublishedDoc","i18n","initPageResult","routeSegments","searchParams","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","localization","user","versionToID","length","collectionSlug","slug","globalSlug","draftsEnabled","versions","drafts","localeCodesFromParams","localeCodes","JSON","parse","versionFromIDFromParams","versionFrom","modifiedOnly","docPermissions","collections","globals","versionTo","depth","locale","overrideAccess","previousVersionResult","versionFromResult","currentlyPublishedVersion","latestDraftVersion","previousPublishedVersionResult","Promise","all","draft","limit","parentID","sort","where","and","updatedAt","less_than","resolve","status","equals","previousVersion","docs","previousPublishedVersion","selectedLocales","locales","code","find","push","filterAvailableLocales","map","schemaMap","clientSchemaMap","importMap","RenderedDiff","customDiffComponents","entitySlug","fieldPermissions","fields","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","versionFromSiblingData","version","versionToSiblingData","versionToCreatedAtFormatted","date","Date","pattern","admin","dateFormat","formatPill","doc","labelOverride","labelStyle","labelSuffix","_jsx","labelFirst","versionFromOptions","t","value","publishedNewerThanDraft","some","option","a","b","getTime","versionToIsVersionFrom","versionFromComparisonOptions","isVersionTo","alreadyAdded","existingOption","otherOptionsWithSameID","filter","_jsxs","optionWithSameID","index","label","Fragment","undefined","useAsTitleFieldName","useAsTitle","versionToUseAsTitle","String","parent","canUpdate","update","versionFromCreatedAt","createdAt","versionFromID","versionToCreatedAt","VersionToCreatedAtLabel","versionToStatus","_status"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n DocumentViewServerProps,\n Locale,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n TypeWithVersion,\n} from 'payload'\n\nimport { formatDate } from '@payloadcms/ui/shared'\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 type { CompareOption } from './Default/types.js'\n\nimport { DefaultVersionView } from './Default/index.js'\nimport { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js'\nimport { RenderDiff } from './RenderFieldsToDiff/index.js'\nimport { getVersionLabel } from './VersionPillLabel/getVersionLabel.js'\nimport { VersionPillLabel } from './VersionPillLabel/VersionPillLabel.js'\n\nexport async function VersionView(props: DocumentViewServerProps) {\n const { hasPublishedDoc, i18n, initPageResult, routeSegments, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config, config: { localization } } = {}, user } = {},\n } = initPageResult\n\n const versionToID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const draftsEnabled = (collectionConfig ?? globalConfig)?.versions?.drafts\n\n const localeCodesFromParams = searchParams.localeCodes\n ? JSON.parse(searchParams.localeCodes as string)\n : null\n\n const versionFromIDFromParams = searchParams.versionFrom as string\n\n const modifiedOnly: boolean = searchParams.modifiedOnly === 'false' ? false : true\n\n const docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission = collectionSlug\n ? permissions.collections[collectionSlug]\n : permissions.globals[globalSlug]\n\n const versionTo = await fetchVersion<{\n _status?: string\n }>({\n id: versionToID,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (!versionTo) {\n return notFound()\n }\n\n const [\n previousVersionResult,\n versionFromResult,\n currentlyPublishedVersion,\n latestDraftVersion,\n previousPublishedVersionResult,\n ] = await Promise.all([\n // Previous version (the one before the versionTo)\n fetchVersions({\n collectionSlug,\n // If versionFromIDFromParams is provided, the previous version is only used in the version comparison dropdown => depth 0 is enough.\n // If it's not provided, this is used as `versionFrom` in the comparison, which expects populated data => depth 1 is needed.\n depth: versionFromIDFromParams ? 0 : 1,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n ],\n },\n }),\n // Version from ID from params\n (versionFromIDFromParams\n ? fetchVersion({\n id: versionFromIDFromParams,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n : Promise.resolve(null)) as Promise<null | TypeWithVersion<object>>,\n // Currently published version - do note: currently published != latest published, as an unpublished version can be the latest published\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n // Latest draft version\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n // Previous published version\n fetchVersions({\n collectionSlug,\n depth: 0,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n }),\n ])\n\n const previousVersion: null | TypeWithVersion<object> = previousVersionResult?.docs?.[0] ?? null\n\n const versionFrom =\n versionFromResult ||\n // By default, we'll compare the previous version. => versionFrom = version previous to versionTo\n previousVersion\n\n // Previous published version before the versionTo\n const previousPublishedVersion = previousPublishedVersionResult?.docs?.[0] ?? null\n\n let selectedLocales: string[] = []\n if (localization) {\n let locales: Locale[] = []\n if (localeCodesFromParams) {\n for (const code of localeCodesFromParams) {\n const locale = localization.locales.find((locale) => locale.code === code)\n if (!locale) {\n continue\n }\n locales.push(locale)\n }\n } else {\n locales = localization.locales\n }\n\n if (localization.filterAvailableLocales) {\n locales = (await localization.filterAvailableLocales({ locales, req })) || []\n }\n\n selectedLocales = locales.map((locale) => locale.code)\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 const RenderedDiff = RenderDiff({\n clientSchemaMap,\n customDiffComponents: {},\n entitySlug: collectionSlug || globalSlug,\n fieldPermissions: docPermissions?.fields,\n fields: (collectionConfig || globalConfig)?.fields,\n i18n,\n modifiedOnly,\n parentIndexPath: '',\n parentIsLocalized: false,\n parentPath: '',\n parentSchemaPath: '',\n req,\n selectedLocales,\n versionFromSiblingData: {\n ...versionFrom?.version,\n updatedAt: versionFrom?.updatedAt,\n },\n versionToSiblingData: {\n ...versionTo.version,\n updatedAt: versionTo.updatedAt,\n },\n })\n\n const versionToCreatedAtFormatted = versionTo.updatedAt\n ? formatDate({\n date:\n typeof versionTo.updatedAt === 'string'\n ? new Date(versionTo.updatedAt)\n : (versionTo.updatedAt as Date),\n i18n,\n pattern: config.admin.dateFormat,\n })\n : ''\n\n const formatPill = ({\n doc,\n labelOverride,\n labelStyle,\n labelSuffix,\n }: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n labelStyle?: 'pill' | 'text'\n labelSuffix?: React.ReactNode\n }): React.ReactNode => {\n return (\n <VersionPillLabel\n currentlyPublishedVersion={currentlyPublishedVersion}\n doc={doc}\n key={doc.id}\n labelFirst={true}\n labelOverride={labelOverride}\n labelStyle={labelStyle ?? 'text'}\n labelSuffix={labelSuffix}\n latestDraftVersion={latestDraftVersion}\n />\n )\n }\n\n // SelectComparison Options:\n //\n // Previous version: always, unless doesn't exist. Can be the same as previously published\n // Latest draft: only if no newer published exists (latestDraftVersion)\n // Currently published: always, if exists\n // Previously published: if there is a prior published version older than versionTo\n // Specific Version: only if not already present under other label (= versionFrom)\n\n let versionFromOptions: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n updatedAt: Date\n value: string\n }[] = []\n\n // Previous version\n if (previousVersion?.id) {\n versionFromOptions.push({\n doc: previousVersion,\n labelOverride: i18n.t('version:previousVersion'),\n updatedAt: new Date(previousVersion.updatedAt),\n value: previousVersion.id,\n })\n }\n\n // Latest Draft\n const publishedNewerThanDraft =\n currentlyPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n if (latestDraftVersion && !publishedNewerThanDraft) {\n versionFromOptions.push({\n doc: latestDraftVersion,\n updatedAt: new Date(latestDraftVersion.updatedAt),\n value: latestDraftVersion.id,\n })\n }\n\n // Currently Published\n if (currentlyPublishedVersion) {\n versionFromOptions.push({\n doc: currentlyPublishedVersion,\n updatedAt: new Date(currentlyPublishedVersion.updatedAt),\n value: currentlyPublishedVersion.id,\n })\n }\n\n // Previous Published\n if (previousPublishedVersion && currentlyPublishedVersion?.id !== previousPublishedVersion.id) {\n versionFromOptions.push({\n doc: previousPublishedVersion,\n labelOverride: i18n.t('version:previouslyPublished'),\n updatedAt: new Date(previousPublishedVersion.updatedAt),\n value: previousPublishedVersion.id,\n })\n }\n\n // Specific Version\n if (versionFrom?.id && !versionFromOptions.some((option) => option.value === versionFrom.id)) {\n // Only add \"specific version\" if it is not already in the options\n versionFromOptions.push({\n doc: versionFrom,\n labelOverride: i18n.t('version:specificVersion'),\n updatedAt: new Date(versionFrom.updatedAt),\n value: versionFrom.id,\n })\n }\n\n versionFromOptions = versionFromOptions.sort((a, b) => {\n // Sort by updatedAt, newest first\n if (a && b) {\n return b.updatedAt.getTime() - a.updatedAt.getTime()\n }\n return 0\n })\n\n const versionToIsVersionFrom = versionFrom?.id === versionTo.id\n\n const versionFromComparisonOptions: CompareOption[] = []\n\n for (const option of versionFromOptions) {\n const isVersionTo = option.value === versionTo.id\n\n if (isVersionTo && !versionToIsVersionFrom) {\n // Don't offer selecting a versionFrom that is the same as versionTo, unless it's already selected\n continue\n }\n\n const alreadyAdded = versionFromComparisonOptions.some(\n (existingOption) => existingOption.value === option.value,\n )\n if (alreadyAdded) {\n continue\n }\n\n const otherOptionsWithSameID = versionFromOptions.filter(\n (existingOption) => existingOption.value === option.value && existingOption !== option,\n )\n\n // Merge options with same ID to the same option\n const labelSuffix = otherOptionsWithSameID?.length ? (\n <span key={`${option.value}-suffix`}>\n {' ('}\n {otherOptionsWithSameID.map((optionWithSameID, index) => {\n const label =\n optionWithSameID.labelOverride ||\n getVersionLabel({\n currentlyPublishedVersion,\n latestDraftVersion,\n t: i18n.t,\n version: optionWithSameID.doc,\n }).label\n\n return (\n <React.Fragment key={`${optionWithSameID.value}-${index}`}>\n {index > 0 ? ', ' : ''}\n {label}\n </React.Fragment>\n )\n })}\n {')'}\n </span>\n ) : undefined\n\n versionFromComparisonOptions.push({\n label: formatPill({\n doc: option.doc,\n labelOverride: option.labelOverride,\n labelSuffix,\n }),\n value: option.value,\n })\n }\n\n const useAsTitleFieldName = collectionConfig?.admin?.useAsTitle || 'id'\n const versionToUseAsTitle =\n useAsTitleFieldName === 'id'\n ? String(versionTo.parent)\n : versionTo.version?.[useAsTitleFieldName]\n return (\n <DefaultVersionView\n canUpdate={docPermissions?.update}\n modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionFromCreatedAt={versionFrom?.createdAt}\n versionFromID={versionFrom?.id}\n versionFromOptions={versionFromComparisonOptions}\n versionToCreatedAt={versionTo.createdAt}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n VersionToCreatedAtLabel={formatPill({ doc: versionTo, labelStyle: 'pill' })}\n versionToID={versionTo.id}\n versionToStatus={versionTo.version?._status}\n versionToUseAsTitle={versionToUseAsTitle}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatDate","getClientConfig","getClientSchemaMap","getSchemaMap","notFound","React","DefaultVersionView","fetchLatestVersion","fetchVersion","fetchVersions","RenderDiff","getVersionLabel","VersionPillLabel","VersionView","props","hasPublishedDoc","i18n","initPageResult","routeSegments","searchParams","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","localization","user","versionToID","length","collectionSlug","slug","globalSlug","draftsEnabled","versions","drafts","localeCodesFromParams","localeCodes","JSON","parse","versionFromIDFromParams","versionFrom","modifiedOnly","docPermissions","collections","globals","versionTo","depth","locale","overrideAccess","previousVersionResult","versionFromResult","currentlyPublishedVersion","latestDraftVersion","previousPublishedVersionResult","Promise","all","draft","limit","parentID","sort","where","and","updatedAt","less_than","resolve","status","equals","previousVersion","docs","previousPublishedVersion","selectedLocales","locales","code","find","push","filterAvailableLocales","map","schemaMap","clientSchemaMap","importMap","RenderedDiff","customDiffComponents","entitySlug","fields","fieldsPermissions","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","versionFromSiblingData","version","versionToSiblingData","versionToCreatedAtFormatted","date","Date","pattern","admin","dateFormat","formatPill","doc","labelOverride","labelStyle","labelSuffix","_jsx","labelFirst","versionFromOptions","t","value","publishedNewerThanDraft","some","option","a","b","getTime","versionToIsVersionFrom","versionFromComparisonOptions","isVersionTo","alreadyAdded","existingOption","otherOptionsWithSameID","filter","_jsxs","optionWithSameID","index","label","Fragment","undefined","canUpdate","update","versionFromCreatedAt","createdAt","versionFromID","versionToCreatedAt","VersionToCreatedAtLabel","versionToStatus","_status"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n DocumentViewServerProps,\n Locale,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n TypeWithVersion,\n} from 'payload'\n\nimport { formatDate } from '@payloadcms/ui/shared'\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 type { CompareOption } from './Default/types.js'\n\nimport { DefaultVersionView } from './Default/index.js'\nimport { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js'\nimport { RenderDiff } from './RenderFieldsToDiff/index.js'\nimport { getVersionLabel } from './VersionPillLabel/getVersionLabel.js'\nimport { VersionPillLabel } from './VersionPillLabel/VersionPillLabel.js'\n\nexport async function VersionView(props: DocumentViewServerProps) {\n const { hasPublishedDoc, i18n, initPageResult, routeSegments, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config, config: { localization } } = {}, user } = {},\n } = initPageResult\n\n const versionToID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const draftsEnabled = (collectionConfig ?? globalConfig)?.versions?.drafts\n\n const localeCodesFromParams = searchParams.localeCodes\n ? JSON.parse(searchParams.localeCodes as string)\n : null\n\n const versionFromIDFromParams = searchParams.versionFrom as string\n\n const modifiedOnly: boolean = searchParams.modifiedOnly === 'false' ? false : true\n\n const docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission = collectionSlug\n ? permissions.collections[collectionSlug]\n : permissions.globals[globalSlug]\n\n const versionTo = await fetchVersion<{\n _status?: string\n }>({\n id: versionToID,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (!versionTo) {\n return notFound()\n }\n\n const [\n previousVersionResult,\n versionFromResult,\n currentlyPublishedVersion,\n latestDraftVersion,\n previousPublishedVersionResult,\n ] = await Promise.all([\n // Previous version (the one before the versionTo)\n fetchVersions({\n collectionSlug,\n // If versionFromIDFromParams is provided, the previous version is only used in the version comparison dropdown => depth 0 is enough.\n // If it's not provided, this is used as `versionFrom` in the comparison, which expects populated data => depth 1 is needed.\n depth: versionFromIDFromParams ? 0 : 1,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n ],\n },\n }),\n // Version from ID from params\n (versionFromIDFromParams\n ? fetchVersion({\n id: versionFromIDFromParams,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n : Promise.resolve(null)) as Promise<null | TypeWithVersion<object>>,\n // Currently published version - do note: currently published != latest published, as an unpublished version can be the latest published\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n // Latest draft version\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n // Previous published version\n fetchVersions({\n collectionSlug,\n depth: 0,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n }),\n ])\n\n const previousVersion: null | TypeWithVersion<object> = previousVersionResult?.docs?.[0] ?? null\n\n const versionFrom =\n versionFromResult ||\n // By default, we'll compare the previous version. => versionFrom = version previous to versionTo\n previousVersion\n\n // Previous published version before the versionTo\n const previousPublishedVersion = previousPublishedVersionResult?.docs?.[0] ?? null\n\n let selectedLocales: string[] = []\n if (localization) {\n let locales: Locale[] = []\n if (localeCodesFromParams) {\n for (const code of localeCodesFromParams) {\n const locale = localization.locales.find((locale) => locale.code === code)\n if (!locale) {\n continue\n }\n locales.push(locale)\n }\n } else {\n locales = localization.locales\n }\n\n if (localization.filterAvailableLocales) {\n locales = (await localization.filterAvailableLocales({ locales, req })) || []\n }\n\n selectedLocales = locales.map((locale) => locale.code)\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 const RenderedDiff = RenderDiff({\n clientSchemaMap,\n customDiffComponents: {},\n entitySlug: collectionSlug || globalSlug,\n fields: (collectionConfig || globalConfig)?.fields,\n fieldsPermissions: docPermissions?.fields,\n i18n,\n modifiedOnly,\n parentIndexPath: '',\n parentIsLocalized: false,\n parentPath: '',\n parentSchemaPath: '',\n req,\n selectedLocales,\n versionFromSiblingData: {\n ...versionFrom?.version,\n updatedAt: versionFrom?.updatedAt,\n },\n versionToSiblingData: {\n ...versionTo.version,\n updatedAt: versionTo.updatedAt,\n },\n })\n\n const versionToCreatedAtFormatted = versionTo.updatedAt\n ? formatDate({\n date:\n typeof versionTo.updatedAt === 'string'\n ? new Date(versionTo.updatedAt)\n : (versionTo.updatedAt as Date),\n i18n,\n pattern: config.admin.dateFormat,\n })\n : ''\n\n const formatPill = ({\n doc,\n labelOverride,\n labelStyle,\n labelSuffix,\n }: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n labelStyle?: 'pill' | 'text'\n labelSuffix?: React.ReactNode\n }): React.ReactNode => {\n return (\n <VersionPillLabel\n currentlyPublishedVersion={currentlyPublishedVersion}\n doc={doc}\n key={doc.id}\n labelFirst={true}\n labelOverride={labelOverride}\n labelStyle={labelStyle ?? 'text'}\n labelSuffix={labelSuffix}\n latestDraftVersion={latestDraftVersion}\n />\n )\n }\n\n // SelectComparison Options:\n //\n // Previous version: always, unless doesn't exist. Can be the same as previously published\n // Latest draft: only if no newer published exists (latestDraftVersion)\n // Currently published: always, if exists\n // Previously published: if there is a prior published version older than versionTo\n // Specific Version: only if not already present under other label (= versionFrom)\n\n let versionFromOptions: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n updatedAt: Date\n value: string\n }[] = []\n\n // Previous version\n if (previousVersion?.id) {\n versionFromOptions.push({\n doc: previousVersion,\n labelOverride: i18n.t('version:previousVersion'),\n updatedAt: new Date(previousVersion.updatedAt),\n value: previousVersion.id,\n })\n }\n\n // Latest Draft\n const publishedNewerThanDraft =\n currentlyPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n if (latestDraftVersion && !publishedNewerThanDraft) {\n versionFromOptions.push({\n doc: latestDraftVersion,\n updatedAt: new Date(latestDraftVersion.updatedAt),\n value: latestDraftVersion.id,\n })\n }\n\n // Currently Published\n if (currentlyPublishedVersion) {\n versionFromOptions.push({\n doc: currentlyPublishedVersion,\n updatedAt: new Date(currentlyPublishedVersion.updatedAt),\n value: currentlyPublishedVersion.id,\n })\n }\n\n // Previous Published\n if (previousPublishedVersion && currentlyPublishedVersion?.id !== previousPublishedVersion.id) {\n versionFromOptions.push({\n doc: previousPublishedVersion,\n labelOverride: i18n.t('version:previouslyPublished'),\n updatedAt: new Date(previousPublishedVersion.updatedAt),\n value: previousPublishedVersion.id,\n })\n }\n\n // Specific Version\n if (versionFrom?.id && !versionFromOptions.some((option) => option.value === versionFrom.id)) {\n // Only add \"specific version\" if it is not already in the options\n versionFromOptions.push({\n doc: versionFrom,\n labelOverride: i18n.t('version:specificVersion'),\n updatedAt: new Date(versionFrom.updatedAt),\n value: versionFrom.id,\n })\n }\n\n versionFromOptions = versionFromOptions.sort((a, b) => {\n // Sort by updatedAt, newest first\n if (a && b) {\n return b.updatedAt.getTime() - a.updatedAt.getTime()\n }\n return 0\n })\n\n const versionToIsVersionFrom = versionFrom?.id === versionTo.id\n\n const versionFromComparisonOptions: CompareOption[] = []\n\n for (const option of versionFromOptions) {\n const isVersionTo = option.value === versionTo.id\n\n if (isVersionTo && !versionToIsVersionFrom) {\n // Don't offer selecting a versionFrom that is the same as versionTo, unless it's already selected\n continue\n }\n\n const alreadyAdded = versionFromComparisonOptions.some(\n (existingOption) => existingOption.value === option.value,\n )\n if (alreadyAdded) {\n continue\n }\n\n const otherOptionsWithSameID = versionFromOptions.filter(\n (existingOption) => existingOption.value === option.value && existingOption !== option,\n )\n\n // Merge options with same ID to the same option\n const labelSuffix = otherOptionsWithSameID?.length ? (\n <span key={`${option.value}-suffix`}>\n {' ('}\n {otherOptionsWithSameID.map((optionWithSameID, index) => {\n const label =\n optionWithSameID.labelOverride ||\n getVersionLabel({\n currentlyPublishedVersion,\n latestDraftVersion,\n t: i18n.t,\n version: optionWithSameID.doc,\n }).label\n\n return (\n <React.Fragment key={`${optionWithSameID.value}-${index}`}>\n {index > 0 ? ', ' : ''}\n {label}\n </React.Fragment>\n )\n })}\n {')'}\n </span>\n ) : undefined\n\n versionFromComparisonOptions.push({\n label: formatPill({\n doc: option.doc,\n labelOverride: option.labelOverride,\n labelSuffix,\n }),\n value: option.value,\n })\n }\n\n return (\n <DefaultVersionView\n canUpdate={docPermissions?.update}\n modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionFromCreatedAt={versionFrom?.createdAt}\n versionFromID={versionFrom?.id}\n versionFromOptions={versionFromComparisonOptions}\n versionToCreatedAt={versionTo.createdAt}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n VersionToCreatedAtLabel={formatPill({ doc: versionTo, labelStyle: 'pill' })}\n versionToID={versionTo.id}\n versionToStatus={versionTo.version?._status}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.55.0-canary.7",
3
+ "version": "3.55.0-internal.92d1d86",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -87,9 +87,9 @@
87
87
  "qs-esm": "7.0.2",
88
88
  "sass": "1.77.4",
89
89
  "uuid": "10.0.0",
90
- "@payloadcms/graphql": "3.55.0-canary.7",
91
- "@payloadcms/translations": "3.55.0-canary.7",
92
- "@payloadcms/ui": "3.55.0-canary.7"
90
+ "@payloadcms/translations": "3.55.0-internal.92d1d86",
91
+ "@payloadcms/graphql": "3.55.0-internal.92d1d86",
92
+ "@payloadcms/ui": "3.55.0-internal.92d1d86"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@babel/cli": "7.27.2",
@@ -106,13 +106,13 @@
106
106
  "esbuild": "0.25.5",
107
107
  "esbuild-sass-plugin": "3.3.1",
108
108
  "swc-plugin-transform-remove-imports": "4.0.4",
109
- "payload": "3.55.0-canary.7",
110
- "@payloadcms/eslint-config": "3.28.0"
109
+ "@payloadcms/eslint-config": "3.28.0",
110
+ "payload": "3.55.0-internal.92d1d86"
111
111
  },
112
112
  "peerDependencies": {
113
113
  "graphql": "^16.8.1",
114
114
  "next": "^15.2.3",
115
- "payload": "3.55.0-canary.7"
115
+ "payload": "3.55.0-internal.92d1d86"
116
116
  },
117
117
  "engines": {
118
118
  "node": "^18.20.2 || >=20.9.0"