@payloadcms/ui 3.0.0-canary.0374de4 → 3.0.0-canary.0992b47
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/BulkUpload/EditForm/index.js +1 -3
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -3
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +0 -6
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
- package/dist/elements/ColumnSelector/index.js +2 -14
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +1 -4
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +5 -41
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +0 -8
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +17 -23
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -4
- 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 +12 -19
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/Hamburger/index.scss +0 -4
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +5 -9
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +6 -0
- package/dist/elements/ListDrawer/DrawerContent.d.ts +0 -2
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +5 -9
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.scss +3 -7
- 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 +1 -2
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +1 -3
- package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js +0 -1
- 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 +46 -97
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.scss +0 -4
- package/dist/elements/SelectRow/index.d.ts.map +1 -1
- package/dist/elements/SelectRow/index.js +24 -60
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts +0 -1
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +17 -29
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortColumn/index.scss +1 -10
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +3 -2
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +40 -43
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.scss +3 -0
- package/dist/elements/Table/DefaultCell/fields/index.d.ts +0 -1
- package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.js +0 -1
- package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
- package/dist/elements/Table/index.d.ts +6 -3
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +31 -36
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Table/index.scss +0 -49
- package/dist/elements/TableColumns/buildColumnState.d.ts +2 -5
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +22 -35
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/index.d.ts +0 -4
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +68 -79
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Tooltip/index.d.ts +0 -1
- package/dist/elements/Tooltip/index.d.ts.map +1 -1
- package/dist/elements/Tooltip/index.js +13 -15
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +2 -2
- package/dist/exports/client/index.d.ts +0 -1
- 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.js +2 -2
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/Checkbox/Input.js +1 -1
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.scss +0 -13
- package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +14 -11
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +11 -10
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/UploadCard/index.scss +1 -0
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +0 -2
- package/dist/fields/index.js.map +1 -1
- package/dist/forms/Form/index.js +2 -6
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +1 -3
- 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 +15 -18
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/index.d.ts +0 -2
- package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/index.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 +1 -9
- package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.js +1 -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 +0 -3
- 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 +8 -112
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +26 -32
- 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/Selection/index.d.ts +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +31 -55
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts +3 -9
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +4 -88
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/getFormState.d.ts +2 -8
- package/dist/utilities/getFormState.d.ts.map +1 -1
- package/dist/utilities/getFormState.js +1 -3
- package/dist/utilities/getFormState.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/Locked/index.d.ts +0 -8
- package/dist/elements/Locked/index.d.ts.map +0 -1
- package/dist/elements/Locked/index.js +0 -72
- package/dist/elements/Locked/index.js.map +0 -1
- package/dist/elements/Locked/index.scss +0 -14
- package/dist/elements/RelationshipTable/TableWrapper.d.ts +0 -8
- package/dist/elements/RelationshipTable/TableWrapper.d.ts.map +0 -1
- package/dist/elements/RelationshipTable/TableWrapper.js +0 -69
- package/dist/elements/RelationshipTable/TableWrapper.js.map +0 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +0 -8
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +0 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +0 -82
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +0 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +0 -4
- package/dist/elements/RelationshipTable/index.d.ts +0 -13
- package/dist/elements/RelationshipTable/index.d.ts.map +0 -1
- package/dist/elements/RelationshipTable/index.js +0 -365
- package/dist/elements/RelationshipTable/index.js.map +0 -1
- package/dist/elements/RelationshipTable/index.scss +0 -26
- package/dist/elements/Table/RenderCell.d.ts +0 -11
- package/dist/elements/Table/RenderCell.d.ts.map +0 -1
- package/dist/elements/Table/RenderCell.js +0 -30
- package/dist/elements/Table/RenderCell.js.map +0 -1
- package/dist/fields/Join/index.d.ts +0 -9
- package/dist/fields/Join/index.d.ts.map +0 -1
- package/dist/fields/Join/index.js +0 -70
- package/dist/fields/Join/index.js.map +0 -1
- package/dist/icons/Lock/index.d.ts +0 -6
- package/dist/icons/Lock/index.d.ts.map +0 -1
- package/dist/icons/Lock/index.js +0 -27
- package/dist/icons/Lock/index.js.map +0 -1
- package/dist/icons/Lock/index.scss +0 -8
- package/dist/utilities/deepMerge.d.ts +0 -12
- package/dist/utilities/deepMerge.d.ts.map +0 -1
- package/dist/utilities/deepMerge.js +0 -25
- package/dist/utilities/deepMerge.js.map +0 -1
|
@@ -10,12 +10,11 @@ import { SortColumn } from '../SortColumn/index.js';
|
|
|
10
10
|
import { DefaultCell } from '../Table/DefaultCell/index.js';
|
|
11
11
|
export const buildColumnState = args => {
|
|
12
12
|
const {
|
|
13
|
-
|
|
13
|
+
cellProps,
|
|
14
14
|
columnPreferences,
|
|
15
15
|
columns,
|
|
16
16
|
enableRowSelections,
|
|
17
17
|
fields,
|
|
18
|
-
sortColumnProps,
|
|
19
18
|
useAsTitle
|
|
20
19
|
} = args;
|
|
21
20
|
let sortedFieldMap = flattenFieldMap(fields);
|
|
@@ -76,8 +75,7 @@ export const buildColumnState = args => {
|
|
|
76
75
|
disable: fieldAffectsDataSubFields || field?._isPresentational || undefined,
|
|
77
76
|
Label: Label,
|
|
78
77
|
label: 'label' in field ? field.label : undefined,
|
|
79
|
-
name: 'name' in field ? field.name : undefined
|
|
80
|
-
...(sortColumnProps || {})
|
|
78
|
+
name: 'name' in field ? field.name : undefined
|
|
81
79
|
});
|
|
82
80
|
if (field) {
|
|
83
81
|
const column = {
|
|
@@ -86,21 +84,19 @@ export const buildColumnState = args => {
|
|
|
86
84
|
cellProps: {
|
|
87
85
|
field: {
|
|
88
86
|
...(field || {}),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
...(field.admin?.components || {}),
|
|
93
|
-
Cell: field.admin?.components?.Cell || {
|
|
94
|
-
type: 'client',
|
|
95
|
-
Component: DefaultCell,
|
|
96
|
-
RenderedComponent: null
|
|
97
|
-
},
|
|
98
|
-
Label
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
87
|
+
...(cellProps?.[index]?.field || {})
|
|
88
|
+
},
|
|
89
|
+
...cellProps?.[index]
|
|
102
90
|
},
|
|
103
|
-
|
|
91
|
+
components: {
|
|
92
|
+
Cell: field.admin?.components?.Cell || {
|
|
93
|
+
type: 'client',
|
|
94
|
+
Component: DefaultCell,
|
|
95
|
+
RenderedComponent: null
|
|
96
|
+
},
|
|
97
|
+
Heading
|
|
98
|
+
},
|
|
99
|
+
Label
|
|
104
100
|
};
|
|
105
101
|
acc.push(column);
|
|
106
102
|
}
|
|
@@ -110,26 +106,17 @@ export const buildColumnState = args => {
|
|
|
110
106
|
sorted.unshift({
|
|
111
107
|
accessor: '_select',
|
|
112
108
|
active: true,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
RenderedComponent: /*#__PURE__*/_jsx(SelectRow, {})
|
|
121
|
-
},
|
|
122
|
-
Label: null
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
109
|
+
components: {
|
|
110
|
+
Cell: {
|
|
111
|
+
type: 'client',
|
|
112
|
+
Component: null,
|
|
113
|
+
RenderedComponent: /*#__PURE__*/_jsx(SelectRow, {})
|
|
114
|
+
},
|
|
115
|
+
Heading: /*#__PURE__*/_jsx(SelectAll, {})
|
|
126
116
|
},
|
|
127
|
-
|
|
117
|
+
Label: null
|
|
128
118
|
});
|
|
129
119
|
}
|
|
130
|
-
if (beforeRows) {
|
|
131
|
-
sorted.unshift(...beforeRows);
|
|
132
|
-
}
|
|
133
120
|
return sorted;
|
|
134
121
|
};
|
|
135
122
|
//# sourceMappingURL=buildColumnState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","beforeRows","columnPreferences","columns","enableRowSelections","fields","sortColumnProps","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","cellProps","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n admin: {\n ...(field.admin || {}),\n components: {\n ...(field.admin?.components || {}),\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Label,\n },\n },\n } as ClientField,\n },\n Heading,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n cellProps: {\n field: {\n admin: {\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Label: null,\n },\n },\n } as ClientField,\n },\n Heading: <SelectAll />,\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","cellProps","columnPreferences","columns","enableRowSelections","fields","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type {\n CellComponentProps,\n ClientField,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n cellProps: Partial<CellComponentProps>[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n fields: ClientField[]\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const { cellProps, columnPreferences, columns, enableRowSelections, fields, useAsTitle } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n ...(cellProps?.[index]?.field || ({} as ClientField)),\n } as ClientField,\n ...cellProps?.[index],\n },\n components: {\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Heading,\n },\n Label,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Heading: <SelectAll />,\n },\n Label: null,\n })\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { CellComponentProps } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { ColumnPreferences } from '../../providers/ListInfo/index.js';
|
|
4
|
-
import type { SortColumnProps } from '../SortColumn/index.js';
|
|
5
4
|
import type { Column } from '../Table/index.js';
|
|
6
5
|
export interface ITableColumns {
|
|
7
|
-
cellProps?: Partial<CellComponentProps>[];
|
|
8
6
|
columns: Column[];
|
|
9
7
|
moveColumn: (args: {
|
|
10
8
|
fromIndex: number;
|
|
@@ -19,14 +17,12 @@ export type ListPreferences = {
|
|
|
19
17
|
columns: ColumnPreferences;
|
|
20
18
|
};
|
|
21
19
|
type Props = {
|
|
22
|
-
readonly beforeRows?: Column[];
|
|
23
20
|
readonly cellProps?: Partial<CellComponentProps>[];
|
|
24
21
|
readonly children: React.ReactNode;
|
|
25
22
|
readonly collectionSlug: string;
|
|
26
23
|
readonly enableRowSelections?: boolean;
|
|
27
24
|
readonly listPreferences?: ListPreferences;
|
|
28
25
|
readonly preferenceKey: string;
|
|
29
|
-
readonly sortColumnProps?: Partial<SortColumnProps>;
|
|
30
26
|
};
|
|
31
27
|
export declare const TableColumnsProvider: React.FC<Props>;
|
|
32
28
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAA;AAE5E,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAA;AAE5E,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyJhD,CAAA"}
|
|
@@ -13,16 +13,14 @@ export const useTableColumns = () => {
|
|
|
13
13
|
return useContext(TableColumnContext);
|
|
14
14
|
};
|
|
15
15
|
export const TableColumnsProvider = t0 => {
|
|
16
|
-
const $ = _c(
|
|
16
|
+
const $ = _c(53);
|
|
17
17
|
const {
|
|
18
|
-
beforeRows,
|
|
19
18
|
cellProps,
|
|
20
19
|
children,
|
|
21
20
|
collectionSlug,
|
|
22
21
|
enableRowSelections: t1,
|
|
23
22
|
listPreferences,
|
|
24
|
-
preferenceKey
|
|
25
|
-
sortColumnProps
|
|
23
|
+
preferenceKey
|
|
26
24
|
} = t0;
|
|
27
25
|
const enableRowSelections = t1 === undefined ? false : t1;
|
|
28
26
|
const {
|
|
@@ -35,7 +33,7 @@ export const TableColumnsProvider = t0 => {
|
|
|
35
33
|
if ($[0] !== collectionSlug || $[1] !== collections) {
|
|
36
34
|
let t4;
|
|
37
35
|
if ($[3] !== collectionSlug) {
|
|
38
|
-
t4 =
|
|
36
|
+
t4 = collectionConfig => collectionConfig.slug === collectionSlug;
|
|
39
37
|
$[3] = collectionSlug;
|
|
40
38
|
$[4] = t4;
|
|
41
39
|
} else {
|
|
@@ -48,11 +46,11 @@ export const TableColumnsProvider = t0 => {
|
|
|
48
46
|
} else {
|
|
49
47
|
t3 = $[2];
|
|
50
48
|
}
|
|
51
|
-
const
|
|
49
|
+
const collectionConfig_0 = t3;
|
|
52
50
|
const {
|
|
53
51
|
admin: t4,
|
|
54
52
|
fields
|
|
55
|
-
} =
|
|
53
|
+
} = collectionConfig_0;
|
|
56
54
|
const {
|
|
57
55
|
defaultColumns,
|
|
58
56
|
useAsTitle
|
|
@@ -74,48 +72,46 @@ export const TableColumnsProvider = t0 => {
|
|
|
74
72
|
}
|
|
75
73
|
const [initialColumns] = useState(t5);
|
|
76
74
|
let t6;
|
|
77
|
-
if ($[9] !==
|
|
75
|
+
if ($[9] !== cellProps || $[10] !== listPreferences || $[11] !== initialColumns || $[12] !== enableRowSelections || $[13] !== fields || $[14] !== useAsTitle) {
|
|
78
76
|
t6 = () => buildColumnState({
|
|
79
|
-
|
|
77
|
+
cellProps,
|
|
80
78
|
columnPreferences: listPreferences?.columns,
|
|
81
79
|
columns: initialColumns,
|
|
82
80
|
enableRowSelections,
|
|
83
81
|
fields,
|
|
84
|
-
sortColumnProps,
|
|
85
82
|
useAsTitle
|
|
86
83
|
});
|
|
87
|
-
$[9] =
|
|
84
|
+
$[9] = cellProps;
|
|
88
85
|
$[10] = listPreferences;
|
|
89
86
|
$[11] = initialColumns;
|
|
90
87
|
$[12] = enableRowSelections;
|
|
91
88
|
$[13] = fields;
|
|
92
|
-
$[14] =
|
|
93
|
-
$[15] =
|
|
94
|
-
$[16] = t6;
|
|
89
|
+
$[14] = useAsTitle;
|
|
90
|
+
$[15] = t6;
|
|
95
91
|
} else {
|
|
96
|
-
t6 = $[
|
|
92
|
+
t6 = $[15];
|
|
97
93
|
}
|
|
98
94
|
const [tableColumns, setTableColumns] = React.useState(t6);
|
|
99
95
|
let t7;
|
|
100
|
-
if ($[
|
|
96
|
+
if ($[16] !== setPreference || $[17] !== preferenceKey) {
|
|
101
97
|
t7 = newColumns => {
|
|
102
|
-
const columns = newColumns.map(
|
|
103
|
-
accessor:
|
|
104
|
-
active:
|
|
98
|
+
const columns = newColumns.map(c => ({
|
|
99
|
+
accessor: c?.accessor,
|
|
100
|
+
active: c?.active
|
|
105
101
|
}));
|
|
106
102
|
setPreference(preferenceKey, {
|
|
107
103
|
columns
|
|
108
104
|
}, true);
|
|
109
105
|
};
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
106
|
+
$[16] = setPreference;
|
|
107
|
+
$[17] = preferenceKey;
|
|
108
|
+
$[18] = t7;
|
|
113
109
|
} else {
|
|
114
|
-
t7 = $[
|
|
110
|
+
t7 = $[18];
|
|
115
111
|
}
|
|
116
112
|
const updateColumnPreferences = t7;
|
|
117
113
|
let t8;
|
|
118
|
-
if ($[
|
|
114
|
+
if ($[19] !== tableColumns || $[20] !== updateColumnPreferences) {
|
|
119
115
|
t8 = args => {
|
|
120
116
|
const {
|
|
121
117
|
fromIndex,
|
|
@@ -127,15 +123,15 @@ export const TableColumnsProvider = t0 => {
|
|
|
127
123
|
setTableColumns(withMovedColumn);
|
|
128
124
|
updateColumnPreferences(withMovedColumn);
|
|
129
125
|
};
|
|
130
|
-
$[
|
|
131
|
-
$[
|
|
132
|
-
$[
|
|
126
|
+
$[19] = tableColumns;
|
|
127
|
+
$[20] = updateColumnPreferences;
|
|
128
|
+
$[21] = t8;
|
|
133
129
|
} else {
|
|
134
|
-
t8 = $[
|
|
130
|
+
t8 = $[21];
|
|
135
131
|
}
|
|
136
132
|
const moveColumn = t8;
|
|
137
133
|
let t9;
|
|
138
|
-
if ($[
|
|
134
|
+
if ($[22] !== tableColumns || $[23] !== updateColumnPreferences) {
|
|
139
135
|
t9 = column => {
|
|
140
136
|
const toggledColumns = tableColumns.map(col => ({
|
|
141
137
|
...col,
|
|
@@ -144,15 +140,15 @@ export const TableColumnsProvider = t0 => {
|
|
|
144
140
|
setTableColumns(toggledColumns);
|
|
145
141
|
updateColumnPreferences(toggledColumns);
|
|
146
142
|
};
|
|
147
|
-
$[
|
|
148
|
-
$[
|
|
149
|
-
$[
|
|
143
|
+
$[22] = tableColumns;
|
|
144
|
+
$[23] = updateColumnPreferences;
|
|
145
|
+
$[24] = t9;
|
|
150
146
|
} else {
|
|
151
|
-
t9 = $[
|
|
147
|
+
t9 = $[24];
|
|
152
148
|
}
|
|
153
149
|
const toggleColumn = t9;
|
|
154
150
|
let t10;
|
|
155
|
-
if ($[
|
|
151
|
+
if ($[25] !== tableColumns || $[26] !== updateColumnPreferences) {
|
|
156
152
|
t10 = activeColumnAccessors => {
|
|
157
153
|
const activeColumns = tableColumns.map(col_0 => ({
|
|
158
154
|
...col_0,
|
|
@@ -160,15 +156,15 @@ export const TableColumnsProvider = t0 => {
|
|
|
160
156
|
}));
|
|
161
157
|
updateColumnPreferences(activeColumns);
|
|
162
158
|
};
|
|
163
|
-
$[
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
159
|
+
$[25] = tableColumns;
|
|
160
|
+
$[26] = updateColumnPreferences;
|
|
161
|
+
$[27] = t10;
|
|
166
162
|
} else {
|
|
167
|
-
t10 = $[
|
|
163
|
+
t10 = $[27];
|
|
168
164
|
}
|
|
169
165
|
const setActiveColumns = t10;
|
|
170
166
|
let t11;
|
|
171
|
-
if ($[
|
|
167
|
+
if ($[28] !== collectionSlug || $[29] !== listPreferences || $[30] !== getPreference || $[31] !== preferenceKey || $[32] !== cellProps || $[33] !== initialColumns || $[34] !== fields || $[35] !== useAsTitle) {
|
|
172
168
|
t11 = () => {
|
|
173
169
|
const sync = async () => {
|
|
174
170
|
const collectionHasChanged = prevCollection.current !== collectionSlug;
|
|
@@ -177,12 +173,11 @@ export const TableColumnsProvider = t0 => {
|
|
|
177
173
|
prevCollection.current = collectionSlug;
|
|
178
174
|
if (currentPreferences?.columns) {
|
|
179
175
|
setTableColumns(buildColumnState({
|
|
180
|
-
|
|
176
|
+
cellProps,
|
|
181
177
|
columnPreferences: currentPreferences?.columns,
|
|
182
178
|
columns: initialColumns,
|
|
183
|
-
enableRowSelections,
|
|
179
|
+
enableRowSelections: true,
|
|
184
180
|
fields,
|
|
185
|
-
sortColumnProps,
|
|
186
181
|
useAsTitle
|
|
187
182
|
}));
|
|
188
183
|
}
|
|
@@ -190,44 +185,39 @@ export const TableColumnsProvider = t0 => {
|
|
|
190
185
|
};
|
|
191
186
|
sync();
|
|
192
187
|
};
|
|
193
|
-
$[
|
|
194
|
-
$[
|
|
195
|
-
$[
|
|
196
|
-
$[
|
|
197
|
-
$[
|
|
198
|
-
$[
|
|
199
|
-
$[
|
|
200
|
-
$[
|
|
201
|
-
$[
|
|
202
|
-
$[38] = useAsTitle;
|
|
203
|
-
$[39] = t11;
|
|
188
|
+
$[28] = collectionSlug;
|
|
189
|
+
$[29] = listPreferences;
|
|
190
|
+
$[30] = getPreference;
|
|
191
|
+
$[31] = preferenceKey;
|
|
192
|
+
$[32] = cellProps;
|
|
193
|
+
$[33] = initialColumns;
|
|
194
|
+
$[34] = fields;
|
|
195
|
+
$[35] = useAsTitle;
|
|
196
|
+
$[36] = t11;
|
|
204
197
|
} else {
|
|
205
|
-
t11 = $[
|
|
198
|
+
t11 = $[36];
|
|
206
199
|
}
|
|
207
200
|
let t12;
|
|
208
|
-
if ($[
|
|
209
|
-
t12 = [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, initialColumns
|
|
210
|
-
$[
|
|
211
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
$[
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
216
|
-
$[
|
|
217
|
-
$[
|
|
218
|
-
$[
|
|
219
|
-
$[
|
|
220
|
-
$[50] = sortColumnProps;
|
|
221
|
-
$[51] = t12;
|
|
201
|
+
if ($[37] !== preferenceKey || $[38] !== getPreference || $[39] !== collectionSlug || $[40] !== fields || $[41] !== cellProps || $[42] !== defaultColumns || $[43] !== useAsTitle || $[44] !== listPreferences || $[45] !== initialColumns) {
|
|
202
|
+
t12 = [preferenceKey, getPreference, collectionSlug, fields, cellProps, defaultColumns, useAsTitle, listPreferences, initialColumns];
|
|
203
|
+
$[37] = preferenceKey;
|
|
204
|
+
$[38] = getPreference;
|
|
205
|
+
$[39] = collectionSlug;
|
|
206
|
+
$[40] = fields;
|
|
207
|
+
$[41] = cellProps;
|
|
208
|
+
$[42] = defaultColumns;
|
|
209
|
+
$[43] = useAsTitle;
|
|
210
|
+
$[44] = listPreferences;
|
|
211
|
+
$[45] = initialColumns;
|
|
212
|
+
$[46] = t12;
|
|
222
213
|
} else {
|
|
223
|
-
t12 = $[
|
|
214
|
+
t12 = $[46];
|
|
224
215
|
}
|
|
225
216
|
React.useEffect(t11, t12);
|
|
226
217
|
let t13;
|
|
227
|
-
if ($[
|
|
218
|
+
if ($[47] !== tableColumns || $[48] !== moveColumn || $[49] !== setActiveColumns || $[50] !== toggleColumn || $[51] !== children) {
|
|
228
219
|
t13 = _jsx(TableColumnContext.Provider, {
|
|
229
220
|
value: {
|
|
230
|
-
cellProps,
|
|
231
221
|
columns: tableColumns,
|
|
232
222
|
moveColumn,
|
|
233
223
|
setActiveColumns,
|
|
@@ -235,15 +225,14 @@ export const TableColumnsProvider = t0 => {
|
|
|
235
225
|
},
|
|
236
226
|
children
|
|
237
227
|
});
|
|
238
|
-
$[
|
|
239
|
-
$[
|
|
240
|
-
$[
|
|
241
|
-
$[
|
|
242
|
-
$[
|
|
243
|
-
$[
|
|
244
|
-
$[58] = t13;
|
|
228
|
+
$[47] = tableColumns;
|
|
229
|
+
$[48] = moveColumn;
|
|
230
|
+
$[49] = setActiveColumns;
|
|
231
|
+
$[50] = toggleColumn;
|
|
232
|
+
$[51] = children;
|
|
233
|
+
$[52] = t13;
|
|
245
234
|
} else {
|
|
246
|
-
t13 = $[
|
|
235
|
+
t13 = $[52];
|
|
247
236
|
}
|
|
248
237
|
return t13;
|
|
249
238
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","useConfig","usePreferences","buildColumnState","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","t0","$","beforeRows","cellProps","children","collectionSlug","enableRowSelections","t1","listPreferences","preferenceKey","sortColumnProps","undefined","config","t2","collections","t3","t4","slug","find","collectionConfig","admin","fields","defaultColumns","useAsTitle","prevCollection","useRef","getPreference","setPreference","t5","initialColumns","t6","columnPreferences","columns","tableColumns","setTableColumns","t7","newColumns","map","c_0","accessor","active","updateColumnPreferences","t8","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","moveColumn","t9","column","toggledColumns","col","field","name","toggleColumn","t10","activeColumnAccessors","activeColumns","col_0","includes","setActiveColumns","t11","sync","collectionHasChanged","current","currentPreferences","t12","useEffect","t13","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n cellProps?: Partial<CellComponentProps>[]\n columns: Column[]\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly beforeRows?: Column[]\n readonly cellProps?: Partial<CellComponentProps>[]\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly enableRowSelections?: boolean\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly sortColumnProps?: Partial<SortColumnProps>\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n beforeRows,\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n sortColumnProps,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n\n const {\n admin: { defaultColumns, useAsTitle },\n fields,\n } = collectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fields), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, setTableColumns] = React.useState(() =>\n buildColumnState({\n beforeRows,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n }),\n )\n\n const updateColumnPreferences = React.useCallback(\n (newColumns: Column[]) => {\n const columns = newColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n },\n [preferenceKey, setPreference],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n setTableColumns(withMovedColumn)\n updateColumnPreferences(withMovedColumn)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n const toggledColumns = tableColumns.map((col) => {\n return {\n ...col,\n active:\n col?.cellProps?.field &&\n 'name' in col.cellProps.field &&\n col?.cellProps?.field?.name === column\n ? !col.active\n : col.active,\n }\n })\n\n setTableColumns(toggledColumns)\n updateColumnPreferences(toggledColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const setActiveColumns = React.useCallback(\n (activeColumnAccessors) => {\n const activeColumns = tableColumns.map((col) => {\n return {\n ...col,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n\n updateColumnPreferences(activeColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n setTableColumns(\n buildColumnState({\n beforeRows,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n }),\n )\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n beforeRows,\n enableRowSelections,\n sortColumnProps,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n cellProps,\n columns: tableColumns,\n moveColumn,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,QAAQ,QAAQ;AAMxE,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAUlC,OAAO,MAAMC,kBAAA,gBAAqBT,aAAA,CAA6B,CAAC;AAEhE,OAAO,MAAMU,eAAA,GAAkBA,CAAA;EAAA,OAAqBR,UAAA,CAAAO,kBAAW;AAAA;AAiB/D,OAAO,MAAME,oBAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAAC;IAAAgB,UAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,cAAA;IAAAC,mBAAA,EAAAC,EAAA;IAAAC,eAAA;IAAAC,aAAA;IAAAC;EAAA,IAAAV,EASrD;EAJC,MAAAM,mBAAA,GAAAC,EAA2B,KAAAI,SAAA,WAA3BJ,EAA2B;EAK3B;IAAAK,MAAA,EAAAC;EAAA,IAEIrB,SAAA;EADM;IAAAsB;EAAA,IAAAD,EAAe;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAa,WAAA;IAAA,IAAAE,EAAA;IAAA,IAAAf,CAAA,QAAAI,cAAA;MAGiBW,EAAA,GAAA/B,CAAA,IAAOA,CAAA,CAAAgC,IAAA,KAAWZ,cAAA;MAAAJ,CAAA,MAAAI,cAAA;MAAAJ,CAAA,MAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IAAnCc,EAAA,GAAAD,WAAA,CAAAI,IAAA,CAAiBF,EAAkB;IAAAf,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAa,WAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAA5D,MAAAkB,gBAAA,GAAyBJ,EAAmC;EAE5D;IAAAK,KAAA,EAAAJ,EAAA;IAAAK;EAAA,IAGIF,gBAAA;EAFK;IAAAG,cAAA;IAAAC;EAAA,IAAAP,EAA8B;EAIvC,MAAAQ,cAAA,GAAuBrC,KAAA,CAAAsC,MAAA,CAAgDpB,cAAA;EACvE;IAAAqB,aAAA;IAAAC;EAAA,IAAyClC,cAAA;EAAA,IAAAmC,EAAA;EAAA,IAAA3B,CAAA,QAAAoB,MAAA,IAAApB,CAAA,QAAAsB,UAAA,IAAAtB,CAAA,QAAAqB,cAAA;IAEYM,EAAA,GAAAA,CAAA,KACnDhC,iBAAA,CAAkBD,YAAA,CAAa0B,MAAA,GAASE,UAAA,EAAYD,cAAA;IAAArB,CAAA,MAAAoB,MAAA;IAAApB,CAAA,MAAAsB,UAAA;IAAAtB,CAAA,MAAAqB,cAAA;IAAArB,CAAA,MAAA2B,EAAA;EAAA;IAAAA,EAAA,GAAA3B,CAAA;EAAA;EADtD,OAAA4B,cAAA,IAAyBtC,QAAA,CAA4BqC,EACC;EAAA,IAAAE,EAAA;EAAA,IAAA7B,CAAA,QAAAC,UAAA,IAAAD,CAAA,SAAAO,eAAA,IAAAP,CAAA,SAAA4B,cAAA,IAAA5B,CAAA,SAAAK,mBAAA,IAAAL,CAAA,SAAAoB,MAAA,IAAApB,CAAA,SAAAS,eAAA,IAAAT,CAAA,SAAAsB,UAAA;IAGCO,EAAA,GAAAA,CAAA,KACrDpC,gBAAA;MAAAQ,UAAA;MAAA6B,iBAAA,EAEqBvB,eAAA,EAAAwB,OAAA;MAAAA,OAAA,EACVH,cAAA;MAAAvB,mBAAA;MAAAe,MAAA;MAAAX,eAAA;MAAAa;IAAA,CAKX;IAAAtB,CAAA,MAAAC,UAAA;IAAAD,CAAA,OAAAO,eAAA;IAAAP,CAAA,OAAA4B,cAAA;IAAA5B,CAAA,OAAAK,mBAAA;IAAAL,CAAA,OAAAoB,MAAA;IAAApB,CAAA,OAAAS,eAAA;IAAAT,CAAA,OAAAsB,UAAA;IAAAtB,CAAA,OAAA6B,EAAA;EAAA;IAAAA,EAAA,GAAA7B,CAAA;EAAA;EATF,OAAAgC,YAAA,EAAAC,eAAA,IAAwC/C,KAAA,CAAAI,QAAA,CAAeuC,EASrD;EAAA,IAAAK,EAAA;EAAA,IAAAlC,CAAA,SAAA0B,aAAA,IAAA1B,CAAA,SAAAQ,aAAA;IAIA0B,EAAA,GAAAC,UAAA;MACE,MAAAJ,OAAA,GAAgBI,UAAA,CAAAC,GAAA,CAAAC,GAAA;QAAAC,QAAA,EACJtD,GAAA,EAAAsD,QAAA;QAAAC,MAAA,EACFvD,GAAA,EAAAuD;MAAA,EACV;MAEKb,aAAA,CAAclB,aAAA;QAAAuB;MAAA,OAA4B;IAAA;IACjD/B,CAAA,OAAA0B,aAAA;IAAA1B,CAAA,OAAAQ,aAAA;IAAAR,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EARF,MAAAwC,uBAAA,GAAgCN,EASA;EAAA,IAAAO,EAAA;EAAA,IAAAzC,CAAA,SAAAgC,YAAA,IAAAhC,CAAA,SAAAwC,uBAAA;IAI9BC,EAAA,GAAAC,IAAA;MACE;QAAAC,SAAA;QAAAC;MAAA,IAA+BF,IAAA;MAC/B,MAAAG,eAAA,OAA4Bb,YAAA;MAC5B,OAAAc,YAAA,IAAuBD,eAAA,CAAAE,MAAA,CAAuBJ,SAAA,GAAW;MACzDE,eAAA,CAAAE,MAAA,CAAuBH,OAAA,KAAYE,YAAA;MACnCb,eAAA,CAAgBY,eAAA;MAChBL,uBAAA,CAAwBK,eAAA;IAAA;IAC1B7C,CAAA,OAAAgC,YAAA;IAAAhC,CAAA,OAAAwC,uBAAA;IAAAxC,CAAA,OAAAyC,EAAA;EAAA;IAAAA,EAAA,GAAAzC,CAAA;EAAA;EARF,MAAAgD,UAAA,GAAmBP,EASsB;EAAA,IAAAQ,EAAA;EAAA,IAAAjD,CAAA,SAAAgC,YAAA,IAAAhC,CAAA,SAAAwC,uBAAA;IAIvCS,EAAA,GAAAC,MAAA;MACE,MAAAC,cAAA,GAAuBnB,YAAA,CAAAI,GAAA,CAAAgB,GAAA;QAAA,GAEhBA,GAAG;QAAAb,MAAA,EAEJa,GAAA,EAAAlD,SAAA,EAAAmD,KAAA,IACA,UAAUD,GAAA,CAAAlD,SAAA,CAAAmD,KAAmB,IAC7BD,GAAA,EAAAlD,SAAA,EAAAmD,KAAA,EAAAC,IAAA,KAAgCJ,MAAA,IAC3BE,GAAA,CAAAb,MAAA,GACDa,GAAA,CAAAb;MAAU,EAEpB;MAEAN,eAAA,CAAgBkB,cAAA;MAChBX,uBAAA,CAAwBW,cAAA;IAAA;IAC1BnD,CAAA,OAAAgC,YAAA;IAAAhC,CAAA,OAAAwC,uBAAA;IAAAxC,CAAA,OAAAiD,EAAA;EAAA;IAAAA,EAAA,GAAAjD,CAAA;EAAA;EAhBF,MAAAuD,YAAA,GAAqBN,EAiBoB;EAAA,IAAAO,GAAA;EAAA,IAAAxD,CAAA,SAAAgC,YAAA,IAAAhC,CAAA,SAAAwC,uBAAA;IAIvCgB,GAAA,GAAAC,qBAAA;MACE,MAAAC,aAAA,GAAsB1B,YAAA,CAAAI,GAAA,CAAAuB,KAAA;QAAA,GAEfP,KAAG;QAAAb,MAAA,EACEkB,qBAAA,CAAAG,QAAA,CAA+BR,KAAA,CAAAd,QAAY;MAAA,EAEvD;MAEAE,uBAAA,CAAwBkB,aAAA;IAAA;IAC1B1D,CAAA,OAAAgC,YAAA;IAAAhC,CAAA,OAAAwC,uBAAA;IAAAxC,CAAA,OAAAwD,GAAA;EAAA;IAAAA,GAAA,GAAAxD,CAAA;EAAA;EAVF,MAAA6D,gBAAA,GAAyBL,GAWgB;EAAA,IAAAM,GAAA;EAAA,IAAA9D,CAAA,SAAAI,cAAA,IAAAJ,CAAA,SAAAO,eAAA,IAAAP,CAAA,SAAAyB,aAAA,IAAAzB,CAAA,SAAAQ,aAAA,IAAAR,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAA4B,cAAA,IAAA5B,CAAA,SAAAK,mBAAA,IAAAL,CAAA,SAAAoB,MAAA,IAAApB,CAAA,SAAAS,eAAA,IAAAT,CAAA,SAAAsB,UAAA;IAOzBwC,GAAA,GAAAA,CAAA;MACd,MAAAC,IAAA,SAAAA,CAAA;QACE,MAAAC,oBAAA,GAA6BzC,cAAA,CAAA0C,OAAA,KAA2B7D,cAAA;QAAA,IAEpD4D,oBAAA,KAAyBzD,eAAA;UAC3B,MAAA2D,kBAAA,SAAiCzC,aAAA,CAE9BjB,aAAA;UACHe,cAAA,CAAA0C,OAAA,GAAyB7D,cAAA;UAAA,IAErB8D,kBAAA,EAAAnC,OAAA;YACFE,eAAA,CACExC,gBAAA;cAAAQ,UAAA;cAAA6B,iBAAA,EAEqBoC,kBAAA,EAAAnC,OAAA;cAAAA,OAAA,EACVH,cAAA;cAAAvB,mBAAA;cAAAe,MAAA;cAAAX,eAAA;cAAAa;YAAA,CAKX;UAAA;QAAA;MAAA;MAMHyC,IAAA;IAAA;IACP/D,CAAA,OAAAI,cAAA;IAAAJ,CAAA,OAAAO,eAAA;IAAAP,CAAA,OAAAyB,aAAA;IAAAzB,CAAA,OAAAQ,aAAA;IAAAR,CAAA,OAAAC,UAAA;IAAAD,CAAA,OAAA4B,cAAA;IAAA5B,CAAA,OAAAK,mBAAA;IAAAL,CAAA,OAAAoB,MAAA;IAAApB,CAAA,OAAAS,eAAA;IAAAT,CAAA,OAAAsB,UAAA;IAAAtB,CAAA,OAAA8D,GAAA;EAAA;IAAAA,GAAA,GAAA9D,CAAA;EAAA;EAAA,IAAAmE,GAAA;EAAA,IAAAnE,CAAA,SAAAQ,aAAA,IAAAR,CAAA,SAAAyB,aAAA,IAAAzB,CAAA,SAAAI,cAAA,IAAAJ,CAAA,SAAAoB,MAAA,IAAApB,CAAA,SAAAqB,cAAA,IAAArB,CAAA,SAAAsB,UAAA,IAAAtB,CAAA,SAAAO,eAAA,IAAAP,CAAA,SAAA4B,cAAA,IAAA5B,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAAK,mBAAA,IAAAL,CAAA,SAAAS,eAAA;IAAG0D,GAAA,IACD3D,aAAA,EACAiB,aAAA,EACArB,cAAA,EACAgB,MAAA,EACAC,cAAA,EACAC,UAAA,EACAf,eAAA,EACAqB,cAAA,EACA3B,UAAA,EACAI,mBAAA,EACAI,eAAA;IACDT,CAAA,OAAAQ,aAAA;IAAAR,CAAA,OAAAyB,aAAA;IAAAzB,CAAA,OAAAI,cAAA;IAAAJ,CAAA,OAAAoB,MAAA;IAAApB,CAAA,OAAAqB,cAAA;IAAArB,CAAA,OAAAsB,UAAA;IAAAtB,CAAA,OAAAO,eAAA;IAAAP,CAAA,OAAA4B,cAAA;IAAA5B,CAAA,OAAAC,UAAA;IAAAD,CAAA,OAAAK,mBAAA;IAAAL,CAAA,OAAAS,eAAA;IAAAT,CAAA,OAAAmE,GAAA;EAAA;IAAAA,GAAA,GAAAnE,CAAA;EAAA;EAvCDd,KAAA,CAAAkF,SAAA,CAAgBN,GA2BhB,EAAGK,GAYF;EAAA,IAAAE,GAAA;EAAA,IAAArE,CAAA,SAAAE,SAAA,IAAAF,CAAA,SAAAgC,YAAA,IAAAhC,CAAA,SAAAgD,UAAA,IAAAhD,CAAA,SAAA6D,gBAAA,IAAA7D,CAAA,SAAAuD,YAAA,IAAAvD,CAAA,SAAAG,QAAA;IAGCkE,GAAA,GAAAC,IAAA,CAAA1E,kBAAA,CAAA2E,QAAA;MAAAC,KAAA;QAAAtE,SAAA;QAAA6B,OAAA,EAGaC,YAAA;QAAAgB,UAAA;QAAAa,gBAAA;QAAAN;MAAA;MAAApD;IAAA,C;;;;;;;;;;;SAHbkE,G;CAYJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","useConfig","usePreferences","buildColumnState","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","t0","$","cellProps","children","collectionSlug","enableRowSelections","t1","listPreferences","preferenceKey","undefined","config","t2","collections","t3","t4","collectionConfig","slug","find","collectionConfig_0","admin","fields","defaultColumns","useAsTitle","prevCollection","useRef","getPreference","setPreference","t5","initialColumns","t6","columnPreferences","columns","tableColumns","setTableColumns","t7","newColumns","map","accessor","active","updateColumnPreferences","t8","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","moveColumn","t9","column","toggledColumns","col","field","name","toggleColumn","t10","activeColumnAccessors","activeColumns","col_0","includes","setActiveColumns","t11","sync","collectionHasChanged","current","currentPreferences","t12","useEffect","t13","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n columns: Column[]\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly cellProps?: Partial<CellComponentProps>[]\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly enableRowSelections?: boolean\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const collectionConfig = collections.find(\n (collectionConfig) => collectionConfig.slug === collectionSlug,\n )\n\n const {\n admin: { defaultColumns, useAsTitle },\n fields,\n } = collectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fields), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, setTableColumns] = React.useState(() =>\n buildColumnState({\n cellProps,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n useAsTitle,\n }),\n )\n\n const updateColumnPreferences = React.useCallback(\n (newColumns: Column[]) => {\n const columns = newColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n },\n [preferenceKey, setPreference],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n updateColumnPreferences(withMovedColumn)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n const toggledColumns = tableColumns.map((col) => {\n return {\n ...col,\n active:\n col?.cellProps?.field &&\n 'name' in col.cellProps.field &&\n col?.cellProps?.field?.name === column\n ? !col.active\n : col.active,\n }\n })\n\n setTableColumns(toggledColumns)\n updateColumnPreferences(toggledColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const setActiveColumns = React.useCallback(\n (activeColumnAccessors) => {\n const activeColumns = tableColumns.map((col) => {\n return {\n ...col,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n\n updateColumnPreferences(activeColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n setTableColumns(\n buildColumnState({\n cellProps,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections: true,\n fields,\n useAsTitle,\n }),\n )\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n cellProps,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n moveColumn,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tooltip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tooltip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkFnC,CAAA"}
|
|
@@ -6,14 +6,13 @@ import React, { useEffect } from 'react';
|
|
|
6
6
|
import { useIntersect } from '../../hooks/useIntersect.js';
|
|
7
7
|
import './index.scss';
|
|
8
8
|
export const Tooltip = props => {
|
|
9
|
-
const $ = _c(
|
|
9
|
+
const $ = _c(23);
|
|
10
10
|
const {
|
|
11
11
|
alignCaret: t0,
|
|
12
12
|
boundingRef,
|
|
13
13
|
children,
|
|
14
14
|
className,
|
|
15
15
|
delay: t1,
|
|
16
|
-
position: positionFromProps,
|
|
17
16
|
show: t2,
|
|
18
17
|
staticPositioning: t3
|
|
19
18
|
} = props;
|
|
@@ -86,20 +85,20 @@ export const Tooltip = props => {
|
|
|
86
85
|
}
|
|
87
86
|
useEffect(t8, t9);
|
|
88
87
|
let t10;
|
|
89
|
-
if ($[10] !== staticPositioning || $[11] !== alignCaret || $[12] !== className || $[13] !== children || $[14] !== ref || $[15] !== show || $[16] !==
|
|
88
|
+
if ($[10] !== staticPositioning || $[11] !== alignCaret || $[12] !== className || $[13] !== children || $[14] !== ref || $[15] !== show || $[16] !== position) {
|
|
90
89
|
const t11 = show && "tooltip--show";
|
|
91
90
|
const t12 = `tooltip--caret-${alignCaret}`;
|
|
92
|
-
const t13 = `tooltip--position-${
|
|
91
|
+
const t13 = `tooltip--position-${position}`;
|
|
93
92
|
let t14;
|
|
94
|
-
if ($[
|
|
93
|
+
if ($[18] !== className || $[19] !== t11 || $[20] !== t12 || $[21] !== t13) {
|
|
95
94
|
t14 = ["tooltip", className, t11, t12, t13].filter(Boolean);
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
95
|
+
$[18] = className;
|
|
96
|
+
$[19] = t11;
|
|
97
|
+
$[20] = t12;
|
|
98
|
+
$[21] = t13;
|
|
99
|
+
$[22] = t14;
|
|
101
100
|
} else {
|
|
102
|
-
t14 = $[
|
|
101
|
+
t14 = $[22];
|
|
103
102
|
}
|
|
104
103
|
t10 = _jsxs(React.Fragment, {
|
|
105
104
|
children: [!staticPositioning && _jsx("aside", {
|
|
@@ -128,11 +127,10 @@ export const Tooltip = props => {
|
|
|
128
127
|
$[13] = children;
|
|
129
128
|
$[14] = ref;
|
|
130
129
|
$[15] = show;
|
|
131
|
-
$[16] =
|
|
132
|
-
$[17] =
|
|
133
|
-
$[18] = t10;
|
|
130
|
+
$[16] = position;
|
|
131
|
+
$[17] = t10;
|
|
134
132
|
} else {
|
|
135
|
-
t10 = $[
|
|
133
|
+
t10 = $[17];
|
|
136
134
|
}
|
|
137
135
|
return t10;
|
|
138
136
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","position","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerId","clearTimeout","t8","t9","isIntersecting","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerId: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerId = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAeP,OAAO,MAAMC,OAAA,GAA2BC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EACtC;IAAAO,UAAA,EAAAC,EAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,KAAA,EAAAC,EAAA;IAAAC,IAAA,EAAAC,EAAA;IAAAC,iBAAA,EAAAC;EAAA,IAQIZ,KAAA;EAPF,MAAAE,UAAA,GAAAC,EAAqB,KAAAU,SAAA,GAAR,QAAQ,GAArBV,EAAqB;EAIrB,MAAAI,KAAA,GAAAC,EAAW,KAAAK,SAAA,SAAXL,EAAW;EACL,MAAAM,aAAA,GAAAJ,EAAoB,KAAAG,SAAA,UAApBH,EAAoB;EAC1B,MAAAC,iBAAA,GAAAC,EAAyB,KAAAC,SAAA,WAAzBD,EAAyB;EAG3B,OAAAH,IAAA,EAAAM,OAAA,IAAwBnB,KAAA,CAAAoB,QAAA,CAAeF,aAAA;EACvC,OAAAG,QAAA,EAAAC,WAAA,IAAgCtB,KAAA,CAAAoB,QAAA,CAAiC;EAEjE,MAAAG,iBAAA,GAAAC,KAAA;EAIU,MAAAC,EAAA,GAAAjB,WAAA,EAAAkB,OAAA,QAAwB;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAAoB,EAAA;IADhCE,EAAA;MAAAC,IAAA,EACQH,EAAwB;MAAAI,UAAA,EAClB;MAAAC,SAAA;IAAA;IAEdzB,CAAA,MAAAoB,EAAA;IAAApB,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EALF,OAAA0B,GAAA,EAAAC,iBAAA,IAAiC9B,YAAA,CAC/ByB,EAIA,EACAZ,iBAAA;EAAA,IAAAkB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA7B,CAAA,QAAAM,KAAA,IAAAN,CAAA,QAAAa,aAAA;IAGQe,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,OAAA;MAAA,IAGAxB,KAAA,IAASO,aAAA;QACXiB,OAAA,CAAAA,CAAA,CAAUA,aAAA,CAAAA,EAAA,CAAAA;UACRhB,OAAA,CAAQD,aAAA;QAAA,GACPP,KAAA;MAFH;QAIAQ,OAAA,CAAQD,aAAA;MAAA;MAAA;QAAA,IAIJiB,OAAA;UACFC,YAAA,CAAaD,OAAA;QAAA;MAAA;IAAA;IAGhBD,EAAA,IAAChB,aAAA,EAAeP,KAAA;IAAMN,CAAA,MAAAM,KAAA;IAAAN,CAAA,MAAAa,aAAA;IAAAb,CAAA,MAAA4B,EAAA;IAAA5B,CAAA,MAAA6B,EAAA;EAAA;IAAAD,EAAA,GAAA5B,CAAA;IAAA6B,EAAA,GAAA7B,CAAA;EAAA;EAjBzBJ,SAAA,CAAUgC,EAiBV,EAAGC,EAAsB;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAjC,CAAA,QAAAU,iBAAA,IAAAV,CAAA,QAAA2B,iBAAA;IAEfK,EAAA,GAAAA,CAAA;MAAA,IACJtB,iBAAA;QAAA;MAAA;MAGJO,WAAA,CAAYU,iBAAA,EAAAO,cAAA,GAAoC,QAAQ;IAAA;IACvDD,EAAA,IAACN,iBAAA,EAAmBjB,iBAAA;IAAkBV,CAAA,MAAAU,iBAAA;IAAAV,CAAA,MAAA2B,iBAAA;IAAA3B,CAAA,MAAAgC,EAAA;IAAAhC,CAAA,MAAAiC,EAAA;EAAA;IAAAD,EAAA,GAAAhC,CAAA;IAAAiC,EAAA,GAAAjC,CAAA;EAAA;EALzCJ,SAAA,CAAUoC,EAKV,EAAGC,EAAsC;EAAA,IAAAE,GAAA;EAAA,IAAAnC,CAAA,SAAAU,iBAAA,IAAAV,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAI,QAAA,IAAAJ,CAAA,SAAA0B,GAAA,IAAA1B,CAAA,SAAAQ,IAAA,IAAAR,CAAA,SAAAgB,QAAA;IAqBjC,MAAAoB,GAAA,GAAA5B,IAAA,IAAQ;IACR,MAAA6B,GAAA,qBAAkBpC,UAAA,EAAY;IAC9B,MAAAqC,GAAA,wBAAqBtB,QAAA,EAAU;IAAA,IAAAuB,GAAA;IAAA,IAAAvC,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAoC,GAAA,IAAApC,CAAA,SAAAqC,GAAA,IAAArC,CAAA,SAAAsC,GAAA;MALtBC,GAAA,IACT,WACAlC,SAAA,EACA+B,GAAQ,EACRC,GAA8B,EAC9BC,GAA+B,EAAAE,MAAA,CAAAC,OAEvB;MAAAzC,CAAA,OAAAK,SAAA;MAAAL,CAAA,OAAAoC,GAAA;MAAApC,CAAA,OAAAqC,GAAA;MAAArC,CAAA,OAAAsC,GAAA;MAAAtC,CAAA,OAAAuC,GAAA;IAAA;MAAAA,GAAA,GAAAvC,CAAA;IAAA;IArBdmC,GAAA,GAAAO,KAAA,CAAA/C,KAAA,CAAAgD,QAAA;MAAAvC,QAAA,GACG,CAACM,iBAAA,IACAkC,IAAA,CAAC;QAAA,eACa;QAAAvC,SAAA,EACD,CAAC,WAAWA,SAAA,EAAW,kBAAkBJ,UAAA,EAAY,EAAE,yBAAAuC,MAAA,CAAAC,OACxD,EAAAI,IAAA,CACF;QAAAnB,GAAA;QAAAoB,KAAA;UAAAC,OAAA,EAEU;QAAA;QAAA3C,QAAA,EAElBwC,IAAA,CAAC;UAAAvC,SAAA,EAAc;UAAAD;QAAA,C;UAGnBwC,IAAA,CAAC;QAAAvC,SAAA,EACYkC,GAOD,CAAAM,IAAA,CACF;QAAAG,KAAA,EACD9B,iBAAA,CAAkBd,QAAA;QAAAA,QAAA,EAEzBwC,IAAA,CAAC;UAAAvC,SAAA,EAAc;UAAAD;QAAA,C;;;;;;;;;;;;;;SAzBnB+B,G;CA6BJ;AAlFwC,SAAAhB,MAAA8B,OAAA;EAAA,OAcE,OAAOA,OAAA,KAAY,WAAWA,OAAA,GAAU;AAAA","ignoreList":[]}
|