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

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 (150) hide show
  1. package/dist/prod/styles.css +1 -1
  2. package/dist/views/Account/index.d.ts.map +1 -1
  3. package/dist/views/Account/index.js +2 -1
  4. package/dist/views/Account/index.js.map +1 -1
  5. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  6. package/dist/views/CreateFirstUser/index.client.js +4 -2
  7. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  8. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  9. package/dist/views/CreateFirstUser/index.js +2 -1
  10. package/dist/views/CreateFirstUser/index.js.map +1 -1
  11. package/dist/views/Document/getDocumentPermissions.js +2 -2
  12. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  13. package/dist/views/Document/index.d.ts.map +1 -1
  14. package/dist/views/Document/index.js +2 -1
  15. package/dist/views/Document/index.js.map +1 -1
  16. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  17. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +2 -0
  18. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  19. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  20. package/dist/views/LivePreview/index.client.js +5 -2
  21. package/dist/views/LivePreview/index.client.js.map +1 -1
  22. package/dist/views/Version/Default/SelectedLocalesContext.d.ts +8 -0
  23. package/dist/views/Version/Default/SelectedLocalesContext.d.ts.map +1 -0
  24. package/dist/views/Version/Default/SelectedLocalesContext.js +10 -0
  25. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -0
  26. package/dist/views/Version/Default/index.d.ts.map +1 -1
  27. package/dist/views/Version/Default/index.js +107 -159
  28. package/dist/views/Version/Default/index.js.map +1 -1
  29. package/dist/views/Version/Default/index.scss +5 -0
  30. package/dist/views/Version/Default/types.d.ts +5 -4
  31. package/dist/views/Version/Default/types.d.ts.map +1 -1
  32. package/dist/views/Version/Default/types.js.map +1 -1
  33. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +27 -0
  34. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -0
  35. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +76 -0
  36. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
  37. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +46 -0
  38. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts +7 -0
  39. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -0
  40. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +74 -0
  41. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -0
  42. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +31 -0
  43. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -0
  44. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +319 -0
  45. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -0
  46. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +3 -0
  47. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -0
  48. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +67 -0
  49. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
  50. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +4 -0
  51. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -0
  52. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +69 -0
  53. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
  54. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +14 -0
  55. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +3 -4
  56. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  57. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +100 -63
  58. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  59. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -12
  60. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -5
  61. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  62. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +19 -19
  63. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  64. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +3 -0
  65. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -0
  66. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -0
  67. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
  68. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts.map +1 -1
  69. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +1 -2
  70. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +1 -1
  71. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +2 -5
  72. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  73. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +56 -28
  74. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  75. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -5
  76. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  77. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +151 -41
  78. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  79. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +20 -0
  80. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts.map +1 -1
  81. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +1 -2
  82. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +1 -1
  83. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +2 -5
  84. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  85. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +71 -37
  86. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  87. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -22
  88. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  89. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +13 -9
  90. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  91. package/dist/views/Version/RenderFieldsToDiff/fields/styles.d.ts +3 -0
  92. package/dist/views/Version/RenderFieldsToDiff/fields/styles.d.ts.map +1 -1
  93. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js +3 -0
  94. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +1 -1
  95. package/dist/views/Version/RenderFieldsToDiff/index.d.ts +2 -5
  96. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  97. package/dist/views/Version/RenderFieldsToDiff/index.js +8 -113
  98. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  99. package/dist/views/Version/RenderFieldsToDiff/index.scss +4 -0
  100. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +21 -0
  101. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -0
  102. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +197 -0
  103. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
  104. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +860 -0
  105. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
  106. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts +2 -0
  107. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts.map +1 -0
  108. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
  109. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
  110. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +46 -0
  111. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
  112. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.d.ts +27 -0
  113. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.d.ts.map +1 -0
  114. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +30 -0
  115. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -0
  116. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +18 -0
  117. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -0
  118. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +44 -0
  119. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
  120. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +122 -0
  121. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
  122. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  123. package/dist/views/Version/Restore/index.js +2 -2
  124. package/dist/views/Version/Restore/index.js.map +1 -1
  125. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  126. package/dist/views/Version/SelectComparison/index.js +7 -3
  127. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  128. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  129. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  130. package/dist/views/Version/index.d.ts.map +1 -1
  131. package/dist/views/Version/index.js +120 -15
  132. package/dist/views/Version/index.js.map +1 -1
  133. package/dist/views/Versions/getLatestVersion.d.ts +4 -1
  134. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  135. package/dist/views/Versions/getLatestVersion.js +6 -0
  136. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  137. package/package.json +8 -7
  138. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +0 -6
  139. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +0 -1
  140. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -43
  141. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +0 -1
  142. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -14
  143. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +0 -22
  144. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +0 -1
  145. package/dist/views/Version/RenderFieldsToDiff/fields/types.js +0 -2
  146. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +0 -1
  147. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +0 -21
  148. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +0 -1
  149. package/dist/views/Version/RenderFieldsToDiff/types.js +0 -2
  150. package/dist/views/Version/RenderFieldsToDiff/types.js.map +0 -1
