@payloadcms/ui 3.0.0-beta.107 → 3.0.0-beta.109
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/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +1 -3
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +2 -2
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +3 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +3 -1
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +1 -0
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +6 -0
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +51 -25
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CodeEditor/index.d.ts.map +1 -1
- package/dist/elements/CodeEditor/index.js +2 -8
- package/dist/elements/CodeEditor/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
- package/dist/elements/ColumnSelector/index.js +14 -2
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +4 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +42 -6
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +8 -0
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +23 -17
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +4 -1
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +235 -124
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/Hamburger/index.scss +4 -0
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +9 -5
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +0 -6
- package/dist/elements/ListDrawer/DrawerContent.d.ts +2 -0
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +3 -3
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/index.d.ts.map +1 -1
- package/dist/elements/ListDrawer/index.js +18 -15
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +2 -0
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +9 -5
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.scss +7 -3
- package/dist/elements/Locked/index.d.ts +8 -0
- package/dist/elements/Locked/index.d.ts.map +1 -0
- package/dist/elements/Locked/index.js +72 -0
- package/dist/elements/Locked/index.js.map +1 -0
- package/dist/elements/Locked/index.scss +14 -0
- package/dist/elements/Pagination/index.d.ts.map +1 -1
- package/dist/elements/Pagination/index.js +1 -1
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.d.ts +5 -5
- package/dist/elements/PerPage/index.d.ts.map +1 -1
- package/dist/elements/PerPage/index.js +2 -1
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +3 -1
- package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
- package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +3 -2
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.scss +12 -0
- package/dist/elements/Popup/index.d.ts +1 -0
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +6 -3
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/Popup/index.scss +18 -1
- package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js +11 -3
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +97 -46
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/index.js +2 -1
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.scss +4 -0
- package/dist/elements/RelationshipTable/TableWrapper.d.ts +8 -0
- package/dist/elements/RelationshipTable/TableWrapper.d.ts.map +1 -0
- package/dist/elements/RelationshipTable/TableWrapper.js +69 -0
- package/dist/elements/RelationshipTable/TableWrapper.js.map +1 -0
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +8 -0
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +1 -0
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +82 -0
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -0
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +4 -0
- package/dist/elements/RelationshipTable/index.d.ts +15 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -0
- package/dist/elements/RelationshipTable/index.js +445 -0
- package/dist/elements/RelationshipTable/index.js.map +1 -0
- package/dist/elements/RelationshipTable/index.scss +26 -0
- package/dist/elements/SelectRow/index.d.ts.map +1 -1
- package/dist/elements/SelectRow/index.js +60 -29
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts +1 -0
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +29 -17
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortColumn/index.scss +10 -1
- package/dist/elements/Status/index.js +1 -1
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +2 -3
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +43 -40
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.scss +0 -3
- package/dist/elements/Table/DefaultCell/fields/index.d.ts +1 -0
- package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.js +1 -0
- package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
- package/dist/elements/Table/RenderCell.d.ts +11 -0
- package/dist/elements/Table/RenderCell.d.ts.map +1 -0
- package/dist/elements/Table/RenderCell.js +30 -0
- package/dist/elements/Table/RenderCell.js.map +1 -0
- package/dist/elements/Table/index.d.ts +3 -6
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +36 -31
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Table/index.scss +50 -0
- package/dist/elements/TableColumns/buildColumnState.d.ts +5 -2
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +35 -22
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/index.d.ts +5 -0
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +107 -74
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Tooltip/index.d.ts +1 -0
- package/dist/elements/Tooltip/index.d.ts.map +1 -1
- package/dist/elements/Tooltip/index.js +15 -13
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +2 -2
- package/dist/elements/UnpublishMany/index.js +2 -1
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +32 -30
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-CHKRX3U2.js → CodeEditor-FARZ6UIX.js} +6 -4
- package/dist/exports/client/CodeEditor-FARZ6UIX.js.map +8 -0
- package/dist/exports/client/{DatePicker-OLRZVTAD.js → DatePicker-NBYDOP2X.js} +2 -2
- package/dist/exports/client/chunk-6IWEPNUV.js +14 -0
- package/dist/exports/client/chunk-6IWEPNUV.js.map +8 -0
- package/dist/exports/client/{chunk-JINNHJP7.js → chunk-6MRITTMD.js} +3 -3
- package/dist/exports/client/{chunk-JINNHJP7.js.map → chunk-6MRITTMD.js.map} +4 -4
- package/dist/exports/client/index.d.ts +1 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +19 -19
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +3 -0
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.js +2 -2
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -2
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts +16 -16
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +2 -2
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts +9 -0
- package/dist/fields/Join/index.d.ts.map +1 -0
- package/dist/fields/Join/index.js +75 -0
- package/dist/fields/Join/index.js.map +1 -0
- package/dist/fields/Number/index.js +1 -1
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.js +29 -25
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +11 -13
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.scss +3 -0
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +2 -0
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +28 -29
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/UploadCard/index.scss +0 -1
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +2 -0
- package/dist/fields/index.js.map +1 -1
- package/dist/forms/Form/index.js +6 -2
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +1 -0
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +3 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/forms/RenderFields/index.js +18 -15
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +3 -4
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/index.d.ts +2 -0
- package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/index.js.map +1 -1
- package/dist/forms/useField/index.js +203 -111
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useDelay.js +48 -15
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js +71 -32
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts +3 -3
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +4 -4
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Chevron/index.scss +9 -1
- package/dist/icons/Lock/index.d.ts +6 -0
- package/dist/icons/Lock/index.d.ts.map +1 -0
- package/dist/icons/Lock/index.js +27 -0
- package/dist/icons/Lock/index.js.map +1 -0
- package/dist/icons/Lock/index.scss +8 -0
- package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.js +11 -1
- package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.js +3 -0
- package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +101 -6
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +32 -27
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts +5 -5
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Preferences/index.js +3 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +2 -2
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts +2 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +23 -8
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/Theme/index.d.ts +0 -1
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +29 -21
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/Translation/index.d.ts.map +1 -1
- package/dist/providers/Translation/index.js +5 -7
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts +9 -3
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +82 -4
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/deepMerge.d.ts +12 -0
- package/dist/utilities/deepMerge.d.ts.map +1 -0
- package/dist/utilities/deepMerge.js +25 -0
- package/dist/utilities/deepMerge.js.map +1 -0
- package/dist/utilities/getFormState.d.ts +8 -2
- package/dist/utilities/getFormState.d.ts.map +1 -1
- package/dist/utilities/getFormState.js +3 -1
- package/dist/utilities/getFormState.js.map +1 -1
- package/dist/utilities/handleBackToDashboard.d.ts +8 -0
- package/dist/utilities/handleBackToDashboard.d.ts.map +1 -0
- package/dist/utilities/handleBackToDashboard.js +12 -0
- package/dist/utilities/handleBackToDashboard.js.map +1 -0
- package/dist/utilities/handleGoBack.d.ts +9 -0
- package/dist/utilities/handleGoBack.d.ts.map +1 -0
- package/dist/utilities/handleGoBack.js +13 -0
- package/dist/utilities/handleGoBack.js.map +1 -0
- package/dist/utilities/handleTakeOver.d.ts +7 -0
- package/dist/utilities/handleTakeOver.d.ts.map +1 -0
- package/dist/utilities/handleTakeOver.js +27 -0
- package/dist/utilities/handleTakeOver.js.map +1 -0
- package/package.json +14 -14
- package/dist/exports/client/CodeEditor-CHKRX3U2.js.map +0 -8
- package/dist/exports/client/chunk-BGA6EPOL.js +0 -14
- package/dist/exports/client/chunk-BGA6EPOL.js.map +0 -8
- /package/dist/exports/client/{DatePicker-OLRZVTAD.js.map → DatePicker-NBYDOP2X.js.map} +0 -0
|
@@ -9,9 +9,10 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
9
9
|
import './index.scss';
|
|
10
10
|
const baseClass = 'sort-column';
|
|
11
11
|
export const SortColumn = props => {
|
|
12
|
-
const $ = _c(
|
|
12
|
+
const $ = _c(19);
|
|
13
13
|
const {
|
|
14
14
|
name,
|
|
15
|
+
appearance,
|
|
15
16
|
disable: t0,
|
|
16
17
|
Label,
|
|
17
18
|
label
|
|
@@ -53,10 +54,20 @@ export const SortColumn = props => {
|
|
|
53
54
|
} else {
|
|
54
55
|
descClasses = $[5];
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
const t1 = appearance && `${baseClass}--appearance-${appearance}`;
|
|
58
|
+
let t2;
|
|
59
|
+
if ($[6] !== t1) {
|
|
60
|
+
t2 = [baseClass, t1].filter(Boolean);
|
|
61
|
+
$[6] = t1;
|
|
62
|
+
$[7] = t2;
|
|
63
|
+
} else {
|
|
64
|
+
t2 = $[7];
|
|
65
|
+
}
|
|
66
|
+
const t3 = t2.join(" ");
|
|
67
|
+
let t4;
|
|
68
|
+
if ($[8] !== Label || $[9] !== disable || $[10] !== t || $[11] !== label || $[12] !== ascClasses || $[13] !== handleSortChange || $[14] !== asc || $[15] !== descClasses || $[16] !== desc || $[17] !== t3) {
|
|
69
|
+
t4 = _jsxs("div", {
|
|
70
|
+
className: t3,
|
|
60
71
|
children: [_jsx("span", {
|
|
61
72
|
className: `${baseClass}__label`,
|
|
62
73
|
children: Label
|
|
@@ -85,19 +96,20 @@ export const SortColumn = props => {
|
|
|
85
96
|
})]
|
|
86
97
|
})]
|
|
87
98
|
});
|
|
88
|
-
$[
|
|
89
|
-
$[
|
|
90
|
-
$[
|
|
91
|
-
$[
|
|
92
|
-
$[
|
|
93
|
-
$[
|
|
94
|
-
$[
|
|
95
|
-
$[
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
99
|
+
$[8] = Label;
|
|
100
|
+
$[9] = disable;
|
|
101
|
+
$[10] = t;
|
|
102
|
+
$[11] = label;
|
|
103
|
+
$[12] = ascClasses;
|
|
104
|
+
$[13] = handleSortChange;
|
|
105
|
+
$[14] = asc;
|
|
106
|
+
$[15] = descClasses;
|
|
107
|
+
$[16] = desc;
|
|
108
|
+
$[17] = t3;
|
|
109
|
+
$[18] = t4;
|
|
98
110
|
} else {
|
|
99
|
-
|
|
111
|
+
t4 = $[18];
|
|
100
112
|
}
|
|
101
|
-
return
|
|
113
|
+
return t4;
|
|
102
114
|
};
|
|
103
115
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useListQuery","useTranslation","baseClass","SortColumn","props","$","name","disable","t0","Label","label","undefined","handleSortChange","params","t","sort","desc","asc","ascClasses","push","descClasses","t1","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useListQuery","useTranslation","baseClass","SortColumn","props","$","name","appearance","disable","t0","Label","label","undefined","handleSortChange","params","t","sort","desc","asc","ascClasses","push","descClasses","t1","t2","filter","Boolean","t3","join","t4","_jsxs","className","children","_jsx","direction","onClick","type"],"sources":["../../../src/elements/SortColumn/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldBase } from 'payload'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nexport type SortColumnProps = {\n readonly appearance?: 'condensed' | 'default'\n readonly disable?: boolean\n readonly Label: React.ReactNode\n readonly label?: FieldBase['label']\n readonly name: string\n}\n\nconst baseClass = 'sort-column'\n\nexport const SortColumn: React.FC<SortColumnProps> = (props) => {\n const { name, appearance, disable = false, Label, label } = props\n const { handleSortChange, params } = useListQuery()\n const { t } = useTranslation()\n\n const { sort } = params\n\n const desc = `-${name}`\n const asc = name\n\n const ascClasses = [`${baseClass}__asc`]\n if (sort === asc) {\n ascClasses.push(`${baseClass}--active`)\n }\n\n const descClasses = [`${baseClass}__desc`]\n if (sort === desc) {\n descClasses.push(`${baseClass}--active`)\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <span className={`${baseClass}__label`}>{Label}</span>\n {!disable && (\n <div className={`${baseClass}__buttons`}>\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: t('general:ascending'),\n label,\n })}\n className={[...ascClasses, `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => void handleSortChange(asc)}\n type=\"button\"\n >\n <ChevronIcon direction=\"up\" />\n </button>\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: t('general:descending'),\n label,\n })}\n className={[...descClasses, `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => void handleSortChange(desc)}\n type=\"button\"\n >\n <ChevronIcon />\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
.sort-column {
|
|
4
4
|
display: flex;
|
|
5
|
-
gap: calc(var(--base) /
|
|
5
|
+
gap: calc(var(--base) / 2);
|
|
6
6
|
align-items: center;
|
|
7
7
|
|
|
8
8
|
&__label {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
&__buttons {
|
|
25
25
|
display: flex;
|
|
26
26
|
align-items: center;
|
|
27
|
+
gap: calc(var(--base) / 4);
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
&__button {
|
|
@@ -54,4 +55,12 @@
|
|
|
54
55
|
visibility: visible;
|
|
55
56
|
}
|
|
56
57
|
}
|
|
58
|
+
|
|
59
|
+
&--appearance-condensed {
|
|
60
|
+
gap: calc(var(--base) / 4);
|
|
61
|
+
|
|
62
|
+
.sort-column__buttons {
|
|
63
|
+
gap: 0;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
57
66
|
}
|
|
@@ -58,7 +58,7 @@ export const Status = () => {
|
|
|
58
58
|
if (!publishedDoc) {
|
|
59
59
|
statusToRender = "draft";
|
|
60
60
|
} else {
|
|
61
|
-
if (publishedDoc && unpublishedVersions?.docs?.length <=
|
|
61
|
+
if (publishedDoc && unpublishedVersions?.docs?.length <= 0) {
|
|
62
62
|
statusToRender = "published";
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","baseClass","Status","$","id","collectionSlug","docPermissions","getVersions","globalSlug","publishedDoc","unpublishedVersions","toggleModal","config","t0","routes","t1","serverURL","api","processing","setProcessing","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","docs","length","t2","language","action","url","method","body","res","JSON","stringify","headers","status","data","json","result","doc","success","message","error","performAction","canUpdate","update","permission","t3","t4","t5","_jsxs","Fragment","children","_jsx","buttonStyle","className","onClick","slug","undefined","size","type","t6","title"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n getVersions,\n globalSlug,\n publishedDoc,\n unpublishedVersions,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersions?.docs?.length > 0 && publishedDoc) {\n statusToRender = 'changed'\n } else if (!publishedDoc) {\n statusToRender = 'draft'\n } else if (publishedDoc && unpublishedVersions?.docs?.length <= 1) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (action === 'revert') {\n body = publishedDoc\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null`\n method = 'post'\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getVersions()\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n getVersions,\n globalSlug,\n i18n.language,\n id,\n locale,\n publishedDoc,\n resetForm,\n revertModalSlug,\n serverURL,\n t,\n toggleModal,\n unPublishModalSlug,\n ],\n )\n\n const canUpdate = docPermissions?.update?.permission\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={unPublishModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n onClick={processing ? undefined : () => performAction('unpublish')}\n size=\"large\"\n >\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n size=\"large\"\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","baseClass","Status","$","id","collectionSlug","docPermissions","getVersions","globalSlug","publishedDoc","unpublishedVersions","toggleModal","config","t0","routes","t1","serverURL","api","processing","setProcessing","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","docs","length","t2","language","action","url","method","body","res","JSON","stringify","headers","status","data","json","result","doc","success","message","error","performAction","canUpdate","update","permission","t3","t4","t5","_jsxs","Fragment","children","_jsx","buttonStyle","className","onClick","slug","undefined","size","type","t6","title"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n getVersions,\n globalSlug,\n publishedDoc,\n unpublishedVersions,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersions?.docs?.length > 0 && publishedDoc) {\n statusToRender = 'changed'\n } else if (!publishedDoc) {\n statusToRender = 'draft'\n } else if (publishedDoc && unpublishedVersions?.docs?.length <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (action === 'revert') {\n body = publishedDoc\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null`\n method = 'post'\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getVersions()\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n getVersions,\n globalSlug,\n i18n.language,\n id,\n locale,\n publishedDoc,\n resetForm,\n revertModalSlug,\n serverURL,\n t,\n toggleModal,\n unPublishModalSlug,\n ],\n )\n\n const canUpdate = docPermissions?.update?.permission\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={unPublishModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n onClick={processing ? undefined : () => performAction('unpublish')}\n size=\"large\"\n >\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n size=\"large\"\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { DefaultCellComponentProps, RelationshipFieldClient, UploadFieldClient } from 'payload';
|
|
1
|
+
import type { DefaultCellComponentProps, JoinFieldClient, RelationshipFieldClient, UploadFieldClient } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './index.scss';
|
|
4
|
-
export
|
|
5
|
-
}
|
|
4
|
+
export type RelationshipCellProps = DefaultCellComponentProps<any, JoinFieldClient | RelationshipFieldClient | UploadFieldClient>;
|
|
6
5
|
export declare const RelationshipCell: React.FC<RelationshipCellProps>;
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAuC,MAAM,OAAO,CAAA;AAS3D,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,CAC3D,GAAG,EACH,eAAe,GAAG,uBAAuB,GAAG,iBAAiB,CAC9D,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAiH5D,CAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
-
import React, { useEffect, useState } from 'react';
|
|
6
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
7
7
|
import { useIntersect } from '../../../../../hooks/useIntersect.js';
|
|
8
8
|
import { useConfig } from '../../../../../providers/Config/index.js';
|
|
9
9
|
import { useTranslation } from '../../../../../providers/Translation/index.js';
|
|
@@ -17,15 +17,18 @@ const totalToShow = 3;
|
|
|
17
17
|
export const RelationshipCell = t0 => {
|
|
18
18
|
const $ = _c(40);
|
|
19
19
|
const {
|
|
20
|
-
cellData,
|
|
20
|
+
cellData: cellDataFromProps,
|
|
21
21
|
customCellContext,
|
|
22
22
|
field,
|
|
23
23
|
field: t1
|
|
24
24
|
} = t0;
|
|
25
25
|
const {
|
|
26
|
-
label
|
|
27
|
-
relationTo
|
|
26
|
+
label
|
|
28
27
|
} = t1;
|
|
28
|
+
const relationTo = "relationTo" in field && field.relationTo || "collection" in field && field.collection;
|
|
29
|
+
let t2;
|
|
30
|
+
t2 = "collection" in field ? cellDataFromProps?.docs : cellDataFromProps;
|
|
31
|
+
const cellData = t2;
|
|
29
32
|
const {
|
|
30
33
|
config
|
|
31
34
|
} = useConfig();
|
|
@@ -34,14 +37,14 @@ export const RelationshipCell = t0 => {
|
|
|
34
37
|
routes
|
|
35
38
|
} = config;
|
|
36
39
|
const [intersectionRef, entry] = useIntersect();
|
|
37
|
-
let
|
|
40
|
+
let t3;
|
|
38
41
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
39
|
-
|
|
40
|
-
$[0] =
|
|
42
|
+
t3 = [];
|
|
43
|
+
$[0] = t3;
|
|
41
44
|
} else {
|
|
42
|
-
|
|
45
|
+
t3 = $[0];
|
|
43
46
|
}
|
|
44
|
-
const [values, setValues] = useState(
|
|
47
|
+
const [values, setValues] = useState(t3);
|
|
45
48
|
const {
|
|
46
49
|
documents,
|
|
47
50
|
getRelationships
|
|
@@ -52,9 +55,9 @@ export const RelationshipCell = t0 => {
|
|
|
52
55
|
t
|
|
53
56
|
} = useTranslation();
|
|
54
57
|
const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false;
|
|
55
|
-
let
|
|
58
|
+
let t4;
|
|
56
59
|
if ($[1] !== cellData || $[2] !== isAboveViewport || $[3] !== hasRequested || $[4] !== relationTo || $[5] !== getRelationships) {
|
|
57
|
-
|
|
60
|
+
t4 = () => {
|
|
58
61
|
if ((cellData || typeof cellData === "number") && isAboveViewport && !hasRequested) {
|
|
59
62
|
const formattedValues = [];
|
|
60
63
|
const arrayCellData = Array.isArray(cellData) ? cellData : [cellData];
|
|
@@ -79,13 +82,13 @@ export const RelationshipCell = t0 => {
|
|
|
79
82
|
$[3] = hasRequested;
|
|
80
83
|
$[4] = relationTo;
|
|
81
84
|
$[5] = getRelationships;
|
|
82
|
-
$[6] =
|
|
85
|
+
$[6] = t4;
|
|
83
86
|
} else {
|
|
84
|
-
|
|
87
|
+
t4 = $[6];
|
|
85
88
|
}
|
|
86
|
-
let
|
|
89
|
+
let t5;
|
|
87
90
|
if ($[7] !== cellData || $[8] !== relationTo || $[9] !== collections || $[10] !== isAboveViewport || $[11] !== routes.api || $[12] !== hasRequested || $[13] !== getRelationships) {
|
|
88
|
-
|
|
91
|
+
t5 = [cellData, relationTo, collections, isAboveViewport, routes.api, hasRequested, getRelationships];
|
|
89
92
|
$[7] = cellData;
|
|
90
93
|
$[8] = relationTo;
|
|
91
94
|
$[9] = collections;
|
|
@@ -93,46 +96,46 @@ export const RelationshipCell = t0 => {
|
|
|
93
96
|
$[11] = routes.api;
|
|
94
97
|
$[12] = hasRequested;
|
|
95
98
|
$[13] = getRelationships;
|
|
96
|
-
$[14] =
|
|
99
|
+
$[14] = t5;
|
|
97
100
|
} else {
|
|
98
|
-
|
|
101
|
+
t5 = $[14];
|
|
99
102
|
}
|
|
100
|
-
useEffect(
|
|
101
|
-
let
|
|
103
|
+
useEffect(t4, t5);
|
|
104
|
+
let t6;
|
|
102
105
|
if ($[15] !== hasRequested) {
|
|
103
|
-
|
|
106
|
+
t6 = () => {
|
|
104
107
|
if (hasRequested) {
|
|
105
108
|
setHasRequested(false);
|
|
106
109
|
}
|
|
107
110
|
};
|
|
108
111
|
$[15] = hasRequested;
|
|
109
|
-
$[16] =
|
|
112
|
+
$[16] = t6;
|
|
110
113
|
} else {
|
|
111
|
-
|
|
114
|
+
t6 = $[16];
|
|
112
115
|
}
|
|
113
|
-
let
|
|
116
|
+
let t7;
|
|
114
117
|
if ($[17] !== cellData) {
|
|
115
|
-
|
|
118
|
+
t7 = [cellData];
|
|
116
119
|
$[17] = cellData;
|
|
117
|
-
$[18] =
|
|
120
|
+
$[18] = t7;
|
|
118
121
|
} else {
|
|
119
|
-
|
|
122
|
+
t7 = $[18];
|
|
120
123
|
}
|
|
121
|
-
useEffect(
|
|
122
|
-
let
|
|
124
|
+
useEffect(t6, t7);
|
|
125
|
+
let t8;
|
|
123
126
|
if ($[19] !== documents || $[20] !== collections || $[21] !== config.admin.dateFormat || $[22] !== t || $[23] !== i18n || $[24] !== field || $[25] !== customCellContext || $[26] !== values || $[27] !== cellData || $[28] !== label || $[29] !== intersectionRef) {
|
|
124
|
-
let
|
|
127
|
+
let t9;
|
|
125
128
|
if ($[31] !== documents || $[32] !== collections || $[33] !== config.admin.dateFormat || $[34] !== t || $[35] !== i18n || $[36] !== field || $[37] !== customCellContext || $[38] !== values.length) {
|
|
126
|
-
|
|
129
|
+
t9 = (t10, i) => {
|
|
127
130
|
const {
|
|
128
131
|
relationTo: relationTo_0,
|
|
129
132
|
value
|
|
130
|
-
} =
|
|
133
|
+
} = t10;
|
|
131
134
|
const document = documents[relationTo_0][value];
|
|
132
|
-
const relatedCollection = collections.find(
|
|
135
|
+
const relatedCollection = collections.find(t11 => {
|
|
133
136
|
const {
|
|
134
137
|
slug
|
|
135
|
-
} =
|
|
138
|
+
} = t11;
|
|
136
139
|
return slug === relationTo_0;
|
|
137
140
|
});
|
|
138
141
|
const label_0 = formatDocTitle({
|
|
@@ -167,14 +170,14 @@ export const RelationshipCell = t0 => {
|
|
|
167
170
|
$[36] = field;
|
|
168
171
|
$[37] = customCellContext;
|
|
169
172
|
$[38] = values.length;
|
|
170
|
-
$[39] =
|
|
173
|
+
$[39] = t9;
|
|
171
174
|
} else {
|
|
172
|
-
|
|
175
|
+
t9 = $[39];
|
|
173
176
|
}
|
|
174
|
-
|
|
177
|
+
t8 = _jsxs("div", {
|
|
175
178
|
className: baseClass,
|
|
176
179
|
ref: intersectionRef,
|
|
177
|
-
children: [values.map(
|
|
180
|
+
children: [values.map(t9), Array.isArray(cellData) && cellData.length > totalToShow && t("fields:itemsAndMore", {
|
|
178
181
|
count: cellData.length - totalToShow,
|
|
179
182
|
items: ""
|
|
180
183
|
}), values.length === 0 && t("general:noLabel", {
|
|
@@ -192,10 +195,10 @@ export const RelationshipCell = t0 => {
|
|
|
192
195
|
$[27] = cellData;
|
|
193
196
|
$[28] = label;
|
|
194
197
|
$[29] = intersectionRef;
|
|
195
|
-
$[30] =
|
|
198
|
+
$[30] = t8;
|
|
196
199
|
} else {
|
|
197
|
-
|
|
200
|
+
t8 = $[30];
|
|
198
201
|
}
|
|
199
|
-
return
|
|
202
|
+
return t8;
|
|
200
203
|
};
|
|
201
204
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useEffect","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","FileCell","baseClass","totalToShow","RelationshipCell","t0","$","cellData","customCellContext","field","t1","label","relationTo","config","collections","routes","intersectionRef","entry","t2","Symbol","for","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","t3","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","t4","api","t5","t6","t7","admin","dateFormat","t8","t9","i","relationTo_0","document","relatedCollection","find","t10","slug","label_0","collectionConfig","data","fallback","fileField","type","relatedCollectionPreview","upload","displayPreview","previewAllowed","rowData","_jsxs","Fragment","children","className","ref","map","count","items"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, RelationshipFieldClient, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport { FileCell } from '../File/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport interface RelationshipCellProps\n extends DefaultCellComponentProps<any, RelationshipFieldClient | UploadFieldClient> {}\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData,\n customCellContext,\n field,\n field: { label, relationTo },\n}) => {\n const { config } = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = collections.find(({ slug }) => slug === relationTo)\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n let fileField = null\n\n if (field.type === 'upload') {\n const relatedCollectionPreview = !!relatedCollection.upload.displayPreview\n const previewAllowed =\n field.displayPreview || (relatedCollectionPreview && field.displayPreview !== false)\n\n if (previewAllowed && document) {\n fileField = (\n <FileCell\n cellData={label}\n customCellContext={customCellContext}\n field={field}\n rowData={document}\n />\n )\n }\n }\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? fileField || label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useEffect","useMemo","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","FileCell","baseClass","totalToShow","RelationshipCell","t0","$","cellData","cellDataFromProps","customCellContext","field","t1","label","relationTo","collection","t2","docs","config","collections","routes","intersectionRef","entry","t3","Symbol","for","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","t4","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","t5","api","t6","t7","t8","admin","dateFormat","t9","t10","i","relationTo_0","document","relatedCollection","find","t11","slug","label_0","collectionConfig","data","fallback","fileField","type","relatedCollectionPreview","upload","displayPreview","previewAllowed","rowData","_jsxs","Fragment","children","className","ref","map","count","items"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n DefaultCellComponentProps,\n JoinFieldClient,\n RelationshipFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport { FileCell } from '../File/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport type RelationshipCellProps = DefaultCellComponentProps<\n any,\n JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n>\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData: cellDataFromProps,\n customCellContext,\n field,\n field: { label },\n}) => {\n // conditionally extract relationTo both both relationship and join fields\n const relationTo =\n ('relationTo' in field && field.relationTo) || ('collection' in field && field.collection)\n\n // conditionally extract docs from join fields\n const cellData = useMemo(() => {\n return 'collection' in field ? cellDataFromProps?.docs : cellDataFromProps\n }, [cellDataFromProps, field])\n\n const { config } = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = collections.find(({ slug }) => slug === relationTo)\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n let fileField = null\n\n if (field.type === 'upload') {\n const relatedCollectionPreview = !!relatedCollection.upload.displayPreview\n const previewAllowed =\n field.displayPreview || (relatedCollectionPreview && field.displayPreview !== false)\n\n if (previewAllowed && document) {\n fileField = (\n <FileCell\n cellData={label}\n customCellContext={customCellContext}\n field={field}\n rowData={document}\n />\n )\n }\n }\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? fileField || label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ export declare const cellComponents: {
|
|
|
5
5
|
code: import("react").FC<import("./Code/index.js").CodeCellProps>;
|
|
6
6
|
date: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<string | number | Date, import("packages/payload/src/index.js").DateFieldClient>>;
|
|
7
7
|
File: import("react").FC<import("./File/index.js").FileCellProps>;
|
|
8
|
+
join: import("react").FC<import("./Relationship/index.js").RelationshipCellProps>;
|
|
8
9
|
json: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<string, import("packages/payload/src/index.js").JSONFieldClient>>;
|
|
9
10
|
radio: import("react").FC<import("./Select/index.js").SelectCellProps>;
|
|
10
11
|
relationship: import("react").FC<import("./Relationship/index.js").RelationshipCellProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/Table/DefaultCell/fields/index.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/Table/DefaultCell/fields/index.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAc1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ArrayCell","BlocksCell","CheckboxCell","CodeCell","DateCell","FileCell","JSONCell","RelationshipCell","SelectCell","TextareaCell","cellComponents","array","blocks","checkbox","code","date","File","json","radio","relationship","select","textarea","upload"],"sources":["../../../../../src/elements/Table/DefaultCell/fields/index.tsx"],"sourcesContent":["'use client'\nimport { ArrayCell } from './Array/index.js'\nimport { BlocksCell } from './Blocks/index.js'\nimport { CheckboxCell } from './Checkbox/index.js'\nimport { CodeCell } from './Code/index.js'\nimport { DateCell } from './Date/index.js'\nimport { FileCell } from './File/index.js'\nimport { JSONCell } from './JSON/index.js'\nimport { RelationshipCell } from './Relationship/index.js'\nimport { SelectCell } from './Select/index.js'\nimport { TextareaCell } from './Textarea/index.js'\n\nexport const cellComponents = {\n array: ArrayCell,\n blocks: BlocksCell,\n checkbox: CheckboxCell,\n code: CodeCell,\n date: DateCell,\n File: FileCell,\n json: JSONCell,\n radio: SelectCell,\n relationship: RelationshipCell,\n select: SelectCell,\n textarea: TextareaCell,\n upload: RelationshipCell,\n}\n"],"mappings":"AAAA;;AACA,SAASA,SAAS,QAAQ;AAC1B,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAC7B,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,cAAA,GAAiB;EAC5BC,KAAA,EAAOX,SAAA;EACPY,MAAA,EAAQX,UAAA;EACRY,QAAA,EAAUX,YAAA;EACVY,IAAA,EAAMX,QAAA;EACNY,IAAA,EAAMX,QAAA;EACNY,IAAA,EAAMX,QAAA;EACNY,IAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["ArrayCell","BlocksCell","CheckboxCell","CodeCell","DateCell","FileCell","JSONCell","RelationshipCell","SelectCell","TextareaCell","cellComponents","array","blocks","checkbox","code","date","File","join","json","radio","relationship","select","textarea","upload"],"sources":["../../../../../src/elements/Table/DefaultCell/fields/index.tsx"],"sourcesContent":["'use client'\nimport { ArrayCell } from './Array/index.js'\nimport { BlocksCell } from './Blocks/index.js'\nimport { CheckboxCell } from './Checkbox/index.js'\nimport { CodeCell } from './Code/index.js'\nimport { DateCell } from './Date/index.js'\nimport { FileCell } from './File/index.js'\nimport { JSONCell } from './JSON/index.js'\nimport { RelationshipCell } from './Relationship/index.js'\nimport { SelectCell } from './Select/index.js'\nimport { TextareaCell } from './Textarea/index.js'\n\nexport const cellComponents = {\n array: ArrayCell,\n blocks: BlocksCell,\n checkbox: CheckboxCell,\n code: CodeCell,\n date: DateCell,\n File: FileCell,\n join: RelationshipCell,\n json: JSONCell,\n radio: SelectCell,\n relationship: RelationshipCell,\n select: SelectCell,\n textarea: TextareaCell,\n upload: RelationshipCell,\n}\n"],"mappings":"AAAA;;AACA,SAASA,SAAS,QAAQ;AAC1B,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAC7B,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,cAAA,GAAiB;EAC5BC,KAAA,EAAOX,SAAA;EACPY,MAAA,EAAQX,UAAA;EACRY,QAAA,EAAUX,YAAA;EACVY,IAAA,EAAMX,QAAA;EACNY,IAAA,EAAMX,QAAA;EACNY,IAAA,EAAMX,QAAA;EACNY,IAAA,EAAMV,gBAAA;EACNW,IAAA,EAAMZ,QAAA;EACNa,KAAA,EAAOX,UAAA;EACPY,YAAA,EAAcb,gBAAA;EACdc,MAAA,EAAQb,UAAA;EACRc,QAAA,EAAUb,YAAA;EACVc,MAAA,EAAQhB;AACV","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CellComponentProps } from 'payload';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { Column } from './index.js';
|
|
4
|
+
export declare const RenderCell: React.FC<{
|
|
5
|
+
readonly cellProps?: Partial<CellComponentProps>;
|
|
6
|
+
readonly col: Column;
|
|
7
|
+
readonly colIndex: number;
|
|
8
|
+
readonly customCellContext?: Record<string, unknown>;
|
|
9
|
+
readonly row: Record<string, unknown>;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=RenderCell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderCell.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/RenderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAMxC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACtC,CAwBA,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import { RenderComponent } from '../../providers/Config/RenderComponent.js';
|
|
4
|
+
import { deepMergeSimple } from '../../utilities/deepMerge.js';
|
|
5
|
+
import { TableCellProvider } from './TableCellProvider/index.js';
|
|
6
|
+
export const RenderCell = props => {
|
|
7
|
+
const {
|
|
8
|
+
cellProps: cellPropsFromProps,
|
|
9
|
+
col,
|
|
10
|
+
colIndex,
|
|
11
|
+
customCellContext,
|
|
12
|
+
row
|
|
13
|
+
} = props;
|
|
14
|
+
const cellProps = useMemo(() => deepMergeSimple(col?.cellProps || {}, cellPropsFromProps || {}), [cellPropsFromProps, col.cellProps]);
|
|
15
|
+
return /*#__PURE__*/_jsx("td", {
|
|
16
|
+
className: `cell-${col.accessor}`,
|
|
17
|
+
children: /*#__PURE__*/_jsx(TableCellProvider, {
|
|
18
|
+
cellData: row[col.accessor],
|
|
19
|
+
cellProps: cellProps,
|
|
20
|
+
columnIndex: colIndex,
|
|
21
|
+
customCellContext: customCellContext,
|
|
22
|
+
rowData: row,
|
|
23
|
+
children: /*#__PURE__*/_jsx(RenderComponent, {
|
|
24
|
+
clientProps: cellProps,
|
|
25
|
+
mappedComponent: cellProps?.field?.admin?.components?.Cell
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
}, colIndex);
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=RenderCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderCell.js","names":["React","useMemo","RenderComponent","deepMergeSimple","TableCellProvider","RenderCell","props","cellProps","cellPropsFromProps","col","colIndex","customCellContext","row","_jsx","className","accessor","cellData","columnIndex","rowData","clientProps","mappedComponent","field","admin","components","Cell"],"sources":["../../../src/elements/Table/RenderCell.tsx"],"sourcesContent":["import type { CellComponentProps } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport type { Column } from './index.js'\n\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { deepMergeSimple } from '../../utilities/deepMerge.js'\nimport { TableCellProvider } from './TableCellProvider/index.js'\n\nexport const RenderCell: React.FC<{\n readonly cellProps?: Partial<CellComponentProps>\n readonly col: Column\n readonly colIndex: number\n readonly customCellContext?: Record<string, unknown>\n readonly row: Record<string, unknown>\n}> = (props) => {\n const { cellProps: cellPropsFromProps, col, colIndex, customCellContext, row } = props\n\n const cellProps: Partial<CellComponentProps> = useMemo(\n () => deepMergeSimple(col?.cellProps || {}, cellPropsFromProps || {}),\n [cellPropsFromProps, col.cellProps],\n )\n\n return (\n <td className={`cell-${col.accessor}`} key={colIndex}>\n <TableCellProvider\n cellData={row[col.accessor]}\n cellProps={cellProps}\n columnIndex={colIndex}\n customCellContext={customCellContext}\n rowData={row}\n >\n <RenderComponent\n clientProps={cellProps}\n mappedComponent={cellProps?.field?.admin?.components?.Cell}\n />\n </TableCellProvider>\n </td>\n )\n}\n"],"mappings":";AAEA,OAAOA,KAAA,IAASC,OAAO,QAAQ;AAI/B,SAASC,eAAe,QAAQ;AAChC,SAASC,eAAe,QAAQ;AAChC,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,UAAA,GAMPC,KAAA;EACJ,MAAM;IAAEC,SAAA,EAAWC,kBAAkB;IAAEC,GAAG;IAAEC,QAAQ;IAAEC,iBAAiB;IAAEC;EAAG,CAAE,GAAGN,KAAA;EAEjF,MAAMC,SAAA,GAAyCN,OAAA,CAC7C,MAAME,eAAA,CAAgBM,GAAA,EAAKF,SAAA,IAAa,CAAC,GAAGC,kBAAA,IAAsB,CAAC,IACnE,CAACA,kBAAA,EAAoBC,GAAA,CAAIF,SAAS,CAAC;EAGrC,oBACEM,IAAA,CAAC;IAAGC,SAAA,EAAW,QAAQL,GAAA,CAAIM,QAAQ,EAAE;cACnC,aAAAF,IAAA,CAACT,iBAAA;MACCY,QAAA,EAAUJ,GAAG,CAACH,GAAA,CAAIM,QAAQ,CAAC;MAC3BR,SAAA,EAAWA,SAAA;MACXU,WAAA,EAAaP,QAAA;MACbC,iBAAA,EAAmBA,iBAAA;MACnBO,OAAA,EAASN,GAAA;gBAET,aAAAC,IAAA,CAACX,eAAA;QACCiB,WAAA,EAAaZ,SAAA;QACba,eAAA,EAAiBb,SAAA,EAAWc,KAAA,EAAOC,KAAA,EAAOC,UAAA,EAAYC;;;KAVhBd,QAAA;AAehD","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CellComponentProps, ClientField
|
|
1
|
+
import type { CellComponentProps, ClientField } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export * from './TableCellProvider/index.js';
|
|
4
4
|
import './index.scss';
|
|
@@ -8,13 +8,10 @@ export type Column = {
|
|
|
8
8
|
readonly accessor: string;
|
|
9
9
|
readonly active: boolean;
|
|
10
10
|
readonly cellProps?: Partial<CellComponentProps>;
|
|
11
|
-
readonly
|
|
12
|
-
Cell: MappedComponent;
|
|
13
|
-
Heading: React.ReactNode;
|
|
14
|
-
};
|
|
15
|
-
readonly Label: React.ReactNode;
|
|
11
|
+
readonly Heading: React.ReactNode;
|
|
16
12
|
};
|
|
17
13
|
export type Props = {
|
|
14
|
+
readonly appearance?: 'condensed' | 'default';
|
|
18
15
|
readonly columns?: Column[];
|
|
19
16
|
readonly customCellContext?: Record<string, unknown>;
|
|
20
17
|
readonly data: Record<string, unknown>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE9D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,cAAc,8BAA8B,CAAA;AAG5C,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEhE,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAI5B,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6DjC,CAAA"}
|