@payloadcms/ui 3.49.0-canary.7 → 3.49.0
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/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +65 -47
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.scss +10 -0
- package/dist/elements/DeleteMany/index.d.ts +17 -2
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +162 -49
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.scss +13 -0
- package/dist/elements/DocumentControls/index.d.ts +3 -0
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +24 -5
- 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 +4 -2
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts +4 -0
- package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.d.ts +1 -0
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +3 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts +2 -0
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +7 -3
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts +7 -2
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +39 -34
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.d.ts +3 -2
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +3 -1
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.js +2 -1
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
- package/dist/elements/GroupByBuilder/index.d.ts +9 -0
- package/dist/elements/GroupByBuilder/index.d.ts.map +1 -0
- package/dist/elements/GroupByBuilder/index.js +112 -0
- package/dist/elements/GroupByBuilder/index.js.map +1 -0
- package/dist/elements/GroupByBuilder/index.scss +39 -0
- package/dist/elements/LeaveWithoutSaving/index.d.ts +6 -1
- package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +69 -49
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +28 -4
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +4 -2
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +34 -15
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts +9 -3
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/index.d.ts +19 -0
- package/dist/elements/ListDrawer/index.d.ts.map +1 -1
- package/dist/elements/ListDrawer/index.js +19 -0
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts +7 -0
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +164 -0
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +1 -0
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +10 -0
- package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +1 -0
- package/dist/elements/ListHeaderTabs/ByFolderPill.js +70 -0
- package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +1 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +9 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +1 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.js +68 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -0
- package/dist/elements/ListHeaderTabs/TrashPill.d.ts +6 -0
- package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +1 -0
- package/dist/elements/ListHeaderTabs/TrashPill.js +53 -0
- package/dist/elements/ListHeaderTabs/TrashPill.js.map +1 -0
- package/dist/elements/{ListFolderPills → ListHeaderTabs}/index.scss +1 -2
- package/dist/elements/ListSelection/index.scss +1 -1
- package/dist/elements/PageControls/GroupByPageControls.d.ts +16 -0
- package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -0
- package/dist/elements/PageControls/GroupByPageControls.js +83 -0
- package/dist/elements/PageControls/GroupByPageControls.js.map +1 -0
- package/dist/elements/PageControls/index.d.ts +17 -0
- package/dist/elements/PageControls/index.d.ts.map +1 -0
- package/dist/elements/PageControls/index.js +70 -0
- package/dist/elements/PageControls/index.js.map +1 -0
- package/dist/elements/PageControls/index.scss +40 -0
- package/dist/elements/Pagination/ClickableArrow/index.scss +3 -3
- package/dist/elements/Pagination/index.js +1 -1
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/Pagination/index.scss +4 -4
- package/dist/elements/PermanentlyDeleteButton/index.d.ts +14 -0
- package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -0
- package/dist/elements/PermanentlyDeleteButton/index.js +147 -0
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -0
- package/dist/elements/PublishMany/DrawerContent.d.ts +2 -0
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +7 -3
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts +6 -1
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +38 -33
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +1 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +16 -11
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.d.ts.map +1 -1
- package/dist/elements/RenderTitle/index.js +1 -0
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.d.ts +15 -0
- package/dist/elements/RestoreButton/index.d.ts.map +1 -0
- package/dist/elements/RestoreButton/index.js +171 -0
- package/dist/elements/RestoreButton/index.js.map +1 -0
- package/dist/elements/RestoreButton/index.scss +25 -0
- package/dist/elements/RestoreMany/index.d.ts +9 -0
- package/dist/elements/RestoreMany/index.d.ts.map +1 -0
- package/dist/elements/RestoreMany/index.js +193 -0
- package/dist/elements/RestoreMany/index.js.map +1 -0
- package/dist/elements/RestoreMany/index.scss +25 -0
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +6 -4
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StickyToolbar/index.d.ts +6 -0
- package/dist/elements/StickyToolbar/index.d.ts.map +1 -0
- package/dist/elements/StickyToolbar/index.js +11 -0
- package/dist/elements/StickyToolbar/index.js.map +1 -0
- package/dist/elements/StickyToolbar/index.scss +27 -0
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +10 -8
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts +2 -0
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +4 -3
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/index.d.ts +1 -0
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +5 -4
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TrashBanner/index.d.ts +4 -0
- package/dist/elements/TrashBanner/index.d.ts.map +1 -0
- package/dist/elements/TrashBanner/index.js +37 -0
- package/dist/elements/TrashBanner/index.js.map +1 -0
- package/dist/elements/TrashBanner/index.scss +20 -0
- package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -0
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +6 -2
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +6 -1
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +38 -33
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +3 -3
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +2 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +24 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +1 -0
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +2 -0
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Select/Input.d.ts +1 -0
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +48 -45
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +7 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +2 -0
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/icons/Trash/index.d.ts +6 -0
- package/dist/icons/Trash/index.d.ts.map +1 -0
- package/dist/icons/Trash/index.js +22 -0
- package/dist/icons/Trash/index.js.map +1 -0
- package/dist/icons/Trash/index.scss +6 -0
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +6 -0
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +7 -0
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +24 -13
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
- package/dist/providers/ListQuery/mergeQuery.js +15 -1
- package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +7 -3
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/Selection/index.d.ts +6 -2
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +37 -19
- package/dist/providers/Selection/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/buildColumnState/index.d.ts +2 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +4 -2
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +2 -0
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.js +5 -7
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +29 -19
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/{elements/WhereBuilder/reduceFields.d.ts → utilities/reduceFieldsToOptions.d.ts} +3 -3
- package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -0
- package/dist/{elements/WhereBuilder/reduceFields.js → utilities/reduceFieldsToOptions.js} +11 -11
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -0
- package/dist/utilities/renderTable.d.ts +9 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +63 -22
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/index.js +15 -5
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +5 -4
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts +1 -0
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +26 -15
- 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 +59 -35
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/GroupByHeader/index.d.ts +10 -0
- package/dist/views/List/GroupByHeader/index.d.ts.map +1 -0
- package/dist/views/List/GroupByHeader/index.js +29 -0
- package/dist/views/List/GroupByHeader/index.js.map +1 -0
- package/dist/views/List/GroupByHeader/index.scss +17 -0
- package/dist/views/List/ListHeader/index.d.ts +4 -2
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +30 -10
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.d.ts +5 -1
- package/dist/views/List/ListSelection/index.d.ts.map +1 -1
- package/dist/views/List/ListSelection/index.js +53 -30
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +122 -170
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/index.scss +12 -35
- package/package.json +5 -5
- package/dist/elements/ListFolderPills/index.d.ts +0 -10
- package/dist/elements/ListFolderPills/index.d.ts.map +0 -1
- package/dist/elements/ListFolderPills/index.js +0 -97
- package/dist/elements/ListFolderPills/index.js.map +0 -1
- package/dist/elements/WhereBuilder/reduceFields.d.ts.map +0 -1
- package/dist/elements/WhereBuilder/reduceFields.js.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import './index.scss';
|
|
5
|
+
import React, { useMemo } from 'react';
|
|
6
|
+
import { SelectInput } from '../../fields/Select/Input.js';
|
|
7
|
+
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
8
|
+
import { useTranslation } from '../../providers/Translation/index.js';
|
|
9
|
+
import { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js';
|
|
10
|
+
import { ReactSelect } from '../ReactSelect/index.js';
|
|
11
|
+
const baseClass = 'group-by-builder';
|
|
12
|
+
/**
|
|
13
|
+
* Note: Some fields are already omitted from the list of fields:
|
|
14
|
+
* - fields with nested field, e.g. `tabs`, `groups`, etc.
|
|
15
|
+
* - fields that don't affect data, i.e. `row`, `collapsible`, `ui`, etc.
|
|
16
|
+
* So we don't technically need to omit them here, but do anyway.
|
|
17
|
+
* But some remaining fields still need an additional check, e.g. `richText`, etc.
|
|
18
|
+
*/
|
|
19
|
+
const supportedFieldTypes = ['text', 'textarea', 'number', 'select', 'relationship', 'date', 'checkbox', 'radio', 'email', 'number', 'upload'];
|
|
20
|
+
export const GroupByBuilder = ({
|
|
21
|
+
collectionSlug,
|
|
22
|
+
fields
|
|
23
|
+
}) => {
|
|
24
|
+
const {
|
|
25
|
+
i18n,
|
|
26
|
+
t
|
|
27
|
+
} = useTranslation();
|
|
28
|
+
const reducedFields = useMemo(() => reduceFieldsToOptions({
|
|
29
|
+
fields,
|
|
30
|
+
i18n
|
|
31
|
+
}), [fields, i18n]);
|
|
32
|
+
const {
|
|
33
|
+
query,
|
|
34
|
+
refineListData
|
|
35
|
+
} = useListQuery();
|
|
36
|
+
const groupByFieldName = query.groupBy?.replace(/^-/, '');
|
|
37
|
+
const groupByField = reducedFields.find(field => field.value === groupByFieldName);
|
|
38
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
39
|
+
className: baseClass,
|
|
40
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
41
|
+
className: `${baseClass}__header`,
|
|
42
|
+
children: [/*#__PURE__*/_jsx("p", {
|
|
43
|
+
children: t('general:groupByLabel', {
|
|
44
|
+
label: ''
|
|
45
|
+
})
|
|
46
|
+
}), query.groupBy && /*#__PURE__*/_jsx("button", {
|
|
47
|
+
className: `${baseClass}__clear-button`,
|
|
48
|
+
id: "group-by--reset",
|
|
49
|
+
onClick: async () => {
|
|
50
|
+
await refineListData({
|
|
51
|
+
groupBy: ''
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
type: "button",
|
|
55
|
+
children: t('general:clear')
|
|
56
|
+
})]
|
|
57
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
58
|
+
className: `${baseClass}__inputs`,
|
|
59
|
+
children: [/*#__PURE__*/_jsx(ReactSelect, {
|
|
60
|
+
filterOption: (option, inputValue) => (option?.data?.plainTextLabel || option.label).toLowerCase().includes(inputValue.toLowerCase()),
|
|
61
|
+
id: "group-by--field-select",
|
|
62
|
+
isClearable: true,
|
|
63
|
+
isMulti: false,
|
|
64
|
+
onChange: async v => {
|
|
65
|
+
const value = v === null ? undefined : v.value;
|
|
66
|
+
// value is being cleared
|
|
67
|
+
if (v === null) {
|
|
68
|
+
await refineListData({
|
|
69
|
+
groupBy: '',
|
|
70
|
+
page: 1
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
await refineListData({
|
|
74
|
+
groupBy: value ? query.groupBy?.startsWith('-') ? `-${value}` : value : undefined,
|
|
75
|
+
page: 1
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
options: reducedFields.filter(field_0 => !field_0.field.admin.disableListFilter && field_0.value !== 'id' && supportedFieldTypes.includes(field_0.field.type)),
|
|
79
|
+
value: {
|
|
80
|
+
label: groupByField?.label || t('general:selectValue'),
|
|
81
|
+
value: groupByFieldName || ''
|
|
82
|
+
}
|
|
83
|
+
}), /*#__PURE__*/_jsx(SelectInput, {
|
|
84
|
+
id: "group-by--sort",
|
|
85
|
+
isClearable: false,
|
|
86
|
+
name: "direction",
|
|
87
|
+
onChange: async ({
|
|
88
|
+
value: value_0
|
|
89
|
+
}) => {
|
|
90
|
+
if (!groupByFieldName) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
await refineListData({
|
|
94
|
+
groupBy: value_0 === 'asc' ? groupByFieldName : `-${groupByFieldName}`,
|
|
95
|
+
page: 1
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
options: [{
|
|
99
|
+
label: t('general:ascending'),
|
|
100
|
+
value: 'asc'
|
|
101
|
+
}, {
|
|
102
|
+
label: t('general:descending'),
|
|
103
|
+
value: 'desc'
|
|
104
|
+
}],
|
|
105
|
+
path: "direction",
|
|
106
|
+
readOnly: !groupByFieldName,
|
|
107
|
+
value: !query.groupBy ? 'asc' : typeof query.groupBy === 'string' ? `${query.groupBy.startsWith('-') ? 'desc' : 'asc'}` : ''
|
|
108
|
+
})]
|
|
109
|
+
})]
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useMemo","SelectInput","useListQuery","useTranslation","reduceFieldsToOptions","ReactSelect","baseClass","supportedFieldTypes","GroupByBuilder","collectionSlug","fields","i18n","t","reducedFields","query","refineListData","groupByFieldName","groupBy","replace","groupByField","find","field","value","_jsxs","className","_jsx","label","id","onClick","type","filterOption","option","inputValue","data","plainTextLabel","toLowerCase","includes","isClearable","isMulti","onChange","v","undefined","page","startsWith","options","filter","admin","disableListFilter","name","path","readOnly"],"sources":["../../../src/elements/GroupByBuilder/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, Field, SanitizedCollectionConfig } from 'payload'\n\nimport './index.scss'\n\nimport React, { useMemo } from 'react'\n\nimport { SelectInput } from '../../fields/Select/Input.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToOptions } from '../../utilities/reduceFieldsToOptions.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n fields: ClientField[]\n}\n\nconst baseClass = 'group-by-builder'\n\n/**\n * Note: Some fields are already omitted from the list of fields:\n * - fields with nested field, e.g. `tabs`, `groups`, etc.\n * - fields that don't affect data, i.e. `row`, `collapsible`, `ui`, etc.\n * So we don't technically need to omit them here, but do anyway.\n * But some remaining fields still need an additional check, e.g. `richText`, etc.\n */\nconst supportedFieldTypes: Field['type'][] = [\n 'text',\n 'textarea',\n 'number',\n 'select',\n 'relationship',\n 'date',\n 'checkbox',\n 'radio',\n 'email',\n 'number',\n 'upload',\n]\n\nexport const GroupByBuilder: React.FC<Props> = ({ collectionSlug, fields }) => {\n const { i18n, t } = useTranslation()\n\n const reducedFields = useMemo(() => reduceFieldsToOptions({ fields, i18n }), [fields, i18n])\n\n const { query, refineListData } = useListQuery()\n\n const groupByFieldName = query.groupBy?.replace(/^-/, '')\n\n const groupByField = reducedFields.find((field) => field.value === groupByFieldName)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <p>\n {t('general:groupByLabel', {\n label: '',\n })}\n </p>\n {query.groupBy && (\n <button\n className={`${baseClass}__clear-button`}\n id=\"group-by--reset\"\n onClick={async () => {\n await refineListData({\n groupBy: '',\n })\n }}\n type=\"button\"\n >\n {t('general:clear')}\n </button>\n )}\n </div>\n <div className={`${baseClass}__inputs`}>\n <ReactSelect\n filterOption={(option, inputValue) =>\n ((option?.data?.plainTextLabel as string) || option.label)\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n }\n id=\"group-by--field-select\"\n isClearable\n isMulti={false}\n onChange={async (v: { value: string } | null) => {\n const value = v === null ? undefined : v.value\n\n // value is being cleared\n if (v === null) {\n await refineListData({\n groupBy: '',\n page: 1,\n })\n }\n\n await refineListData({\n groupBy: value ? (query.groupBy?.startsWith('-') ? `-${value}` : value) : undefined,\n page: 1,\n })\n }}\n options={reducedFields.filter(\n (field) =>\n !field.field.admin.disableListFilter &&\n field.value !== 'id' &&\n supportedFieldTypes.includes(field.field.type),\n )}\n value={{\n label: groupByField?.label || t('general:selectValue'),\n value: groupByFieldName || '',\n }}\n />\n <SelectInput\n id=\"group-by--sort\"\n isClearable={false}\n name=\"direction\"\n onChange={async ({ value }: { value: string }) => {\n if (!groupByFieldName) {\n return\n }\n\n await refineListData({\n groupBy: value === 'asc' ? groupByFieldName : `-${groupByFieldName}`,\n page: 1,\n })\n }}\n options={[\n { label: t('general:ascending'), value: 'asc' },\n { label: t('general:descending'), value: 'desc' },\n ]}\n path=\"direction\"\n readOnly={!groupByFieldName}\n value={\n !query.groupBy\n ? 'asc'\n : typeof query.groupBy === 'string'\n ? `${query.groupBy.startsWith('-') ? 'desc' : 'asc'}`\n : ''\n }\n />\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@import '../../scss/styles.scss';
|
|
2
|
+
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.group-by-builder {
|
|
5
|
+
background: var(--theme-elevation-50);
|
|
6
|
+
padding: var(--base);
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
gap: calc(var(--base) / 2);
|
|
10
|
+
|
|
11
|
+
&__header {
|
|
12
|
+
width: 100%;
|
|
13
|
+
display: flex;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&__clear-button {
|
|
18
|
+
background: transparent;
|
|
19
|
+
border: none;
|
|
20
|
+
color: var(--theme-elevation-500);
|
|
21
|
+
line-height: inherit;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
font-size: inherit;
|
|
24
|
+
padding: 0;
|
|
25
|
+
text-decoration: underline;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__inputs {
|
|
29
|
+
width: 100%;
|
|
30
|
+
display: flex;
|
|
31
|
+
gap: base(1);
|
|
32
|
+
|
|
33
|
+
& > * {
|
|
34
|
+
flex-grow: 1;
|
|
35
|
+
width: 50%;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
type LeaveWithoutSavingProps = {
|
|
3
|
+
onConfirm?: () => Promise<void> | void;
|
|
4
|
+
onPrevent?: (nextHref: null | string) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps>;
|
|
7
|
+
export {};
|
|
3
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAa1C,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAa1C,KAAK,uBAAuB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAkDhE,CAAA"}
|
|
@@ -10,8 +10,12 @@ import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
|
10
10
|
import { useModal } from '../Modal/index.js';
|
|
11
11
|
import { usePreventLeave } from './usePreventLeave.js';
|
|
12
12
|
const modalSlug = 'leave-without-saving';
|
|
13
|
-
export const LeaveWithoutSaving =
|
|
14
|
-
const $ = _c(
|
|
13
|
+
export const LeaveWithoutSaving = t0 => {
|
|
14
|
+
const $ = _c(18);
|
|
15
|
+
const {
|
|
16
|
+
onConfirm,
|
|
17
|
+
onPrevent
|
|
18
|
+
} = t0;
|
|
15
19
|
const {
|
|
16
20
|
closeModal,
|
|
17
21
|
openModal
|
|
@@ -28,83 +32,99 @@ export const LeaveWithoutSaving = () => {
|
|
|
28
32
|
t
|
|
29
33
|
} = useTranslation();
|
|
30
34
|
const prevent = Boolean((modified || !isValid) && user);
|
|
31
|
-
let
|
|
32
|
-
if ($[0] !== openModal) {
|
|
33
|
-
|
|
35
|
+
let t1;
|
|
36
|
+
if ($[0] !== onPrevent || $[1] !== openModal) {
|
|
37
|
+
t1 = () => {
|
|
38
|
+
const activeHref = document.activeElement?.href || null;
|
|
39
|
+
if (onPrevent) {
|
|
40
|
+
onPrevent(activeHref);
|
|
41
|
+
}
|
|
34
42
|
openModal(modalSlug);
|
|
35
43
|
};
|
|
36
|
-
$[0] =
|
|
37
|
-
$[1] =
|
|
44
|
+
$[0] = onPrevent;
|
|
45
|
+
$[1] = openModal;
|
|
46
|
+
$[2] = t1;
|
|
38
47
|
} else {
|
|
39
|
-
|
|
48
|
+
t1 = $[2];
|
|
40
49
|
}
|
|
41
|
-
const
|
|
42
|
-
let
|
|
43
|
-
if ($[
|
|
44
|
-
|
|
50
|
+
const handlePrevent = t1;
|
|
51
|
+
let t2;
|
|
52
|
+
if ($[3] !== closeModal) {
|
|
53
|
+
t2 = () => {
|
|
45
54
|
closeModal(modalSlug);
|
|
46
55
|
};
|
|
47
|
-
$[
|
|
48
|
-
$[
|
|
56
|
+
$[3] = closeModal;
|
|
57
|
+
$[4] = t2;
|
|
49
58
|
} else {
|
|
50
|
-
|
|
59
|
+
t2 = $[4];
|
|
51
60
|
}
|
|
52
|
-
const handleAccept =
|
|
53
|
-
let
|
|
54
|
-
if ($[
|
|
55
|
-
|
|
61
|
+
const handleAccept = t2;
|
|
62
|
+
let t3;
|
|
63
|
+
if ($[5] !== handleAccept || $[6] !== handlePrevent || $[7] !== hasAccepted || $[8] !== prevent) {
|
|
64
|
+
t3 = {
|
|
56
65
|
hasAccepted,
|
|
57
66
|
onAccept: handleAccept,
|
|
58
|
-
onPrevent,
|
|
67
|
+
onPrevent: handlePrevent,
|
|
59
68
|
prevent
|
|
60
69
|
};
|
|
61
|
-
$[
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
64
|
-
$[
|
|
65
|
-
$[
|
|
70
|
+
$[5] = handleAccept;
|
|
71
|
+
$[6] = handlePrevent;
|
|
72
|
+
$[7] = hasAccepted;
|
|
73
|
+
$[8] = prevent;
|
|
74
|
+
$[9] = t3;
|
|
66
75
|
} else {
|
|
67
|
-
|
|
76
|
+
t3 = $[9];
|
|
68
77
|
}
|
|
69
|
-
usePreventLeave(
|
|
70
|
-
let t3;
|
|
71
|
-
if ($[9] !== closeModal) {
|
|
72
|
-
t3 = () => {
|
|
73
|
-
closeModal(modalSlug);
|
|
74
|
-
};
|
|
75
|
-
$[9] = closeModal;
|
|
76
|
-
$[10] = t3;
|
|
77
|
-
} else {
|
|
78
|
-
t3 = $[10];
|
|
79
|
-
}
|
|
80
|
-
const onCancel = t3;
|
|
78
|
+
usePreventLeave(t3);
|
|
81
79
|
let t4;
|
|
82
|
-
if ($[
|
|
80
|
+
if ($[10] !== closeModal) {
|
|
83
81
|
t4 = () => {
|
|
84
|
-
|
|
82
|
+
closeModal(modalSlug);
|
|
85
83
|
};
|
|
84
|
+
$[10] = closeModal;
|
|
86
85
|
$[11] = t4;
|
|
87
86
|
} else {
|
|
88
87
|
t4 = $[11];
|
|
89
88
|
}
|
|
90
|
-
const
|
|
89
|
+
const onCancel = t4;
|
|
91
90
|
let t5;
|
|
92
|
-
if ($[12] !==
|
|
93
|
-
t5 =
|
|
91
|
+
if ($[12] !== onConfirm) {
|
|
92
|
+
t5 = async () => {
|
|
93
|
+
if (onConfirm) {
|
|
94
|
+
;
|
|
95
|
+
try {
|
|
96
|
+
await onConfirm();
|
|
97
|
+
} catch (t6) {
|
|
98
|
+
const err = t6;
|
|
99
|
+
console.error("Error in LeaveWithoutSaving onConfirm:", err);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
setHasAccepted(true);
|
|
103
|
+
};
|
|
104
|
+
$[12] = onConfirm;
|
|
105
|
+
$[13] = t5;
|
|
106
|
+
} else {
|
|
107
|
+
t5 = $[13];
|
|
108
|
+
}
|
|
109
|
+
const handleConfirm = t5;
|
|
110
|
+
let t6;
|
|
111
|
+
if ($[14] !== handleConfirm || $[15] !== onCancel || $[16] !== t) {
|
|
112
|
+
t6 = _jsx(ConfirmationModal, {
|
|
94
113
|
body: t("general:changesNotSaved"),
|
|
95
114
|
cancelLabel: t("general:stayOnThisPage"),
|
|
96
115
|
confirmLabel: t("general:leaveAnyway"),
|
|
97
116
|
heading: t("general:leaveWithoutSaving"),
|
|
98
117
|
modalSlug,
|
|
99
118
|
onCancel,
|
|
100
|
-
onConfirm
|
|
119
|
+
onConfirm: handleConfirm
|
|
101
120
|
});
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
121
|
+
$[14] = handleConfirm;
|
|
122
|
+
$[15] = onCancel;
|
|
123
|
+
$[16] = t;
|
|
124
|
+
$[17] = t6;
|
|
105
125
|
} else {
|
|
106
|
-
|
|
126
|
+
t6 = $[17];
|
|
107
127
|
}
|
|
108
|
-
return
|
|
128
|
+
return t6;
|
|
109
129
|
};
|
|
110
130
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","modalSlug","LeaveWithoutSaving","$","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","t","prevent","Boolean","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","modalSlug","LeaveWithoutSaving","t0","$","onConfirm","onPrevent","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","t","prevent","Boolean","t1","activeHref","document","activeElement","href","handlePrevent","t2","handleAccept","t3","onAccept","t4","onCancel","t5","t6","err","console","error","handleConfirm","_jsx","body","cancelLabel","confirmLabel","heading"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\nconst modalSlug = 'leave-without-saving'\n\ntype LeaveWithoutSavingProps = {\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({ onConfirm, onPrevent }) => {\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n const { t } = useTranslation()\n\n const prevent = Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={handleConfirm}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAkBnD,OAAO,cAAc,CAAA;AAIrB;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyQpD,CAAA"}
|
|
@@ -14,6 +14,7 @@ import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
|
14
14
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
15
15
|
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
16
16
|
import { ColumnSelector } from '../ColumnSelector/index.js';
|
|
17
|
+
import { GroupByBuilder } from '../GroupByBuilder/index.js';
|
|
17
18
|
import { Pill } from '../Pill/index.js';
|
|
18
19
|
import { SearchFilter } from '../SearchFilter/index.js';
|
|
19
20
|
import { WhereBuilder } from '../WhereBuilder/index.js';
|
|
@@ -106,7 +107,7 @@ export const ListControls = props => {
|
|
|
106
107
|
}
|
|
107
108
|
}, [t, listSearchableFields, i18n, searchLabel]);
|
|
108
109
|
let listMenuItems = listMenuItemsFromProps;
|
|
109
|
-
if (collectionConfig
|
|
110
|
+
if (collectionConfig.enableQueryPresets && !disableQueryPresets && queryPresetMenuItems?.length > 0) {
|
|
110
111
|
// Cannot push or unshift into `listMenuItemsFromProps` as it will mutate the original array
|
|
111
112
|
listMenuItems = [...queryPresetMenuItems, listMenuItemsFromProps?.length > 0 ? /*#__PURE__*/_jsx(PopupList.Divider, {}, "divider") : null, ...(listMenuItemsFromProps || [])];
|
|
112
113
|
}
|
|
@@ -117,7 +118,6 @@ export const ListControls = props => {
|
|
|
117
118
|
className: `${baseClass}__wrap`,
|
|
118
119
|
children: [/*#__PURE__*/_jsx(SearchIcon, {}), /*#__PURE__*/_jsx(SearchFilter, {
|
|
119
120
|
handleChange: handleSearchChange,
|
|
120
|
-
// eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
|
|
121
121
|
label: searchLabelTranslated.current,
|
|
122
122
|
searchQueryParam: query?.search
|
|
123
123
|
}, collectionSlug), activePreset && hasModifiedPreset ? /*#__PURE__*/_jsx("div", {
|
|
@@ -136,6 +136,7 @@ export const ListControls = props => {
|
|
|
136
136
|
icon: /*#__PURE__*/_jsx(ChevronIcon, {
|
|
137
137
|
direction: visibleDrawer === 'columns' ? 'up' : 'down'
|
|
138
138
|
}),
|
|
139
|
+
id: "toggle-columns",
|
|
139
140
|
onClick: () => setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
|
|
140
141
|
pillStyle: "light",
|
|
141
142
|
size: "small",
|
|
@@ -147,6 +148,7 @@ export const ListControls = props => {
|
|
|
147
148
|
icon: /*#__PURE__*/_jsx(ChevronIcon, {
|
|
148
149
|
direction: visibleDrawer === 'where' ? 'up' : 'down'
|
|
149
150
|
}),
|
|
151
|
+
id: "toggle-list-filters",
|
|
150
152
|
onClick: () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
|
|
151
153
|
pillStyle: "light",
|
|
152
154
|
size: "small",
|
|
@@ -164,6 +166,20 @@ export const ListControls = props => {
|
|
|
164
166
|
activePreset: activePreset,
|
|
165
167
|
openPresetListDrawer: openPresetListDrawer,
|
|
166
168
|
resetPreset: resetPreset
|
|
169
|
+
}), collectionConfig.admin.groupBy && /*#__PURE__*/_jsx(Pill, {
|
|
170
|
+
"aria-controls": `${baseClass}-group-by`,
|
|
171
|
+
"aria-expanded": visibleDrawer === 'group-by',
|
|
172
|
+
className: `${baseClass}__toggle-group-by`,
|
|
173
|
+
icon: /*#__PURE__*/_jsx(ChevronIcon, {
|
|
174
|
+
direction: visibleDrawer === 'group-by' ? 'up' : 'down'
|
|
175
|
+
}),
|
|
176
|
+
id: "toggle-group-by",
|
|
177
|
+
onClick: () => setVisibleDrawer(visibleDrawer !== 'group-by' ? 'group-by' : undefined),
|
|
178
|
+
pillStyle: "light",
|
|
179
|
+
size: "small",
|
|
180
|
+
children: t('general:groupByLabel', {
|
|
181
|
+
label: ''
|
|
182
|
+
})
|
|
167
183
|
}), listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && /*#__PURE__*/_jsx(Popup, {
|
|
168
184
|
button: /*#__PURE__*/_jsx(Dots, {
|
|
169
185
|
ariaLabel: t('general:moreOptions')
|
|
@@ -191,12 +207,20 @@ export const ListControls = props => {
|
|
|
191
207
|
height: visibleDrawer === 'where' ? 'auto' : 0,
|
|
192
208
|
id: `${baseClass}-where`,
|
|
193
209
|
children: /*#__PURE__*/_jsx(WhereBuilder, {
|
|
194
|
-
collectionPluralLabel: collectionConfig
|
|
210
|
+
collectionPluralLabel: collectionConfig.labels?.plural,
|
|
195
211
|
collectionSlug: collectionConfig.slug,
|
|
196
|
-
fields: collectionConfig
|
|
212
|
+
fields: collectionConfig.fields,
|
|
197
213
|
renderedFilters: renderedFilters,
|
|
198
214
|
resolvedFilterOptions: resolvedFilterOptions
|
|
199
215
|
})
|
|
216
|
+
}), collectionConfig.admin.groupBy && /*#__PURE__*/_jsx(AnimateHeight, {
|
|
217
|
+
className: `${baseClass}__group-by`,
|
|
218
|
+
height: visibleDrawer === 'group-by' ? 'auto' : 0,
|
|
219
|
+
id: `${baseClass}-group-by`,
|
|
220
|
+
children: /*#__PURE__*/_jsx(GroupByBuilder, {
|
|
221
|
+
collectionSlug: collectionConfig.slug,
|
|
222
|
+
fields: collectionConfig.fields
|
|
223
|
+
})
|
|
200
224
|
})]
|
|
201
225
|
}), PresetListDrawer, EditPresetDrawer, CreateNewPresetDrawer, DeletePresetModal]
|
|
202
226
|
});
|
|
@@ -1 +1 @@
|
|
|
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","enableFilters","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","handleChange","searchQueryParam","search","icon","direction","onClick","pillStyle","size","Array","isArray","button","ariaLabel","horizontalAlign","id","verticalAlign","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 enableFilters = 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 i18n,\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 handleChange={handleSearchChange}\n key={collectionSlug}\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n label={searchLabelTranslated.current}\n searchQueryParam={query?.search}\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 size=\"small\"\n >\n {t('general:columns')}\n </Pill>\n )}\n {enableFilters && (\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 size=\"small\"\n >\n {t('general:filters')}\n </Pill>\n )}\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 size=\"small\"\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=\"medium\"\n verticalAlign=\"bottom\"\n >\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\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,aAAA,GAAgB,IAAI;IACpBC,UAAA,GAAa,KAAK;IAClBC,aAAA,EAAeC,sBAAsB;IACrCC,WAAA,EAAaC,YAAY;IACzBC,sBAAsB;IACtBC,eAAe;IACfC;EAAqB,CACtB,GAAGd,KAAA;EAEJ,MAAM;IAAEe,kBAAkB;IAAEC;EAAK,CAAE,GAAG5B,YAAA;EAEtC,MAAM;IACJ6B,qBAAqB;IACrBC,iBAAiB;IACjBC,gBAAgB;IAChBC,iBAAiB;IACjBC,oBAAoB;IACpBC,gBAAgB;IAChBC,oBAAoB;IACpBC;EAAW,CACZ,GAAG3B,eAAA,CAAgB;IAClBc,YAAA;IACAR,cAAA;IACAS;EACF;EAEA,MAAMa,UAAA,GAAazC,gBAAA,CAAiBkB,gBAAA;EACpC,MAAM;IAAEwB,IAAI;IAAEC;EAAC,CAAE,GAAGtC,cAAA;EAEpB,MAAM;IACJuC,WAAA,EAAa;MAAEC,CAAA,EAAGC;IAAU;EAAE,CAC/B,GAAGxD,aAAA;EAEJ,MAAMyD,WAAA,GACJ,CAACN,UAAA,IACClD,cAAA,CACE,WAAWkD,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,GAAuBtC,yBAAA,CAC3BM,gBAAA,CAAiBiC,KAAK,CAACD,oBAAoB,EAC3ChC,gBAAA,CAAiBkC,MAAM,EACvBV,IAAA;EAGF,MAAMW,qBAAA,GAAwBzD,MAAA,CAC5B+C,CAAA,CAAE,oBAAoB;IAAEK,KAAA,EAAOzD,cAAA,CAAewD,WAAA,EAAaL,IAAA;EAAM;EAGnE,MAAMY,aAAA,GAAgB1D,MAAA,CAAO2D,OAAA,CAAQvB,KAAA,EAAOwB,KAAA;EAE5C,MAAMC,2BAAA,GAA8BjE,kBAAA,CAAmBwC,KAAA,EAAOwB,KAAA;EAC9D,MAAM,CAACE,aAAA,EAAeC,gBAAA,CAAiB,GAAG9D,QAAA,CACxC4D,2BAAA,GAA8B,UAAUG,SAAA;EAG1CjE,SAAA,CAAU;IACR,IAAI2D,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;EAEnC7D,SAAA,CAAU;IACR,IAAIuD,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,EAAOzD,cAAA,CAAeyD,KAAA,EAAON,IAAA;UAC/B,IAAI;QACN;QAEA,IAAIwB,CAAA,KAAMhB,oBAAA,CAAqBY,MAAM,GAAG,GAAG;UACzC,OAAO,GAAGE,eAAA,IAAmBrB,CAAA,CAAE,iBAAiBpD,cAAA,CAAeyD,KAAA,EAAON,IAAA,GAAO;QAC/E;QAEA,OAAO,GAAGsB,eAAA,KAAoBzE,cAAA,CAAeyD,KAAA,EAAON,IAAA,GAAO;MAC7D,GACA;IAEJ,OAAO;MACLW,qBAAA,CAAsBQ,OAAO,GAAGlB,CAAA,CAAE,oBAAoB;QACpDK,KAAA,EAAOzD,cAAA,CAAewD,WAAA,EAAaL,IAAA;MACrC;IACF;EACF,GAAG,CAACC,CAAA,EAAGO,oBAAA,EAAsBR,IAAA,EAAMK,WAAA,CAAY;EAE/C,IAAIvB,aAAA,GAAmCC,sBAAA;EAEvC,IACEP,gBAAA,EAAkBiD,kBAAA,IAClB,CAAC/C,mBAAA,IACDmB,oBAAA,EAAsBuB,MAAA,GAAS,GAC/B;IACA;IACAtC,aAAA,GAAgB,C,GACXe,oBAAA,EACHd,sBAAA,EAAwBqC,MAAA,GAAS,iBAAIM,IAAA,CAACrE,SAAA,CAAUsE,OAAO,MAAK,aAAe,M,IACvE5C,sBAAA,IAA0B,EAAE,EACjC;EACH;EAEA,oBACE6C,KAAA,CAAC5E,QAAA;4BACC4E,KAAA,CAAC;MAAIC,SAAA,EAAWzD,SAAA;8BACdwD,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGzD,SAAA,QAAiB;gCAClCsD,IAAA,CAACjE,UAAA,O,aACDiE,IAAA,CAAC3D,YAAA;UACC+D,YAAA,EAAczC,kBAAA;UAEd;UACAiB,KAAA,EAAOK,qBAAA,CAAsBQ,OAAO;UACpCY,gBAAA,EAAkBzC,KAAA,EAAO0C;WAHpBvD,cAAA,GAKNQ,YAAA,IAAgBS,iBAAA,gBACfgC,IAAA,CAAC;UAAIG,SAAA,EAAW,GAAGzD,SAAA,YAAqB;oBAAE;aACxC,M,aACJsD,IAAA,CAAC;UAAIG,SAAA,EAAW,GAAGzD,SAAA,WAAoB;oBACrC,aAAAwD,KAAA,CAAC;YAAIC,SAAA,EAAW,GAAGzD,SAAA,gBAAyB;uBACzC,CAACgC,UAAA,iBAAcsB,IAAA,CAAC3E,KAAA,CAAMC,QAAQ;wBAAEuB,aAAA,IAAiBA;gBACjDI,aAAA,iBACC+C,IAAA,CAAC5D,IAAA;cACC,iBAAe,GAAGM,SAAA,UAAmB;cACrC,iBAAe4C,aAAA,KAAkB;cACjCa,SAAA,EAAW,GAAGzD,SAAA,kBAA2B;cACzC6D,IAAA,eAAMP,IAAA,CAACnE,WAAA;gBAAY2E,SAAA,EAAWlB,aAAA,KAAkB,YAAY,OAAO;;cACnEmB,OAAA,EAASA,CAAA,KACPlB,gBAAA,CAAiBD,aAAA,KAAkB,YAAY,YAAYE,SAAA;cAE7DkB,SAAA,EAAU;cACVC,IAAA,EAAK;wBAEJpC,CAAA,CAAE;gBAGNrB,aAAA,iBACC8C,IAAA,CAAC5D,IAAA;cACC,iBAAe,GAAGM,SAAA,QAAiB;cACnC,iBAAe4C,aAAA,KAAkB;cACjCa,SAAA,EAAW,GAAGzD,SAAA,gBAAyB;cACvC6D,IAAA,eAAMP,IAAA,CAACnE,WAAA;gBAAY2E,SAAA,EAAWlB,aAAA,KAAkB,UAAU,OAAO;;cACjEmB,OAAA,EAASA,CAAA,KAAMlB,gBAAA,CAAiBD,aAAA,KAAkB,UAAU,UAAUE,SAAA;cACtEkB,SAAA,EAAU;cACVC,IAAA,EAAK;wBAEJpC,CAAA,CAAE;gBAGNpB,UAAA,iBACC6C,IAAA,CAAC5D,IAAA;cACC,iBAAe,GAAGM,SAAA,OAAgB;cAClC,iBAAe4C,aAAA,KAAkB;cACjCa,SAAA,EAAW,GAAGzD,SAAA,eAAwB;cACtC6D,IAAA,eAAMP,IAAA,CAACnE,WAAA;cACP4E,OAAA,EAASA,CAAA,KAAMlB,gBAAA,CAAiBD,aAAA,KAAkB,SAAS,SAASE,SAAA;cACpEkB,SAAA,EAAU;cACVC,IAAA,EAAK;wBAEJpC,CAAA,CAAE;gBAGN,CAACvB,mBAAA,iBACAgD,IAAA,CAACzD,iBAAA;cACCgB,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,CAACtE,KAAA;cACCoF,MAAA,eAAQd,IAAA,CAAClE,IAAA;gBAAKiF,SAAA,EAAWxC,CAAA,CAAE;;cAC3B4B,SAAA,EAAW,GAAGzD,SAAA,SAAkB;cAChCsE,eAAA,EAAgB;cAChBC,EAAA,EAAG;cACHN,IAAA,EAAK;cACLO,aAAA,EAAc;wBAEb9D,aAAA,CAAc+D,GAAG,CAAC,CAACC,IAAA,EAAMtB,GAAA,kBACxBE,IAAA,CAAC1E,QAAA;0BAAsC8F;iBAAxB,kBAAkBtB,GAAA,EAAG;;;;UAO/C7C,aAAA,iBACC+C,IAAA,CAAC9D,aAAA;QACCiE,SAAA,EAAW,GAAGzD,SAAA,WAAoB;QAClC2E,MAAA,EAAQ/B,aAAA,KAAkB,YAAY,SAAS;QAC/C2B,EAAA,EAAI,GAAGvE,SAAA,UAAmB;kBAE1B,aAAAsD,IAAA,CAAC7D,cAAA;UAAeY,cAAA,EAAgBD,gBAAA,CAAiBwE;;uBAGrDtB,IAAA,CAAC9D,aAAA;QACCiE,SAAA,EAAW,GAAGzD,SAAA,SAAkB;QAChC2E,MAAA,EAAQ/B,aAAA,KAAkB,UAAU,SAAS;QAC7C2B,EAAA,EAAI,GAAGvE,SAAA,QAAiB;kBAExB,aAAAsD,IAAA,CAAC1D,YAAA;UACCiF,qBAAA,EAAuBzE,gBAAA,EAAkB0E,MAAA,EAAQC,MAAA;UACjD1E,cAAA,EAAgBD,gBAAA,CAAiBwE,IAAI;UACrCtC,MAAA,EAAQlC,gBAAA,EAAkBkC,MAAA;UAC1BvB,eAAA,EAAiBA,eAAA;UACjBC,qBAAA,EAAuBA;;;QAI5BQ,gBAAA,EACAH,gBAAA,EACAF,qBAAA,EACAC,iBAAA;;AAGP","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","GroupByBuilder","Pill","SearchFilter","WhereBuilder","ActiveQueryPreset","getTextFieldsToBeSearched","useQueryPresets","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","enableFilters","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","handleChange","searchQueryParam","search","icon","direction","id","onClick","pillStyle","size","groupBy","Array","isArray","button","ariaLabel","horizontalAlign","verticalAlign","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 { GroupByBuilder } from '../GroupByBuilder/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 enableFilters = 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 i18n,\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\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'group-by' | '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 handleChange={handleSearchChange}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n searchQueryParam={query?.search}\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 id=\"toggle-columns\"\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:columns')}\n </Pill>\n )}\n {enableFilters && (\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 id=\"toggle-list-filters\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:filters')}\n </Pill>\n )}\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 size=\"small\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {!disableQueryPresets && (\n <ActiveQueryPreset\n activePreset={activePreset}\n openPresetListDrawer={openPresetListDrawer}\n resetPreset={resetPreset}\n />\n )}\n {collectionConfig.admin.groupBy && (\n <Pill\n aria-controls={`${baseClass}-group-by`}\n aria-expanded={visibleDrawer === 'group-by'}\n className={`${baseClass}__toggle-group-by`}\n icon={<ChevronIcon direction={visibleDrawer === 'group-by' ? 'up' : 'down'} />}\n id=\"toggle-group-by\"\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'group-by' ? 'group-by' : undefined)\n }\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:groupByLabel', {\n label: '',\n })}\n </Pill>\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=\"medium\"\n verticalAlign=\"bottom\"\n >\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\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 {collectionConfig.admin.groupBy && (\n <AnimateHeight\n className={`${baseClass}__group-by`}\n height={visibleDrawer === 'group-by' ? 'auto' : 0}\n id={`${baseClass}-group-by`}\n >\n <GroupByBuilder\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig.fields}\n />\n </AnimateHeight>\n )}\n </div>\n {PresetListDrawer}\n {EditPresetDrawer}\n {CreateNewPresetDrawer}\n {DeletePresetModal}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
|
|
37
37
|
.pill-selector,
|
|
38
38
|
.where-builder,
|
|
39
|
-
.sort-complex
|
|
39
|
+
.sort-complex,
|
|
40
|
+
.group-by-builder {
|
|
40
41
|
margin-top: base(1);
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -90,7 +91,8 @@
|
|
|
90
91
|
|
|
91
92
|
&__toggle-columns,
|
|
92
93
|
&__toggle-where,
|
|
93
|
-
&__toggle-sort
|
|
94
|
+
&__toggle-sort,
|
|
95
|
+
&__toggle-group-by {
|
|
94
96
|
flex: 1;
|
|
95
97
|
}
|
|
96
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAUjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8LvD,CAAA"}
|