@payloadcms/next 3.19.0 → 3.20.0-canary.260f830

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 (100) 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/index.js +1 -1
  23. package/dist/views/Version/Default/index.js.map +1 -1
  24. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +27 -0
  25. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -0
  26. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +76 -0
  27. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
  28. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +46 -0
  29. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +4 -0
  30. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -0
  31. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +41 -0
  32. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
  33. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +5 -0
  34. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -0
  35. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +45 -0
  36. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
  37. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +14 -0
  38. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +1 -2
  39. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  40. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +60 -55
  41. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  42. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -12
  43. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +1 -2
  44. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  45. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -2
  46. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  47. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +4 -0
  48. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -0
  49. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +34 -0
  50. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
  51. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -2
  52. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  53. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +1 -2
  54. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  55. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +2 -2
  56. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  57. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +81 -34
  58. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  59. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +20 -0
  60. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +1 -2
  61. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  62. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +1 -2
  63. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  64. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  65. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +11 -9
  66. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  67. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +0 -1
  68. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  69. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  70. package/dist/views/Version/RenderFieldsToDiff/index.d.ts +1 -2
  71. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  72. package/dist/views/Version/RenderFieldsToDiff/index.js +4 -6
  73. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  74. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +21 -0
  75. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -0
  76. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +188 -0
  77. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
  78. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +860 -0
  79. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
  80. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts +2 -0
  81. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts.map +1 -0
  82. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
  83. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
  84. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +46 -0
  85. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
  86. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +13 -0
  87. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -0
  88. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +35 -0
  89. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
  90. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +104 -0
  91. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
  92. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  93. package/dist/views/Version/Restore/index.js +2 -2
  94. package/dist/views/Version/Restore/index.js.map +1 -1
  95. package/package.json +6 -6
  96. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +0 -6
  97. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +0 -1
  98. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -43
  99. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +0 -1
  100. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -14
@@ -2,12 +2,13 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { getTranslation } from '@payloadcms/translations';
5
- import { getUniqueListBy } from 'payload/shared';
5
+ import { fieldIsArrayType, fieldIsBlockType } from 'payload/shared';
6
6
  import React from 'react';
7
- import RenderFieldsToDiff from '../../index.js';
8
- import Label from '../../Label/index.js';
7
+ import { DiffCollapser } from '../../DiffCollapser/index.js';
8
+ import { RenderFieldsToDiff } from '../../index.js';
9
+ import { getFieldsForRowComparison } from '../../utilities/getFieldsForRowComparison.js';
9
10
  const baseClass = 'iterable-diff';
