@payloadcms/ui 3.26.0-canary.bbb3083 → 3.27.0-canary.ecc3f49
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/AnimateHeight/index.scss +7 -5
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +1 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +37 -21
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +1 -1
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.scss +2 -3
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -3
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +1 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +4 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +1 -1
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +1 -1
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +1 -1
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/ListControls/ActiveListPreset/index.d.ts +8 -0
- package/dist/elements/ListControls/ActiveListPreset/index.d.ts.map +1 -0
- package/dist/elements/ListControls/ActiveListPreset/index.js +102 -0
- package/dist/elements/ListControls/ActiveListPreset/index.js.map +1 -0
- package/dist/elements/ListControls/ActiveListPreset/index.scss +21 -0
- package/dist/elements/ListControls/index.d.ts +1 -24
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +110 -86
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +5 -9
- package/dist/elements/ListControls/types.d.ts +27 -0
- package/dist/elements/ListControls/types.d.ts.map +1 -0
- package/dist/elements/ListControls/types.js +2 -0
- package/dist/elements/ListControls/types.js.map +1 -0
- package/dist/elements/ListControls/useListPresets.d.ts +15 -0
- package/dist/elements/ListControls/useListPresets.d.ts.map +1 -0
- package/dist/elements/ListControls/useListPresets.js +251 -0
- package/dist/elements/ListControls/useListPresets.js.map +1 -0
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +4 -2
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +3 -2
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/ListPresets/cells/AccessCell/index.d.ts +4 -0
- package/dist/elements/ListPresets/cells/AccessCell/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/cells/AccessCell/index.js +25 -0
- package/dist/elements/ListPresets/cells/AccessCell/index.js.map +1 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts +4 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.js +11 -0
- package/dist/elements/ListPresets/cells/ColumnsCell/index.js.map +1 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.d.ts +4 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.js +23 -0
- package/dist/elements/ListPresets/cells/WhereCell/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts +3 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.js +19 -0
- package/dist/elements/ListPresets/fields/AccessLabel/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts +4 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.js +64 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/ColumnsField/index.scss +28 -0
- package/dist/elements/ListPresets/fields/WhereField/index.d.ts +4 -0
- package/dist/elements/ListPresets/fields/WhereField/index.d.ts.map +1 -0
- package/dist/elements/ListPresets/fields/WhereField/index.js +118 -0
- package/dist/elements/ListPresets/fields/WhereField/index.js.map +1 -0
- package/dist/elements/ListPresets/fields/WhereField/index.scss +23 -0
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +36 -24
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Logout/index.d.ts.map +1 -1
- package/dist/elements/Logout/index.js +1 -1
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +8 -1
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Pill/index.d.ts +1 -1
- package/dist/elements/Pill/index.d.ts.map +1 -1
- package/dist/elements/Pill/index.js +2 -0
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +29 -6
- package/dist/elements/PublishButton/index.js +1 -0
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +6 -14
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +1 -1
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +1 -2
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -5
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +7 -7
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +22 -32
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +6 -2
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/exports/client/index.d.ts +8 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +11 -11
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +8 -3
- 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/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +12 -4
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +15 -5
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
- package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +13 -11
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +3 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/types.d.ts +4 -0
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/graphics/Account/index.d.ts.map +1 -1
- package/dist/graphics/Account/index.js +1 -1
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts +1 -0
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +2 -0
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Dots/index.d.ts +2 -0
- package/dist/icons/Dots/index.d.ts.map +1 -1
- package/dist/icons/Dots/index.js +5 -2
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/Dots/index.scss +14 -0
- package/dist/icons/People/index.d.ts +6 -0
- package/dist/icons/People/index.d.ts.map +1 -0
- package/dist/icons/People/index.js +18 -0
- package/dist/icons/People/index.js.map +1 -0
- package/dist/icons/People/index.scss +11 -0
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +1 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +1 -0
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ListQuery/context.d.ts +6 -0
- package/dist/providers/ListQuery/context.d.ts.map +1 -0
- package/dist/providers/ListQuery/context.js +6 -0
- package/dist/providers/ListQuery/context.js.map +1 -0
- package/dist/providers/ListQuery/index.d.ts +2 -27
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +72 -46
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +36 -0
- package/dist/providers/ListQuery/types.d.ts.map +1 -0
- package/dist/providers/ListQuery/types.js +2 -0
- package/dist/providers/ListQuery/types.js.map +1 -0
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.scss +19 -17
- package/dist/providers/ServerFunctions/index.d.ts +1 -0
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
- package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
- package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
- package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
- package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
- package/dist/providers/TableColumns/context.d.ts +6 -0
- package/dist/providers/TableColumns/context.d.ts.map +1 -0
- package/dist/providers/TableColumns/context.js +6 -0
- package/dist/providers/TableColumns/context.js.map +1 -0
- package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/providers/TableColumns/filterFields.js.map +1 -0
- package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/providers/TableColumns/index.d.ts +5 -0
- package/dist/providers/TableColumns/index.d.ts.map +1 -0
- package/dist/providers/TableColumns/index.js +105 -0
- package/dist/providers/TableColumns/index.js.map +1 -0
- package/dist/{elements/TableColumns/index.d.ts → providers/TableColumns/types.d.ts} +32 -11
- package/dist/providers/TableColumns/types.d.ts.map +1 -0
- package/dist/providers/TableColumns/types.js +2 -0
- package/dist/providers/TableColumns/types.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +6 -2
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts +1 -7
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatAdminURL.js +1 -18
- package/dist/utilities/formatAdminURL.js.map +1 -1
- package/dist/utilities/handleBackToDashboard.js +1 -1
- package/dist/utilities/handleBackToDashboard.js.map +1 -1
- package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +4 -2
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/handleGoBack.js +1 -1
- package/dist/utilities/handleGoBack.js.map +1 -1
- package/dist/utilities/renderTable.js +4 -4
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/upsertPreferences.d.ts +7 -2
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +11 -5
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +4 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +5 -8
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
- package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
- package/dist/elements/TableColumns/filterFields.js.map +0 -1
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
- package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
- package/dist/elements/TableColumns/index.d.ts.map +0 -1
- package/dist/elements/TableColumns/index.js +0 -206
- package/dist/elements/TableColumns/index.js.map +0 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
- package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
- package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
- package/dist/utilities/mergeListSearchAndWhere.js +0 -47
- package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
- /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
- /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
- /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
-
import React, { createContext, useCallback, useContext, useEffect } from 'react';
|
|
5
|
-
import { useConfig } from '../../providers/Config/index.js';
|
|
6
|
-
import { usePreferences } from '../../providers/Preferences/index.js';
|
|
7
|
-
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
8
|
-
import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
|
|
9
|
-
export const TableColumnContext = /*#__PURE__*/createContext({});
|
|
10
|
-
export const useTableColumns = () => {
|
|
11
|
-
return useContext(TableColumnContext);
|
|
12
|
-
};
|
|
13
|
-
// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server
|
|
14
|
-
const sanitizeColumns = columns => {
|
|
15
|
-
return columns.map(({
|
|
16
|
-
accessor,
|
|
17
|
-
active
|
|
18
|
-
}) => ({
|
|
19
|
-
accessor,
|
|
20
|
-
active
|
|
21
|
-
}));
|
|
22
|
-
};
|
|
23
|
-
export const TableColumnsProvider = ({
|
|
24
|
-
children,
|
|
25
|
-
collectionSlug,
|
|
26
|
-
columnState,
|
|
27
|
-
docs,
|
|
28
|
-
enableRowSelections,
|
|
29
|
-
LinkedCellOverride,
|
|
30
|
-
listPreferences,
|
|
31
|
-
preferenceKey,
|
|
32
|
-
renderRowTypes,
|
|
33
|
-
setTable,
|
|
34
|
-
sortColumnProps,
|
|
35
|
-
tableAppearance
|
|
36
|
-
}) => {
|
|
37
|
-
const {
|
|
38
|
-
getEntityConfig
|
|
39
|
-
} = useConfig();
|
|
40
|
-
const {
|
|
41
|
-
getTableState
|
|
42
|
-
} = useServerFunctions();
|
|
43
|
-
const {
|
|
44
|
-
admin: {
|
|
45
|
-
defaultColumns,
|
|
46
|
-
useAsTitle
|
|
47
|
-
} = {},
|
|
48
|
-
fields
|
|
49
|
-
} = getEntityConfig({
|
|
50
|
-
collectionSlug
|
|
51
|
-
});
|
|
52
|
-
const prevCollection = React.useRef(Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug);
|
|
53
|
-
const {
|
|
54
|
-
getPreference
|
|
55
|
-
} = usePreferences();
|
|
56
|
-
const [tableColumns, setTableColumns] = React.useState(columnState);
|
|
57
|
-
const abortTableStateRef = React.useRef(null);
|
|
58
|
-
const abortToggleColumnRef = React.useRef(null);
|
|
59
|
-
const moveColumn = useCallback(async args => {
|
|
60
|
-
const controller = handleAbortRef(abortTableStateRef);
|
|
61
|
-
const {
|
|
62
|
-
fromIndex,
|
|
63
|
-
toIndex
|
|
64
|
-
} = args;
|
|
65
|
-
const withMovedColumn = [...tableColumns];
|
|
66
|
-
const [columnToMove] = withMovedColumn.splice(fromIndex, 1);
|
|
67
|
-
withMovedColumn.splice(toIndex, 0, columnToMove);
|
|
68
|
-
setTableColumns(withMovedColumn);
|
|
69
|
-
const result = await getTableState({
|
|
70
|
-
collectionSlug,
|
|
71
|
-
columns: sanitizeColumns(withMovedColumn),
|
|
72
|
-
docs,
|
|
73
|
-
enableRowSelections,
|
|
74
|
-
renderRowTypes,
|
|
75
|
-
signal: controller.signal,
|
|
76
|
-
tableAppearance
|
|
77
|
-
});
|
|
78
|
-
if (result) {
|
|
79
|
-
setTableColumns(result.state);
|
|
80
|
-
setTable(result.Table);
|
|
81
|
-
}
|
|
82
|
-
abortTableStateRef.current = null;
|
|
83
|
-
}, [tableColumns, collectionSlug, docs, getTableState, setTable, enableRowSelections, renderRowTypes, tableAppearance]);
|
|
84
|
-
const toggleColumn = useCallback(async column => {
|
|
85
|
-
const controller_0 = handleAbortRef(abortToggleColumnRef);
|
|
86
|
-
const {
|
|
87
|
-
newColumnState,
|
|
88
|
-
toggledColumns
|
|
89
|
-
} = tableColumns.reduce((acc, col) => {
|
|
90
|
-
if (col.accessor === column) {
|
|
91
|
-
acc.newColumnState.push({
|
|
92
|
-
...col,
|
|
93
|
-
accessor: col.accessor,
|
|
94
|
-
active: !col.active
|
|
95
|
-
});
|
|
96
|
-
acc.toggledColumns.push({
|
|
97
|
-
accessor: col.accessor,
|
|
98
|
-
active: !col.active
|
|
99
|
-
});
|
|
100
|
-
} else {
|
|
101
|
-
acc.newColumnState.push(col);
|
|
102
|
-
acc.toggledColumns.push({
|
|
103
|
-
accessor: col.accessor,
|
|
104
|
-
active: col.active
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
return acc;
|
|
108
|
-
}, {
|
|
109
|
-
newColumnState: [],
|
|
110
|
-
toggledColumns: []
|
|
111
|
-
});
|
|
112
|
-
setTableColumns(newColumnState);
|
|
113
|
-
const result_0 = await getTableState({
|
|
114
|
-
collectionSlug,
|
|
115
|
-
columns: toggledColumns,
|
|
116
|
-
docs,
|
|
117
|
-
enableRowSelections,
|
|
118
|
-
renderRowTypes,
|
|
119
|
-
signal: controller_0.signal,
|
|
120
|
-
tableAppearance
|
|
121
|
-
});
|
|
122
|
-
if (result_0) {
|
|
123
|
-
setTableColumns(result_0.state);
|
|
124
|
-
setTable(result_0.Table);
|
|
125
|
-
}
|
|
126
|
-
abortToggleColumnRef.current = null;
|
|
127
|
-
}, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
|
|
128
|
-
const setActiveColumns = React.useCallback(async activeColumnAccessors => {
|
|
129
|
-
const activeColumns = tableColumns.map(col_0 => {
|
|
130
|
-
return {
|
|
131
|
-
accessor: col_0.accessor,
|
|
132
|
-
active: activeColumnAccessors.includes(col_0.accessor)
|
|
133
|
-
};
|
|
134
|
-
}).sort((first, second) => {
|
|
135
|
-
const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
|
|
136
|
-
const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
|
|
137
|
-
if (indexOfFirst === -1 || indexOfSecond === -1) {
|
|
138
|
-
return 0;
|
|
139
|
-
}
|
|
140
|
-
return indexOfFirst > indexOfSecond ? 1 : -1;
|
|
141
|
-
});
|
|
142
|
-
const {
|
|
143
|
-
state: columnState_0,
|
|
144
|
-
Table
|
|
145
|
-
} = await getTableState({
|
|
146
|
-
collectionSlug,
|
|
147
|
-
columns: activeColumns,
|
|
148
|
-
docs,
|
|
149
|
-
enableRowSelections,
|
|
150
|
-
renderRowTypes,
|
|
151
|
-
tableAppearance
|
|
152
|
-
});
|
|
153
|
-
setTableColumns(columnState_0);
|
|
154
|
-
setTable(Table);
|
|
155
|
-
}, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
|
|
156
|
-
const resetColumnsState = React.useCallback(async () => {
|
|
157
|
-
await setActiveColumns(defaultColumns);
|
|
158
|
-
}, [defaultColumns, setActiveColumns]);
|
|
159
|
-
// //////////////////////////////////////////////
|
|
160
|
-
// Get preferences on collection change (drawers)
|
|
161
|
-
// //////////////////////////////////////////////
|
|
162
|
-
React.useEffect(() => {
|
|
163
|
-
const sync = async () => {
|
|
164
|
-
const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug;
|
|
165
|
-
const collectionHasChanged = prevCollection.current !== defaultCollection;
|
|
166
|
-
if (collectionHasChanged || !listPreferences) {
|
|
167
|
-
const currentPreferences = await getPreference(preferenceKey);
|
|
168
|
-
prevCollection.current = defaultCollection;
|
|
169
|
-
if (currentPreferences?.columns) {
|
|
170
|
-
// setTableColumns()
|
|
171
|
-
// buildColumnState({
|
|
172
|
-
// beforeRows,
|
|
173
|
-
// columnPreferences: currentPreferences?.columns,
|
|
174
|
-
// columns: initialColumns,
|
|
175
|
-
// enableRowSelections,
|
|
176
|
-
// fields,
|
|
177
|
-
// sortColumnProps,
|
|
178
|
-
// useAsTitle,
|
|
179
|
-
// }),
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
void sync();
|
|
184
|
-
}, [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, enableRowSelections, sortColumnProps]);
|
|
185
|
-
useEffect(() => {
|
|
186
|
-
setTableColumns(columnState);
|
|
187
|
-
}, [columnState]);
|
|
188
|
-
useEffect(() => {
|
|
189
|
-
const abortTableState = abortTableStateRef.current;
|
|
190
|
-
return () => {
|
|
191
|
-
abortAndIgnore(abortTableState);
|
|
192
|
-
};
|
|
193
|
-
}, []);
|
|
194
|
-
return /*#__PURE__*/_jsx(TableColumnContext.Provider, {
|
|
195
|
-
value: {
|
|
196
|
-
columns: tableColumns,
|
|
197
|
-
LinkedCellOverride,
|
|
198
|
-
moveColumn,
|
|
199
|
-
resetColumnsState,
|
|
200
|
-
setActiveColumns,
|
|
201
|
-
toggleColumn
|
|
202
|
-
},
|
|
203
|
-
children: children
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useConfig","usePreferences","useServerFunctions","abortAndIgnore","handleAbortRef","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","Array","isArray","getPreference","tableColumns","setTableColumns","useState","abortTableStateRef","abortToggleColumnRef","moveColumn","args","controller","fromIndex","toIndex","withMovedColumn","columnToMove","splice","result","signal","state","Table","current","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","sync","defaultCollection","collectionHasChanged","currentPreferences","abortTableState","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { Column, ListPreferences, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect } from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string | string[]\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n })\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(\n Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug,\n )\n const { getPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const abortTableStateRef = React.useRef<AbortController>(null)\n const abortToggleColumnRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const controller = handleAbortRef(abortTableStateRef)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortTableStateRef.current = null\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const controller = handleAbortRef(abortToggleColumnRef)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortToggleColumnRef.current = null\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug\n const collectionHasChanged = prevCollection.current !== defaultCollection\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ListPreferences['columns']\n }>(preferenceKey)\n\n prevCollection.current = defaultCollection\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 void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n useEffect(() => {\n setTableColumns(columnState)\n }, [columnState])\n\n useEffect(() => {\n const abortTableState = abortTableStateRef.current\n\n return () => {\n abortAndIgnore(abortTableState)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Where } from 'payload';
|
|
2
|
-
/**
|
|
3
|
-
* Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.
|
|
4
|
-
* However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,
|
|
5
|
-
* even though it is a valid Where query. This needs to be transformed here.
|
|
6
|
-
*/
|
|
7
|
-
export declare const transformWhereQuery: (whereQuery: any) => Where;
|
|
8
|
-
//# sourceMappingURL=transformWhereQuery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uBAAiB,KA2ChD,CAAA"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.
|
|
5
|
-
* However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,
|
|
6
|
-
* even though it is a valid Where query. This needs to be transformed here.
|
|
7
|
-
*/
|
|
8
|
-
export const transformWhereQuery = whereQuery => {
|
|
9
|
-
if (!whereQuery) {
|
|
10
|
-
return {};
|
|
11
|
-
}
|
|
12
|
-
// Check if 'whereQuery' has 'or' field but no 'and'. This is the case for "correct" queries
|
|
13
|
-
if (whereQuery.or && !whereQuery.and) {
|
|
14
|
-
return {
|
|
15
|
-
or: whereQuery.or.map(query => {
|
|
16
|
-
// ...but if the or query does not have an and, we need to add it
|
|
17
|
-
if (!query.and) {
|
|
18
|
-
return {
|
|
19
|
-
and: [query]
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
return query;
|
|
23
|
-
})
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
// Check if 'whereQuery' has 'and' field but no 'or'.
|
|
27
|
-
if (whereQuery.and && !whereQuery.or) {
|
|
28
|
-
return {
|
|
29
|
-
or: [{
|
|
30
|
-
and: whereQuery.and
|
|
31
|
-
}]
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
// Check if 'whereQuery' has neither 'or' nor 'and'.
|
|
35
|
-
if (!whereQuery.or && !whereQuery.and) {
|
|
36
|
-
return {
|
|
37
|
-
or: [{
|
|
38
|
-
and: [whereQuery]
|
|
39
|
-
}]
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
// If 'whereQuery' has 'or' and 'and', just return it as it is.
|
|
43
|
-
return whereQuery;
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=transformWhereQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformWhereQuery.js","names":["transformWhereQuery","whereQuery","or","and","map","query"],"sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"sourcesContent":["'use client'\nimport type { Where } from 'payload'\n\n/**\n * Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.\n * However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,\n * even though it is a valid Where query. This needs to be transformed here.\n */\nexport const transformWhereQuery = (whereQuery): Where => {\n if (!whereQuery) {\n return {}\n }\n // Check if 'whereQuery' has 'or' field but no 'and'. This is the case for \"correct\" queries\n if (whereQuery.or && !whereQuery.and) {\n return {\n or: whereQuery.or.map((query) => {\n // ...but if the or query does not have an and, we need to add it\n if (!query.and) {\n return {\n and: [query],\n }\n }\n return query\n }),\n }\n }\n\n // Check if 'whereQuery' has 'and' field but no 'or'.\n if (whereQuery.and && !whereQuery.or) {\n return {\n or: [\n {\n and: whereQuery.and,\n },\n ],\n }\n }\n\n // Check if 'whereQuery' has neither 'or' nor 'and'.\n if (!whereQuery.or && !whereQuery.and) {\n return {\n or: [\n {\n and: [whereQuery], // top-level siblings are considered 'and'\n },\n ],\n }\n }\n\n // If 'whereQuery' has 'or' and 'and', just return it as it is.\n return whereQuery\n}\n"],"mappings":"AAAA;;AAGA;;;;;AAKA,OAAO,MAAMA,mBAAA,GAAuBC,UAAA;EAClC,IAAI,CAACA,UAAA,EAAY;IACf,OAAO,CAAC;EACV;EACA;EACA,IAAIA,UAAA,CAAWC,EAAE,IAAI,CAACD,UAAA,CAAWE,GAAG,EAAE;IACpC,OAAO;MACLD,EAAA,EAAID,UAAA,CAAWC,EAAE,CAACE,GAAG,CAAEC,KAAA;QACrB;QACA,IAAI,CAACA,KAAA,CAAMF,GAAG,EAAE;UACd,OAAO;YACLA,GAAA,EAAK,CAACE,KAAA;UACR;QACF;QACA,OAAOA,KAAA;MACT;IACF;EACF;EAEA;EACA,IAAIJ,UAAA,CAAWE,GAAG,IAAI,CAACF,UAAA,CAAWC,EAAE,EAAE;IACpC,OAAO;MACLA,EAAA,EAAI,CACF;QACEC,GAAA,EAAKF,UAAA,CAAWE;MAClB;IAEJ;EACF;EAEA;EACA,IAAI,CAACF,UAAA,CAAWC,EAAE,IAAI,CAACD,UAAA,CAAWE,GAAG,EAAE;IACrC,OAAO;MACLD,EAAA,EAAI,CACF;QACEC,GAAA,EAAK,CAACF,UAAA;MACR;IAEJ;EACF;EAEA;EACA,OAAOA,UAAA;AACT","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validateWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9C,QAAA,MAAM,kBAAkB,uBAAiB,UAAU,IAAI,KAwCtD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { validOperatorSet } from 'payload/shared';
|
|
4
|
-
const validateWhereQuery = whereQuery => {
|
|
5
|
-
if (whereQuery?.or?.length > 0 && whereQuery?.or?.[0]?.and && whereQuery?.or?.[0]?.and?.length > 0) {
|
|
6
|
-
// At this point we know that the whereQuery has 'or' and 'and' fields,
|
|
7
|
-
// now let's check the structure and content of these fields.
|
|
8
|
-
const isValid = whereQuery.or.every(orQuery => {
|
|
9
|
-
if (orQuery.and && Array.isArray(orQuery.and)) {
|
|
10
|
-
return orQuery.and.every(andQuery => {
|
|
11
|
-
if (typeof andQuery !== 'object') {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
const andKeys = Object.keys(andQuery);
|
|
15
|
-
// If there are no keys, it's not a valid WhereField.
|
|
16
|
-
if (andKeys.length === 0) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
for (const key of andKeys) {
|
|
20
|
-
const operator = Object.keys(andQuery[key])[0];
|
|
21
|
-
// Check if the key is a valid Operator.
|
|
22
|
-
if (!operator || !validOperatorSet.has(operator)) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return true;
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
});
|
|
31
|
-
return isValid;
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
};
|
|
35
|
-
export default validateWhereQuery;
|
|
36
|
-
//# sourceMappingURL=validateWhereQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validateWhereQuery.js","names":["validOperatorSet","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","has"],"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["'use client'\nimport type { Operator, Where } from 'payload'\n\nimport { validOperatorSet } from 'payload/shared'\n\nconst validateWhereQuery = (whereQuery): whereQuery is Where => {\n if (\n whereQuery?.or?.length > 0 &&\n whereQuery?.or?.[0]?.and &&\n whereQuery?.or?.[0]?.and?.length > 0\n ) {\n // At this point we know that the whereQuery has 'or' and 'and' fields,\n // now let's check the structure and content of these fields.\n\n const isValid = whereQuery.or.every((orQuery) => {\n if (orQuery.and && Array.isArray(orQuery.and)) {\n return orQuery.and.every((andQuery) => {\n if (typeof andQuery !== 'object') {\n return false\n }\n\n const andKeys = Object.keys(andQuery)\n\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n\n for (const key of andKeys) {\n const operator = Object.keys(andQuery[key])[0]\n // Check if the key is a valid Operator.\n if (!operator || !validOperatorSet.has(operator as Operator)) {\n return false\n }\n }\n return true\n })\n }\n return false\n })\n\n return isValid\n }\n\n return false\n}\n\nexport default validateWhereQuery\n"],"mappings":"AAAA;;AAGA,SAASA,gBAAgB,QAAQ;AAEjC,MAAMC,kBAAA,GAAsBC,UAAA;EAC1B,IACEA,UAAA,EAAYC,EAAA,EAAIC,MAAA,GAAS,KACzBF,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,IACrBH,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,EAAKD,MAAA,GAAS,GACnC;IACA;IACA;IAEA,MAAME,OAAA,GAAUJ,UAAA,CAAWC,EAAE,CAACI,KAAK,CAAEC,OAAA;MACnC,IAAIA,OAAA,CAAQH,GAAG,IAAII,KAAA,CAAMC,OAAO,CAACF,OAAA,CAAQH,GAAG,GAAG;QAC7C,OAAOG,OAAA,CAAQH,GAAG,CAACE,KAAK,CAAEI,QAAA;UACxB,IAAI,OAAOA,QAAA,KAAa,UAAU;YAChC,OAAO;UACT;UAEA,MAAMC,OAAA,GAAUC,MAAA,CAAOC,IAAI,CAACH,QAAA;UAE5B;UACA,IAAIC,OAAA,CAAQR,MAAM,KAAK,GAAG;YACxB,OAAO;UACT;UAEA,KAAK,MAAMW,GAAA,IAAOH,OAAA,EAAS;YACzB,MAAMI,QAAA,GAAWH,MAAA,CAAOC,IAAI,CAACH,QAAQ,CAACI,GAAA,CAAI,CAAC,CAAC,EAAE;YAC9C;YACA,IAAI,CAACC,QAAA,IAAY,CAAChB,gBAAA,CAAiBiB,GAAG,CAACD,QAAA,GAAuB;cAC5D,OAAO;YACT;UACF;UACA,OAAO;QACT;MACF;MACA,OAAO;IACT;IAEA,OAAOV,OAAA;EACT;EAEA,OAAO;AACT;AAEA,eAAeL,kBAAA","ignoreList":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload';
|
|
2
|
-
export declare const hoistQueryParamsToAnd: (currentWhere: Where, incomingWhere: Where) => Where;
|
|
3
|
-
type Args = {
|
|
4
|
-
collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig;
|
|
5
|
-
search: string;
|
|
6
|
-
where?: Where;
|
|
7
|
-
};
|
|
8
|
-
export declare const mergeListSearchAndWhere: ({ collectionConfig, search, where }: Args) => Where;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=mergeListSearchAndWhere.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mergeListSearchAndWhere.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeListSearchAndWhere.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIvF,eAAO,MAAM,qBAAqB,iBAAkB,KAAK,iBAAiB,KAAK,UAsB9E,CAAA;AAED,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,sBAAsB,GAAG,yBAAyB,CAAA;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,uBAAuB,wCAA8C,IAAI,KAAG,KAwBxF,CAAA"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
const isEmptyObject = obj => Object.keys(obj).length === 0;
|
|
2
|
-
export const hoistQueryParamsToAnd = (currentWhere, incomingWhere) => {
|
|
3
|
-
if (isEmptyObject(incomingWhere)) {
|
|
4
|
-
return currentWhere;
|
|
5
|
-
}
|
|
6
|
-
if (isEmptyObject(currentWhere)) {
|
|
7
|
-
return incomingWhere;
|
|
8
|
-
}
|
|
9
|
-
if ('and' in currentWhere) {
|
|
10
|
-
currentWhere.and.push(incomingWhere);
|
|
11
|
-
} else if ('or' in currentWhere) {
|
|
12
|
-
currentWhere = {
|
|
13
|
-
and: [currentWhere, incomingWhere]
|
|
14
|
-
};
|
|
15
|
-
} else {
|
|
16
|
-
currentWhere = {
|
|
17
|
-
and: [currentWhere, incomingWhere]
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return currentWhere;
|
|
21
|
-
};
|
|
22
|
-
export const mergeListSearchAndWhere = ({
|
|
23
|
-
collectionConfig,
|
|
24
|
-
search,
|
|
25
|
-
where = {}
|
|
26
|
-
}) => {
|
|
27
|
-
if (search) {
|
|
28
|
-
let copyOfWhere = {
|
|
29
|
-
...(where || {})
|
|
30
|
-
};
|
|
31
|
-
const searchAsConditions = (collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']).map(fieldName => ({
|
|
32
|
-
[fieldName]: {
|
|
33
|
-
like: search
|
|
34
|
-
}
|
|
35
|
-
}));
|
|
36
|
-
if (searchAsConditions.length > 0) {
|
|
37
|
-
copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {
|
|
38
|
-
or: searchAsConditions
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
if (!isEmptyObject(copyOfWhere)) {
|
|
42
|
-
where = copyOfWhere;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return where;
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=mergeListSearchAndWhere.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mergeListSearchAndWhere.js","names":["isEmptyObject","obj","Object","keys","length","hoistQueryParamsToAnd","currentWhere","incomingWhere","and","push","mergeListSearchAndWhere","collectionConfig","search","where","copyOfWhere","searchAsConditions","admin","listSearchableFields","useAsTitle","map","fieldName","like","or"],"sources":["../../src/utilities/mergeListSearchAndWhere.ts"],"sourcesContent":["import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload'\n\nconst isEmptyObject = (obj: object) => Object.keys(obj).length === 0\n\nexport const hoistQueryParamsToAnd = (currentWhere: Where, incomingWhere: Where) => {\n if (isEmptyObject(incomingWhere)) {\n return currentWhere\n }\n\n if (isEmptyObject(currentWhere)) {\n return incomingWhere\n }\n\n if ('and' in currentWhere) {\n currentWhere.and.push(incomingWhere)\n } else if ('or' in currentWhere) {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n } else {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n }\n\n return currentWhere\n}\n\ntype Args = {\n collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig\n search: string\n where?: Where\n}\n\nexport const mergeListSearchAndWhere = ({ collectionConfig, search, where = {} }: Args): Where => {\n if (search) {\n let copyOfWhere = { ...(where || {}) }\n\n const searchAsConditions = (\n collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']\n ).map((fieldName) => ({\n [fieldName]: {\n like: search,\n },\n }))\n\n if (searchAsConditions.length > 0) {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {\n or: searchAsConditions,\n })\n }\n\n if (!isEmptyObject(copyOfWhere)) {\n where = copyOfWhere\n }\n }\n\n return where\n}\n"],"mappings":"AAEA,MAAMA,aAAA,GAAiBC,GAAA,IAAgBC,MAAA,CAAOC,IAAI,CAACF,GAAA,EAAKG,MAAM,KAAK;AAEnE,OAAO,MAAMC,qBAAA,GAAwBA,CAACC,YAAA,EAAqBC,aAAA;EACzD,IAAIP,aAAA,CAAcO,aAAA,GAAgB;IAChC,OAAOD,YAAA;EACT;EAEA,IAAIN,aAAA,CAAcM,YAAA,GAAe;IAC/B,OAAOC,aAAA;EACT;EAEA,IAAI,SAASD,YAAA,EAAc;IACzBA,YAAA,CAAaE,GAAG,CAACC,IAAI,CAACF,aAAA;EACxB,OAAO,IAAI,QAAQD,YAAA,EAAc;IAC/BA,YAAA,GAAe;MACbE,GAAA,EAAK,CAACF,YAAA,EAAcC,aAAA;IACtB;EACF,OAAO;IACLD,YAAA,GAAe;MACbE,GAAA,EAAK,CAACF,YAAA,EAAcC,aAAA;IACtB;EACF;EAEA,OAAOD,YAAA;AACT;AAQA,OAAO,MAAMI,uBAAA,GAA0BA,CAAC;EAAEC,gBAAgB;EAAEC,MAAM;EAAEC,KAAA,GAAQ,CAAC;AAAC,CAAQ;EACpF,IAAID,MAAA,EAAQ;IACV,IAAIE,WAAA,GAAc;MAAE,IAAID,KAAA,IAAS,CAAC,CAAC;IAAE;IAErC,MAAME,kBAAA,GAAqB,CACzBJ,gBAAA,CAAiBK,KAAK,CAACC,oBAAoB,IAAI,CAACN,gBAAA,CAAiBK,KAAK,EAAEE,UAAA,IAAc,KAAK,EAC3FC,GAAG,CAAEC,SAAA,KAAe;MACpB,CAACA,SAAA,GAAY;QACXC,IAAA,EAAMT;MACR;IACF;IAEA,IAAIG,kBAAA,CAAmBX,MAAM,GAAG,GAAG;MACjCU,WAAA,GAAcT,qBAAA,CAAsBS,WAAA,EAAa;QAC/CQ,EAAA,EAAIP;MACN;IACF;IAEA,IAAI,CAACf,aAAA,CAAcc,WAAA,GAAc;MAC/BD,KAAA,GAAQC,WAAA;IACV;EACF;EAEA,OAAOD,KAAA;AACT","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|