@payloadcms/ui 3.26.0 → 3.27.0-canary.7edf702

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.
Files changed (234) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +1 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/EditForm/index.js +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  7. package/dist/elements/ColumnSelector/index.js +1 -1
  8. package/dist/elements/ColumnSelector/index.js.map +1 -1
  9. package/dist/elements/ColumnSelector/index.scss +2 -3
  10. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  11. package/dist/elements/DeleteDocument/index.js +2 -3
  12. package/dist/elements/DeleteDocument/index.js.map +1 -1
  13. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  14. package/dist/elements/DeleteMany/index.js +1 -1
  15. package/dist/elements/DeleteMany/index.js.map +1 -1
  16. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  17. package/dist/elements/DocumentControls/index.js +1 -1
  18. package/dist/elements/DocumentControls/index.js.map +1 -1
  19. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  20. package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
  21. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  22. package/dist/elements/DocumentDrawer/types.d.ts +4 -0
  23. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  24. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  25. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  26. package/dist/elements/DuplicateDocument/index.js +1 -1
  27. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  28. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  29. package/dist/elements/EditMany/DrawerContent.js +1 -1
  30. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  31. package/dist/elements/ListControls/ActiveListPreset/index.d.ts +8 -0
  32. package/dist/elements/ListControls/ActiveListPreset/index.d.ts.map +1 -0
  33. package/dist/elements/ListControls/ActiveListPreset/index.js +102 -0
  34. package/dist/elements/ListControls/ActiveListPreset/index.js.map +1 -0
  35. package/dist/elements/ListControls/ActiveListPreset/index.scss +21 -0
  36. package/dist/elements/ListControls/index.d.ts +1 -24
  37. package/dist/elements/ListControls/index.d.ts.map +1 -1
  38. package/dist/elements/ListControls/index.js +112 -86
  39. package/dist/elements/ListControls/index.js.map +1 -1
  40. package/dist/elements/ListControls/index.scss +5 -9
  41. package/dist/elements/ListControls/types.d.ts +28 -0
  42. package/dist/elements/ListControls/types.d.ts.map +1 -0
  43. package/dist/elements/ListControls/types.js.map +1 -0
  44. package/dist/elements/ListControls/useListPresets.d.ts +16 -0
  45. package/dist/elements/ListControls/useListPresets.d.ts.map +1 -0
  46. package/dist/elements/ListControls/useListPresets.js +253 -0
  47. package/dist/elements/ListControls/useListPresets.js.map +1 -0
  48. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  49. package/dist/elements/ListDrawer/DrawerContent.js +4 -2
  50. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  51. package/dist/elements/ListDrawer/types.d.ts +3 -2
  52. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  53. package/dist/elements/ListDrawer/types.js.map +1 -1
  54. package/dist/elements/ListPresets/cells/AccessCell/index.d.ts +4 -0
  55. package/dist/elements/ListPresets/cells/AccessCell/index.d.ts.map +1 -0
  56. package/dist/elements/ListPresets/cells/AccessCell/index.js +25 -0
  57. package/dist/elements/ListPresets/cells/AccessCell/index.js.map +1 -0
  58. package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts +4 -0
  59. package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts.map +1 -0
  60. package/dist/elements/ListPresets/cells/ColumnsCell/index.js +11 -0
  61. package/dist/elements/ListPresets/cells/ColumnsCell/index.js.map +1 -0
  62. package/dist/elements/ListPresets/cells/WhereCell/index.d.ts +4 -0
  63. package/dist/elements/ListPresets/cells/WhereCell/index.d.ts.map +1 -0
  64. package/dist/elements/ListPresets/cells/WhereCell/index.js +23 -0
  65. package/dist/elements/ListPresets/cells/WhereCell/index.js.map +1 -0
  66. package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts +3 -0
  67. package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts.map +1 -0
  68. package/dist/elements/ListPresets/fields/AccessLabel/index.js +19 -0
  69. package/dist/elements/ListPresets/fields/AccessLabel/index.js.map +1 -0
  70. package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts +4 -0
  71. package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts.map +1 -0
  72. package/dist/elements/ListPresets/fields/ColumnsField/index.js +64 -0
  73. package/dist/elements/ListPresets/fields/ColumnsField/index.js.map +1 -0
  74. package/dist/elements/ListPresets/fields/ColumnsField/index.scss +28 -0
  75. package/dist/elements/ListPresets/fields/WhereField/index.d.ts +4 -0
  76. package/dist/elements/ListPresets/fields/WhereField/index.d.ts.map +1 -0
  77. package/dist/elements/ListPresets/fields/WhereField/index.js +118 -0
  78. package/dist/elements/ListPresets/fields/WhereField/index.js.map +1 -0
  79. package/dist/elements/ListPresets/fields/WhereField/index.scss +23 -0
  80. package/dist/elements/Logout/index.d.ts.map +1 -1
  81. package/dist/elements/Logout/index.js +1 -1
  82. package/dist/elements/Logout/index.js.map +1 -1
  83. package/dist/elements/Pill/index.d.ts +1 -1
  84. package/dist/elements/Pill/index.d.ts.map +1 -1
  85. package/dist/elements/Pill/index.js +2 -0
  86. package/dist/elements/Pill/index.js.map +1 -1
  87. package/dist/elements/Pill/index.scss +29 -6
  88. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  89. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  90. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  91. package/dist/elements/RelationshipTable/index.js +3 -4
  92. package/dist/elements/RelationshipTable/index.js.map +1 -1
  93. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  94. package/dist/elements/StayLoggedIn/index.js +1 -1
  95. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  96. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  97. package/dist/elements/Table/DefaultCell/index.js +1 -2
  98. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  99. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  100. package/dist/elements/WhereBuilder/index.js +1 -2
  101. package/dist/elements/WhereBuilder/index.js.map +1 -1
  102. package/dist/exports/client/index.d.ts +8 -2
  103. package/dist/exports/client/index.d.ts.map +1 -1
  104. package/dist/exports/client/index.js +11 -11
  105. package/dist/exports/client/index.js.map +4 -4
  106. package/dist/exports/shared/index.d.ts +8 -3
  107. package/dist/exports/shared/index.d.ts.map +1 -1
  108. package/dist/exports/shared/index.js +2 -2
  109. package/dist/exports/shared/index.js.map +4 -4
  110. package/dist/graphics/Account/index.d.ts.map +1 -1
  111. package/dist/graphics/Account/index.js +1 -1
  112. package/dist/graphics/Account/index.js.map +1 -1
  113. package/dist/icons/Chevron/index.d.ts +1 -0
  114. package/dist/icons/Chevron/index.d.ts.map +1 -1
  115. package/dist/icons/Chevron/index.js +2 -0
  116. package/dist/icons/Chevron/index.js.map +1 -1
  117. package/dist/icons/Dots/index.d.ts +2 -0
  118. package/dist/icons/Dots/index.d.ts.map +1 -1
  119. package/dist/icons/Dots/index.js +5 -2
  120. package/dist/icons/Dots/index.js.map +1 -1
  121. package/dist/icons/Dots/index.scss +14 -0
  122. package/dist/icons/People/index.d.ts +6 -0
  123. package/dist/icons/People/index.d.ts.map +1 -0
  124. package/dist/icons/People/index.js +18 -0
  125. package/dist/icons/People/index.js.map +1 -0
  126. package/dist/icons/People/index.scss +11 -0
  127. package/dist/providers/Auth/index.d.ts.map +1 -1
  128. package/dist/providers/Auth/index.js +1 -1
  129. package/dist/providers/Auth/index.js.map +1 -1
  130. package/dist/providers/DocumentInfo/types.d.ts +1 -0
  131. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  132. package/dist/providers/DocumentInfo/types.js.map +1 -1
  133. package/dist/providers/ListQuery/context.d.ts +2 -0
  134. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  135. package/dist/providers/ListQuery/context.js +2 -0
  136. package/dist/providers/ListQuery/context.js.map +1 -1
  137. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  138. package/dist/providers/ListQuery/index.js +25 -13
  139. package/dist/providers/ListQuery/index.js.map +1 -1
  140. package/dist/providers/ListQuery/types.d.ts +5 -2
  141. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  142. package/dist/providers/ListQuery/types.js.map +1 -1
  143. package/dist/providers/Preferences/index.d.ts.map +1 -1
  144. package/dist/providers/Preferences/index.js.map +1 -1
  145. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  146. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  147. package/dist/providers/ServerFunctions/index.js.map +1 -1
  148. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  149. package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
  150. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
  151. package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
  152. package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
  153. package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
  154. package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
  155. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  156. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  157. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
  158. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  159. package/dist/{elements → providers}/TableColumns/context.d.ts +2 -0
  160. package/dist/providers/TableColumns/context.d.ts.map +1 -0
  161. package/dist/providers/TableColumns/context.js +6 -0
  162. package/dist/providers/TableColumns/context.js.map +1 -0
  163. package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
  164. package/dist/providers/TableColumns/filterFields.js.map +1 -0
  165. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
  166. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
  167. package/dist/providers/TableColumns/index.d.ts.map +1 -0
  168. package/dist/{elements → providers}/TableColumns/index.js +20 -6
  169. package/dist/providers/TableColumns/index.js.map +1 -0
  170. package/dist/{elements → providers}/TableColumns/types.d.ts +3 -1
  171. package/dist/providers/TableColumns/types.d.ts.map +1 -0
  172. package/dist/providers/TableColumns/types.js +2 -0
  173. package/dist/providers/TableColumns/types.js.map +1 -0
  174. package/dist/styles.css +1 -1
  175. package/dist/utilities/formatAdminURL.d.ts +1 -7
  176. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  177. package/dist/utilities/formatAdminURL.js +1 -18
  178. package/dist/utilities/formatAdminURL.js.map +1 -1
  179. package/dist/utilities/handleBackToDashboard.js +1 -1
  180. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  181. package/dist/utilities/handleGoBack.js +1 -1
  182. package/dist/utilities/handleGoBack.js.map +1 -1
  183. package/dist/utilities/renderTable.js +4 -4
  184. package/dist/utilities/renderTable.js.map +1 -1
  185. package/dist/utilities/upsertPreferences.d.ts +7 -2
  186. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  187. package/dist/utilities/upsertPreferences.js +11 -5
  188. package/dist/utilities/upsertPreferences.js.map +1 -1
  189. package/dist/views/Edit/SetDocumentStepNav/index.js +1 -1
  190. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  191. package/dist/views/Edit/index.d.ts.map +1 -1
  192. package/dist/views/Edit/index.js +4 -3
  193. package/dist/views/Edit/index.js.map +1 -1
  194. package/dist/views/List/index.d.ts.map +1 -1
  195. package/dist/views/List/index.js +7 -1
  196. package/dist/views/List/index.js.map +1 -1
  197. package/package.json +5 -5
  198. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  199. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
  200. package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
  201. package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
  202. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  203. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  204. package/dist/elements/TableColumns/context.d.ts.map +0 -1
  205. package/dist/elements/TableColumns/context.js +0 -4
  206. package/dist/elements/TableColumns/context.js.map +0 -1
  207. package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
  208. package/dist/elements/TableColumns/filterFields.js.map +0 -1
  209. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
  210. package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
  211. package/dist/elements/TableColumns/index.d.ts.map +0 -1
  212. package/dist/elements/TableColumns/index.js.map +0 -1
  213. package/dist/elements/TableColumns/types.d.ts.map +0 -1
  214. package/dist/elements/TableColumns/types.js.map +0 -1
  215. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
  216. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
  217. package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
  218. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
  219. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
  220. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
  221. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
  222. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
  223. package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
  224. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
  225. package/dist/utilities/mergeListSearchAndWhere.js +0 -47
  226. package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
  227. /package/dist/elements/{TableColumns → ListControls}/types.js +0 -0
  228. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  229. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
  230. /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
  231. /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
  232. /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
  233. /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
  234. /package/dist/{elements → providers}/TableColumns/index.d.ts +0 -0
