@payloadcms/next 3.56.0-internal.72f4fd2 → 3.56.0

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 (64) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +41 -19
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  3. package/dist/elements/Nav/index.client.js +48 -28
  4. package/dist/elements/Nav/index.client.js.map +1 -1
  5. package/dist/layouts/Root/index.js +1 -1
  6. package/dist/layouts/Root/index.js.map +1 -1
  7. package/dist/prod/styles.css +1 -1
  8. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  9. package/dist/utilities/handleServerFunctions.js +3 -9
  10. package/dist/utilities/handleServerFunctions.js.map +1 -1
  11. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  12. package/dist/views/CreateFirstUser/index.js +1 -0
  13. package/dist/views/CreateFirstUser/index.js.map +1 -1
  14. package/dist/views/Document/getIsLocked.d.ts.map +1 -1
  15. package/dist/views/Document/getIsLocked.js +18 -3
  16. package/dist/views/Document/getIsLocked.js.map +1 -1
  17. package/dist/views/List/transformColumnsToSelect.d.ts.map +1 -1
  18. package/dist/views/List/transformColumnsToSelect.js +10 -6
  19. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  20. package/dist/views/Logout/LogoutClient.js +31 -29
  21. package/dist/views/Logout/LogoutClient.js.map +1 -1
  22. package/dist/views/Root/index.d.ts.map +1 -1
  23. package/dist/views/Root/index.js +4 -5
  24. package/dist/views/Root/index.js.map +1 -1
  25. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +34 -18
  26. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  27. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +8 -2
  28. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  29. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +27 -17
  30. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  31. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  32. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +4 -1
  33. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  34. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +5 -0
  35. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  36. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +48 -33
  37. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  38. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +30 -21
  39. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  40. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +6 -6
  41. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  42. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +35 -35
  43. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  44. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +88 -88
  45. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  46. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +3 -3
  47. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  48. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +6 -6
  49. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  50. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +28 -16
  51. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  52. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +50 -16
  53. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  54. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +12 -8
  55. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  56. package/dist/views/Versions/cells/AutosaveCell/index.js +23 -14
  57. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  58. package/dist/views/Versions/cells/CreatedAt/index.js +53 -27
  59. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  60. package/package.json +9 -9
  61. package/dist/views/Root/SyncClientConfig.d.ts +0 -11
  62. package/dist/views/Root/SyncClientConfig.d.ts.map +0 -1
  63. package/dist/views/Root/SyncClientConfig.js +0 -38
  64. package/dist/views/Root/SyncClientConfig.js.map +0 -1
@@ -101,7 +101,7 @@ export const Tabs = props => {
101
101
  return t0;
102
102
  };
