@payloadcms/next 3.23.0 → 3.24.0-canary.05013b2

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 (181) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -2
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +2 -2
  5. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/index.js +2 -0
  9. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  10. package/dist/elements/DocumentHeader/index.scss +0 -2
  11. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  12. package/dist/elements/Nav/index.client.js +1 -3
  13. package/dist/elements/Nav/index.client.js.map +1 -1
  14. package/dist/elements/Nav/index.d.ts.map +1 -1
  15. package/dist/elements/Nav/index.js.map +1 -1
  16. package/dist/layouts/Root/index.d.ts.map +1 -1
  17. package/dist/layouts/Root/index.js +4 -4
  18. package/dist/layouts/Root/index.js.map +1 -1
  19. package/dist/prod/styles.css +1 -1
  20. package/dist/routes/rest/index.d.ts.map +1 -1
  21. package/dist/routes/rest/index.js +1 -1
  22. package/dist/routes/rest/index.js.map +1 -1
  23. package/dist/views/API/index.d.ts +3 -2
  24. package/dist/views/API/index.d.ts.map +1 -1
  25. package/dist/views/API/index.js +2 -2
  26. package/dist/views/API/index.js.map +1 -1
  27. package/dist/views/Account/index.d.ts +2 -2
  28. package/dist/views/Account/index.d.ts.map +1 -1
  29. package/dist/views/Account/index.js +4 -3
  30. package/dist/views/Account/index.js.map +1 -1
  31. package/dist/views/CreateFirstUser/index.d.ts +2 -2
  32. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  33. package/dist/views/CreateFirstUser/index.js +3 -3
  34. package/dist/views/CreateFirstUser/index.js.map +1 -1
  35. package/dist/views/Dashboard/Default/index.d.ts +13 -6
  36. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  37. package/dist/views/Dashboard/Default/index.js +2 -5
  38. package/dist/views/Dashboard/Default/index.js.map +1 -1
  39. package/dist/views/Dashboard/index.d.ts +2 -2
  40. package/dist/views/Dashboard/index.d.ts.map +1 -1
  41. package/dist/views/Dashboard/index.js +3 -7
  42. package/dist/views/Dashboard/index.js.map +1 -1
  43. package/dist/views/Document/getViewsFromConfig.d.ts +4 -4
  44. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  45. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  46. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  47. package/dist/views/Document/handleServerFunction.js +2 -0
  48. package/dist/views/Document/handleServerFunction.js.map +1 -1
  49. package/dist/views/Document/index.d.ts +4 -3
  50. package/dist/views/Document/index.d.ts.map +1 -1
  51. package/dist/views/Document/index.js +7 -7
  52. package/dist/views/Document/index.js.map +1 -1
  53. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  54. package/dist/views/Document/renderDocumentSlots.js +6 -5
  55. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  56. package/dist/views/Edit/index.d.ts +2 -2
  57. package/dist/views/Edit/index.js.map +1 -1
  58. package/dist/views/ForgotPassword/index.d.ts +2 -2
  59. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  60. package/dist/views/ForgotPassword/index.js +4 -7
  61. package/dist/views/ForgotPassword/index.js.map +1 -1
  62. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  63. package/dist/views/List/handleServerFunction.js +2 -0
  64. package/dist/views/List/handleServerFunction.js.map +1 -1
  65. package/dist/views/List/index.d.ts +6 -5
  66. package/dist/views/List/index.d.ts.map +1 -1
  67. package/dist/views/List/index.js +35 -29
  68. package/dist/views/List/index.js.map +1 -1
  69. package/dist/views/List/renderListViewSlots.d.ts +3 -4
  70. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  71. package/dist/views/List/renderListViewSlots.js +11 -11
  72. package/dist/views/List/renderListViewSlots.js.map +1 -1
  73. package/dist/views/List/resolveAllFilterOptions.d.ts +6 -0
  74. package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -0
  75. package/dist/views/List/resolveAllFilterOptions.js +27 -0
  76. package/dist/views/List/resolveAllFilterOptions.js.map +1 -0
  77. package/dist/views/LivePreview/Context/index.d.ts.map +1 -1
  78. package/dist/views/LivePreview/Context/index.js +5 -1
  79. package/dist/views/LivePreview/Context/index.js.map +1 -1
  80. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  81. package/dist/views/LivePreview/index.client.js +6 -3
  82. package/dist/views/LivePreview/index.client.js.map +1 -1
  83. package/dist/views/LivePreview/index.d.ts +3 -2
  84. package/dist/views/LivePreview/index.d.ts.map +1 -1
  85. package/dist/views/LivePreview/index.js +2 -2
  86. package/dist/views/LivePreview/index.js.map +1 -1
  87. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  88. package/dist/views/Login/LoginForm/index.js +1 -3
  89. package/dist/views/Login/LoginForm/index.js.map +1 -1
  90. package/dist/views/Login/index.d.ts +2 -2
  91. package/dist/views/Login/index.d.ts.map +1 -1
  92. package/dist/views/Login/index.js +3 -4
  93. package/dist/views/Login/index.js.map +1 -1
  94. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  95. package/dist/views/Logout/LogoutClient.js +32 -30
  96. package/dist/views/Logout/LogoutClient.js.map +1 -1
  97. package/dist/views/Logout/index.d.ts +3 -3
  98. package/dist/views/Logout/index.d.ts.map +1 -1
  99. package/dist/views/Logout/index.js +2 -2
  100. package/dist/views/Logout/index.js.map +1 -1
  101. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  102. package/dist/views/NotFound/index.client.js +0 -3
  103. package/dist/views/NotFound/index.client.js.map +1 -1
  104. package/dist/views/NotFound/index.d.ts +2 -2
  105. package/dist/views/NotFound/index.d.ts.map +1 -1
  106. package/dist/views/NotFound/index.js +2 -2
  107. package/dist/views/NotFound/index.js.map +1 -1
  108. package/dist/views/ResetPassword/index.d.ts +2 -2
  109. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  110. package/dist/views/ResetPassword/index.js +4 -7
  111. package/dist/views/ResetPassword/index.js.map +1 -1
  112. package/dist/views/Root/getViewFromConfig.d.ts +3 -3
  113. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  114. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  115. package/dist/views/Root/index.d.ts.map +1 -1
  116. package/dist/views/Root/index.js.map +1 -1
  117. package/dist/views/Unauthorized/index.d.ts +3 -2
  118. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  119. package/dist/views/Unauthorized/index.js +3 -6
  120. package/dist/views/Unauthorized/index.js.map +1 -1
  121. package/dist/views/Verify/index.client.d.ts.map +1 -1
  122. package/dist/views/Verify/index.client.js +13 -9
  123. package/dist/views/Verify/index.client.js.map +1 -1
  124. package/dist/views/Verify/index.d.ts +2 -2
  125. package/dist/views/Verify/index.d.ts.map +1 -1
  126. package/dist/views/Verify/index.js +4 -4
  127. package/dist/views/Verify/index.js.map +1 -1
  128. package/dist/views/Version/Default/index.d.ts.map +1 -1
  129. package/dist/views/Version/Default/index.js +9 -5
  130. package/dist/views/Version/Default/index.js.map +1 -1
  131. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +2 -0
  132. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  133. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +126 -59
  134. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  135. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +2 -1
  136. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  137. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +18 -4
  138. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  139. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  140. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +12 -8
  141. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  142. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  143. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +12 -8
  144. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  145. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  146. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +20 -11
  147. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  148. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  149. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +30 -21
  150. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  151. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +13 -9
  152. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  153. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +7 -3
  154. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  155. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +36 -3
  156. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  157. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +3 -2
  158. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  159. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +7 -6
  160. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  161. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  162. package/dist/views/Version/Restore/index.js +6 -3
  163. package/dist/views/Version/Restore/index.js.map +1 -1
  164. package/dist/views/Version/index.d.ts +3 -2
  165. package/dist/views/Version/index.d.ts.map +1 -1
  166. package/dist/views/Version/index.js +3 -2
  167. package/dist/views/Version/index.js.map +1 -1
  168. package/dist/views/Versions/buildColumns.d.ts +1 -2
  169. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  170. package/dist/views/Versions/buildColumns.js.map +1 -1
  171. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  172. package/dist/views/Versions/cells/CreatedAt/index.js +1 -3
  173. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  174. package/dist/views/Versions/index.client.d.ts +1 -2
  175. package/dist/views/Versions/index.client.d.ts.map +1 -1
  176. package/dist/views/Versions/index.client.js.map +1 -1
  177. package/dist/views/Versions/index.d.ts +3 -2
  178. package/dist/views/Versions/index.d.ts.map +1 -1
  179. package/dist/views/Versions/index.js +2 -2
  180. package/dist/views/Versions/index.js.map +1 -1
  181. package/package.json +6 -6