@@ -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 React, { useEffect, useRef, useState } from 'react';
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 validateWhereQuery from '../WhereBuilder/validateWhereQuery.js';
20
+ import { ActiveListPreset } from './ActiveListPreset/index.js';
20
21
  import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
22
+ import { useListPresets } from './useListPresets.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
+ disableListPresets,
33
36
  enableColumns = true,
34
37
  enableSort = false,
35
- listMenuItems,
38
+ listMenuItems: listMenuItemsFromProps,
39
+ listPreset: activePreset,
40
+ listPresetPermissions,
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
+ listPresetMenuItems,
54
+ openPresetListDrawer,
55
+ PresetListDrawer,
56
+ resetPreset
57
+ } = useListPresets({
58
+ activePreset,
59
+ collectionSlug,
60
+ listPresetPermissions
61
+ });
43
62
  const titleField = useUseTitleField(collectionConfig);
44
63
  const {
45
64
  i18n,
@@ -85,92 +104,99 @@ export const ListControls = props => {
85
104
  });
86
105
  }
87
106
  }, [t, listSearchableFields, i18n, searchLabel]);
88
- return /*#__PURE__*/_jsxs("div", {
89
- className: baseClass,
107
+ const listMenuItems = listMenuItemsFromProps || [];
108
+ if (collectionConfig?.enableListPresets && !disableListPresets) {
109
+ listMenuItems.push(listPresetMenuItems);
110
+ }
111
+ return /*#__PURE__*/_jsxs(Fragment, {
90
112
  children: [/*#__PURE__*/_jsxs("div", {
91
- className: `${baseClass}__wrap`,
92
- children: [/*#__PURE__*/_jsx(SearchIcon, {}), /*#__PURE__*/_jsx(SearchFilter, {
93
- fieldName: titleField && 'name' in titleField ? titleField?.name : null,
94
- handleChange: search => {
95
- return void handleSearchChange(search);
96
- },
97
- // @ts-expect-error @todo: fix types
98
- initialParams: query,
99
- label: searchLabelTranslated.current
100
- }, collectionSlug), /*#__PURE__*/_jsx("div", {
101
- className: `${baseClass}__buttons`,
102
- children: /*#__PURE__*/_jsxs("div", {
103
- className: `${baseClass}__buttons-wrap`,
104
- children: [!smallBreak && /*#__PURE__*/_jsx(React.Fragment, {
105
- children: beforeActions && beforeActions
106
- }), enableColumns && /*#__PURE__*/_jsx(Pill, {
107
- "aria-controls": `${baseClass}-columns`,
108
- "aria-expanded": visibleDrawer === 'columns',
109
- className: `${baseClass}__toggle-columns`,
110
- icon: /*#__PURE__*/_jsx(ChevronIcon, {
111
- direction: visibleDrawer === 'columns' ? 'up' : 'down'
112
- }),
113
- onClick: () => setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
114
- pillStyle: "light",
115
- children: t('general:columns')
116
- }), /*#__PURE__*/_jsx(Pill, {
117
- "aria-controls": `${baseClass}-where`,
118
- "aria-expanded": visibleDrawer === 'where',
119
- className: `${baseClass}__toggle-where`,
120
- icon: /*#__PURE__*/_jsx(ChevronIcon, {
121
- direction: visibleDrawer === 'where' ? 'up' : 'down'
122
- }),
123
- onClick: () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
124
- pillStyle: "light",
125
- children: t('general:filters')
126
- }), enableSort && /*#__PURE__*/_jsx(Pill, {
127
- "aria-controls": `${baseClass}-sort`,
128
- "aria-expanded": visibleDrawer === 'sort',
129
- className: `${baseClass}__toggle-sort`,
130
- icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
131
- onClick: () => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
132
- pillStyle: "light",
133
- children: t('general:sort')
134
- }), listMenuItems && /*#__PURE__*/_jsx(Popup, {
135
- button: /*#__PURE__*/_jsx(Dots, {
136
- ariaLabel: t('general:moreOptions')
137
- }),
138
- className: `${baseClass}__popup`,
139
- horizontalAlign: "right",
140
- size: "large",
141
- verticalAlign: "bottom",
142
- children: /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
143
- children: listMenuItems.map(item => item)
144
- })
145
- })]
113
+ className: baseClass,
114
+ children: [/*#__PURE__*/_jsxs("div", {
115
+ className: `${baseClass}__wrap`,
116
+ children: [/*#__PURE__*/_jsx(SearchIcon, {}), /*#__PURE__*/_jsx(SearchFilter, {
117
+ fieldName: titleField && 'name' in titleField ? titleField?.name : null,
118
+ handleChange: search => {
119
+ return void handleSearchChange(search);
120
+ },
121
+ // @ts-expect-error @todo: fix types
122
+ initialParams: query,
123
+ label: searchLabelTranslated.current
124
+ }, collectionSlug), activePreset && hasModifiedPreset ? /*#__PURE__*/_jsx("div", {
125
+ className: `${baseClass}__modified`,
126
+ children: "Modified"
127
+ }) : null, /*#__PURE__*/_jsx("div", {
128
+ className: `${baseClass}__buttons`,
129
+ children: /*#__PURE__*/_jsxs("div", {
130
+ className: `${baseClass}__buttons-wrap`,
131
+ children: [!smallBreak && /*#__PURE__*/_jsx(React.Fragment, {
132
+ children: beforeActions && beforeActions
133
+ }), enableColumns && /*#__PURE__*/_jsx(Pill, {
134
+ "aria-controls": `${baseClass}-columns`,
135
+ "aria-expanded": visibleDrawer === 'columns',
136
+ className: `${baseClass}__toggle-columns`,
137
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {
138
+ direction: visibleDrawer === 'columns' ? 'up' : 'down'
139
+ }),
140
+ onClick: () => setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
141
+ pillStyle: "light",
142
+ children: t('general:columns')
143
+ }), /*#__PURE__*/_jsx(Pill, {
144
+ "aria-controls": `${baseClass}-where`,
145
+ "aria-expanded": visibleDrawer === 'where',
146
+ className: `${baseClass}__toggle-where`,
147
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {
148
+ direction: visibleDrawer === 'where' ? 'up' : 'down'
149
+ }),
150
+ onClick: () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
151
+ pillStyle: "light",
152
+ children: t('general:filters')
153
+ }), enableSort && /*#__PURE__*/_jsx(Pill, {
154
+ "aria-controls": `${baseClass}-sort`,
155
+ "aria-expanded": visibleDrawer === 'sort',
156
+ className: `${baseClass}__toggle-sort`,
157
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
158
+ onClick: () => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
159
+ pillStyle: "light",
160
+ children: t('general:sort')
161
+ }), !disableListPresets && /*#__PURE__*/_jsx(ActiveListPreset, {
162
+ activePreset: activePreset,
163
+ openPresetListDrawer: openPresetListDrawer,
164
+ resetPreset: resetPreset
165
+ }), listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && /*#__PURE__*/_jsx(Popup, {
166
+ button: /*#__PURE__*/_jsx(Dots, {
167
+ ariaLabel: t('general:moreOptions')
168
+ }),
169
+ className: `${baseClass}__popup`,
170
+ horizontalAlign: "right",
171
+ id: "list-menu",
172
+ size: "large",
173
+ verticalAlign: "bottom",
174
+ children: /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
175
+ children: listMenuItems
176
+ })
177
+ })]
178
+ })
179
+ })]
180
+ }), enableColumns && /*#__PURE__*/_jsx(AnimateHeight, {
181
+ className: `${baseClass}__columns`,
182
+ height: visibleDrawer === 'columns' ? 'auto' : 0,
183
+ id: `${baseClass}-columns`,
184
+ children: /*#__PURE__*/_jsx(ColumnSelector, {
185
+ collectionSlug: collectionConfig.slug
186
+ })
187
+ }), /*#__PURE__*/_jsx(AnimateHeight, {
188
+ className: `${baseClass}__where`,
189
+ height: visibleDrawer === 'where' ? 'auto' : 0,
190
+ id: `${baseClass}-where`,
191
+ children: /*#__PURE__*/_jsx(WhereBuilder, {
192
+ collectionPluralLabel: collectionConfig?.labels?.plural,
193
+ collectionSlug: collectionConfig.slug,
194
+ fields: collectionConfig?.fields,
195
+ renderedFilters: renderedFilters,
196
+ resolvedFilterOptions: resolvedFilterOptions
146
197
  })
147
198
  })]
148
- }), enableColumns && /*#__PURE__*/_jsx(AnimateHeight, {
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
- })]
199
+ }), PresetListDrawer, EditPresetDrawer, CreateNewPresetDrawer, DeletePresetModal]
174
200
  });
