@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.
- package/dist/prod/styles.css +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +2 -1
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +4 -2
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +2 -1
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +2 -2
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +2 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +2 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +5 -2
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Version/Default/index.js +1 -1
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +27 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +76 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +46 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +4 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +41 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +5 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +45 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +14 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +60 -55
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -12
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +4 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +34 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +2 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +81 -34
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +20 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +11 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.d.ts +1 -2
- package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +4 -6
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +21 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +188 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +860 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts +2 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +46 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +13 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +35 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +104 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +2 -2
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +0 -6
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -43
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +0 -1
- 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 {
|
|
5
|
+
import { fieldIsArrayType, fieldIsBlockType } from 'payload/shared';
|
|
6
6
|
import React from 'react';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
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
|
-
|
|
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:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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","
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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,
|
|
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\
|
|
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":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,gBAAgB,EAAEC,yBAAyB,QAAQ;AAC5D,OAAOC,KAAA,MAAW;AAClB,OAAOC,qBAAA,MAA2B;AAIlC,OAAOC,KAAA,MAAW;AAClB,SAASC,UAAU,QAAQ;AAG3B,MAAMC,eAAA,GAAmBH,qBAAA,CAAsBI,OAAO,IACpDJ,qBAAA;AAEF,MAAMK,SAAA,GAAY;AAIlB,MAAMC,sBAAA,GAAyBA,CAC7BC,WAAA,EACAC,KAAA,EACAC,MAAA,EACAC,KAAA;EAEA,IAAIC,KAAA,CAAMC,OAAO,CAACF,KAAA,GAAQ;IACxB,OAAOA,KAAA,CACJG,GAAG,CAAEC,CAAA,IAAMR,sBAAA,CAAuBC,WAAA,EAAaC,KAAA,EAAOC,MAAA,EAAQK,CAAA,GAC9DC,MAAM,CAACC,OAAA,EAAS;IAAA,CAChBC,IAAI,CAAC;EACV;EAEA,IAAIC,UAAA;EACJ,IAAIC,aAAA,GAA4C;EAEhD,MAAMC,UAAA,GAAa,gBAAgBZ,KAAA,GAAQA,KAAA,CAAMY,UAAU,GAAGC,SAAA;EAE9D,IAAIX,KAAA,KAAU,QAAQ,OAAOA,KAAA,KAAU,aAAa;IAClD;IACA,OAAOY,MAAA,CAAOZ,KAAA;EAChB;EAEA,IAAI,OAAOA,KAAA,KAAU,YAAY,gBAAgBA,KAAA,EAAO;IACtDQ,UAAA,GAAaR,KAAA,CAAMA,KAAK;EAC1B,OAAO;IACL;IACAQ,UAAA,GAAaR,KAAA;EACf;EAEA,MAAMa,iBAAA,GAAoBH,UAAA,GACtBb,WAAA,CAAYiB,IAAI,CACb/B,CAAA,IACCA,CAAA,CAAEgC,IAAI,MACL,OAAOf,KAAA,KAAU,YAAY,gBAAgBA,KAAA,GAAQA,KAAA,CAAMU,UAAU,GAAGA,UAAS,KAEtF;EAEJ,IAAIG,iBAAA,EAAmB;IACrB,MAAMG,UAAA,GAAaH,iBAAA,EAAmBI,KAAA,EAAOD,UAAA;IAC7C,MAAME,eAAA,GAAkBL,iBAAA,CAAkBM,MAAM,CAACL,IAAI,CAClDM,CAAA,IAAMjC,gBAAA,CAAiBiC,CAAA,KAAM,CAAChC,yBAAA,CAA0BgC,CAAA,KAAMA,CAAA,CAAEC,IAAI,KAAKL,UAAA;IAE5E,IAAIM,qBAAA,GAAwB;IAE5B,IAAIJ,eAAA,IAAmB/B,gBAAA,CAAiB+B,eAAA,GAAkB;MACxDI,qBAAA,GAAwBJ,eAAA,CAAgBK,SAAS;IACnD;IAEA,IAAI,OAAOf,UAAA,GAAaQ,UAAA,CAAW,KAAK,aAAa;MACnDP,aAAA,GAAgBD,UAAU,CAACQ,UAAA,CAAW;IACxC,OAAO,IAAI,OAAOR,UAAA,EAAYgB,EAAA,KAAO,aAAa;MAChDf,aAAA,GAAgBD,UAAA,CAAWgB,EAAE;IAC/B,OAAO;MACLf,aAAA,GAAgBD,UAAA;IAClB;IAEA,IAAI,OAAOC,aAAA,KAAkB,YAAYa,qBAAA,IAAyBb,aAAA,GAAgBV,MAAA,CAAO,EAAE;MACzFU,aAAA,GAAgBA,aAAa,CAACV,MAAA,CAAO;IACvC;EACF,OAAO,IAAIS,UAAA,EAAY;IACrB;IACA,IAAI,OAAOA,UAAA,EAAYgB,EAAA,KAAO,aAAa;MACzCf,aAAA,GAAgBG,MAAA,CAAOJ,UAAA,CAAWgB,EAAE;IACtC,OAAO;MACLf,aAAA,GAAgBD,UAAA;IAClB;EACF;EAEA,IACEC,aAAC,IAAiB,OAAOA,aAAA,KAAkB,YAAYA,aAAA,KAAkB,QACzE,OAAOA,aAAA,KAAkB,UACzB;IACAA,aAAA,GAAgBgB,IAAA,CAAKC,SAAS,CAACjB,aAAA;EACjC;EAEA,OAAOA,aAAA;AACT;AAEA,OAAO,MAAMkB,YAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAA7C,EAAA;EAAC;IAAA8C,UAAA;IAAAhC,KAAA;IAAAiC,IAAA;IAAAhC,MAAA;IAAAiC;EAAA,IAAAJ,EAMnF;EACC,MAAAK,WAAA,GAAoB,IAAIF,IAAA,CAAAG,CAAA,CAAO,qBAAqB;EAEpD;IAAAC,MAAA,EAAAC;EAAA,IAEIlD,SAAA;EADM;IAAAW;EAAA,IAAAuC,EAAe;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAhC,WAAA,IAAAgC,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAA/B,KAAA,IAAA+B,CAAA,QAAAE,IAAA,IAAAF,CAAA,QAAA9B,MAAA,IAAA8B,CAAA,QAAAI,WAAA,IAAAJ,CAAA,QAAAG,OAAA;IAGzB,IAAAM,eAAA,GAA0CL,WAAA;IAC1C,IAAAM,kBAAA,GAA6CN,WAAA;IAAA,IAEzCD,OAAA;MAAA,IACE,aAAalC,KAAA,IAASA,KAAA,CAAA0C,OAAa,IAAIvC,KAAA,CAAAC,OAAA,CAAc8B,OAAA;QACvDM,eAAA,CAAAA,CAAA,CACEN,OAAA,CAAA7B,GAAA,CAAAsC,GAAA,IAAqB7C,sBAAA,CAAuBC,WAAA,EAAaC,KAAA,EAAOC,MAAA,EAAQ0C,GAAA,GAAAlC,IAAA,CAAW,SACnF0B,WAAA;MAFF;QAIAK,eAAA,CAAAA,CAAA,CAAkBA,uBAAuBzC,WAAA,EAAaC,KAAA,EAAOC,MAAA,EAAQiC,OAAA,KAAYC,WAAA;MAAjF;IAAA;IAAA,IAIAH,UAAA;MAAA,IACE,aAAahC,KAAA,IAASA,KAAA,CAAA0C,OAAa,IAAIvC,KAAA,CAAAC,OAAA,CAAc4B,UAAA;QACvDS,kBAAA,CAAAA,CAAA,CACET,UAAA,CAAA3B,GAAA,CAAAuC,KAAA,IACgB9C,sBAAA,CAAuBC,WAAA,EAAaC,KAAA,EAAOC,MAAA,EAAQ0C,KAAA,GAAAlC,IAAA,CAC3D,SAAS0B,WAAA;MAHnB;QAKAM,kBAAA,CAAAA,CAAA,CACEA,uBAAuB1C,WAAA,EAAaC,KAAA,EAAOC,MAAA,EAAQ+B,UAAA,KAAeG,WAAA;MADpE;IAAA;IAKJ,MAAAU,KAAA,GACE,WAAW7C,KAAA,IAAS,OAAOA,KAAA,CAAA6C,KAAA,KAAgB,aAAa,OAAO7C,KAAA,CAAA6C,KAAA,KAAgB,aAC3E7C,KAAA,CAAA6C,KAAA,GACA;IAAA,IAAAC,EAAA;IAAA,IAAAf,CAAA,QAAA9B,MAAA;MAKC6C,EAAA,GAAA7C,MAAA,IAAU8C,IAAA,CAAC;QAAAC,SAAA,EAAgB,GAAAnD,SAAA,gBAA4B;QAAAoD,QAAA,EAAGhD;MAAA,C;;;;;;IAF/DsC,EAAA,GAAAW,KAAA,CAAC;MAAAF,SAAA,EAAAnD,SAAA;MAAAoD,QAAA,GACCC,KAAA,CAAAzD,KAAA;QAAAwD,QAAA,GACGH,E,EACA3D,cAAA,CAAe0D,KAAA,EAAOZ,IAAA;MAAA,C,GAEzBc,IAAA,CAAApD,eAAA;QAAAwD,eAAA;QAAAC,QAAA,EAEYZ,eAAA;QAAAa,QAAA,EACAZ,kBAAA;QAAAa,YAAA;QAAAC,SAAA;QAAAC,MAAA,EAAA9D;MAAA,C;;;;;;;;;;;;;SARd6C,E;CAeJ","ignoreList":[]}
|
|
@@ -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,
|
|
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\
|
|
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
|
-
|
|
5
|
-
export
|
|
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,
|
|
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
|
|
6
|
-
import
|
|
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(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
children:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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","
|
|
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
|
+
}
|