@payloadcms/ui 3.30.0 → 3.31.0-canary.1
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/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 +1 -2
- 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/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/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +1 -2
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +8 -0
- package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +1 -0
- package/dist/elements/ListControls/ActiveQueryPreset/index.js +154 -0
- package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +1 -0
- package/dist/elements/ListControls/ActiveQueryPreset/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 +115 -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 +28 -0
- package/dist/elements/ListControls/types.d.ts.map +1 -0
- package/dist/elements/ListControls/types.js.map +1 -0
- package/dist/elements/ListControls/useQueryPresets.d.ts +17 -0
- package/dist/elements/ListControls/useQueryPresets.d.ts.map +1 -0
- package/dist/elements/ListControls/useQueryPresets.js +260 -0
- package/dist/elements/ListControls/useQueryPresets.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/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/Popup/PopupButtonList/index.d.ts +2 -1
- package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +2 -0
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/PopupDivider/index.d.ts +4 -0
- package/dist/elements/Popup/PopupDivider/index.d.ts.map +1 -0
- package/dist/elements/Popup/PopupDivider/index.js +10 -0
- package/dist/elements/Popup/PopupDivider/index.js.map +1 -0
- package/dist/elements/Popup/PopupDivider/index.scss +10 -0
- package/dist/elements/Popup/PopupGroupLabel/index.d.ts +6 -0
- package/dist/elements/Popup/PopupGroupLabel/index.d.ts.map +1 -0
- package/dist/elements/Popup/PopupGroupLabel/index.js +13 -0
- package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -0
- package/dist/elements/Popup/PopupGroupLabel/index.scss +8 -0
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +2 -2
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +4 -0
- package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -0
- package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -0
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +5 -0
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +25 -0
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -0
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.scss +9 -0
- package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +4 -0
- package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/cells/WhereCell/index.js +29 -0
- package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -0
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +4 -0
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +65 -0
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -0
- package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +17 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +4 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.js +121 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -0
- package/dist/elements/QueryPresets/fields/WhereField/index.scss +23 -0
- 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.map +1 -1
- package/dist/elements/RelationshipTable/index.js +3 -4
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +1 -1
- 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 +18 -15
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +7 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -23
- 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/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/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/EntityVisibility/index.d.ts.map +1 -1
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/ListQuery/context.d.ts +2 -0
- package/dist/providers/ListQuery/context.d.ts.map +1 -1
- package/dist/providers/ListQuery/context.js +2 -0
- package/dist/providers/ListQuery/context.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +29 -13
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +6 -3
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- 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.map +1 -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.map +1 -0
- package/dist/{elements → providers}/TableColumns/index.js +4 -2
- package/dist/providers/TableColumns/index.js.map +1 -0
- package/dist/{elements → providers}/TableColumns/types.d.ts +1 -1
- 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/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/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +2 -1
- 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 +7 -1
- 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/context.d.ts.map +0 -1
- package/dist/elements/TableColumns/context.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.map +0 -1
- package/dist/elements/TableColumns/types.d.ts.map +0 -1
- package/dist/elements/TableColumns/types.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/{TableColumns → ListControls}/types.js +0 -0
- /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/context.d.ts +0 -0
- /package/dist/{elements → providers}/TableColumns/context.js +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
- /package/dist/{elements → providers}/TableColumns/index.d.ts +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
+
import { PeopleIcon } from '../../../icons/People/index.js';
|
|
7
|
+
import { XIcon } from '../../../icons/X/index.js';
|
|
8
|
+
import { useConfig } from '../../../providers/Config/index.js';
|
|
9
|
+
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
10
|
+
import { Pill } from '../../Pill/index.js';
|
|
11
|
+
import './index.scss';
|
|
12
|
+
const baseClass = 'active-query-preset';
|
|
13
|
+
export function ActiveQueryPreset(t0) {
|
|
14
|
+
const $ = _c(36);
|
|
15
|
+
const {
|
|
16
|
+
activePreset,
|
|
17
|
+
openPresetListDrawer,
|
|
18
|
+
resetPreset
|
|
19
|
+
} = t0;
|
|
20
|
+
const {
|
|
21
|
+
i18n,
|
|
22
|
+
t
|
|
23
|
+
} = useTranslation();
|
|
24
|
+
const {
|
|
25
|
+
getEntityConfig
|
|
26
|
+
} = useConfig();
|
|
27
|
+
let t1;
|
|
28
|
+
let t10;
|
|
29
|
+
let t11;
|
|
30
|
+
let t2;
|
|
31
|
+
let t3;
|
|
32
|
+
let t4;
|
|
33
|
+
let t5;
|
|
34
|
+
let t6;
|
|
35
|
+
let t7;
|
|
36
|
+
let t8;
|
|
37
|
+
let t9;
|
|
38
|
+
if ($[0] !== activePreset || $[1] !== getEntityConfig || $[2] !== i18n || $[3] !== openPresetListDrawer || $[4] !== t) {
|
|
39
|
+
const presetsConfig = getEntityConfig({
|
|
40
|
+
collectionSlug: "payload-query-presets"
|
|
41
|
+
});
|
|
42
|
+
t10 = _jsxs;
|
|
43
|
+
t11 = Pill;
|
|
44
|
+
const t12 = activePreset && `${baseClass}--active`;
|
|
45
|
+
let t13;
|
|
46
|
+
if ($[16] !== t12) {
|
|
47
|
+
t13 = [baseClass, t12].filter(Boolean);
|
|
48
|
+
$[16] = t12;
|
|
49
|
+
$[17] = t13;
|
|
50
|
+
} else {
|
|
51
|
+
t13 = $[17];
|
|
52
|
+
}
|
|
53
|
+
t6 = t13.join(" ");
|
|
54
|
+
t7 = "select-preset";
|
|
55
|
+
if ($[18] !== openPresetListDrawer) {
|
|
56
|
+
t8 = () => {
|
|
57
|
+
openPresetListDrawer();
|
|
58
|
+
};
|
|
59
|
+
$[18] = openPresetListDrawer;
|
|
60
|
+
$[19] = t8;
|
|
61
|
+
} else {
|
|
62
|
+
t8 = $[19];
|
|
63
|
+
}
|
|
64
|
+
t9 = activePreset ? "always-white" : "light";
|
|
65
|
+
if ($[20] !== activePreset?.isShared) {
|
|
66
|
+
t5 = activePreset?.isShared && _jsx(PeopleIcon, {
|
|
67
|
+
className: `${baseClass}__shared`
|
|
68
|
+
});
|
|
69
|
+
$[20] = activePreset?.isShared;
|
|
70
|
+
$[21] = t5;
|
|
71
|
+
} else {
|
|
72
|
+
t5 = $[21];
|
|
73
|
+
}
|
|
74
|
+
t3 = _jsx;
|
|
75
|
+
t4 = "div";
|
|
76
|
+
t1 = `${baseClass}__label-text`;
|
|
77
|
+
t2 = activePreset?.title || t("general:selectLabel", {
|
|
78
|
+
label: getTranslation(presetsConfig.labels.singular, i18n)
|
|
79
|
+
});
|
|
80
|
+
$[0] = activePreset;
|
|
81
|
+
$[1] = getEntityConfig;
|
|
82
|
+
$[2] = i18n;
|
|
83
|
+
$[3] = openPresetListDrawer;
|
|
84
|
+
$[4] = t;
|
|
85
|
+
$[5] = t1;
|
|
86
|
+
$[6] = t10;
|
|
87
|
+
$[7] = t11;
|
|
88
|
+
$[8] = t2;
|
|
89
|
+
$[9] = t3;
|
|
90
|
+
$[10] = t4;
|
|
91
|
+
$[11] = t5;
|
|
92
|
+
$[12] = t6;
|
|
93
|
+
$[13] = t7;
|
|
94
|
+
$[14] = t8;
|
|
95
|
+
$[15] = t9;
|
|
96
|
+
} else {
|
|
97
|
+
t1 = $[5];
|
|
98
|
+
t10 = $[6];
|
|
99
|
+
t11 = $[7];
|
|
100
|
+
t2 = $[8];
|
|
101
|
+
t3 = $[9];
|
|
102
|
+
t4 = $[10];
|
|
103
|
+
t5 = $[11];
|
|
104
|
+
t6 = $[12];
|
|
105
|
+
t7 = $[13];
|
|
106
|
+
t8 = $[14];
|
|
107
|
+
t9 = $[15];
|
|
108
|
+
}
|
|
109
|
+
let t12;
|
|
110
|
+
if ($[22] !== activePreset || $[23] !== resetPreset || $[24] !== t1 || $[25] !== t10 || $[26] !== t11 || $[27] !== t2 || $[28] !== t3 || $[29] !== t4 || $[30] !== t5 || $[31] !== t6 || $[32] !== t7 || $[33] !== t8 || $[34] !== t9) {
|
|
111
|
+
t12 = t10(t11, {
|
|
112
|
+
className: t6,
|
|
113
|
+
id: t7,
|
|
114
|
+
onClick: t8,
|
|
115
|
+
pillStyle: t9,
|
|
116
|
+
children: [t5, t3(t4, {
|
|
117
|
+
className: t1,
|
|
118
|
+
children: t2
|
|
119
|
+
}), activePreset ? _jsx("div", {
|
|
120
|
+
className: `${baseClass}__clear`,
|
|
121
|
+
id: "clear-preset",
|
|
122
|
+
onClick: async e => {
|
|
123
|
+
e.stopPropagation();
|
|
124
|
+
await resetPreset();
|
|
125
|
+
},
|
|
126
|
+
onKeyDown: async e_0 => {
|
|
127
|
+
e_0.stopPropagation();
|
|
128
|
+
await resetPreset();
|
|
129
|
+
},
|
|
130
|
+
role: "button",
|
|
131
|
+
tabIndex: 0,
|
|
132
|
+
children: _jsx(XIcon, {})
|
|
133
|
+
}) : null]
|
|
134
|
+
});
|
|
135
|
+
$[22] = activePreset;
|
|
136
|
+
$[23] = resetPreset;
|
|
137
|
+
$[24] = t1;
|
|
138
|
+
$[25] = t10;
|
|
139
|
+
$[26] = t11;
|
|
140
|
+
$[27] = t2;
|
|
141
|
+
$[28] = t3;
|
|
142
|
+
$[29] = t4;
|
|
143
|
+
$[30] = t5;
|
|
144
|
+
$[31] = t6;
|
|
145
|
+
$[32] = t7;
|
|
146
|
+
$[33] = t8;
|
|
147
|
+
$[34] = t9;
|
|
148
|
+
$[35] = t12;
|
|
149
|
+
} else {
|
|
150
|
+
t12 = $[35];
|
|
151
|
+
}
|
|
152
|
+
return t12;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","PeopleIcon","XIcon","useConfig","useTranslation","Pill","baseClass","ActiveQueryPreset","t0","$","activePreset","openPresetListDrawer","resetPreset","i18n","t","getEntityConfig","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","presetsConfig","collectionSlug","_jsxs","t12","t13","filter","Boolean","join","isShared","_jsx","className","title","label","labels","singular","id","onClick","pillStyle","children","e","stopPropagation","onKeyDown","e_0","role","tabIndex"],"sources":["../../../../src/elements/ListControls/ActiveQueryPreset/index.tsx"],"sourcesContent":["'use client'\nimport type { QueryPreset } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport { PeopleIcon } from '../../../icons/People/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'active-query-preset'\n\nexport function ActiveQueryPreset({\n activePreset,\n openPresetListDrawer,\n resetPreset,\n}: {\n activePreset: QueryPreset\n openPresetListDrawer: () => void\n resetPreset: () => Promise<void>\n}) {\n const { i18n, t } = useTranslation()\n const { getEntityConfig } = useConfig()\n\n const presetsConfig = getEntityConfig({\n collectionSlug: 'payload-query-presets',\n })\n\n return (\n <Pill\n className={[baseClass, activePreset && `${baseClass}--active`].filter(Boolean).join(' ')}\n id=\"select-preset\"\n onClick={() => {\n openPresetListDrawer()\n }}\n pillStyle={activePreset ? 'always-white' : 'light'}\n >\n {activePreset?.isShared && <PeopleIcon className={`${baseClass}__shared`} />}\n <div className={`${baseClass}__label-text`}>\n {activePreset?.title ||\n t('general:selectLabel', { label: getTranslation(presetsConfig.labels.singular, i18n) })}\n </div>\n {activePreset ? (\n <div\n className={`${baseClass}__clear`}\n id=\"clear-preset\"\n onClick={async (e) => {\n e.stopPropagation()\n await resetPreset()\n }}\n onKeyDown={async (e) => {\n e.stopPropagation()\n await resetPreset()\n }}\n role=\"button\"\n tabIndex={0}\n >\n <XIcon />\n </div>\n ) : null}\n </Pill>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAE/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,KAAK,QAAQ;AACtB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AACrB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,kBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAA2B;IAAAW,YAAA;IAAAC,oBAAA;IAAAC;EAAA,IAAAJ,EAQjC;EACC;IAAAK,IAAA;IAAAC;EAAA,IAAoBV,cAAA;EACpB;IAAAW;EAAA,IAA4BZ,SAAA;EAAA,IAAAa,EAAA;EAAA,IAAAC,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAjB,CAAA,QAAAC,YAAA,IAAAD,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAI,IAAA,IAAAJ,CAAA,QAAAE,oBAAA,IAAAF,CAAA,QAAAK,CAAA;IAE5B,MAAAa,aAAA,GAAsBZ,eAAA;MAAAa,cAAA,EACJ;IAAA,CAClB;IAGEC,GAAA,CAAAA,CAAA,CAAAA,KAAA;IAACxB,GAAA,CAAAA,CAAA,CAAAA,IAAA;IACwB,MAAAyB,GAAA,GAAApB,YAAA,IAAgB,GAAAJ,SAAA,UAAsB;IAAA,IAAAyB,GAAA;IAAA,IAAAtB,CAAA,SAAAqB,GAAA;MAAlDC,GAAA,IAAAzB,SAAA,EAAYwB,GAAsC,EAAAE,MAAA,CAAAC,OAAS;MAAAxB,CAAA,OAAAqB,GAAA;MAAArB,CAAA,OAAAsB,GAAA;IAAA;MAAAA,GAAA,GAAAtB,CAAA;IAAA;IAA3Dc,EAAA,GAAAQ,GAA2D,CAAAG,IAAA,CAAc;IACjFV,EAAA;IAAA,IAAAf,CAAA,SAAAE,oBAAA;MACMc,EAAA,GAAAA,CAAA;QACPd,oBAAA;MAAA;MACFF,CAAA,OAAAE,oBAAA;MAAAF,CAAA,OAAAgB,EAAA;IAAA;MAAAA,EAAA,GAAAhB,CAAA;IAAA;IACWiB,EAAA,GAAAhB,YAAA,GAAe,iBAAiB;IAAA,IAAAD,CAAA,SAAAC,YAAA,EAAAyB,QAAA;MAE1Cb,EAAA,GAAAZ,YAAA,EAAAyB,QAAA,IAA0BC,IAAA,CAAAnC,UAAA;QAAAoC,SAAA,EAAuB,GAAA/B,SAAA;MAAsB,C;;;;;;IACxE8B,EAAA,CAAAA,CAAA,CAAAA,IAAA;IAACf,EAAA;IAAeL,EAAA,MAAAV,SAAA,cAA0B;IACvCa,EAAA,GAAAT,YAAA,EAAA4B,KAAA,IACCxB,CAAA,CAAE;MAAAyB,KAAA,EAAgCvC,cAAA,CAAe2B,aAAA,CAAAa,MAAA,CAAAC,QAAA,EAA+B5B,IAAA;IAAA,CAAM;IAAAJ,CAAA,MAAAC,YAAA;IAAAD,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAI,IAAA;IAAAJ,CAAA,MAAAE,oBAAA;IAAAF,CAAA,MAAAK,CAAA;IAAAL,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,GAAA;IAAAR,CAAA,MAAAS,GAAA;IAAAT,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAW,EAAA;IAAAX,CAAA,OAAAY,EAAA;IAAAZ,CAAA,OAAAa,EAAA;IAAAb,CAAA,OAAAc,EAAA;IAAAd,CAAA,OAAAe,EAAA;IAAAf,CAAA,OAAAgB,EAAA;IAAAhB,CAAA,OAAAiB,EAAA;EAAA;IAAAV,EAAA,GAAAP,CAAA;IAAAQ,GAAA,GAAAR,CAAA;IAAAS,GAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;IAAAW,EAAA,GAAAX,CAAA;IAAAY,EAAA,GAAAZ,CAAA;IAAAa,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;IAAAe,EAAA,GAAAf,CAAA;IAAAgB,EAAA,GAAAhB,CAAA;IAAAiB,EAAA,GAAAjB,CAAA;EAAA;EAAA,IAAAqB,GAAA;EAAA,IAAArB,CAAA,SAAAC,YAAA,IAAAD,CAAA,SAAAG,WAAA,IAAAH,CAAA,SAAAO,EAAA,IAAAP,CAAA,SAAAQ,GAAA,IAAAR,CAAA,SAAAS,GAAA,IAAAT,CAAA,SAAAU,EAAA,IAAAV,CAAA,SAAAW,EAAA,IAAAX,CAAA,SAAAY,EAAA,IAAAZ,CAAA,SAAAa,EAAA,IAAAb,CAAA,SAAAc,EAAA,IAAAd,CAAA,SAAAe,EAAA,IAAAf,CAAA,SAAAgB,EAAA,IAAAhB,CAAA,SAAAiB,EAAA;IAX5FI,GAAA,GAAAD,GAAA,CAACxB,GAAA;MAAAgC,SAAA,EACYd,EAAyE;MAAAmB,EAAA,EACjFlB,EAAA;MAAAmB,OAAA,EACMlB,EAET;MAAAmB,SAAA,EACWlB,EAAgC;MAAAmB,QAAA,GAE1CvB,E,EACDc,EAAA,CAACf,EAAA;QAAAgB,SAAA,EAAerB,EAA0B;QAAA6B,QAAA,EACvC1B;MACuF,C,GAEzFT,YAAA,GACC0B,IAAA,CAAC;QAAAC,SAAA,EACY,GAAA/B,SAAA,SAAqB;QAAAoC,EAAA,EAC7B;QAAAC,OAAA,QAAAG,CAAA;UAEDA,CAAA,CAAAC,eAAA,CAAiB;UAAA,MACXnC,WAAA;QAAA;QAAAoC,SAAA,QAAAC,GAAA;UAGNH,GAAA,CAAAC,eAAA,CAAiB;UAAA,MACXnC,WAAA;QAAA;QAAAsC,IAAA,EAEH;QAAAC,QAAA;QAAAN,QAAA,EAGLT,IAAA,CAAAlC,KAAA,IAAC;MAAA,C,QAED;IAAA,C;;;;;;;;;;;;;;;;;;SA9BN4B,G","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@import '../../../scss/styles';
|
|
2
|
+
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.active-query-preset {
|
|
5
|
+
&.pill {
|
|
6
|
+
max-width: 150px;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.pill__label {
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&__label-text {
|
|
16
|
+
text-overflow: ellipsis;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
white-space: nowrap;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,29 +1,6 @@
|
|
|
1
|
-
import type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload';
|
|
2
1
|
import React from 'react';
|
|
2
|
+
import type { ListControlsProps } from './types.js';
|
|
3
3
|
import './index.scss';
|
|
4
|
-
export type ListControlsProps = {
|
|
5
|
-
readonly beforeActions?: React.ReactNode[];
|
|
6
|
-
readonly collectionConfig: ClientCollectionConfig;
|
|
7
|
-
readonly collectionSlug: string;
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated
|
|
10
|
-
* These are now handled by the `ListSelection` component
|
|
11
|
-
*/
|
|
12
|
-
readonly disableBulkDelete?: boolean;
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated
|
|
15
|
-
* These are now handled by the `ListSelection` component
|
|
16
|
-
*/
|
|
17
|
-
readonly disableBulkEdit?: boolean;
|
|
18
|
-
readonly enableColumns?: boolean;
|
|
19
|
-
readonly enableSort?: boolean;
|
|
20
|
-
readonly handleSearchChange?: (search: string) => void;
|
|
21
|
-
readonly handleSortChange?: (sort: string) => void;
|
|
22
|
-
readonly handleWhereChange?: (where: Where) => void;
|
|
23
|
-
readonly listMenuItems?: React.ReactNode[];
|
|
24
|
-
readonly renderedFilters?: Map<string, React.ReactNode>;
|
|
25
|
-
readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>;
|
|
26
|
-
};
|
|
27
4
|
/**
|
|
28
5
|
* The ListControls component is used to render the controls (search, filter, where)
|
|
29
6
|
* for a collection's list view. You can find those directly above the table which lists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgD,MAAM,OAAO,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAiBnD,OAAO,cAAc,CAAA;AAIrB;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuOpD,CAAA"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useWindowInfo } from '@faceless-ui/window-info';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
-
import
|
|
6
|
+
import { validateWhereQuery } from 'payload/shared';
|
|
7
|
+
import React, { Fragment, useEffect, useRef, useState } from 'react';
|
|
7
8
|
import { Popup, PopupList } from '../../elements/Popup/index.js';
|
|
8
9
|
import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
|
|
9
10
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
@@ -16,8 +17,9 @@ import { ColumnSelector } from '../ColumnSelector/index.js';
|
|
|
16
17
|
import { Pill } from '../Pill/index.js';
|
|
17
18
|
import { SearchFilter } from '../SearchFilter/index.js';
|
|
18
19
|
import { WhereBuilder } from '../WhereBuilder/index.js';
|
|
19
|
-
import
|
|
20
|
+
import { ActiveQueryPreset } from './ActiveQueryPreset/index.js';
|
|
20
21
|
import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
|
|
22
|
+
import { useQueryPresets } from './useQueryPresets.js';
|
|
21
23
|
import './index.scss';
|
|
22
24
|
const baseClass = 'list-controls';
|
|
23
25
|
/**
|
|
@@ -30,9 +32,12 @@ export const ListControls = props => {
|
|
|
30
32
|
beforeActions,
|
|
31
33
|
collectionConfig,
|
|
32
34
|
collectionSlug,
|
|
35
|
+
disableQueryPresets,
|
|
33
36
|
enableColumns = true,
|
|
34
37
|
enableSort = false,
|
|
35
|
-
listMenuItems,
|
|
38
|
+
listMenuItems: listMenuItemsFromProps,
|
|
39
|
+
queryPreset: activePreset,
|
|
40
|
+
queryPresetPermissions,
|
|
36
41
|
renderedFilters,
|
|
37
42
|
resolvedFilterOptions
|
|
38
43
|
} = props;
|
|
@@ -40,6 +45,20 @@ export const ListControls = props => {
|
|
|
40
45
|
handleSearchChange,
|
|
41
46
|
query
|
|
42
47
|
} = useListQuery();
|
|
48
|
+
const {
|
|
49
|
+
CreateNewPresetDrawer,
|
|
50
|
+
DeletePresetModal,
|
|
51
|
+
EditPresetDrawer,
|
|
52
|
+
hasModifiedPreset,
|
|
53
|
+
openPresetListDrawer,
|
|
54
|
+
PresetListDrawer,
|
|
55
|
+
queryPresetMenuItems,
|
|
56
|
+
resetPreset
|
|
57
|
+
} = useQueryPresets({
|
|
58
|
+
activePreset,
|
|
59
|
+
collectionSlug,
|
|
60
|
+
queryPresetPermissions
|
|
61
|
+
});
|
|
43
62
|
const titleField = useUseTitleField(collectionConfig);
|
|
44
63
|
const {
|
|
45
64
|
i18n,
|
|
@@ -85,92 +104,102 @@ export const ListControls = props => {
|
|
|
85
104
|
});
|
|
86
105
|
}
|
|
87
106
|
}, [t, listSearchableFields, i18n, searchLabel]);
|
|
88
|
-
|
|
89
|
-
|
|
107
|
+
let listMenuItems = listMenuItemsFromProps;
|
|
108
|
+
if (collectionConfig?.enableQueryPresets && !disableQueryPresets && queryPresetMenuItems?.length > 0) {
|
|
109
|
+
// Cannot push or unshift into `listMenuItemsFromProps` as it will mutate the original array
|
|
110
|
+
listMenuItems = [...queryPresetMenuItems, listMenuItemsFromProps?.length > 0 ? /*#__PURE__*/_jsx(PopupList.Divider, {}, "divider") : null, ...(listMenuItemsFromProps || [])];
|
|
111
|
+
}
|
|
112
|
+
return /*#__PURE__*/_jsxs(Fragment, {
|
|
90
113
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
91
|
-
className:
|
|
92
|
-
children: [/*#__PURE__*/
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
className: `${baseClass}
|
|
104
|
-
children:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
114
|
+
className: baseClass,
|
|
115
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
116
|
+
className: `${baseClass}__wrap`,
|
|
117
|
+
children: [/*#__PURE__*/_jsx(SearchIcon, {}), /*#__PURE__*/_jsx(SearchFilter, {
|
|
118
|
+
fieldName: titleField && 'name' in titleField ? titleField?.name : null,
|
|
119
|
+
handleChange: search => {
|
|
120
|
+
return void handleSearchChange(search);
|
|
121
|
+
},
|
|
122
|
+
// @ts-expect-error @todo: fix types
|
|
123
|
+
initialParams: query,
|
|
124
|
+
label: searchLabelTranslated.current
|
|
125
|
+
}, collectionSlug), activePreset && hasModifiedPreset ? /*#__PURE__*/_jsx("div", {
|
|
126
|
+
className: `${baseClass}__modified`,
|
|
127
|
+
children: "Modified"
|
|
128
|
+
}) : null, /*#__PURE__*/_jsx("div", {
|
|
129
|
+
className: `${baseClass}__buttons`,
|
|
130
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
131
|
+
className: `${baseClass}__buttons-wrap`,
|
|
132
|
+
children: [!smallBreak && /*#__PURE__*/_jsx(React.Fragment, {
|
|
133
|
+
children: beforeActions && beforeActions
|
|
134
|
+
}), enableColumns && /*#__PURE__*/_jsx(Pill, {
|
|
135
|
+
"aria-controls": `${baseClass}-columns`,
|
|
136
|
+
"aria-expanded": visibleDrawer === 'columns',
|
|
137
|
+
className: `${baseClass}__toggle-columns`,
|
|
138
|
+
icon: /*#__PURE__*/_jsx(ChevronIcon, {
|
|
139
|
+
direction: visibleDrawer === 'columns' ? 'up' : 'down'
|
|
140
|
+
}),
|
|
141
|
+
onClick: () => setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
|
|
142
|
+
pillStyle: "light",
|
|
143
|
+
children: t('general:columns')
|
|
144
|
+
}), /*#__PURE__*/_jsx(Pill, {
|
|
145
|
+
"aria-controls": `${baseClass}-where`,
|
|
146
|
+
"aria-expanded": visibleDrawer === 'where',
|
|
147
|
+
className: `${baseClass}__toggle-where`,
|
|
148
|
+
icon: /*#__PURE__*/_jsx(ChevronIcon, {
|
|
149
|
+
direction: visibleDrawer === 'where' ? 'up' : 'down'
|
|
150
|
+
}),
|
|
151
|
+
onClick: () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
|
|
152
|
+
pillStyle: "light",
|
|
153
|
+
children: t('general:filters')
|
|
154
|
+
}), enableSort && /*#__PURE__*/_jsx(Pill, {
|
|
155
|
+
"aria-controls": `${baseClass}-sort`,
|
|
156
|
+
"aria-expanded": visibleDrawer === 'sort',
|
|
157
|
+
className: `${baseClass}__toggle-sort`,
|
|
158
|
+
icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
|
|
159
|
+
onClick: () => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
|
|
160
|
+
pillStyle: "light",
|
|
161
|
+
children: t('general:sort')
|
|
162
|
+
}), !disableQueryPresets && /*#__PURE__*/_jsx(ActiveQueryPreset, {
|
|
163
|
+
activePreset: activePreset,
|
|
164
|
+
openPresetListDrawer: openPresetListDrawer,
|
|
165
|
+
resetPreset: resetPreset
|
|
166
|
+
}), listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && /*#__PURE__*/_jsx(Popup, {
|
|
167
|
+
button: /*#__PURE__*/_jsx(Dots, {
|
|
168
|
+
ariaLabel: t('general:moreOptions')
|
|
169
|
+
}),
|
|
170
|
+
className: `${baseClass}__popup`,
|
|
171
|
+
horizontalAlign: "right",
|
|
172
|
+
id: "list-menu",
|
|
173
|
+
size: "large",
|
|
174
|
+
verticalAlign: "bottom",
|
|
175
|
+
children: /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
176
|
+
children: listMenuItems.map((item, i_0) => /*#__PURE__*/_jsx(Fragment, {
|
|
177
|
+
children: item
|
|
178
|
+
}, `list-menu-item-${i_0}`))
|
|
179
|
+
})
|
|
180
|
+
})]
|
|
181
|
+
})
|
|
182
|
+
})]
|
|
183
|
+
}), enableColumns && /*#__PURE__*/_jsx(AnimateHeight, {
|
|
184
|
+
className: `${baseClass}__columns`,
|
|
185
|
+
height: visibleDrawer === 'columns' ? 'auto' : 0,
|
|
186
|
+
id: `${baseClass}-columns`,
|
|
187
|
+
children: /*#__PURE__*/_jsx(ColumnSelector, {
|
|
188
|
+
collectionSlug: collectionConfig.slug
|
|
189
|
+
})
|
|
190
|
+
}), /*#__PURE__*/_jsx(AnimateHeight, {
|
|
191
|
+
className: `${baseClass}__where`,
|
|
192
|
+
height: visibleDrawer === 'where' ? 'auto' : 0,
|
|
193
|
+
id: `${baseClass}-where`,
|
|
194
|
+
children: /*#__PURE__*/_jsx(WhereBuilder, {
|
|
195
|
+
collectionPluralLabel: collectionConfig?.labels?.plural,
|
|
196
|
+
collectionSlug: collectionConfig.slug,
|
|
197
|
+
fields: collectionConfig?.fields,
|
|
198
|
+
renderedFilters: renderedFilters,
|
|
199
|
+
resolvedFilterOptions: resolvedFilterOptions
|
|
146
200
|
})
|
|
147
201
|
})]
|
|
148
|
-
}),
|
|
149
|
-
className: `${baseClass}__columns`,
|
|
150
|
-
height: visibleDrawer === 'columns' ? 'auto' : 0,
|
|
151
|
-
id: `${baseClass}-columns`,
|
|
152
|
-
children: /*#__PURE__*/_jsx(ColumnSelector, {
|
|
153
|
-
collectionSlug: collectionConfig.slug
|
|
154
|
-
})
|
|
155
|
-
}), /*#__PURE__*/_jsx(AnimateHeight, {
|
|
156
|
-
className: `${baseClass}__where`,
|
|
157
|
-
height: visibleDrawer === 'where' ? 'auto' : 0,
|
|
158
|
-
id: `${baseClass}-where`,
|
|
159
|
-
children: /*#__PURE__*/_jsx(WhereBuilder, {
|
|
160
|
-
collectionPluralLabel: collectionConfig?.labels?.plural,
|
|
161
|
-
collectionSlug: collectionConfig.slug,
|
|
162
|
-
fields: collectionConfig?.fields,
|
|
163
|
-
renderedFilters: renderedFilters,
|
|
164
|
-
resolvedFilterOptions: resolvedFilterOptions
|
|
165
|
-
})
|
|
166
|
-
}), enableSort && /*#__PURE__*/_jsx(AnimateHeight, {
|
|
167
|
-
className: `${baseClass}__sort`,
|
|
168
|
-
height: visibleDrawer === 'sort' ? 'auto' : 0,
|
|
169
|
-
id: `${baseClass}-sort`,
|
|
170
|
-
children: /*#__PURE__*/_jsx("p", {
|
|
171
|
-
children: "Sort Complex"
|
|
172
|
-
})
|
|
173
|
-
})]
|
|
202
|
+
}), PresetListDrawer, EditPresetDrawer, CreateNewPresetDrawer, DeletePresetModal]
|
|
174
203
|
});
|
|
175
204
|
};
|
|
176
205
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","useEffect","useRef","useState","Popup","PopupList","useUseTitleField","ChevronIcon","Dots","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","Pill","SearchFilter","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","enableColumns","enableSort","listMenuItems","renderedFilters","resolvedFilterOptions","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","Fragment","icon","direction","onClick","pillStyle","button","ariaLabel","horizontalAlign","size","verticalAlign","ButtonGroup","map","item","height","id","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkDelete?: boolean\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly listMenuItems?: React.ReactNode[]\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n enableColumns = true,\n enableSort = false,\n listMenuItems,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField &&\n (typeof titleField.label === 'string' || typeof titleField.label === 'object')\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && <React.Fragment>{beforeActions && beforeActions}</React.Fragment>}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {listMenuItems && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>{listMenuItems.map((item) => item)}</PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","validateWhereQuery","React","Fragment","useEffect","useRef","useState","Popup","PopupList","useUseTitleField","ChevronIcon","Dots","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","Pill","SearchFilter","WhereBuilder","ActiveQueryPreset","getTextFieldsToBeSearched","useQueryPresets","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","enableSort","listMenuItems","listMenuItemsFromProps","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","handleSearchChange","query","CreateNewPresetDrawer","DeletePresetModal","EditPresetDrawer","hasModifiedPreset","openPresetListDrawer","PresetListDrawer","queryPresetMenuItems","resetPreset","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","enableQueryPresets","_jsx","Divider","_jsxs","className","fieldName","handleChange","search","initialParams","icon","direction","onClick","pillStyle","Array","isArray","button","ariaLabel","horizontalAlign","id","size","verticalAlign","ButtonGroup","map","item","height","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport { validateWhereQuery } from 'payload/shared'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport { ActiveQueryPreset } from './ActiveQueryPreset/index.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport { useQueryPresets } from './useQueryPresets.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableSort = false,\n listMenuItems: listMenuItemsFromProps,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n\n const {\n CreateNewPresetDrawer,\n DeletePresetModal,\n EditPresetDrawer,\n hasModifiedPreset,\n openPresetListDrawer,\n PresetListDrawer,\n queryPresetMenuItems,\n resetPreset,\n } = useQueryPresets({\n activePreset,\n collectionSlug,\n queryPresetPermissions,\n })\n\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField &&\n (typeof titleField.label === 'string' || typeof titleField.label === 'object')\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n let listMenuItems: React.ReactNode[] = listMenuItemsFromProps\n\n if (\n collectionConfig?.enableQueryPresets &&\n !disableQueryPresets &&\n queryPresetMenuItems?.length > 0\n ) {\n // Cannot push or unshift into `listMenuItemsFromProps` as it will mutate the original array\n listMenuItems = [\n ...queryPresetMenuItems,\n listMenuItemsFromProps?.length > 0 ? <PopupList.Divider key=\"divider\" /> : null,\n ...(listMenuItemsFromProps || []),\n ]\n }\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n {activePreset && hasModifiedPreset ? (\n <div className={`${baseClass}__modified`}>Modified</div>\n ) : null}\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && <React.Fragment>{beforeActions && beforeActions}</React.Fragment>}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {!disableQueryPresets && (\n <ActiveQueryPreset\n activePreset={activePreset}\n openPresetListDrawer={openPresetListDrawer}\n resetPreset={resetPreset}\n />\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n </div>\n {PresetListDrawer}\n {EditPresetDrawer}\n {CreateNewPresetDrawer}\n {DeletePresetModal}\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAI7D,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,IAAI,QAAQ;AACrB,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AACrB,SAASC,YAAY,QAAQ;AAC7B,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB;;;;;AAKA,OAAO,MAAMC,YAAA,GAA6CC,KAAA;EACxD,MAAM;IACJC,aAAa;IACbC,gBAAgB;IAChBC,cAAc;IACdC,mBAAmB;IACnBC,aAAA,GAAgB,IAAI;IACpBC,UAAA,GAAa,KAAK;IAClBC,aAAA,EAAeC,sBAAsB;IACrCC,WAAA,EAAaC,YAAY;IACzBC,sBAAsB;IACtBC,eAAe;IACfC;EAAqB,CACtB,GAAGb,KAAA;EAEJ,MAAM;IAAEc,kBAAkB;IAAEC;EAAK,CAAE,GAAG3B,YAAA;EAEtC,MAAM;IACJ4B,qBAAqB;IACrBC,iBAAiB;IACjBC,gBAAgB;IAChBC,iBAAiB;IACjBC,oBAAoB;IACpBC,gBAAgB;IAChBC,oBAAoB;IACpBC;EAAW,CACZ,GAAG1B,eAAA,CAAgB;IAClBa,YAAA;IACAP,cAAA;IACAQ;EACF;EAEA,MAAMa,UAAA,GAAaxC,gBAAA,CAAiBkB,gBAAA;EACpC,MAAM;IAAEuB,IAAI;IAAEC;EAAC,CAAE,GAAGrC,cAAA;EAEpB,MAAM;IACJsC,WAAA,EAAa;MAAEC,CAAA,EAAGC;IAAU;EAAE,CAC/B,GAAGvD,aAAA;EAEJ,MAAMwD,WAAA,GACJ,CAACN,UAAA,IACCjD,cAAA,CACE,WAAWiD,UAAA,KACR,OAAOA,UAAA,CAAWO,KAAK,KAAK,YAAY,OAAOP,UAAA,CAAWO,KAAK,KAAK,QAAO,IAC1EP,UAAA,CAAWO,KAAK,GAChB,UAAUP,UAAA,GACRA,UAAA,CAAWQ,IAAI,GACf,MACNP,IAAA,CACF,KACF;EAEF,MAAMQ,oBAAA,GAAuBrC,yBAAA,CAC3BM,gBAAA,CAAiBgC,KAAK,CAACD,oBAAoB,EAC3C/B,gBAAA,CAAiBiC,MAAM;EAGzB,MAAMC,qBAAA,GAAwBxD,MAAA,CAC5B8C,CAAA,CAAE,oBAAoB;IAAEK,KAAA,EAAOxD,cAAA,CAAeuD,WAAA,EAAaL,IAAA;EAAM;EAGnE,MAAMY,aAAA,GAAgBzD,MAAA,CAAO0D,OAAA,CAAQvB,KAAA,EAAOwB,KAAA;EAE5C,MAAMC,2BAAA,GAA8BhE,kBAAA,CAAmBuC,KAAA,EAAOwB,KAAA;EAC9D,MAAM,CAACE,aAAA,EAAeC,gBAAA,CAAiB,GAAG7D,QAAA,CACxC2D,2BAAA,GAA8B,UAAUG,SAAA;EAG1ChE,SAAA,CAAU;IACR,IAAI0D,aAAA,CAAcO,OAAO,IAAI,CAAC7B,KAAA,EAAOwB,KAAA,EAAO;MAC1CF,aAAA,CAAcO,OAAO,GAAG;IAC1B,OAAO,IAAI7B,KAAA,EAAOwB,KAAA,EAAO;MACvBF,aAAA,CAAcO,OAAO,GAAG;IAC1B;EACF,GAAG,CAACF,gBAAA,EAAkB3B,KAAA,EAAOwB,KAAA,CAAM;EAEnC5D,SAAA,CAAU;IACR,IAAIsD,oBAAA,EAAsBY,MAAA,GAAS,GAAG;MACpCT,qBAAA,CAAsBQ,OAAO,GAAGX,oBAAA,CAAqBa,MAAM,CACzD,CAACC,eAAA,EAAyBC,KAAA,EAAOC,CAAA;QAC/B,MAAMlB,KAAA,GACJ,WAAWiB,KAAA,IAASA,KAAA,CAAMjB,KAAK,GAAGiB,KAAA,CAAMjB,KAAK,GAAG,UAAUiB,KAAA,GAAQA,KAAA,CAAMhB,IAAI,GAAG;QAEjF,IAAIiB,CAAA,KAAM,GAAG;UACX,OAAO,GAAGvB,CAAA,CAAE,oBAAoB;YAC9BK,KAAA,EAAOxD,cAAA,CAAewD,KAAA,EAAON,IAAA;UAC/B,IAAI;QACN;QAEA,IAAIwB,CAAA,KAAMhB,oBAAA,CAAqBY,MAAM,GAAG,GAAG;UACzC,OAAO,GAAGE,eAAA,IAAmBrB,CAAA,CAAE,iBAAiBnD,cAAA,CAAewD,KAAA,EAAON,IAAA,GAAO;QAC/E;QAEA,OAAO,GAAGsB,eAAA,KAAoBxE,cAAA,CAAewD,KAAA,EAAON,IAAA,GAAO;MAC7D,GACA;IAEJ,OAAO;MACLW,qBAAA,CAAsBQ,OAAO,GAAGlB,CAAA,CAAE,oBAAoB;QACpDK,KAAA,EAAOxD,cAAA,CAAeuD,WAAA,EAAaL,IAAA;MACrC;IACF;EACF,GAAG,CAACC,CAAA,EAAGO,oBAAA,EAAsBR,IAAA,EAAMK,WAAA,CAAY;EAE/C,IAAIvB,aAAA,GAAmCC,sBAAA;EAEvC,IACEN,gBAAA,EAAkBgD,kBAAA,IAClB,CAAC9C,mBAAA,IACDkB,oBAAA,EAAsBuB,MAAA,GAAS,GAC/B;IACA;IACAtC,aAAA,GAAgB,C,GACXe,oBAAA,EACHd,sBAAA,EAAwBqC,MAAA,GAAS,iBAAIM,IAAA,CAACpE,SAAA,CAAUqE,OAAO,MAAK,aAAe,M,IACvE5C,sBAAA,IAA0B,EAAE,EACjC;EACH;EAEA,oBACE6C,KAAA,CAAC3E,QAAA;4BACC2E,KAAA,CAAC;MAAIC,SAAA,EAAWxD,SAAA;8BACduD,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGxD,SAAA,QAAiB;gCAClCqD,IAAA,CAAChE,UAAA,O,aACDgE,IAAA,CAAC1D,YAAA;UACC8D,SAAA,EAAW/B,UAAA,IAAc,UAAUA,UAAA,GAAaA,UAAA,EAAYQ,IAAA,GAAO;UACnEwB,YAAA,EAAeC,MAAA;YACb,OAAO,KAAK3C,kBAAA,CAAmB2C,MAAA;UACjC;UACA;UACAC,aAAA,EAAe3C,KAAA;UAEfgB,KAAA,EAAOK,qBAAA,CAAsBQ;WADxBzC,cAAA,GAGNO,YAAA,IAAgBS,iBAAA,gBACfgC,IAAA,CAAC;UAAIG,SAAA,EAAW,GAAGxD,SAAA,YAAqB;oBAAE;aACxC,M,aACJqD,IAAA,CAAC;UAAIG,SAAA,EAAW,GAAGxD,SAAA,WAAoB;oBACrC,aAAAuD,KAAA,CAAC;YAAIC,SAAA,EAAW,GAAGxD,SAAA,gBAAyB;uBACzC,CAAC+B,UAAA,iBAAcsB,IAAA,CAAC1E,KAAA,CAAMC,QAAQ;wBAAEuB,aAAA,IAAiBA;gBACjDI,aAAA,iBACC8C,IAAA,CAAC3D,IAAA;cACC,iBAAe,GAAGM,SAAA,UAAmB;cACrC,iBAAe2C,aAAA,KAAkB;cACjCa,SAAA,EAAW,GAAGxD,SAAA,kBAA2B;cACzC6D,IAAA,eAAMR,IAAA,CAAClE,WAAA;gBAAY2E,SAAA,EAAWnB,aAAA,KAAkB,YAAY,OAAO;;cACnEoB,OAAA,EAASA,CAAA,KACPnB,gBAAA,CAAiBD,aAAA,KAAkB,YAAY,YAAYE,SAAA;cAE7DmB,SAAA,EAAU;wBAETpC,CAAA,CAAE;6BAGPyB,IAAA,CAAC3D,IAAA;cACC,iBAAe,GAAGM,SAAA,QAAiB;cACnC,iBAAe2C,aAAA,KAAkB;cACjCa,SAAA,EAAW,GAAGxD,SAAA,gBAAyB;cACvC6D,IAAA,eAAMR,IAAA,CAAClE,WAAA;gBAAY2E,SAAA,EAAWnB,aAAA,KAAkB,UAAU,OAAO;;cACjEoB,OAAA,EAASA,CAAA,KAAMnB,gBAAA,CAAiBD,aAAA,KAAkB,UAAU,UAAUE,SAAA;cACtEmB,SAAA,EAAU;wBAETpC,CAAA,CAAE;gBAEJpB,UAAA,iBACC6C,IAAA,CAAC3D,IAAA;cACC,iBAAe,GAAGM,SAAA,OAAgB;cAClC,iBAAe2C,aAAA,KAAkB;cACjCa,SAAA,EAAW,GAAGxD,SAAA,eAAwB;cACtC6D,IAAA,eAAMR,IAAA,CAAClE,WAAA;cACP4E,OAAA,EAASA,CAAA,KAAMnB,gBAAA,CAAiBD,aAAA,KAAkB,SAAS,SAASE,SAAA;cACpEmB,SAAA,EAAU;wBAETpC,CAAA,CAAE;gBAGN,CAACtB,mBAAA,iBACA+C,IAAA,CAACxD,iBAAA;cACCe,YAAA,EAAcA,YAAA;cACdU,oBAAA,EAAsBA,oBAAA;cACtBG,WAAA,EAAaA;gBAGhBhB,aAAA,IAAiBwD,KAAA,CAAMC,OAAO,CAACzD,aAAA,KAAkBA,aAAA,CAAcsC,MAAM,GAAG,kBACvEM,IAAA,CAACrE,KAAA;cACCmF,MAAA,eAAQd,IAAA,CAACjE,IAAA;gBAAKgF,SAAA,EAAWxC,CAAA,CAAE;;cAC3B4B,SAAA,EAAW,GAAGxD,SAAA,SAAkB;cAChCqE,eAAA,EAAgB;cAChBC,EAAA,EAAG;cACHC,IAAA,EAAK;cACLC,aAAA,EAAc;wBAEd,aAAAnB,IAAA,CAACpE,SAAA,CAAUwF,WAAW;0BACnBhE,aAAA,CAAciE,GAAG,CAAC,CAACC,IAAA,EAAMxB,GAAA,kBACxBE,IAAA,CAACzE,QAAA;4BAAsC+F;mBAAxB,kBAAkBxB,GAAA,EAAG;;;;;UAQjD5C,aAAA,iBACC8C,IAAA,CAAC7D,aAAA;QACCgE,SAAA,EAAW,GAAGxD,SAAA,WAAoB;QAClC4E,MAAA,EAAQjC,aAAA,KAAkB,YAAY,SAAS;QAC/C2B,EAAA,EAAI,GAAGtE,SAAA,UAAmB;kBAE1B,aAAAqD,IAAA,CAAC5D,cAAA;UAAeY,cAAA,EAAgBD,gBAAA,CAAiByE;;uBAGrDxB,IAAA,CAAC7D,aAAA;QACCgE,SAAA,EAAW,GAAGxD,SAAA,SAAkB;QAChC4E,MAAA,EAAQjC,aAAA,KAAkB,UAAU,SAAS;QAC7C2B,EAAA,EAAI,GAAGtE,SAAA,QAAiB;kBAExB,aAAAqD,IAAA,CAACzD,YAAA;UACCkF,qBAAA,EAAuB1E,gBAAA,EAAkB2E,MAAA,EAAQC,MAAA;UACjD3E,cAAA,EAAgBD,gBAAA,CAAiByE,IAAI;UACrCxC,MAAA,EAAQjC,gBAAA,EAAkBiC,MAAA;UAC1BvB,eAAA,EAAiBA,eAAA;UACjBC,qBAAA,EAAuBA;;;QAI5BQ,gBAAA,EACAH,gBAAA,EACAF,qBAAA,EACAC,iBAAA;;AAGP","ignoreList":[]}
|
|
@@ -24,18 +24,14 @@
|
|
|
24
24
|
border-radius: 0;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
&__modified {
|
|
28
|
+
color: var(--theme-elevation-500);
|
|
29
|
+
}
|
|
30
|
+
|
|
27
31
|
&__buttons-wrap {
|
|
28
32
|
display: flex;
|
|
29
33
|
align-items: center;
|
|
30
|
-
gap:
|
|
31
|
-
|
|
32
|
-
.pill {
|
|
33
|
-
background-color: var(--theme-elevation-150);
|
|
34
|
-
|
|
35
|
-
&:hover {
|
|
36
|
-
background-color: var(--theme-elevation-100);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
34
|
+
gap: 4px;
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
.column-selector,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ClientCollectionConfig, QueryPreset, ResolvedFilterOptions, SanitizedCollectionPermission, Where } from 'payload';
|
|
2
|
+
export type ListControlsProps = {
|
|
3
|
+
readonly beforeActions?: React.ReactNode[];
|
|
4
|
+
readonly collectionConfig: ClientCollectionConfig;
|
|
5
|
+
readonly collectionSlug: string;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated
|
|
8
|
+
* These are now handled by the `ListSelection` component
|
|
9
|
+
*/
|
|
10
|
+
readonly disableBulkDelete?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated
|
|
13
|
+
* These are now handled by the `ListSelection` component
|
|
14
|
+
*/
|
|
15
|
+
readonly disableBulkEdit?: boolean;
|
|
16
|
+
readonly disableQueryPresets?: boolean;
|
|
17
|
+
readonly enableColumns?: boolean;
|
|
18
|
+
readonly enableSort?: boolean;
|
|
19
|
+
readonly handleSearchChange?: (search: string) => void;
|
|
20
|
+
readonly handleSortChange?: (sort: string) => void;
|
|
21
|
+
readonly handleWhereChange?: (where: Where) => void;
|
|
22
|
+
readonly listMenuItems?: React.ReactNode[];
|
|
23
|
+
readonly queryPreset?: QueryPreset;
|
|
24
|
+
readonly queryPresetPermissions?: SanitizedCollectionPermission;
|
|
25
|
+
readonly renderedFilters?: Map<string, React.ReactNode>;
|
|
26
|
+
readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAA;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACpE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListControls/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n QueryPreset,\n ResolvedFilterOptions,\n SanitizedCollectionPermission,\n Where,\n} from 'payload'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkDelete?: boolean\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkEdit?: boolean\n readonly disableQueryPresets?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly listMenuItems?: React.ReactNode[]\n readonly queryPreset?: QueryPreset\n readonly queryPresetPermissions?: SanitizedCollectionPermission\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n"],"mappings":"AAQA","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CollectionSlug, QueryPreset, SanitizedCollectionPermission } from 'payload';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare const useQueryPresets: ({ activePreset, collectionSlug, queryPresetPermissions, }: {
|
|
4
|
+
activePreset: QueryPreset;
|
|
5
|
+
collectionSlug: CollectionSlug;
|
|
6
|
+
queryPresetPermissions: SanitizedCollectionPermission;
|
|
7
|
+
}) => {
|
|
8
|
+
CreateNewPresetDrawer: React.ReactNode;
|
|
9
|
+
DeletePresetModal: React.ReactNode;
|
|
10
|
+
EditPresetDrawer: React.ReactNode;
|
|
11
|
+
hasModifiedPreset: boolean;
|
|
12
|
+
openPresetListDrawer: () => void;
|
|
13
|
+
PresetListDrawer: React.ReactNode;
|
|
14
|
+
queryPresetMenuItems: React.ReactNode[];
|
|
15
|
+
resetPreset: () => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useQueryPresets.d.ts.map
|