175
201
  };
176
202
  //# 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","ActiveListPreset","getTextFieldsToBeSearched","useListPresets","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableListPresets","enableColumns","enableSort","listMenuItems","listMenuItemsFromProps","listPreset","activePreset","listPresetPermissions","renderedFilters","resolvedFilterOptions","handleSearchChange","query","CreateNewPresetDrawer","DeletePresetModal","EditPresetDrawer","hasModifiedPreset","listPresetMenuItems","openPresetListDrawer","PresetListDrawer","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","enableListPresets","push","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","icon","direction","onClick","pillStyle","Array","isArray","button","ariaLabel","horizontalAlign","id","size","verticalAlign","ButtonGroup","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 { ActiveListPreset } from './ActiveListPreset/index.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport { useListPresets } from './useListPresets.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 disableListPresets,\n enableColumns = true,\n enableSort = false,\n listMenuItems: listMenuItemsFromProps,\n listPreset: activePreset,\n listPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n\n const {\n CreateNewPresetDrawer,\n DeletePresetModal,\n EditPresetDrawer,\n hasModifiedPreset,\n listPresetMenuItems,\n openPresetListDrawer,\n PresetListDrawer,\n resetPreset,\n } = useListPresets({\n activePreset,\n collectionSlug,\n listPresetPermissions,\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 const listMenuItems = listMenuItemsFromProps || []\n\n if (collectionConfig?.enableListPresets && !disableListPresets) {\n listMenuItems.push(listPresetMenuItems)\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 {!disableListPresets && (\n <ActiveListPreset\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>{listMenuItems}</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":"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","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: base(0.2);
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, ListPreset, 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 disableListPresets?: 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 listPreset?: ListPreset;
24
+ readonly listPresetPermissions?: 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,UAAU,EACV,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,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,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,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,6BAA6B,CAAA;IAC9D,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 ListPreset,\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 disableListPresets?: 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 listPreset?: ListPreset\n readonly listPresetPermissions?: SanitizedCollectionPermission\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n"],"mappings":"AAQA","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import type { CollectionSlug, ListPreset, SanitizedCollectionPermission } from 'payload';
2
+ export declare const useListPresets: ({ activePreset, collectionSlug, listPresetPermissions, }: {
3
+ activePreset: ListPreset;
4
+ collectionSlug: CollectionSlug;
5
+ listPresetPermissions: SanitizedCollectionPermission;
6
+ }) => {
7
+ CreateNewPresetDrawer: React.ReactNode;
8
+ DeletePresetModal: React.ReactNode;
9
+ EditPresetDrawer: React.ReactNode;
10
+ hasModifiedPreset: boolean;
11
+ listPresetMenuItems: React.ReactNode;
12
+ openPresetListDrawer: () => void;
13
+ PresetListDrawer: React.ReactNode;
14
+ resetPreset: () => Promise<void>;
15
+ };
16
+ //# sourceMappingURL=useListPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListPresets.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/useListPresets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AAsBxF,eAAO,MAAM,cAAc,6DAIxB;IACD,YAAY,EAAE,UAAU,CAAA;IACxB,cAAc,EAAE,cAAc,CAAA;IAC9B,qBAAqB,EAAE,6BAA6B,CAAA;CACrD,KAAG;IACF,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,oBAAoB,EAAE,MAAM,IAAI,CAAA;IAChC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAiQjC,CAAA"}