@@ -0,0 +1,197 @@
1
+ import { fieldHasChanges } from './fieldHasChanges.js';
2
+ import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
3
+ /**
4
+ * Recursively counts the number of changed fields between comparison and
5
+ * version data for a given set of fields.
6
+ */
7
+ export function countChangedFields({
8
+ comparison,
9
+ fields,
10
+ locales,
11
+ version
12
+ }) {
13
+ let count = 0;
14
+ fields.forEach(field => {
15
+ // Don't count the id field since it is not displayed in the UI
16
+ if ('name' in field && field.name === 'id') {
17
+ return;
18
+ }
19
+ const fieldType = field.type;
20
+ switch (fieldType) {
21
+ // Iterable fields are arrays and blocks fields. We iterate over each row and
22
+ // count the number of changed fields in each.
23
+ case 'array':
24
+ case 'blocks':
25
+ {
26
+ if (locales && field.localized) {
27
+ locales.forEach(locale => {
28
+ const comparisonRows = comparison?.[field.name]?.[locale] ?? [];
29
+ const versionRows = version?.[field.name]?.[locale] ?? [];
30
+ count += countChangedFieldsInRows({
31
+ comparisonRows,
32
+ field,
33
+ locales,
34
+ versionRows
35
+ });
36
+ });
37
+ } else {
38
+ const comparisonRows = comparison?.[field.name] ?? [];
39
+ const versionRows = version?.[field.name] ?? [];
40
+ count += countChangedFieldsInRows({
41
+ comparisonRows,
42
+ field,
43
+ locales,
44
+ versionRows
45
+ });
46
+ }
47
+ break;
48
+ }
49
+ // Regular fields without nested fields.
50
+ case 'checkbox':
51
+ case 'code':
52
+ case 'date':
53
+ case 'email':
54
+ case 'join':
55
+ case 'json':
56
+ case 'number':
57
+ case 'point':
58
+ case 'radio':
59
+ case 'relationship':
60
+ case 'richText':
61
+ case 'select':
62
+ case 'text':
63
+ case 'textarea':
64
+ case 'upload':
65
+ {
66
+ // Fields that have a name and contain data. We can just check if the data has changed.
67
+ if (locales && field.localized) {
68
+ locales.forEach(locale => {
69
+ if (fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])) {
70
+ count++;
71
+ }
72
+ });
73
+ } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {
74
+ count++;
75
+ }
76
+ break;
77
+ }
78
+ // Fields that have nested fields, but don't nest their fields' data.
79
+ case 'collapsible':
80
+ case 'row':
81
+ {
82
+ count += countChangedFields({
83
+ comparison,
84
+ fields: field.fields,
85
+ locales,
86
+ version
87
+ });
88
+ break;
89
+ }
90
+ // Fields that have nested fields and nest their fields' data.
91
+ case 'group':
92
+ {
93
+ if (locales && field.localized) {
94
+ locales.forEach(locale => {
95
+ count += countChangedFields({
96
+ comparison: comparison?.[field.name]?.[locale],
97
+ fields: field.fields,
98
+ locales,
99
+ version: version?.[field.name]?.[locale]
100
+ });
101
+ });
102
+ } else {
103
+ count += countChangedFields({
104
+ comparison: comparison?.[field.name],
105
+ fields: field.fields,
106
+ locales,
107
+ version: version?.[field.name]
108
+ });
109
+ }
110
+ break;
111
+ }
112
+ // Each tab in a tabs field has nested fields. The fields data may be
113
+ // nested or not depending on the existence of a name property.
114
+ case 'tabs':
115
+ {
116
+ field.tabs.forEach(tab => {
117
+ if ('name' in tab && locales && tab.localized) {
118
+ // Named localized tab
119
+ locales.forEach(locale => {
120
+ count += countChangedFields({
121
+ comparison: comparison?.[tab.name]?.[locale],
122
+ fields: tab.fields,
123
+ locales,
124
+ version: version?.[tab.name]?.[locale]
125
+ });
126
+ });
127
+ } else if ('name' in tab) {
128
+ // Named tab
129
+ count += countChangedFields({
130
+ comparison: comparison?.[tab.name],
131
+ fields: tab.fields,
132
+ locales,
133
+ version: version?.[tab.name]
134
+ });
135
+ } else {
136
+ // Unnamed tab
137
+ count += countChangedFields({
138
+ comparison,
139
+ fields: tab.fields,
140
+ locales,
141
+ version
142
+ });
143
+ }
144
+ });
145
+ break;
146
+ }
147
+ // UI fields don't have data and are not displayed in the version view
148
+ // so we can ignore them.
149
+ case 'ui':
150
+ {
151
+ break;
152
+ }
153
+ default:
154
+ {
155
+ const _exhaustiveCheck = fieldType;
156
+ throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`);
157
+ }
158
+ }
159
+ });
160
+ return count;
161
+ }
162
+ export function countChangedFieldsInRows({
163
+ comparisonRows = [],
164
+ field,
165
+ locales,
166
+ versionRows = []
167
+ }) {
168
+ let count = 0;
169
+ let i = 0;
170
+ while (comparisonRows[i] || versionRows[i]) {
171
+ const comparisonRow = comparisonRows?.[i] || {};
172
+ const versionRow = versionRows?.[i] || {};
173
+ const {
174
+ fields: rowFields
175
+ } = getFieldsForRowComparison({
176
+ baseVersionField: {
177
+ type: 'text',
178
+ fields: [],
179
+ path: '',
180
+ schemaPath: ''
181
+ },
182
+ comparisonRow,
183
+ field,
184
+ row: i,
185
+ versionRow
186
+ });
187
+ count += countChangedFields({
188
+ comparison: comparisonRow,
189
+ fields: rowFields,
190
+ locales,
191
+ version: versionRow
192
+ });
193
+ i++;
194
+ }
195
+ return count;
196
+ }
197
+ //# sourceMappingURL=countChangedFields.js.map
@@ -0,0 +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":[]}