@@ -1,3 +1,4 @@
1
+ import { fieldShouldBeLocalized } from 'payload/shared';
1
2
  import { fieldHasChanges } from './fieldHasChanges.js';
2
3
  import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
3
4
  /**
@@ -6,8 +7,10 @@ import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
6
7
  */
7
8
  export function countChangedFields({
8
9
  comparison,
10
+ config,
9
11
  fields,
10
12
  locales,
13
+ parentIsLocalized,
11
14
  version
12
15
  }) {
13
16
  let count = 0;
@@ -23,14 +26,19 @@ export function countChangedFields({
23
26
  case 'array':
24
27
  case 'blocks':
25
28
  {
26
- if (locales && field.localized) {
29
+ if (locales && fieldShouldBeLocalized({
30
+ field,
31
+ parentIsLocalized
32
+ })) {
27
33
  locales.forEach(locale => {
28
34
  const comparisonRows = comparison?.[field.name]?.[locale] ?? [];
29
35
  const versionRows = version?.[field.name]?.[locale] ?? [];
30
36
  count += countChangedFieldsInRows({
31
37
  comparisonRows,
38
+ config,
32
39
  field,
33
40
  locales,
41
+ parentIsLocalized: parentIsLocalized || field.localized,
34
42
  versionRows
35
43
  });
36
44
  });
@@ -39,8 +47,10 @@ export function countChangedFields({
39
47
  const versionRows = version?.[field.name] ?? [];
40
48
  count += countChangedFieldsInRows({
41
49
  comparisonRows,
50
+ config,
42
51
  field,
43
52
  locales,
53
+ parentIsLocalized: parentIsLocalized || field.localized,
44
54
  versionRows
45
55
  });
46
56
  }
@@ -64,7 +74,10 @@ export function countChangedFields({
64
74
  case 'upload':
65
75
  {
66
76
  // Fields that have a name and contain data. We can just check if the data has changed.
67
- if (locales && field.localized) {
77
+ if (locales && fieldShouldBeLocalized({
78
+ field,
79
+ parentIsLocalized
80
+ })) {
68
81
  locales.forEach(locale => {
69
82
  if (fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])) {
70
83
  count++;
@@ -81,8 +94,10 @@ export function countChangedFields({
81
94
  {
82
95
  count += countChangedFields({
83
96
  comparison,
97
+ config,
84
98
  fields: field.fields,
85
99
  locales,
100
+ parentIsLocalized: parentIsLocalized || field.localized,
86
101
  version
87
102
  });
88
103
  break;
@@ -90,20 +105,27 @@ export function countChangedFields({
90
105
  // Fields that have nested fields and nest their fields' data.
91
106
  case 'group':
92
107
  {
93
- if (locales && field.localized) {
108
+ if (locales && fieldShouldBeLocalized({
109
+ field,
110
+ parentIsLocalized
111
+ })) {
94
112
  locales.forEach(locale => {
95
113
  count += countChangedFields({
96
114
  comparison: comparison?.[field.name]?.[locale],
115
+ config,
97
116
  fields: field.fields,
98
117
  locales,
118
+ parentIsLocalized: parentIsLocalized || field.localized,
99
119
  version: version?.[field.name]?.[locale]
100
120
  });
101
121
  });
102
122
  } else {
103
123
  count += countChangedFields({
104
124
  comparison: comparison?.[field.name],
125
+ config,
105
126
  fields: field.fields,
106
127
  locales,
128
+ parentIsLocalized: parentIsLocalized || field.localized,
107
129
  version: version?.[field.name]
108
130
  });
109
131
  }
@@ -119,8 +141,10 @@ export function countChangedFields({
119
141
  locales.forEach(locale => {
120
142
  count += countChangedFields({
121
143
  comparison: comparison?.[tab.name]?.[locale],
144
+ config,
122
145
  fields: tab.fields,
123
146
  locales,
147
+ parentIsLocalized: parentIsLocalized || tab.localized,
124
148
  version: version?.[tab.name]?.[locale]
125
149
  });
126
150
  });
@@ -128,16 +152,20 @@ export function countChangedFields({
128
152
  // Named tab
129
153
  count += countChangedFields({
130
154
  comparison: comparison?.[tab.name],
155
+ config,
131
156
  fields: tab.fields,
132
157
  locales,
158
+ parentIsLocalized: parentIsLocalized || tab.localized,
133
159
  version: version?.[tab.name]
134
160
  });
135
161
  } else {
136
162
  // Unnamed tab
137
163
  count += countChangedFields({
138
164
  comparison,
165
+ config,
139
166
  fields: tab.fields,
140
167
  locales,
168
+ parentIsLocalized: parentIsLocalized || tab.localized,
141
169
  version
142
170
  });
143
171
  }
@@ -161,8 +189,10 @@ export function countChangedFields({
161
189
  }
162
190
  export function countChangedFieldsInRows({
163
191
  comparisonRows = [],
192
+ config,
164
193
  field,
165
194
  locales,
195
+ parentIsLocalized,
166
196
  versionRows = []
167
197
  }) {
168
198
  let count = 0;
@@ -180,14 +210,17 @@ export function countChangedFieldsInRows({
180
210
  schemaPath: ''
181
211
  },
182
212
  comparisonRow,
213
+ config,
183
214
  field,
184
215
  row: i,
185
216
  versionRow
186
217
  });
187
218
  count += countChangedFields({
188
219
  comparison: comparisonRow,
220
+ config,
189
221
  fields: rowFields,
190
222
  locales,
223
+ parentIsLocalized: parentIsLocalized || field.localized,
191
224
  version: versionRow
192
225
  });
193
226
  i++;
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.js","names":["fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","fields","locales","version","count","forEach","field","name","fieldType","type","localized","locale","comparisonRows","versionRows","countChangedFieldsInRows","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n fields: ClientField[]\n locales: string[] | undefined\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({ comparison, fields, locales, version }: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && field.localized) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({ comparisonRows, field, locales, versionRows })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({ comparisonRows, field, locales, versionRows })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && field.localized) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n fields: field.fields,\n locales,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && field.localized) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n fields: field.fields,\n locales,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n fields: field.fields,\n locales,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n fields: tab.fields,\n locales,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n fields: tab.fields,\n locales,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n fields: tab.fields,\n locales,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n field,\n locales,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n fields: rowFields,\n locales,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,14 @@
1
- import type { ArrayFieldClient, BaseVersionField, BlocksFieldClient, ClientField, VersionField } from 'payload';
1
+ import type { ArrayFieldClient, BaseVersionField, BlocksFieldClient, ClientConfig, ClientField, VersionField } from 'payload';
2
2
  /**
3
3
  * Get the fields for a row in an iterable field for comparison.
4
4
  * - Array fields: the fields of the array field, because the fields are the same for each row.
5
5
  * - Blocks fields: the union of fields from the comparison and version row,
6
6
  * because the fields from the version and comparison rows may differ.
7
7
  */
8
- export declare function getFieldsForRowComparison({ baseVersionField, comparisonRow, field, row, versionRow, }: {
8
+ export declare function getFieldsForRowComparison({ baseVersionField, comparisonRow, config, field, row, versionRow, }: {
9
9
  baseVersionField: BaseVersionField;
10
10
  comparisonRow: any;
11
+ config: ClientConfig;
11
12
  field: ArrayFieldClient | BlocksFieldClient;
12
13
  row: number;
13
14
  versionRow: any;
@@ -1 +1 @@
1
- {"version":3,"file":"getFieldsForRowComparison.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACb,MAAM,SAAS,CAAA;AAIhB;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,GAAG,EACH,UAAU,GACX,EAAE;IACD,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,aAAa,EAAE,GAAG,CAAA;IAClB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;CAChB,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CA2C3D"}
1
+ {"version":3,"file":"getFieldsForRowComparison.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAEjB,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,SAAS,CAAA;AAIhB;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,KAAK,EACL,GAAG,EACH,UAAU,GACX,EAAE;IACD,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,aAAa,EAAE,GAAG,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;CAChB,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAwD3D"}
@@ -8,6 +8,7 @@ import { getUniqueListBy } from 'payload/shared';
8
8
  export function getFieldsForRowComparison({
9
9
  baseVersionField,
10
10
  comparisonRow,
11
+ config,
11
12
  field,
12
13
  row,
13
14
  versionRow
@@ -19,18 +20,18 @@ export function getFieldsForRowComparison({
19
20
  versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
20
21
  } else if (field.type === 'blocks') {
21
22
  if (versionRow?.blockType === comparisonRow?.blockType) {
22
- const matchedBlock = 'blocks' in field && field.blocks?.find(block => block.slug === versionRow?.blockType) || {
23
+ const matchedBlock = config?.blocksMap?.[versionRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find(block => typeof block !== 'string' && block.slug === versionRow?.blockType) || {
23
24
  fields: []
24
- };
25
+ });
25
26
  fields = matchedBlock.fields;
26
27
  versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
27
28
  } else {
28
- const matchedVersionBlock = 'blocks' in field && field.blocks?.find(block => block.slug === versionRow?.blockType) || {
29
+ const matchedVersionBlock = config?.blocksMap?.[versionRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find(block => typeof block !== 'string' && block.slug === versionRow?.blockType) || {
29
30
  fields: []
30
- };
31
- const matchedComparisonBlock = 'blocks' in field && field.blocks?.find(block => block.slug === comparisonRow?.blockType) || {
31
+ });
32
+ const matchedComparisonBlock = config?.blocksMap?.[comparisonRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find(block => typeof block !== 'string' && block.slug === comparisonRow?.blockType) || {
32
33
  fields: []
33
- };
34
+ });
34
35
  fields = getUniqueListBy([...matchedVersionBlock.fields, ...matchedComparisonBlock.fields], 'name');
35
36
  // buildVersionFields already merged the fields of the version and comparison rows together
36
37
  versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
@@ -1 +1 @@
1
- {"version":3,"file":"getFieldsForRowComparison.js","names":["getUniqueListBy","getFieldsForRowComparison","baseVersionField","comparisonRow","field","row","versionRow","fields","versionFields","type","rows","length","blockType","matchedBlock","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"sourcesContent":["import type {\n ArrayFieldClient,\n BaseVersionField,\n BlocksFieldClient,\n ClientField,\n VersionField,\n} from 'payload'\n\nimport { getUniqueListBy } from 'payload/shared'\n\n/**\n * Get the fields for a row in an iterable field for comparison.\n * - Array fields: the fields of the array field, because the fields are the same for each row.\n * - Blocks fields: the union of fields from the comparison and version row,\n * because the fields from the version and comparison rows may differ.\n */\nexport function getFieldsForRowComparison({\n baseVersionField,\n comparisonRow,\n field,\n row,\n versionRow,\n}: {\n baseVersionField: BaseVersionField\n comparisonRow: any\n field: ArrayFieldClient | BlocksFieldClient\n row: number\n versionRow: any\n}): { fields: ClientField[]; versionFields: VersionField[] } {\n let fields: ClientField[] = []\n let versionFields: VersionField[] = []\n\n if (field.type === 'array' && 'fields' in field) {\n fields = field.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else if (field.type === 'blocks') {\n if (versionRow?.blockType === comparisonRow?.blockType) {\n const matchedBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === versionRow?.blockType)) || {\n fields: [],\n }\n\n fields = matchedBlock.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else {\n const matchedVersionBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === versionRow?.blockType)) || {\n fields: [],\n }\n const matchedComparisonBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === comparisonRow?.blockType)) || {\n fields: [],\n }\n\n fields = getUniqueListBy<ClientField>(\n [...matchedVersionBlock.fields, ...matchedComparisonBlock.fields],\n 'name',\n )\n\n // buildVersionFields already merged the fields of the version and comparison rows together\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n }\n }\n\n return { fields, versionFields }\n}\n"],"mappings":"AAQA,SAASA,eAAe,QAAQ;AAEhC;;;;;;AAMA,OAAO,SAASC,0BAA0B;EACxCC,gBAAgB;EAChBC,aAAa;EACbC,KAAK;EACLC,GAAG;EACHC;AAAU,CAOX;EACC,IAAIC,MAAA,GAAwB,EAAE;EAC9B,IAAIC,aAAA,GAAgC,EAAE;EAEtC,IAAIJ,KAAA,CAAMK,IAAI,KAAK,WAAW,YAAYL,KAAA,EAAO;IAC/CG,MAAA,GAASH,KAAA,CAAMG,MAAM;IACrBC,aAAA,GAAgBN,gBAAA,CAAiBQ,IAAI,EAAEC,MAAA,GACnCT,gBAAA,CAAiBQ,IAAI,CAACL,GAAA,CAAI,GAC1BH,gBAAA,CAAiBK,MAAM;EAC7B,OAAO,IAAIH,KAAA,CAAMK,IAAI,KAAK,UAAU;IAClC,IAAIH,UAAA,EAAYM,SAAA,KAAcT,aAAA,EAAeS,SAAA,EAAW;MACtD,MAAMC,YAAA,GAAe,QAAC,IAAYT,KAAA,IAChCA,KAAA,CAAMU,MAAM,EAAEC,IAAA,CAAMC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKX,UAAA,EAAYM,SAAA,KAAe;QACxEL,MAAA,EAAQ;MACV;MAEAA,MAAA,GAASM,YAAA,CAAaN,MAAM;MAC5BC,aAAA,GAAgBN,gBAAA,CAAiBQ,IAAI,EAAEC,MAAA,GACnCT,gBAAA,CAAiBQ,IAAI,CAACL,GAAA,CAAI,GAC1BH,gBAAA,CAAiBK,MAAM;IAC7B,OAAO;MACL,MAAMW,mBAAA,GAAsB,QAAC,IAAYd,KAAA,IACvCA,KAAA,CAAMU,MAAM,EAAEC,IAAA,CAAMC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKX,UAAA,EAAYM,SAAA,KAAe;QACxEL,MAAA,EAAQ;MACV;MACA,MAAMY,sBAAA,GAAyB,QAAC,IAAYf,KAAA,IAC1CA,KAAA,CAAMU,MAAM,EAAEC,IAAA,CAAMC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKd,aAAA,EAAeS,SAAA,KAAe;QAC3EL,MAAA,EAAQ;MACV;MAEAA,MAAA,GAASP,eAAA,CACP,C,GAAIkB,mBAAA,CAAoBX,MAAM,E,GAAKY,sBAAA,CAAuBZ,MAAM,CAAC,EACjE;MAGF;MACAC,aAAA,GAAgBN,gBAAA,CAAiBQ,IAAI,EAAEC,MAAA,GACnCT,gBAAA,CAAiBQ,IAAI,CAACL,GAAA,CAAI,GAC1BH,gBAAA,CAAiBK,MAAM;IAC7B;EACF;EAEA,OAAO;IAAEA,MAAA;IAAQC;EAAc;AACjC","ignoreList":[]}
1
+ {"version":3,"file":"getFieldsForRowComparison.js","names":["getUniqueListBy","getFieldsForRowComparison","baseVersionField","comparisonRow","config","field","row","versionRow","fields","versionFields","type","rows","length","blockType","matchedBlock","blocksMap","blockReferences","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"sourcesContent":["import type {\n ArrayFieldClient,\n BaseVersionField,\n BlocksFieldClient,\n ClientBlock,\n ClientConfig,\n ClientField,\n VersionField,\n} from 'payload'\n\nimport { getUniqueListBy } from 'payload/shared'\n\n/**\n * Get the fields for a row in an iterable field for comparison.\n * - Array fields: the fields of the array field, because the fields are the same for each row.\n * - Blocks fields: the union of fields from the comparison and version row,\n * because the fields from the version and comparison rows may differ.\n */\nexport function getFieldsForRowComparison({\n baseVersionField,\n comparisonRow,\n config,\n field,\n row,\n versionRow,\n}: {\n baseVersionField: BaseVersionField\n comparisonRow: any\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n row: number\n versionRow: any\n}): { fields: ClientField[]; versionFields: VersionField[] } {\n let fields: ClientField[] = []\n let versionFields: VersionField[] = []\n\n if (field.type === 'array' && 'fields' in field) {\n fields = field.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else if (field.type === 'blocks') {\n if (versionRow?.blockType === comparisonRow?.blockType) {\n const matchedBlock: ClientBlock =\n config?.blocksMap?.[versionRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === versionRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n fields = matchedBlock.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else {\n const matchedVersionBlock =\n config?.blocksMap?.[versionRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === versionRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n const matchedComparisonBlock =\n config?.blocksMap?.[comparisonRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === comparisonRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n fields = getUniqueListBy<ClientField>(\n [...matchedVersionBlock.fields, ...matchedComparisonBlock.fields],\n 'name',\n )\n\n // buildVersionFields already merged the fields of the version and comparison rows together\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n }\n }\n\n return { fields, versionFields }\n}\n"],"mappings":"AAUA,SAASA,eAAe,QAAQ;AAEhC;;;;;;AAMA,OAAO,SAASC,0BAA0B;EACxCC,gBAAgB;EAChBC,aAAa;EACbC,MAAM;EACNC,KAAK;EACLC,GAAG;EACHC;AAAU,CAQX;EACC,IAAIC,MAAA,GAAwB,EAAE;EAC9B,IAAIC,aAAA,GAAgC,EAAE;EAEtC,IAAIJ,KAAA,CAAMK,IAAI,KAAK,WAAW,YAAYL,KAAA,EAAO;IAC/CG,MAAA,GAASH,KAAA,CAAMG,MAAM;IACrBC,aAAA,GAAgBP,gBAAA,CAAiBS,IAAI,EAAEC,MAAA,GACnCV,gBAAA,CAAiBS,IAAI,CAACL,GAAA,CAAI,GAC1BJ,gBAAA,CAAiBM,MAAM;EAC7B,OAAO,IAAIH,KAAA,CAAMK,IAAI,KAAK,UAAU;IAClC,IAAIH,UAAA,EAAYM,SAAA,KAAcV,aAAA,EAAeU,SAAA,EAAW;MACtD,MAAMC,YAAA,GACJV,MAAA,EAAQW,SAAA,GAAYR,UAAA,EAAYM,SAAA,CAAU,KACxC,CAAE,YAAYR,KAAA,IAAS,qBAAqBA,KAAI,KAC/C,CAAAA,KAAA,CAAMW,eAAe,IAAIX,KAAA,CAAMY,MAAM,GAAGC,IAAA,CACtCC,KAAA,IAAU,OAAOA,KAAA,KAAU,YAAYA,KAAA,CAAMC,IAAI,KAAKb,UAAA,EAAYM,SAAA,KAC/D;QACNL,MAAA,EAAQ;MACV;MAEFA,MAAA,GAASM,YAAA,CAAaN,MAAM;MAC5BC,aAAA,GAAgBP,gBAAA,CAAiBS,IAAI,EAAEC,MAAA,GACnCV,gBAAA,CAAiBS,IAAI,CAACL,GAAA,CAAI,GAC1BJ,gBAAA,CAAiBM,MAAM;IAC7B,OAAO;MACL,MAAMa,mBAAA,GACJjB,MAAA,EAAQW,SAAA,GAAYR,UAAA,EAAYM,SAAA,CAAU,KACxC,CAAE,YAAYR,KAAA,IAAS,qBAAqBA,KAAI,KAC/C,CAAAA,KAAA,CAAMW,eAAe,IAAIX,KAAA,CAAMY,MAAM,GAAGC,IAAA,CACtCC,KAAA,IAAU,OAAOA,KAAA,KAAU,YAAYA,KAAA,CAAMC,IAAI,KAAKb,UAAA,EAAYM,SAAA,KAC/D;QACNL,MAAA,EAAQ;MACV;MAEF,MAAMc,sBAAA,GACJlB,MAAA,EAAQW,SAAA,GAAYZ,aAAA,EAAeU,SAAA,CAAU,KAC3C,CAAE,YAAYR,KAAA,IAAS,qBAAqBA,KAAI,KAC/C,CAAAA,KAAA,CAAMW,eAAe,IAAIX,KAAA,CAAMY,MAAM,GAAGC,IAAA,CACtCC,KAAA,IAAU,OAAOA,KAAA,KAAU,YAAYA,KAAA,CAAMC,IAAI,KAAKjB,aAAA,EAAeU,SAAA,KAClE;QACNL,MAAA,EAAQ;MACV;MAEFA,MAAA,GAASR,eAAA,CACP,C,GAAIqB,mBAAA,CAAoBb,MAAM,E,GAAKc,sBAAA,CAAuBd,MAAM,CAAC,EACjE;MAGF;MACAC,aAAA,GAAgBP,gBAAA,CAAiBS,IAAI,EAAEC,MAAA,GACnCV,gBAAA,CAAiBS,IAAI,CAACL,GAAA,CAAI,GAC1BJ,gBAAA,CAAiBM,MAAM;IAC7B;EACF;EAEA,OAAO;IAAEA,MAAA;IAAQC;EAAc;AACjC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmH5B,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqH5B,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { getTranslation } from '@payloadcms/translations';
5
- import { Button, Modal, PopupList, useConfig, useModal, useTranslation } from '@payloadcms/ui';
5
+ import { Button, Modal, PopupList, useConfig, useModal, useRouteTransition, useTranslation } from '@payloadcms/ui';
6
6
  import { formatAdminURL, requests } from '@payloadcms/ui/shared';
7
7
  import { useRouter } from 'next/navigation.js';
8
8
  import React, { Fragment, useCallback, useState } from 'react';
@@ -42,6 +42,9 @@ const Restore = ({
42
42
  t
43
43
  } = useTranslation();
44
44
  const [draft, setDraft] = useState(false);
45
+ const {
46
+ startRouteTransition
47
+ } = useRouteTransition();
45
48
  const restoreMessage = t('version:aboutToRestoreGlobal', {
46
49
  label: getTranslation(label, i18n),
47
50
  versionDate
@@ -73,11 +76,11 @@ const Restore = ({
73
76
  if (res.status === 200) {
74
77
  const json = await res.json();
75
78
  toast.success(json.message);
76
- router.push(redirectURL);
79
+ startRouteTransition(() => router.push(redirectURL));
77
80
  } else {
78
81
  toast.error(t('version:problemRestoringVersion'));
79
82
  }
80
- }, [fetchURL, redirectURL, t, i18n, router]);
83
+ }, [fetchURL, redirectURL, t, i18n, router, startRouteTransition]);
81
84
  return /*#__PURE__*/_jsxs(Fragment, {
82
85
  children: [/*#__PURE__*/_jsx("div", {
83
86
  className: [baseClass, className].filter(Boolean).join(' '),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","Button","Modal","PopupList","useConfig","useModal","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","processing","setProcessing","router","i18n","t","draft","setDraft","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","slug","undefined","type"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ChevronIcon,\n Modal,\n Pill,\n Popup,\n PopupList,\n useConfig,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : () => void handleRestore()}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","Button","Modal","PopupList","useConfig","useModal","useRouteTransition","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","processing","setProcessing","router","i18n","t","draft","setDraft","startRouteTransition","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","slug","undefined","type"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ChevronIcon,\n Modal,\n Pill,\n Popup,\n PopupList,\n useConfig,\n useModal,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n const { startRouteTransition } = useRouteTransition()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n startRouteTransition(() => router.push(redirectURL))\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router, startRouteTransition])\n\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : () => void handleRestore()}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
- import type { EditViewComponent, PayloadServerReactComponent } from 'payload';
2
- export declare const VersionView: PayloadServerReactComponent<EditViewComponent>;
1
+ import type { DocumentViewServerProps } from 'payload';
2
+ import React from 'react';
3
+ export declare function VersionView(props: DocumentViewServerProps): Promise<React.JSX.Element>;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,2BAA2B,EAG5B,MAAM,SAAS,CAAA;AAYhB,eAAO,MAAM,WAAW,EAAE,2BAA2B,CAAC,iBAAiB,CA6OtE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,uBAAuB,EAIxB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,wBAAsB,WAAW,CAAC,KAAK,EAAE,uBAAuB,8BA8O/D"}
@@ -7,7 +7,7 @@ import React from 'react';
7
7
  import { getLatestVersion } from '../Versions/getLatestVersion.js';
8
8
  import { DefaultVersionView } from './Default/index.js';
9
9
  import { RenderDiff } from './RenderFieldsToDiff/index.js';
10
- export const VersionView = async props => {
10
+ export async function VersionView(props) {
11
11
  const {
12
12
  i18n,
13
13
  initPageResult,
@@ -211,6 +211,7 @@ export const VersionView = async props => {
211
211
  i18n,
212
212
  modifiedOnly,
213
213
  parentIndexPath: '',
214
+ parentIsLocalized: false,
214
215
  parentPath: '',
215
216
  parentSchemaPath: '',
216
217
  req,
@@ -231,5 +232,5 @@ export const VersionView = async props => {
231
232
  selectedLocales: selectedLocales,
232
233
  versionID: versionID
233
234
  });
234
- };
235
+ }
235
236
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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","modifiedOnly","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 modifiedOnly: boolean = searchParams.modifiedOnly === 'true'\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: 0,\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 overrideAccess: false,\n parentID: id,\n payload,\n req,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'collection',\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n payload,\n req,\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: 0,\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 overrideAccess: false,\n payload,\n req,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'global',\n locale: 'all',\n overrideAccess: false,\n payload,\n req,\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 overrideAccess: false,\n req,\n })\n } else {\n comparisonDoc = await payload.findGlobalVersionByID({\n id: comparisonVersionIDFromParams,\n slug: globalSlug,\n depth: 0,\n locale: 'all',\n overrideAccess: false,\n req,\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 modifiedOnly,\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 modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\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","modifiedOnly","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","parentIsLocalized","parentPath","parentSchemaPath","map","versionSiblingData","createdAt","_jsx","canUpdate","update"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n Document,\n DocumentViewServerProps,\n OptionObject,\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 async function VersionView(props: DocumentViewServerProps) {\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 modifiedOnly: boolean = searchParams.modifiedOnly === 'true'\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: 0,\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 overrideAccess: false,\n parentID: id,\n payload,\n req,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'collection',\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n payload,\n req,\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: 0,\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 overrideAccess: false,\n payload,\n req,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'global',\n locale: 'all',\n overrideAccess: false,\n payload,\n req,\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 overrideAccess: false,\n req,\n })\n } else {\n comparisonDoc = await payload.findGlobalVersionByID({\n id: comparisonVersionIDFromParams,\n slug: globalSlug,\n depth: 0,\n locale: 'all',\n overrideAccess: false,\n req,\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 modifiedOnly,\n parentIndexPath: '',\n parentIsLocalized: false,\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 modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionID={versionID}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  import type { I18n } from '@payloadcms/translations';
2
- import type { PaginatedDocs, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig, TypeWithVersion } from 'payload';
3
- import { type Column } from '@payloadcms/ui';
2
+ import type { Column, PaginatedDocs, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig, TypeWithVersion } from 'payload';
4
3
  export declare const buildVersionColumns: ({ collectionConfig, docID, docs, globalConfig, i18n: { t }, latestDraftVersion, latestPublishedVersion, }: {
5
4
  collectionConfig?: SanitizedCollectionConfig;
6
5
  config: SanitizedConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumns.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/buildColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,gBAAgB,CAAA;AAOxD,eAAO,MAAM,mBAAmB,8GAQ7B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,KAAG,MAAM,EAmET,CAAA"}
1
+ {"version":3,"file":"buildColumns.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/buildColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,eAAe,EAChB,MAAM,SAAS,CAAA;AAShB,eAAO,MAAM,mBAAmB,8GAQ7B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,KAAG,MAAM,EAmET,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumns.js","names":["SortColumn","React","AutosaveCell","CreatedAtCell","IDCell","buildVersionColumns","collectionConfig","docID","docs","globalConfig","i18n","t","latestDraftVersion","latestPublishedVersion","entityConfig","columns","accessor","active","field","name","type","Heading","_jsx","Label","renderedCells","map","doc","i","collectionSlug","slug","globalSlug","rowData","id","updatedAt","disable","versions","drafts","autosave","push"],"sources":["../../../src/views/Versions/buildColumns.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n PaginatedDocs,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n TypeWithVersion,\n} from 'payload'\n\nimport { type Column, SortColumn } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { AutosaveCell } from './cells/AutosaveCell/index.js'\nimport { CreatedAtCell } from './cells/CreatedAt/index.js'\nimport { IDCell } from './cells/ID/index.js'\n\nexport const buildVersionColumns = ({\n collectionConfig,\n docID,\n docs,\n globalConfig,\n i18n: { t },\n latestDraftVersion,\n latestPublishedVersion,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docID?: number | string\n docs: PaginatedDocs<TypeWithVersion<any>>['docs']\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n latestDraftVersion?: string\n latestPublishedVersion?: string\n}): Column[] => {\n const entityConfig = collectionConfig || globalConfig\n\n const columns: Column[] = [\n {\n accessor: 'updatedAt',\n active: true,\n field: {\n name: '',\n type: 'date',\n },\n Heading: <SortColumn Label={t('general:updatedAt')} name=\"updatedAt\" />,\n renderedCells: docs.map((doc, i) => {\n return (\n <CreatedAtCell\n collectionSlug={collectionConfig?.slug}\n docID={docID}\n globalSlug={globalConfig?.slug}\n key={i}\n rowData={{\n id: doc.id,\n updatedAt: doc.updatedAt,\n }}\n />\n )\n }),\n },\n {\n accessor: 'id',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <SortColumn disable Label={t('version:versionID')} name=\"id\" />,\n renderedCells: docs.map((doc, i) => {\n return <IDCell id={doc.id} key={i} />\n }),\n },\n ]\n\n if (\n entityConfig?.versions?.drafts ||\n (entityConfig?.versions?.drafts && entityConfig.versions.drafts?.autosave)\n ) {\n columns.push({\n accessor: '_status',\n active: true,\n field: {\n name: '',\n type: 'checkbox',\n },\n Heading: <SortColumn disable Label={t('version:status')} name=\"status\" />,\n renderedCells: docs.map((doc, i) => {\n return (\n <AutosaveCell\n key={i}\n latestDraftVersion={latestDraftVersion}\n latestPublishedVersion={latestPublishedVersion}\n rowData={doc}\n />\n )\n }),\n })\n }\n\n return columns\n}\n"],"mappings":";AASA,SAAsBA,UAAU,QAAQ;AACxC,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AAEvB,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,gBAAgB;EAChBC,KAAK;EACLC,IAAI;EACJC,YAAY;EACZC,IAAA,EAAM;IAAEC;EAAC,CAAE;EACXC,kBAAkB;EAClBC;AAAsB,CAUvB;EACC,MAAMC,YAAA,GAAeR,gBAAA,IAAoBG,YAAA;EAEzC,MAAMM,OAAA,GAAoB,CACxB;IACEC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAACtB,UAAA;MAAWuB,KAAA,EAAOZ,CAAA,CAAE;MAAsBQ,IAAA,EAAK;;IACzDK,aAAA,EAAehB,IAAA,CAAKiB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;MAC5B,oBACEL,IAAA,CAACnB,aAAA;QACCyB,cAAA,EAAgBtB,gBAAA,EAAkBuB,IAAA;QAClCtB,KAAA,EAAOA,KAAA;QACPuB,UAAA,EAAYrB,YAAA,EAAcoB,IAAA;QAE1BE,OAAA,EAAS;UACPC,EAAA,EAAIN,GAAA,CAAIM,EAAE;UACVC,SAAA,EAAWP,GAAA,CAAIO;QACjB;SAJKN,CAAA;IAOX;EACF,GACA;IACEX,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAACtB,UAAA;MAAWkC,OAAO;MAACX,KAAA,EAAOZ,CAAA,CAAE;MAAsBQ,IAAA,EAAK;;IACjEK,aAAA,EAAehB,IAAA,CAAKiB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;MAC5B,oBAAOL,IAAA,CAAClB,MAAA;QAAO4B,EAAA,EAAIN,GAAA,CAAIM;SAASL,CAAA;IAClC;EACF,EACD;EAED,IACEb,YAAA,EAAcqB,QAAA,EAAUC,MAAA,IACvBtB,YAAA,EAAcqB,QAAA,EAAUC,MAAA,IAAUtB,YAAA,CAAaqB,QAAQ,CAACC,MAAM,EAAEC,QAAA,EACjE;IACAtB,OAAA,CAAQuB,IAAI,CAAC;MACXtB,QAAA,EAAU;MACVC,MAAA,EAAQ;MACRC,KAAA,EAAO;QACLC,IAAA,EAAM;QACNC,IAAA,EAAM;MACR;MACAC,OAAA,eAASC,IAAA,CAACtB,UAAA;QAAWkC,OAAO;QAACX,KAAA,EAAOZ,CAAA,CAAE;QAAmBQ,IAAA,EAAK;;MAC9DK,aAAA,EAAehB,IAAA,CAAKiB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;QAC5B,oBACEL,IAAA,CAACpB,YAAA;UAECU,kBAAA,EAAoBA,kBAAA;UACpBC,sBAAA,EAAwBA,sBAAA;UACxBkB,OAAA,EAASL;WAHJC,CAAA;MAMX;IACF;EACF;EAEA,OAAOZ,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"buildColumns.js","names":["SortColumn","React","AutosaveCell","CreatedAtCell","IDCell","buildVersionColumns","collectionConfig","docID","docs","globalConfig","i18n","t","latestDraftVersion","latestPublishedVersion","entityConfig","columns","accessor","active","field","name","type","Heading","_jsx","Label","renderedCells","map","doc","i","collectionSlug","slug","globalSlug","rowData","id","updatedAt","disable","versions","drafts","autosave","push"],"sources":["../../../src/views/Versions/buildColumns.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n Column,\n PaginatedDocs,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n TypeWithVersion,\n} from 'payload'\n\nimport { SortColumn } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { AutosaveCell } from './cells/AutosaveCell/index.js'\nimport { CreatedAtCell } from './cells/CreatedAt/index.js'\nimport { IDCell } from './cells/ID/index.js'\n\nexport const buildVersionColumns = ({\n collectionConfig,\n docID,\n docs,\n globalConfig,\n i18n: { t },\n latestDraftVersion,\n latestPublishedVersion,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docID?: number | string\n docs: PaginatedDocs<TypeWithVersion<any>>['docs']\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n latestDraftVersion?: string\n latestPublishedVersion?: string\n}): Column[] => {\n const entityConfig = collectionConfig || globalConfig\n\n const columns: Column[] = [\n {\n accessor: 'updatedAt',\n active: true,\n field: {\n name: '',\n type: 'date',\n },\n Heading: <SortColumn Label={t('general:updatedAt')} name=\"updatedAt\" />,\n renderedCells: docs.map((doc, i) => {\n return (\n <CreatedAtCell\n collectionSlug={collectionConfig?.slug}\n docID={docID}\n globalSlug={globalConfig?.slug}\n key={i}\n rowData={{\n id: doc.id,\n updatedAt: doc.updatedAt,\n }}\n />\n )\n }),\n },\n {\n accessor: 'id',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <SortColumn disable Label={t('version:versionID')} name=\"id\" />,\n renderedCells: docs.map((doc, i) => {\n return <IDCell id={doc.id} key={i} />\n }),\n },\n ]\n\n if (\n entityConfig?.versions?.drafts ||\n (entityConfig?.versions?.drafts && entityConfig.versions.drafts?.autosave)\n ) {\n columns.push({\n accessor: '_status',\n active: true,\n field: {\n name: '',\n type: 'checkbox',\n },\n Heading: <SortColumn disable Label={t('version:status')} name=\"status\" />,\n renderedCells: docs.map((doc, i) => {\n return (\n <AutosaveCell\n key={i}\n latestDraftVersion={latestDraftVersion}\n latestPublishedVersion={latestPublishedVersion}\n rowData={doc}\n />\n )\n }),\n })\n }\n\n return columns\n}\n"],"mappings":";AAUA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AAEvB,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,gBAAgB;EAChBC,KAAK;EACLC,IAAI;EACJC,YAAY;EACZC,IAAA,EAAM;IAAEC;EAAC,CAAE;EACXC,kBAAkB;EAClBC;AAAsB,CAUvB;EACC,MAAMC,YAAA,GAAeR,gBAAA,IAAoBG,YAAA;EAEzC,MAAMM,OAAA,GAAoB,CACxB;IACEC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAACtB,UAAA;MAAWuB,KAAA,EAAOZ,CAAA,CAAE;MAAsBQ,IAAA,EAAK;;IACzDK,aAAA,EAAehB,IAAA,CAAKiB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;MAC5B,oBACEL,IAAA,CAACnB,aAAA;QACCyB,cAAA,EAAgBtB,gBAAA,EAAkBuB,IAAA;QAClCtB,KAAA,EAAOA,KAAA;QACPuB,UAAA,EAAYrB,YAAA,EAAcoB,IAAA;QAE1BE,OAAA,EAAS;UACPC,EAAA,EAAIN,GAAA,CAAIM,EAAE;UACVC,SAAA,EAAWP,GAAA,CAAIO;QACjB;SAJKN,CAAA;IAOX;EACF,GACA;IACEX,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAACtB,UAAA;MAAWkC,OAAO;MAACX,KAAA,EAAOZ,CAAA,CAAE;MAAsBQ,IAAA,EAAK;;IACjEK,aAAA,EAAehB,IAAA,CAAKiB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;MAC5B,oBAAOL,IAAA,CAAClB,MAAA;QAAO4B,EAAA,EAAIN,GAAA,CAAIM;SAASL,CAAA;IAClC;EACF,EACD;EAED,IACEb,YAAA,EAAcqB,QAAA,EAAUC,MAAA,IACvBtB,YAAA,EAAcqB,QAAA,EAAUC,MAAA,IAAUtB,YAAA,CAAaqB,QAAQ,CAACC,MAAM,EAAEC,QAAA,EACjE;IACAtB,OAAA,CAAQuB,IAAI,CAAC;MACXtB,QAAA,EAAU;MACVC,MAAA,EAAQ;MACRC,KAAA,EAAO;QACLC,IAAA,EAAM;QACNC,IAAA,EAAM;MACR;MACAC,OAAA,eAASC,IAAA,CAACtB,UAAA;QAAWkC,OAAO;QAACX,KAAA,EAAOZ,CAAA,CAAE;QAAmBQ,IAAA,EAAK;;MAC9DK,aAAA,EAAehB,IAAA,CAAKiB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;QAC5B,oBACEL,IAAA,CAACpB,YAAA;UAECU,kBAAA,EAAoBA,kBAAA;UACpBC,sBAAA,EAAwBA,sBAAA;UACxBkB,OAAA,EAASL;WAHJC,CAAA;MAMX;IACF;EACF;EAEA,OAAOZ,OAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/CreatedAt/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,kBAAkB,GAAG;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;KAClC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoCtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/CreatedAt/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,KAAK,kBAAkB,GAAG;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;KAClC,CAAA;CACF,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoCtD,CAAA"}
@@ -2,11 +2,9 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import { useConfig, useTranslation } from '@payloadcms/ui';
5
+ import { Link, useConfig, useTranslation } from '@payloadcms/ui';
6
6
  import { formatAdminURL, formatDate } from '@payloadcms/ui/shared';
7
- import LinkImport from 'next/link.js';
8
7
  import React from 'react';
9
- const Link = LinkImport.default || LinkImport;
10
8
  export const CreatedAtCell = t0 => {
11
9
  const $ = _c(11);
12
10
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useConfig","useTranslation","formatAdminURL","formatDate","LinkImport","React","Link","default","CreatedAtCell","t0","$","collectionSlug","docID","globalSlug","rowData","t1","t2","undefined","id","updatedAt","config","t3","admin","t4","routes","t5","dateFormat","adminRoute","i18n","t6","to","_jsx","href","prefetch","children","date","pattern"],"sources":["../../../../../src/views/Versions/cells/CreatedAt/index.tsx"],"sourcesContent":["'use client'\nimport { useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL, formatDate } from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\ntype CreatedAtCellProps = {\n collectionSlug?: string\n docID?: number | string\n globalSlug?: string\n rowData?: {\n id: number | string\n updatedAt: Date | number | string\n }\n}\n\nexport const CreatedAtCell: React.FC<CreatedAtCellProps> = ({\n collectionSlug,\n docID,\n globalSlug,\n rowData: { id, updatedAt } = {},\n}) => {\n const {\n config: {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n\n let to: string\n\n if (collectionSlug) {\n to = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${docID}/versions/${id}`,\n })\n }\n\n if (globalSlug) {\n to = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}/versions/${id}`,\n })\n }\n\n return (\n <Link href={to} prefetch={false}>\n {formatDate({ date: updatedAt, i18n, pattern: dateFormat })}\n </Link>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,SAAS,EAAEC,cAAc,QAAQ;AAC1C,SAASC,cAAc,EAAEC,UAAU,QAAQ;AAC3C,OAAOC,UAAA,MAAgB;AACvB,OAAOC,KAAA,MAAW;AAElB,MAAMC,IAAA,GAAQF,UAAA,CAAWG,OAAO,IAAIH,UAAA;AAYpC,OAAO,MAAMI,aAAA,GAA8CC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,cAAA;IAAAC,KAAA;IAAAC,UAAA;IAAAC,OAAA,EAAAC;EAAA,IAAAN,EAK3D;EAAA,IAAAO,EAAA;EAAA,IAAAN,CAAA,QAAAK,EAAA;IADUC,EAAA,GAAAD,EAAsB,KAAAE,SAAA,QAAtBF,EAAsB;IAAAL,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAtB;IAAAQ,EAAA;IAAAC;EAAA,IAAAH,EAAsB;EAE/B;IAAAI,MAAA,EAAAC;EAAA,IAKIrB,SAAA;EAJM;IAAAsB,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAGP;EAFQ;IAAAK;EAAA,IAAAH,EAAc;EACb;IAAAD,KAAA,EAAAK;EAAA,IAAAF,EAAqB;EAIjC;IAAAG;EAAA,IAAiB3B,cAAA;EAAA,IAAA4B,EAAA;EAAA,IAAAnB,CAAA,QAAAiB,UAAA,IAAAjB,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAkB,IAAA,IAAAlB,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAS,SAAA;IAEbW,GAAA,CAAAA,EAAA;IAAA,IAEAnB,cAAA;MACFmB,EAAA,CAAAA,CAAA,CAAKA;QAAAA;QAAAA,KAAA,CAEGA,gBAAgBnB,cAAA,IAAkBC,KAAA,aAAkBM,EAAA;MAAI,CAChE;IAHA;IAAA,IAMEL,UAAA;MACFiB,EAAA,CAAAA,CAAA,CAAKA;QAAAA;QAAAA,KAAA,CAEGA,YAAYjB,UAAA,aAAuBK,EAAA;MAAI,CAC/C;IAHA;IAOAW,EAAA,GAAAE,IAAA,CAAAzB,IAAA;MAAA0B,IAAA,EAAYF,EAAA;MAAAG,QAAA;MAAAC,QAAA,EACT/B,UAAA;QAAAgC,IAAA,EAAmBhB,SAAA;QAAAS,IAAA;QAAAQ,OAAA,EAA0BV;MAAA,CAAW;IAAA,C;;;;;;;;;;;;;SAD3DG,E;CAIJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Link","useConfig","useTranslation","formatAdminURL","formatDate","React","CreatedAtCell","t0","$","collectionSlug","docID","globalSlug","rowData","t1","t2","undefined","id","updatedAt","config","t3","admin","t4","routes","t5","dateFormat","adminRoute","i18n","t6","to","_jsx","href","prefetch","children","date","pattern"],"sources":["../../../../../src/views/Versions/cells/CreatedAt/index.tsx"],"sourcesContent":["'use client'\nimport { Link, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL, formatDate } from '@payloadcms/ui/shared'\nimport React from 'react'\n\ntype CreatedAtCellProps = {\n collectionSlug?: string\n docID?: number | string\n globalSlug?: string\n rowData?: {\n id: number | string\n updatedAt: Date | number | string\n }\n}\n\nexport const CreatedAtCell: React.FC<CreatedAtCellProps> = ({\n collectionSlug,\n docID,\n globalSlug,\n rowData: { id, updatedAt } = {},\n}) => {\n const {\n config: {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n\n let to: string\n\n if (collectionSlug) {\n to = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${docID}/versions/${id}`,\n })\n }\n\n if (globalSlug) {\n to = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}/versions/${id}`,\n })\n }\n\n return (\n <Link href={to} prefetch={false}>\n {formatDate({ date: updatedAt, i18n, pattern: dateFormat })}\n </Link>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,IAAI,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AAChD,SAASC,cAAc,EAAEC,UAAU,QAAQ;AAC3C,OAAOC,KAAA,MAAW;AAYlB,OAAO,MAAMC,aAAA,GAA8CC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,cAAA;IAAAC,KAAA;IAAAC,UAAA;IAAAC,OAAA,EAAAC;EAAA,IAAAN,EAK3D;EAAA,IAAAO,EAAA;EAAA,IAAAN,CAAA,QAAAK,EAAA;IADUC,EAAA,GAAAD,EAAsB,KAAAE,SAAA,QAAtBF,EAAsB;IAAAL,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAAtB;IAAAQ,EAAA;IAAAC;EAAA,IAAAH,EAAsB;EAE/B;IAAAI,MAAA,EAAAC;EAAA,IAKIlB,SAAA;EAJM;IAAAmB,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAGP;EAFQ;IAAAK;EAAA,IAAAH,EAAc;EACb;IAAAD,KAAA,EAAAK;EAAA,IAAAF,EAAqB;EAIjC;IAAAG;EAAA,IAAiBxB,cAAA;EAAA,IAAAyB,EAAA;EAAA,IAAAnB,CAAA,QAAAiB,UAAA,IAAAjB,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAkB,IAAA,IAAAlB,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAS,SAAA;IAEbW,GAAA,CAAAA,EAAA;IAAA,IAEAnB,cAAA;MACFmB,EAAA,CAAAA,CAAA,CAAKA;QAAAA;QAAAA,KAAA,CAEGA,gBAAgBnB,cAAA,IAAkBC,KAAA,aAAkBM,EAAA;MAAI,CAChE;IAHA;IAAA,IAMEL,UAAA;MACFiB,EAAA,CAAAA,CAAA,CAAKA;QAAAA;QAAAA,KAAA,CAEGA,YAAYjB,UAAA,aAAuBK,EAAA;MAAI,CAC/C;IAHA;IAOAW,EAAA,GAAAE,IAAA,CAAA7B,IAAA;MAAA8B,IAAA,EAAYF,EAAA;MAAAG,QAAA;MAAAC,QAAA,EACT5B,UAAA;QAAA6B,IAAA,EAAmBhB,SAAA;QAAAS,IAAA;QAAAQ,OAAA,EAA0BV;MAAA,CAAW;IAAA,C;;;;;;;;;;;;;SAD3DG,E;CAIJ","ignoreList":[]}
@@ -1,5 +1,4 @@
1
- import type { SanitizedCollectionConfig } from 'payload';
2
- import { type Column } from '@payloadcms/ui';
1
+ import type { Column, SanitizedCollectionConfig } from 'payload';
3
2
  import React from 'react';
4
3
  export declare const VersionsViewClient: React.FC<{
5
4
  readonly baseClass: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EACL,KAAK,MAAM,EAOZ,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;CACvF,CAwDA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAWhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;CACvF,CAwDA,CAAA"}