10
- const Iterable = ({
11
+ export const Iterable = ({
11
12
  comparison,
12
13
  diffComponents,
13
14
  field,
@@ -20,58 +21,62 @@ const Iterable = ({
20
21
  const versionRowCount = Array.isArray(version) ? version.length : 0;
21
22
  const comparisonRowCount = Array.isArray(comparison) ? comparison.length : 0;
22
23
  const maxRows = Math.max(versionRowCount, comparisonRowCount);
23
- return /*#__PURE__*/_jsxs("div", {
24
+ if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {
25
+ throw new Error(`Expected field to be an array or blocks type but got: ${field.type}`);
26
+ }
27
+ return /*#__PURE__*/_jsx("div", {
24
28
  className: baseClass,
25
- children: ['label' in field && field.label && typeof field.label !== 'function' && /*#__PURE__*/_jsxs(Label, {
26
- children: [locale && /*#__PURE__*/_jsx("span", {
27
- className: `${baseClass}__locale-label`,
28
- children: locale
29
- }), getTranslation(field.label, i18n)]
30
- }), maxRows > 0 && /*#__PURE__*/_jsx(React.Fragment, {
31
- children: Array.from(Array(maxRows).keys()).map((row, i) => {
32
- const versionRow = version?.[i] || {};
33
- const comparisonRow = comparison?.[i] || {};
34
- let fields = [];
35
- if (field.type === 'array' && 'fields' in field) {
36
- fields = field.fields;
37
- }
38
- if (field.type === 'blocks') {
39
- fields = [];
40
- if (versionRow?.blockType === comparisonRow?.blockType) {
41
- const matchedBlock = 'blocks' in field && field.blocks?.find(block => block.slug === versionRow?.blockType) || {
42
- fields: []
43
- };
44
- fields = [...fields, ...matchedBlock.fields];
45
- } else {
46
- const matchedVersionBlock = 'blocks' in field && field.blocks?.find(block => block.slug === versionRow?.blockType) || {
47
- fields: []
48
- };
49
- const matchedComparisonBlock = 'blocks' in field && field.blocks?.find(block => block.slug === comparisonRow?.blockType) || {
50
- fields: []
51
- };
52
- fields = getUniqueListBy([...fields, ...matchedVersionBlock.fields, ...matchedComparisonBlock.fields], 'name');
53
- }
54
- }
55
- return /*#__PURE__*/_jsx("div", {
56
- className: `${baseClass}__wrap`,
57
- children: /*#__PURE__*/_jsx(RenderFieldsToDiff, {
58
- comparison: comparisonRow,
59
- diffComponents: diffComponents,
60
- fieldPermissions: fieldPermissions,
61
- fields: fields,
62
- i18n: i18n,
63
- locales: locales,
64
- version: versionRow
65
- })
66
- }, i);
67
- })
68
- }), maxRows === 0 && /*#__PURE__*/_jsx("div", {
69
- className: `${baseClass}__no-rows`,
70
- children: i18n.t('version:noRowsFound', {
71
- label: 'labels' in field && field.labels?.plural ? getTranslation(field.labels.plural, i18n) : i18n.t('general:rows')
72
- })
73
- })]
29
+ children: /*#__PURE__*/_jsxs(DiffCollapser, {
30
+ comparison: comparison,
31
+ field: field,
32
+ isIterable: true,
33
+ label: 'label' in field && field.label && typeof field.label !== 'function' && /*#__PURE__*/_jsxs("span", {
34
+ children: [locale && /*#__PURE__*/_jsx("span", {
35
+ className: `${baseClass}__locale-label`,
36
+ children: locale
37
+ }), getTranslation(field.label, i18n)]
38
+ }),
39
+ locales: locales,
40
+ version: version,
41
+ children: [maxRows > 0 && /*#__PURE__*/_jsx("div", {
42
+ className: `${baseClass}__rows`,
43
+ children: Array.from(Array(maxRows).keys()).map((row, i) => {
44
+ const versionRow = version?.[i] || {};
45
+ const comparisonRow = comparison?.[i] || {};
46
+ const fields = getFieldsForRowComparison({
47
+ comparisonRow,
48
+ field,
49
+ versionRow
50
+ });
51
+ const rowNumber = String(i + 1).padStart(2, '0');
52
+ const rowLabel = fieldIsArrayType(field) ? `Item ${rowNumber}` : `Block ${rowNumber}`;
53
+ return /*#__PURE__*/_jsx("div", {
54
+ className: `${baseClass}__row`,
55
+ children: /*#__PURE__*/_jsx(DiffCollapser, {
56
+ comparison: comparisonRow,
57
+ fields: fields,
58
+ label: rowLabel,
59
+ locales: locales,
60
+ version: versionRow,
61
+ children: /*#__PURE__*/_jsx(RenderFieldsToDiff, {
62
+ comparison: comparisonRow,
63
+ diffComponents: diffComponents,
64
+ fieldPermissions: fieldPermissions,
65
+ fields: fields,
66
+ i18n: i18n,
67
+ locales: locales,
68
+ version: versionRow
69
+ })
70
+ })
71
+ }, i);
72
+ })
73
+ }), maxRows === 0 && /*#__PURE__*/_jsx("div", {
74
+ className: `${baseClass}__no-rows`,
75
+ children: i18n.t('version:noRowsFound', {
76
+ label: 'labels' in field && field.labels?.plural ? getTranslation(field.labels.plural, i18n) : i18n.t('general:rows')
77
+ })
78
+ })]
79
+ })
74
80
  });
75
81
  };
76
- export default Iterable;
77
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","getUniqueListBy","React","RenderFieldsToDiff","Label","baseClass","Iterable","comparison","diffComponents","field","fieldPermissions","i18n","locale","locales","version","versionRowCount","Array","isArray","length","comparisonRowCount","maxRows","Math","max","_jsxs","className","label","_jsx","Fragment","from","keys","map","row","i","versionRow","comparisonRow","fields","type","blockType","matchedBlock","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock","t","labels","plural"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getUniqueListBy } from 'payload/shared'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport RenderFieldsToDiff from '../../index.js'\nimport Label from '../../Label/index.js'\nimport './index.scss'\n\nconst baseClass = 'iterable-diff'\n\nconst Iterable: React.FC<DiffComponentProps> = ({\n comparison,\n diffComponents,\n field,\n fieldPermissions,\n i18n,\n locale,\n locales,\n version,\n}) => {\n const versionRowCount = Array.isArray(version) ? version.length : 0\n const comparisonRowCount = Array.isArray(comparison) ? comparison.length : 0\n const maxRows = Math.max(versionRowCount, comparisonRowCount)\n\n return (\n <div className={baseClass}>\n {'label' in field && field.label && typeof field.label !== 'function' && (\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.label, i18n)}\n </Label>\n )}\n {maxRows > 0 && (\n <React.Fragment>\n {Array.from(Array(maxRows).keys()).map((row, i) => {\n const versionRow = version?.[i] || {}\n const comparisonRow = comparison?.[i] || {}\n\n let fields: ClientField[] = []\n\n if (field.type === 'array' && 'fields' in field) {\n fields = field.fields\n }\n\n if (field.type === 'blocks') {\n fields = [\n // {\n // name: 'blockType',\n // label: i18n.t('fields:blockType'),\n // type: 'text',\n // },\n ]\n\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 = [...fields, ...matchedBlock.fields]\n } else {\n const matchedVersionBlock = ('blocks' in field &&\n field.blocks?.find((block) => block.slug === versionRow?.blockType)) || {\n fields: [],\n }\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 [...fields, ...matchedVersionBlock.fields, ...matchedComparisonBlock.fields],\n 'name',\n )\n }\n }\n\n return (\n <div className={`${baseClass}__wrap`} key={i}>\n <RenderFieldsToDiff\n comparison={comparisonRow}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={fields}\n i18n={i18n}\n locales={locales}\n version={versionRow}\n />\n </div>\n )\n })}\n </React.Fragment>\n )}\n {maxRows === 0 && (\n <div className={`${baseClass}__no-rows`}>\n {i18n.t('version:noRowsFound', {\n label:\n 'labels' in field && field.labels?.plural\n ? getTranslation(field.labels.plural, i18n)\n : i18n.t('general:rows'),\n })}\n </div>\n )}\n </div>\n )\n}\n\nexport default Iterable\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","fieldIsArrayType","fieldIsBlockType","React","DiffCollapser","RenderFieldsToDiff","getFieldsForRowComparison","baseClass","Iterable","comparison","diffComponents","field","fieldPermissions","i18n","locale","locales","version","versionRowCount","Array","isArray","length","comparisonRowCount","maxRows","Math","max","Error","type","_jsx","className","_jsxs","isIterable","label","from","keys","map","row","i","versionRow","comparisonRow","fields","rowNumber","String","padStart","rowLabel","t","labels","plural"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldIsArrayType, fieldIsBlockType } from 'payload/shared'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport './index.scss'\nimport { RenderFieldsToDiff } from '../../index.js'\nimport { getFieldsForRowComparison } from '../../utilities/getFieldsForRowComparison.js'\n\nconst baseClass = 'iterable-diff'\n\nexport const Iterable: React.FC<DiffComponentProps> = ({\n comparison,\n diffComponents,\n field,\n fieldPermissions,\n i18n,\n locale,\n locales,\n version,\n}) => {\n const versionRowCount = Array.isArray(version) ? version.length : 0\n const comparisonRowCount = Array.isArray(comparison) ? comparison.length : 0\n const maxRows = Math.max(versionRowCount, comparisonRowCount)\n\n if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {\n throw new Error(`Expected field to be an array or blocks type but got: ${field.type}`)\n }\n\n return (\n <div className={baseClass}>\n <DiffCollapser\n comparison={comparison}\n field={field}\n isIterable\n label={\n 'label' in field &&\n field.label &&\n typeof field.label !== 'function' && (\n <span>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.label, i18n)}\n </span>\n )\n }\n locales={locales}\n version={version}\n >\n {maxRows > 0 && (\n <div className={`${baseClass}__rows`}>\n {Array.from(Array(maxRows).keys()).map((row, i) => {\n const versionRow = version?.[i] || {}\n const comparisonRow = comparison?.[i] || {}\n\n const fields: ClientField[] = getFieldsForRowComparison({\n comparisonRow,\n field,\n versionRow,\n })\n\n const rowNumber = String(i + 1).padStart(2, '0')\n const rowLabel = fieldIsArrayType(field) ? `Item ${rowNumber}` : `Block ${rowNumber}`\n\n return (\n <div className={`${baseClass}__row`} key={i}>\n <DiffCollapser\n comparison={comparisonRow}\n fields={fields}\n label={rowLabel}\n locales={locales}\n version={versionRow}\n >\n <RenderFieldsToDiff\n comparison={comparisonRow}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={fields}\n i18n={i18n}\n locales={locales}\n version={versionRow}\n />\n </DiffCollapser>\n </div>\n )\n })}\n </div>\n )}\n {maxRows === 0 && (\n <div className={`${baseClass}__no-rows`}>\n {i18n.t('version:noRowsFound', {\n label:\n 'labels' in field && field.labels?.plural\n ? getTranslation(field.labels.plural, i18n)\n : i18n.t('general:rows'),\n })}\n </div>\n )}\n </DiffCollapser>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,5 @@
1
1
  @layer payload-default {
2
2
  .iterable-diff {
3
- margin-bottom: calc(var(--base) * 2);
4
-
5
3
  &__locale-label {
6
4
  background: var(--theme-elevation-100);
7
5
  padding: calc(var(--base) * 0.25);
@@ -14,16 +12,9 @@
14
12
  }
15
13
  }
16
14
 
17
- &__wrap {
18
- margin: calc(var(--base) * 0.5);
19
- [dir='ltr'] & {
20
- padding-left: calc(var(--base) * 0.5);
21
- // border-left: $style-stroke-width-s solid var(--theme-elevation-150);
22
- }
23
- [dir='rtl'] & {
24
- padding-right: calc(var(--base) * 0.5);
25
- // border-right: $style-stroke-width-s solid var(--theme-elevation-150);
26
- }
15
+ // Space between each row
16
+ &__row:not(:first-of-type) {
17
+ margin-top: calc(var(--base) * 0.5);
27
18
  }
28
19
 
29
20
  &__no-rows {
@@ -2,6 +2,5 @@ import type { RelationshipFieldClient } from 'payload';
2
2
  import React from 'react';
3
3
  import type { DiffComponentProps } from '../types.js';
4
4
  import './index.scss';
5
- declare const Relationship: React.FC<DiffComponentProps<RelationshipFieldClient>>;
6
- export default Relationship;
5
+ export declare const Relationship: React.FC<DiffComponentProps<RelationshipFieldClient>>;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAK3F,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,OAAO,cAAc,CAAA;AAwFrB,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CA2DvE,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAK3F,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,OAAO,cAAc,CAAA;AAwFrB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CA2D9E,CAAA"}
@@ -60,7 +60,7 @@ const generateLabelFromValue = (collections, field, locale, value) => {
60
60
  }
61
61
  return valueToReturn;
62
62
  };
63
- const Relationship = t0 => {
63
+ export const Relationship = t0 => {
64
64
  const $ = _c(10);
65
65
  const {
66
66
  comparison,
@@ -132,5 +132,4 @@ const Relationship = t0 => {
132
132
  }
133
133
  return t2;
134
134
  };
135
- export default Relationship;
136
135
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","undefined","String","relatedCollection","find","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","JSON","stringify","Relationship","t0","$","comparison","i18n","version","placeholder","t","config","t1","t2","versionToRender","comparisonToRender","hasMany","val","val_0","label","t3","_jsx","className","children","_jsxs","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientField, RelationshipFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: ClientField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn: RelationshipValue | string = ''\n\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string -- We want to return a string specifilly for null and undefined\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = useAsTitleField.localized\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized && valueToReturn?.[locale]) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = String(relatedDoc.id)\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (\n (valueToReturn && typeof valueToReturn === 'object' && valueToReturn !== null) ||\n typeof valueToReturn !== 'string'\n ) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<DiffComponentProps<RelationshipFieldClient>> = ({\n comparison,\n field,\n i18n,\n locale,\n version,\n}) => {\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const {\n config: { collections },\n } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (version) {\n if ('hasMany' in field && field.hasMany && Array.isArray(version)) {\n versionToRender =\n version.map((val) => generateLabelFromValue(collections, field, locale, val)).join(', ') ||\n placeholder\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder\n }\n }\n\n if (comparison) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {\n comparisonToRender =\n comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(collections, field, locale, comparison) || placeholder\n }\n }\n\n const label =\n 'label' in field && typeof field.label !== 'boolean' && typeof field.label !== 'function'\n ? field.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={versionToRender}\n oldValue={comparisonToRender}\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","undefined","String","relatedCollection","find","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","JSON","stringify","Relationship","t0","$","comparison","i18n","version","placeholder","t","config","t1","t2","versionToRender","comparisonToRender","hasMany","val","val_0","label","t3","_jsx","className","children","_jsxs","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientField, RelationshipFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: ClientField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn: RelationshipValue | string = ''\n\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string -- We want to return a string specifilly for null and undefined\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = useAsTitleField.localized\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized && valueToReturn?.[locale]) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = String(relatedDoc.id)\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (\n (valueToReturn && typeof valueToReturn === 'object' && valueToReturn !== null) ||\n typeof valueToReturn !== 'string'\n ) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nexport const Relationship: React.FC<DiffComponentProps<RelationshipFieldClient>> = ({\n comparison,\n field,\n i18n,\n locale,\n version,\n}) => {\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const {\n config: { collections },\n } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (version) {\n if ('hasMany' in field && field.hasMany && Array.isArray(version)) {\n versionToRender =\n version.map((val) => generateLabelFromValue(collections, field, locale, val)).join(', ') ||\n placeholder\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder\n }\n }\n\n if (comparison) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {\n comparisonToRender =\n comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(collections, field, locale, comparison) || placeholder\n }\n }\n\n const label =\n 'label' in field && typeof field.label !== 'boolean' && typeof field.label !== 'function'\n ? field.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={versionToRender}\n oldValue={comparisonToRender}\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { DiffComponentProps } from '../types.js';
3
+ export declare const Row: React.FC<DiffComponentProps>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Row/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAOrD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0B5C,CAAA"}
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { getTranslation } from '@payloadcms/translations';
5
+ import React from 'react';
6
+ import { RenderFieldsToDiff } from '../../index.js';
7
+ import Label from '../../Label/index.js';
8
+ const baseClass = 'row-diff';
9
+ export const Row = ({
10
+ comparison,
11
+ diffComponents,
12
+ field,
13
+ fieldPermissions,
14
+ fields,
15
+ i18n,
16
+ locales,
17
+ version
18
+ }) => {
19
+ return /*#__PURE__*/_jsxs("div", {
20
+ className: baseClass,
21
+ children: ['label' in field && field.label && typeof field.label !== 'function' && /*#__PURE__*/_jsx(Label, {
22
+ children: getTranslation(field.label, i18n)
23
+ }), /*#__PURE__*/_jsx(RenderFieldsToDiff, {
24
+ comparison: comparison,
25
+ diffComponents: diffComponents,
26
+ fieldPermissions: fieldPermissions,
27
+ fields: fields,
28
+ i18n: i18n,
29
+ locales: locales,
30
+ version: version
31
+ })]
32
+ });
33
+ };
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","RenderFieldsToDiff","Label","baseClass","Row","comparison","diffComponents","field","fieldPermissions","fields","i18n","locales","version","_jsxs","className","label","_jsx"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Row/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport { RenderFieldsToDiff } from '../../index.js'\nimport Label from '../../Label/index.js'\n\nconst baseClass = 'row-diff'\n\nexport const Row: React.FC<DiffComponentProps> = ({\n comparison,\n diffComponents,\n field,\n fieldPermissions,\n fields,\n i18n,\n locales,\n version,\n}) => {\n return (\n <div className={baseClass}>\n {'label' in field && field.label && typeof field.label !== 'function' && (\n <Label>{getTranslation(field.label, i18n)}</Label>\n )}\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={fields}\n i18n={i18n}\n locales={locales}\n version={version}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,SAASC,kBAAkB,QAAQ;AACnC,OAAOC,KAAA,MAAW;AAElB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,GAAA,GAAoCA,CAAC;EAChDC,UAAU;EACVC,cAAc;EACdC,KAAK;EACLC,gBAAgB;EAChBC,MAAM;EACNC,IAAI;EACJC,OAAO;EACPC;AAAO,CACR;EACC,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWX,SAAA;eACb,WAAWI,KAAA,IAASA,KAAA,CAAMQ,KAAK,IAAI,OAAOR,KAAA,CAAMQ,KAAK,KAAK,2BACzDC,IAAA,CAACd,KAAA;gBAAOH,cAAA,CAAeQ,KAAA,CAAMQ,KAAK,EAAEL,IAAA;qBAEtCM,IAAA,CAACf,kBAAA;MACCI,UAAA,EAAYA,UAAA;MACZC,cAAA,EAAgBA,cAAA;MAChBE,gBAAA,EAAkBA,gBAAA;MAClBC,MAAA,EAAQA,MAAA;MACRC,IAAA,EAAMA,IAAA;MACNC,OAAA,EAASA,OAAA;MACTC,OAAA,EAASA;;;AAIjB","ignoreList":[]}
@@ -2,6 +2,5 @@ import type { SelectFieldClient } from 'payload';
2
2
  import React from 'react';
3
3
  import type { DiffComponentProps } from '../types.js';
4
4
  import './index.scss';
5
- declare const Select: React.FC<DiffComponentProps<SelectFieldClient>>;
6
- export default Select;
5
+ export declare const Select: React.FC<DiffComponentProps<SelectFieldClient>>;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Select/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA6B,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAKrD,OAAO,cAAc,CAAA;AAmCrB,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAyC3D,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Select/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA6B,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAKrD,OAAO,cAAc,CAAA;AAmCrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAyClE,CAAA"}
@@ -19,7 +19,7 @@ const getTranslatedOptions = (options, i18n) => {
19
19
  }
20
20
  return typeof options === 'string' ? options : getTranslation(options.label, i18n);
21
21
  };
22
- const Select = ({
22
+ export const Select = ({
23
23
  comparison,
24
24
  diffMethod,
25
25
  field,
@@ -50,5 +50,4 @@ const Select = ({
50
50
  })]
51
51
  });
52
52
  };
53
- export default Select;
54
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","Label","diffStyles","DiffViewer","baseClass","getOptionsToRender","value","options","hasMany","Array","isArray","map","val","find","option","String","getTranslatedOptions","i18n","label","join","Select","comparison","diffMethod","field","locale","version","placeholder","t","comparisonToRender","versionToRender","_jsxs","className","_jsx"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { OptionObject, SelectField, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport { DiffViewer } from './DiffViewer/index.js'\nimport './index.scss'\n\nconst baseClass = 'select-diff'\n\nconst getOptionsToRender = (\n value: string,\n options: SelectField['options'],\n hasMany: boolean,\n): (OptionObject | string)[] | OptionObject | string => {\n if (hasMany && Array.isArray(value)) {\n return value.map(\n (val) =>\n options.find((option) => (typeof option === 'string' ? option : option.value) === val) ||\n String(val),\n )\n }\n return (\n options.find((option) => (typeof option === 'string' ? option : option.value) === value) ||\n String(value)\n )\n}\n\nconst getTranslatedOptions = (\n options: (OptionObject | string)[] | OptionObject | string,\n i18n: I18nClient,\n): string => {\n if (Array.isArray(options)) {\n return options\n .map((option) => (typeof option === 'string' ? option : getTranslation(option.label, i18n)))\n .join(', ')\n }\n\n return typeof options === 'string' ? options : getTranslation(options.label, i18n)\n}\n\nconst Select: React.FC<DiffComponentProps<SelectFieldClient>> = ({\n comparison,\n diffMethod,\n field,\n i18n,\n locale,\n version,\n}) => {\n let placeholder = ''\n\n if (version === comparison) {\n placeholder = `[${i18n.t('general:noValue')}]`\n }\n\n const options = 'options' in field && field.options\n\n const comparisonToRender =\n typeof comparison !== 'undefined'\n ? getTranslatedOptions(getOptionsToRender(comparison, options, field.hasMany), i18n)\n : placeholder\n\n const versionToRender =\n typeof version !== 'undefined'\n ? getTranslatedOptions(getOptionsToRender(version, options, field.hasMany), i18n)\n : placeholder\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field && getTranslation(field.label || '', i18n)}\n </Label>\n <DiffViewer\n comparisonToRender={comparisonToRender}\n diffMethod={diffMethod}\n diffStyles={diffStyles}\n placeholder={placeholder}\n versionToRender={versionToRender}\n />\n </div>\n )\n}\n\nexport default Select\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAOC,KAAA,MAAW;AAClB,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAG3B,MAAMC,SAAA,GAAY;AAElB,MAAMC,kBAAA,GAAqBA,CACzBC,KAAA,EACAC,OAAA,EACAC,OAAA;EAEA,IAAIA,OAAA,IAAWC,KAAA,CAAMC,OAAO,CAACJ,KAAA,GAAQ;IACnC,OAAOA,KAAA,CAAMK,GAAG,CACbC,GAAA,IACCL,OAAA,CAAQM,IAAI,CAAEC,MAAA,IAAW,CAAC,OAAOA,MAAA,KAAW,WAAWA,MAAA,GAASA,MAAA,CAAOR,KAAK,MAAMM,GAAA,KAClFG,MAAA,CAAOH,GAAA;EAEb;EACA,OACEL,OAAA,CAAQM,IAAI,CAAEC,MAAA,IAAW,CAAC,OAAOA,MAAA,KAAW,WAAWA,MAAA,GAASA,MAAA,CAAOR,KAAK,MAAMA,KAAA,KAClFS,MAAA,CAAOT,KAAA;AAEX;AAEA,MAAMU,oBAAA,GAAuBA,CAC3BT,OAAA,EACAU,IAAA;EAEA,IAAIR,KAAA,CAAMC,OAAO,CAACH,OAAA,GAAU;IAC1B,OAAOA,OAAA,CACJI,GAAG,CAAEG,MAAA,IAAY,OAAOA,MAAA,KAAW,WAAWA,MAAA,GAASf,cAAA,CAAee,MAAA,CAAOI,KAAK,EAAED,IAAA,GACpFE,IAAI,CAAC;EACV;EAEA,OAAO,OAAOZ,OAAA,KAAY,WAAWA,OAAA,GAAUR,cAAA,CAAeQ,OAAA,CAAQW,KAAK,EAAED,IAAA;AAC/E;AAEA,MAAMG,MAAA,GAA0DA,CAAC;EAC/DC,UAAU;EACVC,UAAU;EACVC,KAAK;EACLN,IAAI;EACJO,MAAM;EACNC;AAAO,CACR;EACC,IAAIC,WAAA,GAAc;EAElB,IAAID,OAAA,KAAYJ,UAAA,EAAY;IAC1BK,WAAA,GAAc,IAAIT,IAAA,CAAKU,CAAC,CAAC,qBAAqB;EAChD;EAEA,MAAMpB,OAAA,GAAU,aAAagB,KAAA,IAASA,KAAA,CAAMhB,OAAO;EAEnD,MAAMqB,kBAAA,GACJ,OAAOP,UAAA,KAAe,cAClBL,oBAAA,CAAqBX,kBAAA,CAAmBgB,UAAA,EAAYd,OAAA,EAASgB,KAAA,CAAMf,OAAO,GAAGS,IAAA,IAC7ES,WAAA;EAEN,MAAMG,eAAA,GACJ,OAAOJ,OAAA,KAAY,cACfT,oBAAA,CAAqBX,kBAAA,CAAmBoB,OAAA,EAASlB,OAAA,EAASgB,KAAA,CAAMf,OAAO,GAAGS,IAAA,IAC1ES,WAAA;EAEN,oBACEI,KAAA,CAAC;IAAIC,SAAA,EAAW3B,SAAA;4BACd0B,KAAA,CAAC7B,KAAA;iBACEuB,MAAA,iBAAUQ,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAG3B,SAAA,gBAAyB;kBAAGoB;UAC1D,WAAWD,KAAA,IAASxB,cAAA,CAAewB,KAAA,CAAML,KAAK,IAAI,IAAID,IAAA;qBAEzDe,IAAA,CAAC7B,UAAA;MACCyB,kBAAA,EAAoBA,kBAAA;MACpBN,UAAA,EAAYA,UAAA;MACZpB,UAAA,EAAYA,UAAA;MACZwB,WAAA,EAAaA,WAAA;MACbG,eAAA,EAAiBA;;;AAIzB;AAEA,eAAeT,MAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","Label","diffStyles","DiffViewer","baseClass","getOptionsToRender","value","options","hasMany","Array","isArray","map","val","find","option","String","getTranslatedOptions","i18n","label","join","Select","comparison","diffMethod","field","locale","version","placeholder","t","comparisonToRender","versionToRender","_jsxs","className","_jsx"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { OptionObject, SelectField, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport { DiffViewer } from './DiffViewer/index.js'\nimport './index.scss'\n\nconst baseClass = 'select-diff'\n\nconst getOptionsToRender = (\n value: string,\n options: SelectField['options'],\n hasMany: boolean,\n): (OptionObject | string)[] | OptionObject | string => {\n if (hasMany && Array.isArray(value)) {\n return value.map(\n (val) =>\n options.find((option) => (typeof option === 'string' ? option : option.value) === val) ||\n String(val),\n )\n }\n return (\n options.find((option) => (typeof option === 'string' ? option : option.value) === value) ||\n String(value)\n )\n}\n\nconst getTranslatedOptions = (\n options: (OptionObject | string)[] | OptionObject | string,\n i18n: I18nClient,\n): string => {\n if (Array.isArray(options)) {\n return options\n .map((option) => (typeof option === 'string' ? option : getTranslation(option.label, i18n)))\n .join(', ')\n }\n\n return typeof options === 'string' ? options : getTranslation(options.label, i18n)\n}\n\nexport const Select: React.FC<DiffComponentProps<SelectFieldClient>> = ({\n comparison,\n diffMethod,\n field,\n i18n,\n locale,\n version,\n}) => {\n let placeholder = ''\n\n if (version === comparison) {\n placeholder = `[${i18n.t('general:noValue')}]`\n }\n\n const options = 'options' in field && field.options\n\n const comparisonToRender =\n typeof comparison !== 'undefined'\n ? getTranslatedOptions(getOptionsToRender(comparison, options, field.hasMany), i18n)\n : placeholder\n\n const versionToRender =\n typeof version !== 'undefined'\n ? getTranslatedOptions(getOptionsToRender(version, options, field.hasMany), i18n)\n : placeholder\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field && getTranslation(field.label || '', i18n)}\n </Label>\n <DiffViewer\n comparisonToRender={comparisonToRender}\n diffMethod={diffMethod}\n diffStyles={diffStyles}\n placeholder={placeholder}\n versionToRender={versionToRender}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAOC,KAAA,MAAW;AAClB,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAG3B,MAAMC,SAAA,GAAY;AAElB,MAAMC,kBAAA,GAAqBA,CACzBC,KAAA,EACAC,OAAA,EACAC,OAAA;EAEA,IAAIA,OAAA,IAAWC,KAAA,CAAMC,OAAO,CAACJ,KAAA,GAAQ;IACnC,OAAOA,KAAA,CAAMK,GAAG,CACbC,GAAA,IACCL,OAAA,CAAQM,IAAI,CAAEC,MAAA,IAAW,CAAC,OAAOA,MAAA,KAAW,WAAWA,MAAA,GAASA,MAAA,CAAOR,KAAK,MAAMM,GAAA,KAClFG,MAAA,CAAOH,GAAA;EAEb;EACA,OACEL,OAAA,CAAQM,IAAI,CAAEC,MAAA,IAAW,CAAC,OAAOA,MAAA,KAAW,WAAWA,MAAA,GAASA,MAAA,CAAOR,KAAK,MAAMA,KAAA,KAClFS,MAAA,CAAOT,KAAA;AAEX;AAEA,MAAMU,oBAAA,GAAuBA,CAC3BT,OAAA,EACAU,IAAA;EAEA,IAAIR,KAAA,CAAMC,OAAO,CAACH,OAAA,GAAU;IAC1B,OAAOA,OAAA,CACJI,GAAG,CAAEG,MAAA,IAAY,OAAOA,MAAA,KAAW,WAAWA,MAAA,GAASf,cAAA,CAAee,MAAA,CAAOI,KAAK,EAAED,IAAA,GACpFE,IAAI,CAAC;EACV;EAEA,OAAO,OAAOZ,OAAA,KAAY,WAAWA,OAAA,GAAUR,cAAA,CAAeQ,OAAA,CAAQW,KAAK,EAAED,IAAA;AAC/E;AAEA,OAAO,MAAMG,MAAA,GAA0DA,CAAC;EACtEC,UAAU;EACVC,UAAU;EACVC,KAAK;EACLN,IAAI;EACJO,MAAM;EACNC;AAAO,CACR;EACC,IAAIC,WAAA,GAAc;EAElB,IAAID,OAAA,KAAYJ,UAAA,EAAY;IAC1BK,WAAA,GAAc,IAAIT,IAAA,CAAKU,CAAC,CAAC,qBAAqB;EAChD;EAEA,MAAMpB,OAAA,GAAU,aAAagB,KAAA,IAASA,KAAA,CAAMhB,OAAO;EAEnD,MAAMqB,kBAAA,GACJ,OAAOP,UAAA,KAAe,cAClBL,oBAAA,CAAqBX,kBAAA,CAAmBgB,UAAA,EAAYd,OAAA,EAASgB,KAAA,CAAMf,OAAO,GAAGS,IAAA,IAC7ES,WAAA;EAEN,MAAMG,eAAA,GACJ,OAAOJ,OAAA,KAAY,cACfT,oBAAA,CAAqBX,kBAAA,CAAmBoB,OAAA,EAASlB,OAAA,EAASgB,KAAA,CAAMf,OAAO,GAAGS,IAAA,IAC1ES,WAAA;EAEN,oBACEI,KAAA,CAAC;IAAIC,SAAA,EAAW3B,SAAA;4BACd0B,KAAA,CAAC7B,KAAA;iBACEuB,MAAA,iBAAUQ,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAG3B,SAAA,gBAAyB;kBAAGoB;UAC1D,WAAWD,KAAA,IAASxB,cAAA,CAAewB,KAAA,CAAML,KAAK,IAAI,IAAID,IAAA;qBAEzDe,IAAA,CAAC7B,UAAA;MACCyB,kBAAA,EAAoBA,kBAAA;MACpBN,UAAA,EAAYA,UAAA;MACZpB,UAAA,EAAYA,UAAA;MACZwB,WAAA,EAAaA,WAAA;MACbG,eAAA,EAAiBA;;;AAIzB","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { TabsFieldClient } from 'payload';
2
2
  import React from 'react';
3
3
  import type { DiffComponentProps } from '../types.js';
4
- declare const Tabs: React.FC<DiffComponentProps<TabsFieldClient>>;
5
- export default Tabs;
4
+ import './index.scss';
5
+ export declare const Tabs: React.FC<DiffComponentProps<TabsFieldClient>>;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAOrD,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CA+CvD,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAGzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CA0C9D,CAAA"}
@@ -1,50 +1,97 @@
1
1
  'use client';
2
2
 
3
- import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { getTranslation } from '@payloadcms/translations';
4
5
  import React from 'react';
5
- import RenderFieldsToDiff from '../../index.js';
6
- import Nested from '../Nested/index.js';
6
+ import { DiffCollapser } from '../../DiffCollapser/index.js';
7
+ import { RenderFieldsToDiff } from '../../index.js';
7
8
  const baseClass = 'tabs-diff';
8
- const Tabs = ({
9
+ export const Tabs = props => {
10
+ const {
11
+ comparison,
12
+ field,
13
+ locales,
14
+ version
15
+ } = props;
16
+ return /*#__PURE__*/_jsx("div", {
17
+ className: baseClass,
18
+ children: field.tabs.map((tab, i) => {
19
+ return /*#__PURE__*/_jsx("div", {
20
+ className: `${baseClass}__tab`,
21
+ children: (() => {
22
+ if ('name' in tab && locales && tab.localized) {
23
+ // Named localized tab
24
+ return locales.map((locale, index) => {
25
+ const localizedTabProps = {
26
+ ...props,
27
+ comparison: comparison?.[tab.name]?.[locale],
28
+ version: version?.[tab.name]?.[locale]
29
+ };
30
+ return /*#__PURE__*/_jsx("div", {
31
+ className: `${baseClass}__tab-locale`,
32
+ children: /*#__PURE__*/_jsx("div", {
33
+ className: `${baseClass}__tab-locale-value`,
34
+ children: /*#__PURE__*/_jsx(Tab, {
35
+ ...localizedTabProps,
36
+ locale: locale,
37
+ tab: tab
38
+ }, locale)
39
+ })
40
+ }, [locale, index].join('-'));
41
+ });
42
+ } else if ('name' in tab && tab.name) {
43
+ // Named tab
44
+ const namedTabProps = {
45
+ ...props,
46
+ comparison: comparison?.[tab.name],
47
+ version: version?.[tab.name]
48
+ };
49
+ return /*#__PURE__*/_jsx(Tab, {
50
+ ...namedTabProps,
51
+ tab: tab
52
+ }, i);
53
+ } else {
54
+ // Unnamed tab
55
+ return /*#__PURE__*/_jsx(Tab, {
56
+ ...props,
57
+ tab: tab
58
+ }, i);
59
+ }
60
+ })()
61
+ }, i);
62
+ })
63
+ });
64
+ };
65
+ const Tab = ({
9
66
  comparison,
10
67
  diffComponents,
11
- field,
12
68
  fieldPermissions,
13
69
  i18n,
14
70
  locale,
15
71
  locales,
72
+ tab,
16
73
  version
17
74
  }) => {
18
- return /*#__PURE__*/_jsx("div", {
19
- className: baseClass,
20
- children: /*#__PURE__*/_jsx("div", {
21
- className: `${baseClass}__wrap`,
22
- children: field.tabs.map((tab, i) => {
23
- if ('name' in tab) {
24
- return /*#__PURE__*/_jsx(Nested, {
25
- comparison: comparison?.[tab.name],
26
- diffComponents: diffComponents,
27
- field: field,
28
- fieldPermissions: fieldPermissions,
29
- fields: tab.fields,
30
- i18n: i18n,
31
- locale: locale,
32
- locales: locales,
33
- version: version?.[tab.name]
34
- }, i);
35
- }
36
- return /*#__PURE__*/_jsx(RenderFieldsToDiff, {
37
- comparison: comparison,
38
- diffComponents: diffComponents,
39
- fieldPermissions: fieldPermissions,
40
- fields: tab.fields,
41
- i18n: i18n,
42
- locales: locales,
43
- version: version
44
- }, i);
45
- })
75
+ return /*#__PURE__*/_jsx(DiffCollapser, {
76
+ comparison: comparison,
77
+ fields: tab.fields,
78
+ label: 'label' in tab && tab.label && typeof tab.label !== 'function' && /*#__PURE__*/_jsxs("span", {
79
+ children: [locale && /*#__PURE__*/_jsx("span", {
80
+ className: `${baseClass}__locale-label`,
81
+ children: locale
82
+ }), getTranslation(tab.label, i18n)]
83
+ }),
84
+ locales: locales,
85
+ version: version,
86
+ children: /*#__PURE__*/_jsx(RenderFieldsToDiff, {
87
+ comparison: comparison,
88
+ diffComponents: diffComponents,
89
+ fieldPermissions: fieldPermissions,
90
+ fields: tab.fields,
91
+ i18n: i18n,
92
+ locales: locales,
93
+ version: version
46
94
  })
47
95
  });
48
96
  };
49
- export default Tabs;
50
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","RenderFieldsToDiff","Nested","baseClass","Tabs","comparison","diffComponents","field","fieldPermissions","i18n","locale","locales","version","_jsx","className","tabs","map","tab","i","name","fields"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type { TabsFieldClient } from 'payload'\n\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport RenderFieldsToDiff from '../../index.js'\nimport Nested from '../Nested/index.js'\n\nconst baseClass = 'tabs-diff'\n\nconst Tabs: React.FC<DiffComponentProps<TabsFieldClient>> = ({\n comparison,\n diffComponents,\n field,\n fieldPermissions,\n i18n,\n locale,\n locales,\n version,\n}) => {\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n {field.tabs.map((tab, i) => {\n if ('name' in tab) {\n return (\n <Nested\n comparison={comparison?.[tab.name]}\n diffComponents={diffComponents}\n field={field}\n fieldPermissions={fieldPermissions}\n fields={tab.fields}\n i18n={i18n}\n key={i}\n locale={locale}\n locales={locales}\n version={version?.[tab.name]}\n />\n )\n }\n\n return (\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={tab.fields}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nexport default Tabs\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAIlB,OAAOC,kBAAA,MAAwB;AAC/B,OAAOC,MAAA,MAAY;AAEnB,MAAMC,SAAA,GAAY;AAElB,MAAMC,IAAA,GAAsDA,CAAC;EAC3DC,UAAU;EACVC,cAAc;EACdC,KAAK;EACLC,gBAAgB;EAChBC,IAAI;EACJC,MAAM;EACNC,OAAO;EACPC;AAAO,CACR;EACC,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWX,SAAA;cACd,aAAAU,IAAA,CAAC;MAAIC,SAAA,EAAW,GAAGX,SAAA,QAAiB;gBACjCI,KAAA,CAAMQ,IAAI,CAACC,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;QACpB,IAAI,UAAUD,GAAA,EAAK;UACjB,oBACEJ,IAAA,CAACX,MAAA;YACCG,UAAA,EAAYA,UAAA,GAAaY,GAAA,CAAIE,IAAI,CAAC;YAClCb,cAAA,EAAgBA,cAAA;YAChBC,KAAA,EAAOA,KAAA;YACPC,gBAAA,EAAkBA,gBAAA;YAClBY,MAAA,EAAQH,GAAA,CAAIG,MAAM;YAClBX,IAAA,EAAMA,IAAA;YAENC,MAAA,EAAQA,MAAA;YACRC,OAAA,EAASA,OAAA;YACTC,OAAA,EAASA,OAAA,GAAUK,GAAA,CAAIE,IAAI;aAHtBD,CAAA;QAMX;QAEA,oBACEL,IAAA,CAACZ,kBAAA;UACCI,UAAA,EAAYA,UAAA;UACZC,cAAA,EAAgBA,cAAA;UAChBE,gBAAA,EAAkBA,gBAAA;UAClBY,MAAA,EAAQH,GAAA,CAAIG,MAAM;UAClBX,IAAA,EAAMA,IAAA;UAENE,OAAA,EAASA,OAAA;UACTC,OAAA,EAASA;WAFJM,CAAA;MAKX;;;AAIR;AAEA,eAAed,IAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","DiffCollapser","RenderFieldsToDiff","baseClass","Tabs","props","comparison","field","locales","version","_jsx","className","tabs","map","tab","i","localized","locale","index","localizedTabProps","name","Tab","join","namedTabProps","diffComponents","fieldPermissions","i18n","fields","label","_jsxs"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientTab, TabsFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DiffComponentProps } from '../types.js'\n\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderFieldsToDiff } from '../../index.js'\nimport './index.scss'\n\nconst baseClass = 'tabs-diff'\n\nexport const Tabs: React.FC<DiffComponentProps<TabsFieldClient>> = (props) => {\n const { comparison, field, locales, version } = props\n return (\n <div className={baseClass}>\n {field.tabs.map((tab, i) => {\n return (\n <div className={`${baseClass}__tab`} key={i}>\n {(() => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n return locales.map((locale, index) => {\n const localizedTabProps = {\n ...props,\n comparison: comparison?.[tab.name]?.[locale],\n version: version?.[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} locale={locale} tab={tab} />\n </div>\n </div>\n )\n })\n } else if ('name' in tab && tab.name) {\n // Named tab\n const namedTabProps = {\n ...props,\n comparison: comparison?.[tab.name],\n version: version?.[tab.name],\n }\n return <Tab key={i} {...namedTabProps} tab={tab} />\n } else {\n // Unnamed tab\n return <Tab key={i} {...props} tab={tab} />\n }\n })()}\n </div>\n )\n })}\n </div>\n )\n}\n\ntype TabProps = {\n tab: ClientTab\n} & DiffComponentProps<TabsFieldClient>\n\nconst Tab: React.FC<TabProps> = ({\n comparison,\n diffComponents,\n fieldPermissions,\n i18n,\n locale,\n locales,\n tab,\n version,\n}) => {\n return (\n <DiffCollapser\n comparison={comparison}\n fields={tab.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={locales}\n version={version}\n >\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldPermissions={fieldPermissions}\n fields={tab.fields}\n i18n={i18n}\n locales={locales}\n version={version}\n />\n </DiffCollapser>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ @layer payload-default {
2
+ .tabs-diff {
3
+ // Space between each tab or tab locale
4
+ &__tab:not(:first-of-type),
5
+ &__tab-locale:not(:first-of-type) {
6
+ margin-top: var(--base);
7
+ }
8
+
9
+ &__locale-label {
10
+ background: var(--theme-elevation-100);
11
+ padding: calc(var(--base) * 0.25);
12
+ [dir='ltr'] & {
13
+ margin-right: calc(var(--base) * 0.25);
14
+ }
15
+ [dir='rtl'] & {
16
+ margin-left: calc(var(--base) * 0.25);
17
+ }
18
+ }
19
+ }
20
+ }