103
103
  const Tab = t0 => {
104
- const $ = _c(10);
104
+ const $ = _c(12);
105
105
  const {
106
106
  comparisonValue: valueFrom,
107
107
  fieldTab,
@@ -120,36 +120,45 @@ const Tab = t0 => {
120
120
  return null;
121
121
  }
122
122
  let t1;
123
- if ($[0] !== fieldTab.fields || $[1] !== fieldTab.localized || $[2] !== i18n || $[3] !== locale || $[4] !== parentIsLocalized || $[5] !== selectedLocales || $[6] !== tab || $[7] !== valueFrom || $[8] !== valueTo) {
124
- t1 = _jsx(DiffCollapser, {
123
+ if ($[0] !== i18n || $[1] !== locale || $[2] !== tab) {
124
+ t1 = "label" in tab && tab.label && typeof tab.label !== "function" && _jsxs("span", {
125
+ children: [locale && _jsx("span", {
126
+ className: `${baseClass}__locale-label`,
127
+ children: locale
128
+ }), getTranslation(tab.label, i18n)]
129
+ });
130
+ $[0] = i18n;
131
+ $[1] = locale;
132
+ $[2] = tab;
133
+ $[3] = t1;
134
+ } else {
135
+ t1 = $[3];
136
+ }
137
+ const t2 = parentIsLocalized || fieldTab.localized;
138
+ let t3;
139
+ if ($[4] !== fieldTab.fields || $[5] !== selectedLocales || $[6] !== t1 || $[7] !== t2 || $[8] !== tab.fields || $[9] !== valueFrom || $[10] !== valueTo) {
140
+ t3 = _jsx(DiffCollapser, {
125
141
  fields: fieldTab.fields,
126
- Label: "label" in tab && tab.label && typeof tab.label !== "function" && _jsxs("span", {
127
- children: [locale && _jsx("span", {
128
- className: `${baseClass}__locale-label`,
129
- children: locale
130
- }), getTranslation(tab.label, i18n)]
131
- }),
142
+ Label: t1,
132
143
  locales: selectedLocales,
133
- parentIsLocalized: parentIsLocalized || fieldTab.localized,
144
+ parentIsLocalized: t2,
134
145
  valueFrom,
135
146
  valueTo,
136
147
  children: _jsx(RenderVersionFieldsToDiff, {
137
148
  versionFields: tab.fields
138
149
  })
139
150
  });
140
- $[0] = fieldTab.fields;
141
- $[1] = fieldTab.localized;
142
- $[2] = i18n;
143
- $[3] = locale;
144
- $[4] = parentIsLocalized;
151
+ $[4] = fieldTab.fields;
145
152
  $[5] = selectedLocales;
146
- $[6] = tab;
147
- $[7] = valueFrom;
148
- $[8] = valueTo;
149
- $[9] = t1;
153
+ $[6] = t1;
154
+ $[7] = t2;
155
+ $[8] = tab.fields;
156
+ $[9] = valueFrom;
157
+ $[10] = valueTo;
158
+ $[11] = t3;
150
159
  } else {
151
- t1 = $[9];
160
+ t3 = $[11];
152
161
  }
153
- return t1;
162
+ return t3;
154
163
  };
155
164
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","useTranslation","React","useSelectedLocales","DiffCollapser","RenderVersionFieldsToDiff","baseClass","Tabs","props","$","baseVersionField","comparisonValue","valueFrom","field","versionValue","valueTo","selectedLocales","t0","tabs","t1","tab","i","fields","length","fieldTab","_jsx","className","children","localized","map","locale","index","localizedTabProps","name","Tab","join","namedTabProps","parentIsLocalized","i18n","Label","label","_jsxs","versionFields"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientTab,\n FieldDiffClientProps,\n TabsFieldClient,\n TabsFieldDiffClientComponent,\n VersionTab,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport './index.scss'\nimport { useSelectedLocales } from '../../../Default/SelectedLocalesContext.js'\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderVersionFieldsToDiff } from '../../RenderVersionFieldsToDiff.js'\n\nconst baseClass = 'tabs-diff'\n\nexport const Tabs: TabsFieldDiffClientComponent = (props) => {\n const { baseVersionField, comparisonValue: valueFrom, field, versionValue: valueTo } = props\n const { selectedLocales } = useSelectedLocales()\n\n return (\n <div className={baseClass}>\n {baseVersionField.tabs.map((tab, i) => {\n if (!tab?.fields?.length) {\n return null\n }\n const fieldTab = field.tabs?.[i]\n return (\n <div className={`${baseClass}__tab`} key={i}>\n {(() => {\n if ('name' in fieldTab && selectedLocales && fieldTab.localized) {\n // Named localized tab\n return selectedLocales.map((locale, index) => {\n const localizedTabProps: TabProps = {\n ...props,\n comparisonValue: valueFrom?.[tab.name]?.[locale],\n fieldTab,\n locale,\n tab,\n versionValue: valueTo?.[tab.name]?.[locale],\n }\n return (\n <div className={`${baseClass}__tab-locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__tab-locale-value`}>\n <Tab key={locale} {...localizedTabProps} />\n </div>\n </div>\n )\n })\n } else if ('name' in tab && tab.name) {\n // Named tab\n const namedTabProps: TabProps = {\n ...props,\n comparisonValue: valueFrom?.[tab.name],\n fieldTab,\n tab,\n versionValue: valueTo?.[tab.name],\n }\n return <Tab key={i} {...namedTabProps} />\n } else {\n // Unnamed tab\n return <Tab fieldTab={fieldTab} key={i} {...props} tab={tab} />\n }\n })()}\n </div>\n )\n })}\n </div>\n )\n}\n\ntype TabProps = {\n fieldTab: ClientTab\n tab: VersionTab\n} & FieldDiffClientProps<TabsFieldClient>\n\nconst Tab: React.FC<TabProps> = ({\n comparisonValue: valueFrom,\n fieldTab,\n locale,\n parentIsLocalized,\n tab,\n versionValue: valueTo,\n}) => {\n const { i18n } = useTranslation()\n const { selectedLocales } = useSelectedLocales()\n\n if (!tab.fields?.length) {\n return null\n }\n\n return (\n <DiffCollapser\n fields={fieldTab.fields}\n Label={\n 'label' in tab &&\n tab.label &&\n typeof tab.label !== 'function' && (\n <span>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(tab.label, i18n)}\n </span>\n )\n }\n locales={selectedLocales}\n parentIsLocalized={parentIsLocalized || fieldTab.localized}\n valueFrom={valueFrom}\n valueTo={valueTo}\n >\n <RenderVersionFieldsToDiff versionFields={tab.fields} />\n </DiffCollapser>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","useTranslation","React","useSelectedLocales","DiffCollapser","RenderVersionFieldsToDiff","baseClass","Tabs","props","$","baseVersionField","comparisonValue","valueFrom","field","versionValue","valueTo","selectedLocales","t0","tabs","t1","tab","i","fields","length","fieldTab","_jsx","className","children","localized","map","locale","index","localizedTabProps","name","Tab","join","namedTabProps","parentIsLocalized","i18n","label","_jsxs","t2","t3","Label","versionFields"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientTab,\n FieldDiffClientProps,\n TabsFieldClient,\n TabsFieldDiffClientComponent,\n VersionTab,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport './index.scss'\nimport { useSelectedLocales } from '../../../Default/SelectedLocalesContext.js'\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderVersionFieldsToDiff } from '../../RenderVersionFieldsToDiff.js'\n\nconst baseClass = 'tabs-diff'\n\nexport const Tabs: TabsFieldDiffClientComponent = (props) => {\n const { baseVersionField, comparisonValue: valueFrom, field, versionValue: valueTo } = props\n const { selectedLocales } = useSelectedLocales()\n\n return (\n <div className={baseClass}>\n {baseVersionField.tabs.map((tab, i) => {\n if (!tab?.fields?.length) {\n return null\n }\n const fieldTab = field.tabs?.[i]\n return (\n <div className={`${baseClass}__tab`} key={i}>\n {(() => {\n if ('name' in fieldTab && selectedLocales && fieldTab.localized) {\n // Named localized tab\n return selectedLocales.map((locale, index) => {\n const localizedTabProps: TabProps = {\n ...props,\n comparisonValue: valueFrom?.[tab.name]?.[locale],\n fieldTab,\n locale,\n tab,\n versionValue: valueTo?.[tab.name]?.[locale],\n }\n return (\n <div className={`${baseClass}__tab-locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__tab-locale-value`}>\n <Tab key={locale} {...localizedTabProps} />\n </div>\n </div>\n )\n })\n } else if ('name' in tab && tab.name) {\n // Named tab\n const namedTabProps: TabProps = {\n ...props,\n comparisonValue: valueFrom?.[tab.name],\n fieldTab,\n tab,\n versionValue: valueTo?.[tab.name],\n }\n return <Tab key={i} {...namedTabProps} />\n } else {\n // Unnamed tab\n return <Tab fieldTab={fieldTab} key={i} {...props} tab={tab} />\n }\n })()}\n </div>\n )\n })}\n </div>\n )\n}\n\ntype TabProps = {\n fieldTab: ClientTab\n tab: VersionTab\n} & FieldDiffClientProps<TabsFieldClient>\n\nconst Tab: React.FC<TabProps> = ({\n comparisonValue: valueFrom,\n fieldTab,\n locale,\n parentIsLocalized,\n tab,\n versionValue: valueTo,\n}) => {\n const { i18n } = useTranslation()\n const { selectedLocales } = useSelectedLocales()\n\n if (!tab.fields?.length) {\n return null\n }\n\n return (\n <DiffCollapser\n fields={fieldTab.fields}\n Label={\n 'label' in tab &&\n tab.label &&\n typeof tab.label !== 'function' && (\n <span>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(tab.label, i18n)}\n </span>\n )\n }\n locales={selectedLocales}\n parentIsLocalized={parentIsLocalized || fieldTab.localized}\n valueFrom={valueFrom}\n valueTo={valueTo}\n >\n <RenderVersionFieldsToDiff versionFields={tab.fields} />\n </DiffCollapser>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,25 @@
1
1
  import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload';
2
2
  type Args = {
3
- comparison: unknown;
4
3
  config: ClientConfig;
5
4
  fields: ClientField[];
6
5
  locales: string[] | undefined;
7
6
  parentIsLocalized: boolean;
8
- version: unknown;
7
+ valueFrom: unknown;
8
+ valueTo: unknown;
9
9
  };
10
10
  /**
11
11
  * Recursively counts the number of changed fields between comparison and
12
12
  * version data for a given set of fields.
13
13
  */
14
- export declare function countChangedFields({ comparison, config, fields, locales, parentIsLocalized, version, }: Args): number;
14
+ export declare function countChangedFields({ config, fields, locales, parentIsLocalized, valueFrom, valueTo, }: Args): number;
15
15
  type countChangedFieldsInRowsArgs = {
16
- comparisonRows: unknown[];
17
16
  config: ClientConfig;
18
17
  field: ArrayFieldClient | BlocksFieldClient;
19
18
  locales: string[] | undefined;
20
19
  parentIsLocalized: boolean;
21
- versionRows: unknown[];
20
+ valueFromRows: unknown[];
21
+ valueToRows: unknown[];
22
22
  };
23
- export declare function countChangedFieldsInRows({ comparisonRows, config, field, locales, parentIsLocalized, versionRows, }: countChangedFieldsInRowsArgs): number;
23
+ export declare function countChangedFieldsInRows({ config, field, locales, parentIsLocalized, valueFromRows, valueToRows, }: countChangedFieldsInRowsArgs): number;
24
24
  export {};
25
25
  //# sourceMappingURL=countChangedFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,GACR,EAAE,IAAI,UAoLN;AAED,KAAK,4BAA4B,GAAG;IAClC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,cAAmB,EACnB,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,WAAgB,GACjB,EAAE,4BAA4B,UA6B9B"}
1
+ {"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,SAAS,EACT,OAAO,GACR,EAAE,IAAI,UAoLN;AAED,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,OAAO,EAAE,CAAA;IACxB,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,aAAkB,EAClB,WAAgB,GACjB,EAAE,4BAA4B,UA6B9B"}
@@ -6,12 +6,12 @@ import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
6
6
  * version data for a given set of fields.
7
7
  */
8
8
  export function countChangedFields({
9
- comparison,
10
9
  config,
11
10
  fields,
12
11
  locales,
13
12
  parentIsLocalized,
14
- version
13
+ valueFrom,
14
+ valueTo
15
15
  }) {
16
16
  let count = 0;
17
17
  fields.forEach(field => {
@@ -31,27 +31,27 @@ export function countChangedFields({
31
31
  parentIsLocalized
32
32
  })) {
33
33
  locales.forEach(locale => {
34
- const comparisonRows = comparison?.[field.name]?.[locale] ?? [];
35
- const versionRows = version?.[field.name]?.[locale] ?? [];
34
+ const valueFromRows = valueFrom?.[field.name]?.[locale] ?? [];
35
+ const valueToRows = valueTo?.[field.name]?.[locale] ?? [];
36
36
  count += countChangedFieldsInRows({
37
- comparisonRows,
38
37
  config,
39
38
  field,
40
39
  locales,
41
40
  parentIsLocalized: parentIsLocalized || field.localized,
42
- versionRows
41
+ valueFromRows,
42
+ valueToRows
43
43
  });
44
44
  });
45
45
  } else {
46
- const comparisonRows = comparison?.[field.name] ?? [];
47
- const versionRows = version?.[field.name] ?? [];
46
+ const valueFromRows = valueFrom?.[field.name] ?? [];
47
+ const valueToRows = valueTo?.[field.name] ?? [];
48
48
  count += countChangedFieldsInRows({
49
- comparisonRows,
50
49
  config,
51
50
  field,
52
51
  locales,
53
52
  parentIsLocalized: parentIsLocalized || field.localized,
54
- versionRows
53
+ valueFromRows,
54
+ valueToRows
55
55
  });
56
56
  }
57
57
  break;
@@ -79,11 +79,11 @@ export function countChangedFields({
79
79
  parentIsLocalized
80
80
  })) {
81
81
  locales.forEach(locale => {
82
- if (fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])) {
82
+ if (fieldHasChanges(valueTo?.[field.name]?.[locale], valueFrom?.[field.name]?.[locale])) {
83
83
  count++;
84
84
  }
85
85
  });
86
- } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {
86
+ } else if (fieldHasChanges(valueTo?.[field.name], valueFrom?.[field.name])) {
87
87
  count++;
88
88
  }
89
89
  break;
@@ -93,12 +93,12 @@ export function countChangedFields({
93
93
  case 'row':
94
94
  {
95
95
  count += countChangedFields({
96
- comparison,
97
96
  config,
98
97
  fields: field.fields,
99
98
  locales,
100
99
  parentIsLocalized: parentIsLocalized || field.localized,
101
- version
100
+ valueFrom,
101
+ valueTo
102
102
  });
103
103
  break;
104
104
  }
@@ -112,33 +112,33 @@ export function countChangedFields({
112
112
  })) {
113
113
  locales.forEach(locale => {
114
114
  count += countChangedFields({
115
- comparison: comparison?.[field.name]?.[locale],
116
115
  config,
117
116
  fields: field.fields,
118
117
  locales,
119
118
  parentIsLocalized: parentIsLocalized || field.localized,
120
- version: version?.[field.name]?.[locale]
119
+ valueFrom: valueFrom?.[field.name]?.[locale],
120
+ valueTo: valueTo?.[field.name]?.[locale]
121
121
  });
122
122
  });
123
123
  } else {
124
124
  count += countChangedFields({
125
- comparison: comparison?.[field.name],
126
125
  config,
127
126
  fields: field.fields,
128
127
  locales,
129
128
  parentIsLocalized: parentIsLocalized || field.localized,
130
- version: version?.[field.name]
129
+ valueFrom: valueFrom?.[field.name],
130
+ valueTo: valueTo?.[field.name]
131
131
  });
132
132
  }
133
133
  } else {
134
134
  // Unnamed group field: data is NOT nested under `field.name`
135
135
  count += countChangedFields({
136
- comparison,
137
136
  config,
138
137
  fields: field.fields,
139
138
  locales,
140
139
  parentIsLocalized: parentIsLocalized || field.localized,
141
- version
140
+ valueFrom,
141
+ valueTo
142
142
  });
143
143
  }
144
144
  break;
@@ -152,33 +152,33 @@ export function countChangedFields({
152
152
  // Named localized tab
153
153
  locales.forEach(locale => {
154
154
  count += countChangedFields({
155
- comparison: comparison?.[tab.name]?.[locale],
156
155
  config,
157
156
  fields: tab.fields,
158
157
  locales,
159
158
  parentIsLocalized: parentIsLocalized || tab.localized,
160
- version: version?.[tab.name]?.[locale]
159
+ valueFrom: valueFrom?.[tab.name]?.[locale],
160
+ valueTo: valueTo?.[tab.name]?.[locale]
161
161
  });
162
162
  });
163
163
  } else if ('name' in tab) {
164
164
  // Named tab
165
165
  count += countChangedFields({
166
- comparison: comparison?.[tab.name],
167
166
  config,
168
167
  fields: tab.fields,
169
168
  locales,
170
169
  parentIsLocalized: parentIsLocalized || tab.localized,
171
- version: version?.[tab.name]
170
+ valueFrom: valueFrom?.[tab.name],
171
+ valueTo: valueTo?.[tab.name]
172
172
  });
173
173
  } else {
174
174
  // Unnamed tab
175
175
  count += countChangedFields({
176
- comparison,
177
176
  config,
178
177
  fields: tab.fields,
179
178
  locales,
180
179
  parentIsLocalized: parentIsLocalized || tab.localized,
181
- version
180
+ valueFrom,
181
+ valueTo
182
182
  });
183
183
  }
184
184
  });
@@ -200,18 +200,18 @@ export function countChangedFields({
200
200
  return count;
201
201
  }
202
202
  export function countChangedFieldsInRows({
203
- comparisonRows = [],
204
203
  config,
205
204
  field,
206
205
  locales,
207
206
  parentIsLocalized,
208
- versionRows = []
207
+ valueFromRows = [],
208
+ valueToRows = []
209
209
  }) {
210
210
  let count = 0;
211
211
  let i = 0;
212
- while (comparisonRows[i] || versionRows[i]) {
213
- const comparisonRow = comparisonRows?.[i] || {};
214
- const versionRow = versionRows?.[i] || {};
212
+ while (valueFromRows[i] || valueToRows[i]) {
213
+ const valueFromRow = valueFromRows?.[i] || {};
214
+ const valueToRow = valueToRows?.[i] || {};
215
215
  const {
216
216
  fields: rowFields
217
217
  } = getFieldsForRowComparison({
@@ -221,19 +221,19 @@ export function countChangedFieldsInRows({
221
221
  path: '',
222
222
  schemaPath: ''
223
223
  },
224
- comparisonRow,
225
224
  config,
226
225
  field,
227
226
  row: i,
228
- versionRow
227
+ valueFromRow,
228
+ valueToRow
229
229
  });
230
230
  count += countChangedFields({
231
- comparison: comparisonRow,
232
231
  config,
233
232
  fields: rowFields,
234
233
  locales,
235
234
  parentIsLocalized: parentIsLocalized || field.localized,
236
- version: versionRow
235
+ valueFrom: valueFromRow,
236
+ valueTo: valueToRow
237
237
  });
238
238
  i++;
239
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","groupHasName","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized, groupHasName } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (groupHasName(field)) {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n } else {\n // Unnamed group field: data is NOT nested under `field.name`\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","groupHasName","fieldHasChanges","getFieldsForRowComparison","countChangedFields","config","fields","locales","parentIsLocalized","valueFrom","valueTo","count","forEach","field","name","fieldType","type","locale","valueFromRows","valueToRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","valueFromRow","valueToRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized, groupHasName } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueFrom: unknown\n valueTo: 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 config,\n fields,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\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 valueFromRows = valueFrom?.[field.name]?.[locale] ?? []\n const valueToRows = valueTo?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFromRows,\n valueToRows,\n })\n })\n } else {\n const valueFromRows = valueFrom?.[field.name] ?? []\n const valueToRows = valueTo?.[field.name] ?? []\n count += countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFromRows,\n valueToRows,\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(valueTo?.[field.name]?.[locale], valueFrom?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(valueTo?.[field.name], valueFrom?.[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 config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom,\n valueTo,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (groupHasName(field)) {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFrom?.[field.name]?.[locale],\n valueTo: valueTo?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFrom?.[field.name],\n valueTo: valueTo?.[field.name],\n })\n }\n } else {\n // Unnamed group field: data is NOT nested under `field.name`\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom,\n valueTo,\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 config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom: valueFrom?.[tab.name]?.[locale],\n valueTo: valueTo?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom: valueFrom?.[tab.name],\n valueTo: valueTo?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom,\n valueTo,\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 config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueFromRows: unknown[]\n valueToRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized,\n valueFromRows = [],\n valueToRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (valueFromRows[i] || valueToRows[i]) {\n const valueFromRow = valueFromRows?.[i] || {}\n const valueToRow = valueToRows?.[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 config,\n field,\n row: i,\n valueFromRow,\n valueToRow,\n })\n\n count += countChangedFields({\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFromRow,\n valueTo: valueToRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}