@payloadcms/ui 3.26.0-canary.bbb3083 → 3.27.0-canary.ecc3f49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/elements/AnimateHeight/index.scss +7 -5
  2. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  3. package/dist/elements/AppHeader/index.js +1 -1
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js +1 -1
  7. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js +37 -21
  10. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  11. package/dist/elements/ColumnSelector/index.js +1 -1
  12. package/dist/elements/ColumnSelector/index.js.map +1 -1
  13. package/dist/elements/ColumnSelector/index.scss +2 -3
  14. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  15. package/dist/elements/DeleteDocument/index.js +2 -3
  16. package/dist/elements/DeleteDocument/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  18. package/dist/elements/DeleteMany/index.js +1 -1
  19. package/dist/elements/DeleteMany/index.js.map +1 -1
  20. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  21. package/dist/elements/DocumentControls/index.js +1 -1
  22. package/dist/elements/DocumentControls/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  24. package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
  25. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  26. package/dist/elements/DocumentDrawer/types.d.ts +4 -0
  27. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  29. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  30. package/dist/elements/DuplicateDocument/index.js +1 -1
  31. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  32. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  33. package/dist/elements/EditMany/DrawerContent.js +1 -1
  34. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  35. package/dist/elements/FieldSelect/index.js +1 -1
  36. package/dist/elements/FieldSelect/index.js.map +1 -1
  37. package/dist/elements/ListControls/ActiveListPreset/index.d.ts +8 -0
  38. package/dist/elements/ListControls/ActiveListPreset/index.d.ts.map +1 -0
  39. package/dist/elements/ListControls/ActiveListPreset/index.js +102 -0
  40. package/dist/elements/ListControls/ActiveListPreset/index.js.map +1 -0
  41. package/dist/elements/ListControls/ActiveListPreset/index.scss +21 -0
  42. package/dist/elements/ListControls/index.d.ts +1 -24
  43. package/dist/elements/ListControls/index.d.ts.map +1 -1
  44. package/dist/elements/ListControls/index.js +110 -86
  45. package/dist/elements/ListControls/index.js.map +1 -1
  46. package/dist/elements/ListControls/index.scss +5 -9
  47. package/dist/elements/ListControls/types.d.ts +27 -0
  48. package/dist/elements/ListControls/types.d.ts.map +1 -0
  49. package/dist/elements/ListControls/types.js +2 -0
  50. package/dist/elements/ListControls/types.js.map +1 -0
  51. package/dist/elements/ListControls/useListPresets.d.ts +15 -0
  52. package/dist/elements/ListControls/useListPresets.d.ts.map +1 -0
  53. package/dist/elements/ListControls/useListPresets.js +251 -0
  54. package/dist/elements/ListControls/useListPresets.js.map +1 -0
  55. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  56. package/dist/elements/ListDrawer/DrawerContent.js +4 -2
  57. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  58. package/dist/elements/ListDrawer/types.d.ts +3 -2
  59. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  60. package/dist/elements/ListDrawer/types.js.map +1 -1
  61. package/dist/elements/ListPresets/cells/AccessCell/index.d.ts +4 -0
  62. package/dist/elements/ListPresets/cells/AccessCell/index.d.ts.map +1 -0
  63. package/dist/elements/ListPresets/cells/AccessCell/index.js +25 -0
  64. package/dist/elements/ListPresets/cells/AccessCell/index.js.map +1 -0
  65. package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts +4 -0
  66. package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts.map +1 -0
  67. package/dist/elements/ListPresets/cells/ColumnsCell/index.js +11 -0
  68. package/dist/elements/ListPresets/cells/ColumnsCell/index.js.map +1 -0
  69. package/dist/elements/ListPresets/cells/WhereCell/index.d.ts +4 -0
  70. package/dist/elements/ListPresets/cells/WhereCell/index.d.ts.map +1 -0
  71. package/dist/elements/ListPresets/cells/WhereCell/index.js +23 -0
  72. package/dist/elements/ListPresets/cells/WhereCell/index.js.map +1 -0
  73. package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts +3 -0
  74. package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts.map +1 -0
  75. package/dist/elements/ListPresets/fields/AccessLabel/index.js +19 -0
  76. package/dist/elements/ListPresets/fields/AccessLabel/index.js.map +1 -0
  77. package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts +4 -0
  78. package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts.map +1 -0
  79. package/dist/elements/ListPresets/fields/ColumnsField/index.js +64 -0
  80. package/dist/elements/ListPresets/fields/ColumnsField/index.js.map +1 -0
  81. package/dist/elements/ListPresets/fields/ColumnsField/index.scss +28 -0
  82. package/dist/elements/ListPresets/fields/WhereField/index.d.ts +4 -0
  83. package/dist/elements/ListPresets/fields/WhereField/index.d.ts.map +1 -0
  84. package/dist/elements/ListPresets/fields/WhereField/index.js +118 -0
  85. package/dist/elements/ListPresets/fields/WhereField/index.js.map +1 -0
  86. package/dist/elements/ListPresets/fields/WhereField/index.scss +23 -0
  87. package/dist/elements/Localizer/index.d.ts.map +1 -1
  88. package/dist/elements/Localizer/index.js +36 -24
  89. package/dist/elements/Localizer/index.js.map +1 -1
  90. package/dist/elements/Logout/index.d.ts.map +1 -1
  91. package/dist/elements/Logout/index.js +1 -1
  92. package/dist/elements/Logout/index.js.map +1 -1
  93. package/dist/elements/Nav/context.d.ts.map +1 -1
  94. package/dist/elements/Nav/context.js +8 -1
  95. package/dist/elements/Nav/context.js.map +1 -1
  96. package/dist/elements/Pill/index.d.ts +1 -1
  97. package/dist/elements/Pill/index.d.ts.map +1 -1
  98. package/dist/elements/Pill/index.js +2 -0
  99. package/dist/elements/Pill/index.js.map +1 -1
  100. package/dist/elements/Pill/index.scss +29 -6
  101. package/dist/elements/PublishButton/index.js +1 -0
  102. package/dist/elements/PublishButton/index.js.map +1 -1
  103. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  104. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  105. package/dist/elements/RelationshipTable/index.d.ts +1 -1
  106. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  107. package/dist/elements/RelationshipTable/index.js +6 -14
  108. package/dist/elements/RelationshipTable/index.js.map +1 -1
  109. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  110. package/dist/elements/StayLoggedIn/index.js +1 -1
  111. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  112. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  113. package/dist/elements/Table/DefaultCell/index.js +1 -2
  114. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  115. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -5
  116. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  117. package/dist/elements/WhereBuilder/Condition/index.js +7 -7
  118. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  119. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  120. package/dist/elements/WhereBuilder/index.js +22 -32
  121. package/dist/elements/WhereBuilder/index.js.map +1 -1
  122. package/dist/elements/WhereBuilder/types.d.ts +6 -2
  123. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  124. package/dist/elements/WhereBuilder/types.js.map +1 -1
  125. package/dist/exports/client/index.d.ts +8 -2
  126. package/dist/exports/client/index.d.ts.map +1 -1
  127. package/dist/exports/client/index.js +11 -11
  128. package/dist/exports/client/index.js.map +4 -4
  129. package/dist/exports/shared/index.d.ts +8 -3
  130. package/dist/exports/shared/index.d.ts.map +1 -1
  131. package/dist/exports/shared/index.js +2 -2
  132. package/dist/exports/shared/index.js.map +4 -4
  133. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  134. package/dist/fields/Upload/HasMany/index.js +12 -4
  135. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  136. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  137. package/dist/fields/Upload/HasOne/index.js +15 -5
  138. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  139. package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
  140. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  141. package/dist/fields/Upload/RelationshipContent/index.js +13 -11
  142. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  143. package/dist/forms/Form/index.d.ts.map +1 -1
  144. package/dist/forms/Form/index.js +3 -1
  145. package/dist/forms/Form/index.js.map +1 -1
  146. package/dist/forms/Form/types.d.ts +4 -0
  147. package/dist/forms/Form/types.d.ts.map +1 -1
  148. package/dist/forms/Form/types.js.map +1 -1
  149. package/dist/graphics/Account/index.d.ts.map +1 -1
  150. package/dist/graphics/Account/index.js +1 -1
  151. package/dist/graphics/Account/index.js.map +1 -1
  152. package/dist/icons/Chevron/index.d.ts +1 -0
  153. package/dist/icons/Chevron/index.d.ts.map +1 -1
  154. package/dist/icons/Chevron/index.js +2 -0
  155. package/dist/icons/Chevron/index.js.map +1 -1
  156. package/dist/icons/Dots/index.d.ts +2 -0
  157. package/dist/icons/Dots/index.d.ts.map +1 -1
  158. package/dist/icons/Dots/index.js +5 -2
  159. package/dist/icons/Dots/index.js.map +1 -1
  160. package/dist/icons/Dots/index.scss +14 -0
  161. package/dist/icons/People/index.d.ts +6 -0
  162. package/dist/icons/People/index.d.ts.map +1 -0
  163. package/dist/icons/People/index.js +18 -0
  164. package/dist/icons/People/index.js.map +1 -0
  165. package/dist/icons/People/index.scss +11 -0
  166. package/dist/providers/Auth/index.d.ts.map +1 -1
  167. package/dist/providers/Auth/index.js +1 -1
  168. package/dist/providers/Auth/index.js.map +1 -1
  169. package/dist/providers/DocumentInfo/types.d.ts +1 -0
  170. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  171. package/dist/providers/DocumentInfo/types.js.map +1 -1
  172. package/dist/providers/ListQuery/context.d.ts +6 -0
  173. package/dist/providers/ListQuery/context.d.ts.map +1 -0
  174. package/dist/providers/ListQuery/context.js +6 -0
  175. package/dist/providers/ListQuery/context.js.map +1 -0
  176. package/dist/providers/ListQuery/index.d.ts +2 -27
  177. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  178. package/dist/providers/ListQuery/index.js +72 -46
  179. package/dist/providers/ListQuery/index.js.map +1 -1
  180. package/dist/providers/ListQuery/types.d.ts +36 -0
  181. package/dist/providers/ListQuery/types.d.ts.map +1 -0
  182. package/dist/providers/ListQuery/types.js +2 -0
  183. package/dist/providers/ListQuery/types.js.map +1 -0
  184. package/dist/providers/Preferences/index.d.ts.map +1 -1
  185. package/dist/providers/Preferences/index.js.map +1 -1
  186. package/dist/providers/RouteTransition/ProgressBar/index.scss +19 -17
  187. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  188. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  189. package/dist/providers/ServerFunctions/index.js.map +1 -1
  190. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  191. package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
  192. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
  193. package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
  194. package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
  195. package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
  196. package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
  197. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  198. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  199. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
  200. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  201. package/dist/providers/TableColumns/context.d.ts +6 -0
  202. package/dist/providers/TableColumns/context.d.ts.map +1 -0
  203. package/dist/providers/TableColumns/context.js +6 -0
  204. package/dist/providers/TableColumns/context.js.map +1 -0
  205. package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
  206. package/dist/providers/TableColumns/filterFields.js.map +1 -0
  207. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
  208. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
  209. package/dist/providers/TableColumns/index.d.ts +5 -0
  210. package/dist/providers/TableColumns/index.d.ts.map +1 -0
  211. package/dist/providers/TableColumns/index.js +105 -0
  212. package/dist/providers/TableColumns/index.js.map +1 -0
  213. package/dist/{elements/TableColumns/index.d.ts → providers/TableColumns/types.d.ts} +32 -11
  214. package/dist/providers/TableColumns/types.d.ts.map +1 -0
  215. package/dist/providers/TableColumns/types.js +2 -0
  216. package/dist/providers/TableColumns/types.js.map +1 -0
  217. package/dist/styles.css +1 -1
  218. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  219. package/dist/utilities/copyDataFromLocale.js +6 -2
  220. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  221. package/dist/utilities/formatAdminURL.d.ts +1 -7
  222. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  223. package/dist/utilities/formatAdminURL.js +1 -18
  224. package/dist/utilities/formatAdminURL.js.map +1 -1
  225. package/dist/utilities/handleBackToDashboard.js +1 -1
  226. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  227. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  228. package/dist/utilities/handleFormStateLocking.js +4 -2
  229. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  230. package/dist/utilities/handleGoBack.js +1 -1
  231. package/dist/utilities/handleGoBack.js.map +1 -1
  232. package/dist/utilities/renderTable.js +4 -4
  233. package/dist/utilities/renderTable.js.map +1 -1
  234. package/dist/utilities/upsertPreferences.d.ts +7 -2
  235. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  236. package/dist/utilities/upsertPreferences.js +11 -5
  237. package/dist/utilities/upsertPreferences.js.map +1 -1
  238. package/dist/views/Edit/SetDocumentStepNav/index.js +1 -1
  239. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  240. package/dist/views/Edit/index.d.ts.map +1 -1
  241. package/dist/views/Edit/index.js +4 -3
  242. package/dist/views/Edit/index.js.map +1 -1
  243. package/dist/views/List/index.d.ts.map +1 -1
  244. package/dist/views/List/index.js +5 -8
  245. package/dist/views/List/index.js.map +1 -1
  246. package/package.json +4 -4
  247. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  248. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
  249. package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
  250. package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
  251. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  252. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  253. package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
  254. package/dist/elements/TableColumns/filterFields.js.map +0 -1
  255. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
  256. package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
  257. package/dist/elements/TableColumns/index.d.ts.map +0 -1
  258. package/dist/elements/TableColumns/index.js +0 -206
  259. package/dist/elements/TableColumns/index.js.map +0 -1
  260. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
  261. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
  262. package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
  263. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
  264. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
  265. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
  266. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
  267. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
  268. package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
  269. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
  270. package/dist/utilities/mergeListSearchAndWhere.js +0 -47
  271. package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
  272. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  273. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
  274. /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
  275. /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
  276. /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
  277. /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
@@ -1,206 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import React, { createContext, useCallback, useContext, useEffect } from 'react';
5
- import { useConfig } from '../../providers/Config/index.js';
6
- import { usePreferences } from '../../providers/Preferences/index.js';
7
- import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
8
- import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
9
- export const TableColumnContext = /*#__PURE__*/createContext({});
10
- export const useTableColumns = () => {
11
- return useContext(TableColumnContext);
12
- };
13
- // strip out Heading, Label, and renderedCells properties, they cannot be sent to the server
14
- const sanitizeColumns = columns => {
15
- return columns.map(({
16
- accessor,
17
- active
18
- }) => ({
19
- accessor,
20
- active
21
- }));
22
- };
23
- export const TableColumnsProvider = ({
24
- children,
25
- collectionSlug,
26
- columnState,
27
- docs,
28
- enableRowSelections,
29
- LinkedCellOverride,
30
- listPreferences,
31
- preferenceKey,
32
- renderRowTypes,
33
- setTable,
34
- sortColumnProps,
35
- tableAppearance
36
- }) => {
37
- const {
38
- getEntityConfig
39
- } = useConfig();
40
- const {
41
- getTableState
42
- } = useServerFunctions();
43
- const {
44
- admin: {
45
- defaultColumns,
46
- useAsTitle
47
- } = {},
48
- fields
49
- } = getEntityConfig({
50
- collectionSlug
51
- });
52
- const prevCollection = React.useRef(Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug);
53
- const {
54
- getPreference
55
- } = usePreferences();
56
- const [tableColumns, setTableColumns] = React.useState(columnState);
57
- const abortTableStateRef = React.useRef(null);
58
- const abortToggleColumnRef = React.useRef(null);
59
- const moveColumn = useCallback(async args => {
60
- const controller = handleAbortRef(abortTableStateRef);
61
- const {
62
- fromIndex,
63
- toIndex
64
- } = args;
65
- const withMovedColumn = [...tableColumns];
66
- const [columnToMove] = withMovedColumn.splice(fromIndex, 1);
67
- withMovedColumn.splice(toIndex, 0, columnToMove);
68
- setTableColumns(withMovedColumn);
69
- const result = await getTableState({
70
- collectionSlug,
71
- columns: sanitizeColumns(withMovedColumn),
72
- docs,
73
- enableRowSelections,
74
- renderRowTypes,
75
- signal: controller.signal,
76
- tableAppearance
77
- });
78
- if (result) {
79
- setTableColumns(result.state);
80
- setTable(result.Table);
81
- }
82
- abortTableStateRef.current = null;
83
- }, [tableColumns, collectionSlug, docs, getTableState, setTable, enableRowSelections, renderRowTypes, tableAppearance]);
84
- const toggleColumn = useCallback(async column => {
85
- const controller_0 = handleAbortRef(abortToggleColumnRef);
86
- const {
87
- newColumnState,
88
- toggledColumns
89
- } = tableColumns.reduce((acc, col) => {
90
- if (col.accessor === column) {
91
- acc.newColumnState.push({
92
- ...col,
93
- accessor: col.accessor,
94
- active: !col.active
95
- });
96
- acc.toggledColumns.push({
97
- accessor: col.accessor,
98
- active: !col.active
99
- });
100
- } else {
101
- acc.newColumnState.push(col);
102
- acc.toggledColumns.push({
103
- accessor: col.accessor,
104
- active: col.active
105
- });
106
- }
107
- return acc;
108
- }, {
109
- newColumnState: [],
110
- toggledColumns: []
111
- });
112
- setTableColumns(newColumnState);
113
- const result_0 = await getTableState({
114
- collectionSlug,
115
- columns: toggledColumns,
116
- docs,
117
- enableRowSelections,
118
- renderRowTypes,
119
- signal: controller_0.signal,
120
- tableAppearance
121
- });
122
- if (result_0) {
123
- setTableColumns(result_0.state);
124
- setTable(result_0.Table);
125
- }
126
- abortToggleColumnRef.current = null;
127
- }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
128
- const setActiveColumns = React.useCallback(async activeColumnAccessors => {
129
- const activeColumns = tableColumns.map(col_0 => {
130
- return {
131
- accessor: col_0.accessor,
132
- active: activeColumnAccessors.includes(col_0.accessor)
133
- };
134
- }).sort((first, second) => {
135
- const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
136
- const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
137
- if (indexOfFirst === -1 || indexOfSecond === -1) {
138
- return 0;
139
- }
140
- return indexOfFirst > indexOfSecond ? 1 : -1;
141
- });
142
- const {
143
- state: columnState_0,
144
- Table
145
- } = await getTableState({
146
- collectionSlug,
147
- columns: activeColumns,
148
- docs,
149
- enableRowSelections,
150
- renderRowTypes,
151
- tableAppearance
152
- });
153
- setTableColumns(columnState_0);
154
- setTable(Table);
155
- }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
156
- const resetColumnsState = React.useCallback(async () => {
157
- await setActiveColumns(defaultColumns);
158
- }, [defaultColumns, setActiveColumns]);
159
- // //////////////////////////////////////////////
160
- // Get preferences on collection change (drawers)
161
- // //////////////////////////////////////////////
162
- React.useEffect(() => {
163
- const sync = async () => {
164
- const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug;
165
- const collectionHasChanged = prevCollection.current !== defaultCollection;
166
- if (collectionHasChanged || !listPreferences) {
167
- const currentPreferences = await getPreference(preferenceKey);
168
- prevCollection.current = defaultCollection;
169
- if (currentPreferences?.columns) {
170
- // setTableColumns()
171
- // buildColumnState({
172
- // beforeRows,
173
- // columnPreferences: currentPreferences?.columns,
174
- // columns: initialColumns,
175
- // enableRowSelections,
176
- // fields,
177
- // sortColumnProps,
178
- // useAsTitle,
179
- // }),
180
- }
181
- }
182
- };
183
- void sync();
184
- }, [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, enableRowSelections, sortColumnProps]);
185
- useEffect(() => {
186
- setTableColumns(columnState);
187
- }, [columnState]);
188
- useEffect(() => {
189
- const abortTableState = abortTableStateRef.current;
190
- return () => {
191
- abortAndIgnore(abortTableState);
192
- };
193
- }, []);
194
- return /*#__PURE__*/_jsx(TableColumnContext.Provider, {
195
- value: {
196
- columns: tableColumns,
197
- LinkedCellOverride,
198
- moveColumn,
199
- resetColumnsState,
200
- setActiveColumns,
201
- toggleColumn
202
- },
203
- children: children
204
- });
205
- };
206
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useConfig","usePreferences","useServerFunctions","abortAndIgnore","handleAbortRef","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","Array","isArray","getPreference","tableColumns","setTableColumns","useState","abortTableStateRef","abortToggleColumnRef","moveColumn","args","controller","fromIndex","toIndex","withMovedColumn","columnToMove","splice","result","signal","state","Table","current","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","sync","defaultCollection","collectionHasChanged","currentPreferences","abortTableState","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { Column, ListPreferences, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect } from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string | string[]\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n })\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(\n Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug,\n )\n const { getPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const abortTableStateRef = React.useRef<AbortController>(null)\n const abortToggleColumnRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const controller = handleAbortRef(abortTableStateRef)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortTableStateRef.current = null\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const controller = handleAbortRef(abortToggleColumnRef)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n\n abortToggleColumnRef.current = null\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug\n const collectionHasChanged = prevCollection.current !== defaultCollection\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ListPreferences['columns']\n }>(preferenceKey)\n\n prevCollection.current = defaultCollection\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n useEffect(() => {\n setTableColumns(columnState)\n }, [columnState])\n\n useEffect(() => {\n const abortTableState = abortTableStateRef.current\n\n return () => {\n abortAndIgnore(abortTableState)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,QAAQ;AAIzE,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAW/C,OAAO,MAAMC,kBAAA,gBAAqBT,aAAA,CAA6B,CAAC;AAEhE,OAAO,MAAMU,eAAA,GAAkBA,CAAA;EAAA,OAAqBR,UAAA,CAAAO,kBAAW;AAAA;AAiB/D;AACA,MAAME,eAAA,GAAmBC,OAAA;EACvB,OAAOA,OAAA,CAAQC,GAAG,CAAC,CAAC;IAAEC,QAAQ;IAAEC;EAAM,CAAE,MAAM;IAC5CD,QAAA;IACAC;EACF;AACF;AAEA,OAAO,MAAMC,oBAAA,GAAwCA,CAAC;EACpDC,QAAQ;EACRC,cAAc;EACdC,WAAW;EACXC,IAAI;EACJC,mBAAmB;EACnBC,kBAAkB;EAClBC,eAAe;EACfC,aAAa;EACbC,cAAc;EACdC,QAAQ;EACRC,eAAe;EACfC;AAAe,CAChB;EACC,MAAM;IAAEC;EAAe,CAAE,GAAGzB,SAAA;EAE5B,MAAM;IAAE0B;EAAa,CAAE,GAAGxB,kBAAA;EAE1B,MAAM;IAAEyB,KAAA,EAAO;MAAEC,cAAc;MAAEC;IAAU,CAAE,GAAG,CAAC,CAAC;IAAEC;EAAM,CAAE,GAAGL,eAAA,CAAgB;IAC7EX;EACF;EAEA,MAAMiB,cAAA,GAAiBpC,KAAA,CAAMqC,MAAM,CACjCC,KAAA,CAAMC,OAAO,CAACpB,cAAA,IAAkBA,cAAc,CAAC,EAAE,GAAGA,cAAA;EAEtD,MAAM;IAAEqB;EAAa,CAAE,GAAGlC,cAAA;EAE1B,MAAM,CAACmC,YAAA,EAAcC,eAAA,CAAgB,GAAG1C,KAAA,CAAM2C,QAAQ,CAACvB,WAAA;EACvD,MAAMwB,kBAAA,GAAqB5C,KAAA,CAAMqC,MAAM,CAAkB;EACzD,MAAMQ,oBAAA,GAAuB7C,KAAA,CAAMqC,MAAM,CAAkB;EAE3D,MAAMS,UAAA,GAAa5C,WAAA,CACjB,MAAO6C,IAAA;IACL,MAAMC,UAAA,GAAavC,cAAA,CAAemC,kBAAA;IAElC,MAAM;MAAEK,SAAS;MAAEC;IAAO,CAAE,GAAGH,IAAA;IAC/B,MAAMI,eAAA,GAAkB,C,GAAIV,YAAA,CAAa;IACzC,MAAM,CAACW,YAAA,CAAa,GAAGD,eAAA,CAAgBE,MAAM,CAACJ,SAAA,EAAW;IACzDE,eAAA,CAAgBE,MAAM,CAACH,OAAA,EAAS,GAAGE,YAAA;IAEnCV,eAAA,CAAgBS,eAAA;IAEhB,MAAMG,MAAA,GAAS,MAAMvB,aAAA,CAAc;MACjCZ,cAAA;MACAN,OAAA,EAASD,eAAA,CAAgBuC,eAAA;MACzB9B,IAAA;MACAC,mBAAA;MACAI,cAAA;MACA6B,MAAA,EAAQP,UAAA,CAAWO,MAAM;MACzB1B;IACF;IAEA,IAAIyB,MAAA,EAAQ;MACVZ,eAAA,CAAgBY,MAAA,CAAOE,KAAK;MAC5B7B,QAAA,CAAS2B,MAAA,CAAOG,KAAK;IACvB;IAEAb,kBAAA,CAAmBc,OAAO,GAAG;EAC/B,GACA,CACEjB,YAAA,EACAtB,cAAA,EACAE,IAAA,EACAU,aAAA,EACAJ,QAAA,EACAL,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAM8B,YAAA,GAAezD,WAAA,CACnB,MAAO0D,MAAA;IACL,MAAMZ,YAAA,GAAavC,cAAA,CAAeoC,oBAAA;IAElC,MAAM;MAAEgB,cAAc;MAAEC;IAAc,CAAE,GAAGrB,YAAA,CAAasB,MAAM,CAI5D,CAACC,GAAA,EAAKC,GAAA;MACJ,IAAIA,GAAA,CAAIlD,QAAQ,KAAK6C,MAAA,EAAQ;QAC3BI,GAAA,CAAIH,cAAc,CAACK,IAAI,CAAC;UACtB,GAAGD,GAAG;UACNlD,QAAA,EAAUkD,GAAA,CAAIlD,QAAQ;UACtBC,MAAA,EAAQ,CAACiD,GAAA,CAAIjD;QACf;QACAgD,GAAA,CAAIF,cAAc,CAACI,IAAI,CAAC;UACtBnD,QAAA,EAAUkD,GAAA,CAAIlD,QAAQ;UACtBC,MAAA,EAAQ,CAACiD,GAAA,CAAIjD;QACf;MACF,OAAO;QACLgD,GAAA,CAAIH,cAAc,CAACK,IAAI,CAACD,GAAA;QACxBD,GAAA,CAAIF,cAAc,CAACI,IAAI,CAAC;UACtBnD,QAAA,EAAUkD,GAAA,CAAIlD,QAAQ;UACtBC,MAAA,EAAQiD,GAAA,CAAIjD;QACd;MACF;MAEA,OAAOgD,GAAA;IACT,GACA;MAAEH,cAAA,EAAgB,EAAE;MAAEC,cAAA,EAAgB;IAAG;IAG3CpB,eAAA,CAAgBmB,cAAA;IAEhB,MAAMP,QAAA,GAAS,MAAMvB,aAAA,CAAc;MACjCZ,cAAA;MACAN,OAAA,EAASiD,cAAA;MACTzC,IAAA;MACAC,mBAAA;MACAI,cAAA;MACA6B,MAAA,EAAQP,YAAA,CAAWO,MAAM;MACzB1B;IACF;IAEA,IAAIyB,QAAA,EAAQ;MACVZ,eAAA,CAAgBY,QAAA,CAAOE,KAAK;MAC5B7B,QAAA,CAAS2B,QAAA,CAAOG,KAAK;IACvB;IAEAZ,oBAAA,CAAqBa,OAAO,GAAG;EACjC,GACA,CACEjB,YAAA,EACAV,aAAA,EACAJ,QAAA,EACAR,cAAA,EACAE,IAAA,EACAC,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAMsC,gBAAA,GAAmBnE,KAAA,CAAME,WAAW,CACxC,MAAOkE,qBAAA;IACL,MAAMC,aAAA,GAAuD5B,YAAA,CAC1D3B,GAAG,CAAEmD,KAAA;MACJ,OAAO;QACLlD,QAAA,EAAUkD,KAAA,CAAIlD,QAAQ;QACtBC,MAAA,EAAQoD,qBAAA,CAAsBE,QAAQ,CAACL,KAAA,CAAIlD,QAAQ;MACrD;IACF,GACCwD,IAAI,CAAC,CAACC,KAAA,EAAOC,MAAA;MACZ,MAAMC,YAAA,GAAeN,qBAAA,CAAsBO,OAAO,CAACH,KAAA,CAAMzD,QAAQ;MACjE,MAAM6D,aAAA,GAAgBR,qBAAA,CAAsBO,OAAO,CAACF,MAAA,CAAO1D,QAAQ;MAEnE,IAAI2D,YAAA,KAAiB,CAAC,KAAKE,aAAA,KAAkB,CAAC,GAAG;QAC/C,OAAO;MACT;MAEA,OAAOF,YAAA,GAAeE,aAAA,GAAgB,IAAI,CAAC;IAC7C;IAEF,MAAM;MAAEpB,KAAA,EAAOpC,aAAW;MAAEqC;IAAK,CAAE,GAAG,MAAM1B,aAAA,CAAc;MACxDZ,cAAA;MACAN,OAAA,EAASwD,aAAA;MACThD,IAAA;MACAC,mBAAA;MACAI,cAAA;MACAG;IACF;IAEAa,eAAA,CAAgBtB,aAAA;IAChBO,QAAA,CAAS8B,KAAA;EACX,GACA,CACEhB,YAAA,EACAV,aAAA,EACAJ,QAAA,EACAR,cAAA,EACAE,IAAA,EACAC,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAMgD,iBAAA,GAAoB7E,KAAA,CAAME,WAAW,CAAC;IAC1C,MAAMiE,gBAAA,CAAiBlC,cAAA;EACzB,GAAG,CAACA,cAAA,EAAgBkC,gBAAA,CAAiB;EAErC;EACA;EACA;EAEAnE,KAAA,CAAMI,SAAS,CAAC;IACd,MAAM0E,IAAA,GAAO,MAAAA,CAAA;MACX,MAAMC,iBAAA,GAAoBzC,KAAA,CAAMC,OAAO,CAACpB,cAAA,IAAkBA,cAAc,CAAC,EAAE,GAAGA,cAAA;MAC9E,MAAM6D,oBAAA,GAAuB5C,cAAA,CAAesB,OAAO,KAAKqB,iBAAA;MAExD,IAAIC,oBAAA,IAAwB,CAACxD,eAAA,EAAiB;QAC5C,MAAMyD,kBAAA,GAAqB,MAAMzC,aAAA,CAE9Bf,aAAA;QAEHW,cAAA,CAAesB,OAAO,GAAGqB,iBAAA;QAEzB,IAAIE,kBAAA,EAAoBpE,OAAA,EAAS;UAC/B;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QAAA;MAEJ;IACF;IAEA,KAAKiE,IAAA;EACP,GAAG,CACDrD,aAAA,EACAe,aAAA,EACArB,cAAA,EACAgB,MAAA,EACAF,cAAA,EACAC,UAAA,EACAV,eAAA,EACAF,mBAAA,EACAM,eAAA,CACD;EAEDxB,SAAA,CAAU;IACRsC,eAAA,CAAgBtB,WAAA;EAClB,GAAG,CAACA,WAAA,CAAY;EAEhBhB,SAAA,CAAU;IACR,MAAM8E,eAAA,GAAkBtC,kBAAA,CAAmBc,OAAO;IAElD,OAAO;MACLlD,cAAA,CAAe0E,eAAA;IACjB;EACF,GAAG,EAAE;EAEL,oBACEC,IAAA,CAACzE,kBAAA,CAAmB0E,QAAQ;IAC1BC,KAAA,EAAO;MACLxE,OAAA,EAAS4B,YAAA;MACTlB,kBAAA;MACAuB,UAAA;MACA+B,iBAAA;MACAV,gBAAA;MACAR;IACF;cAECzC;;AAGP","ignoreList":[]}
@@ -1,8 +0,0 @@
1
- import type { Where } from 'payload';
2
- /**
3
- * Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.
4
- * However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,
5
- * even though it is a valid Where query. This needs to be transformed here.
6
- */
7
- export declare const transformWhereQuery: (whereQuery: any) => Where;
8
- //# sourceMappingURL=transformWhereQuery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uBAAiB,KA2ChD,CAAA"}
@@ -1,45 +0,0 @@
1
- 'use client';
2
-
3
- /**
4
- * Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.
5
- * However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,
6
- * even though it is a valid Where query. This needs to be transformed here.
7
- */
8
- export const transformWhereQuery = whereQuery => {
9
- if (!whereQuery) {
10
- return {};
11
- }
12
- // Check if 'whereQuery' has 'or' field but no 'and'. This is the case for "correct" queries
13
- if (whereQuery.or && !whereQuery.and) {
14
- return {
15
- or: whereQuery.or.map(query => {
16
- // ...but if the or query does not have an and, we need to add it
17
- if (!query.and) {
18
- return {
19
- and: [query]
20
- };
21
- }
22
- return query;
23
- })
24
- };
25
- }
26
- // Check if 'whereQuery' has 'and' field but no 'or'.
27
- if (whereQuery.and && !whereQuery.or) {
28
- return {
29
- or: [{
30
- and: whereQuery.and
31
- }]
32
- };
33
- }
34
- // Check if 'whereQuery' has neither 'or' nor 'and'.
35
- if (!whereQuery.or && !whereQuery.and) {
36
- return {
37
- or: [{
38
- and: [whereQuery]
39
- }]
40
- };
41
- }
42
- // If 'whereQuery' has 'or' and 'and', just return it as it is.
43
- return whereQuery;
44
- };
45
- //# sourceMappingURL=transformWhereQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformWhereQuery.js","names":["transformWhereQuery","whereQuery","or","and","map","query"],"sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"sourcesContent":["'use client'\nimport type { Where } from 'payload'\n\n/**\n * Something like [or][0][and][0][text][equals]=example%20post will work and pass through the validateWhereQuery check.\n * However, something like [text][equals]=example%20post will not work and will fail the validateWhereQuery check,\n * even though it is a valid Where query. This needs to be transformed here.\n */\nexport const transformWhereQuery = (whereQuery): Where => {\n if (!whereQuery) {\n return {}\n }\n // Check if 'whereQuery' has 'or' field but no 'and'. This is the case for \"correct\" queries\n if (whereQuery.or && !whereQuery.and) {\n return {\n or: whereQuery.or.map((query) => {\n // ...but if the or query does not have an and, we need to add it\n if (!query.and) {\n return {\n and: [query],\n }\n }\n return query\n }),\n }\n }\n\n // Check if 'whereQuery' has 'and' field but no 'or'.\n if (whereQuery.and && !whereQuery.or) {\n return {\n or: [\n {\n and: whereQuery.and,\n },\n ],\n }\n }\n\n // Check if 'whereQuery' has neither 'or' nor 'and'.\n if (!whereQuery.or && !whereQuery.and) {\n return {\n or: [\n {\n and: [whereQuery], // top-level siblings are considered 'and'\n },\n ],\n }\n }\n\n // If 'whereQuery' has 'or' and 'and', just return it as it is.\n return whereQuery\n}\n"],"mappings":"AAAA;;AAGA;;;;;AAKA,OAAO,MAAMA,mBAAA,GAAuBC,UAAA;EAClC,IAAI,CAACA,UAAA,EAAY;IACf,OAAO,CAAC;EACV;EACA;EACA,IAAIA,UAAA,CAAWC,EAAE,IAAI,CAACD,UAAA,CAAWE,GAAG,EAAE;IACpC,OAAO;MACLD,EAAA,EAAID,UAAA,CAAWC,EAAE,CAACE,GAAG,CAAEC,KAAA;QACrB;QACA,IAAI,CAACA,KAAA,CAAMF,GAAG,EAAE;UACd,OAAO;YACLA,GAAA,EAAK,CAACE,KAAA;UACR;QACF;QACA,OAAOA,KAAA;MACT;IACF;EACF;EAEA;EACA,IAAIJ,UAAA,CAAWE,GAAG,IAAI,CAACF,UAAA,CAAWC,EAAE,EAAE;IACpC,OAAO;MACLA,EAAA,EAAI,CACF;QACEC,GAAA,EAAKF,UAAA,CAAWE;MAClB;IAEJ;EACF;EAEA;EACA,IAAI,CAACF,UAAA,CAAWC,EAAE,IAAI,CAACD,UAAA,CAAWE,GAAG,EAAE;IACrC,OAAO;MACLD,EAAA,EAAI,CACF;QACEC,GAAA,EAAK,CAACF,UAAA;MACR;IAEJ;EACF;EAEA;EACA,OAAOA,UAAA;AACT","ignoreList":[]}
@@ -1,4 +0,0 @@
1
- import type { Where } from 'payload';
2
- declare const validateWhereQuery: (whereQuery: any) => whereQuery is Where;
3
- export default validateWhereQuery;
4
- //# sourceMappingURL=validateWhereQuery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9C,QAAA,MAAM,kBAAkB,uBAAiB,UAAU,IAAI,KAwCtD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1,36 +0,0 @@
1
- 'use client';
2
-
3
- import { validOperatorSet } from 'payload/shared';
4
- const validateWhereQuery = whereQuery => {
5
- if (whereQuery?.or?.length > 0 && whereQuery?.or?.[0]?.and && whereQuery?.or?.[0]?.and?.length > 0) {
6
- // At this point we know that the whereQuery has 'or' and 'and' fields,
7
- // now let's check the structure and content of these fields.
8
- const isValid = whereQuery.or.every(orQuery => {
9
- if (orQuery.and && Array.isArray(orQuery.and)) {
10
- return orQuery.and.every(andQuery => {
11
- if (typeof andQuery !== 'object') {
12
- return false;
13
- }
14
- const andKeys = Object.keys(andQuery);
15
- // If there are no keys, it's not a valid WhereField.
16
- if (andKeys.length === 0) {
17
- return false;
18
- }
19
- for (const key of andKeys) {
20
- const operator = Object.keys(andQuery[key])[0];
21
- // Check if the key is a valid Operator.
22
- if (!operator || !validOperatorSet.has(operator)) {
23
- return false;
24
- }
25
- }
26
- return true;
27
- });
28
- }
29
- return false;
30
- });
31
- return isValid;
32
- }
33
- return false;
34
- };
35
- export default validateWhereQuery;
36
- //# sourceMappingURL=validateWhereQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateWhereQuery.js","names":["validOperatorSet","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","has"],"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["'use client'\nimport type { Operator, Where } from 'payload'\n\nimport { validOperatorSet } from 'payload/shared'\n\nconst validateWhereQuery = (whereQuery): whereQuery is Where => {\n if (\n whereQuery?.or?.length > 0 &&\n whereQuery?.or?.[0]?.and &&\n whereQuery?.or?.[0]?.and?.length > 0\n ) {\n // At this point we know that the whereQuery has 'or' and 'and' fields,\n // now let's check the structure and content of these fields.\n\n const isValid = whereQuery.or.every((orQuery) => {\n if (orQuery.and && Array.isArray(orQuery.and)) {\n return orQuery.and.every((andQuery) => {\n if (typeof andQuery !== 'object') {\n return false\n }\n\n const andKeys = Object.keys(andQuery)\n\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n\n for (const key of andKeys) {\n const operator = Object.keys(andQuery[key])[0]\n // Check if the key is a valid Operator.\n if (!operator || !validOperatorSet.has(operator as Operator)) {\n return false\n }\n }\n return true\n })\n }\n return false\n })\n\n return isValid\n }\n\n return false\n}\n\nexport default validateWhereQuery\n"],"mappings":"AAAA;;AAGA,SAASA,gBAAgB,QAAQ;AAEjC,MAAMC,kBAAA,GAAsBC,UAAA;EAC1B,IACEA,UAAA,EAAYC,EAAA,EAAIC,MAAA,GAAS,KACzBF,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,IACrBH,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,EAAKD,MAAA,GAAS,GACnC;IACA;IACA;IAEA,MAAME,OAAA,GAAUJ,UAAA,CAAWC,EAAE,CAACI,KAAK,CAAEC,OAAA;MACnC,IAAIA,OAAA,CAAQH,GAAG,IAAII,KAAA,CAAMC,OAAO,CAACF,OAAA,CAAQH,GAAG,GAAG;QAC7C,OAAOG,OAAA,CAAQH,GAAG,CAACE,KAAK,CAAEI,QAAA;UACxB,IAAI,OAAOA,QAAA,KAAa,UAAU;YAChC,OAAO;UACT;UAEA,MAAMC,OAAA,GAAUC,MAAA,CAAOC,IAAI,CAACH,QAAA;UAE5B;UACA,IAAIC,OAAA,CAAQR,MAAM,KAAK,GAAG;YACxB,OAAO;UACT;UAEA,KAAK,MAAMW,GAAA,IAAOH,OAAA,EAAS;YACzB,MAAMI,QAAA,GAAWH,MAAA,CAAOC,IAAI,CAACH,QAAQ,CAACI,GAAA,CAAI,CAAC,CAAC,EAAE;YAC9C;YACA,IAAI,CAACC,QAAA,IAAY,CAAChB,gBAAA,CAAiBiB,GAAG,CAACD,QAAA,GAAuB;cAC5D,OAAO;YACT;UACF;UACA,OAAO;QACT;MACF;MACA,OAAO;IACT;IAEA,OAAOV,OAAA;EACT;EAEA,OAAO;AACT;AAEA,eAAeL,kBAAA","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload';
2
- export declare const hoistQueryParamsToAnd: (currentWhere: Where, incomingWhere: Where) => Where;
3
- type Args = {
4
- collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig;
5
- search: string;
6
- where?: Where;
7
- };
8
- export declare const mergeListSearchAndWhere: ({ collectionConfig, search, where }: Args) => Where;
9
- export {};
10
- //# sourceMappingURL=mergeListSearchAndWhere.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mergeListSearchAndWhere.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeListSearchAndWhere.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIvF,eAAO,MAAM,qBAAqB,iBAAkB,KAAK,iBAAiB,KAAK,UAsB9E,CAAA;AAED,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,sBAAsB,GAAG,yBAAyB,CAAA;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,uBAAuB,wCAA8C,IAAI,KAAG,KAwBxF,CAAA"}
@@ -1,47 +0,0 @@
1
- const isEmptyObject = obj => Object.keys(obj).length === 0;
2
- export const hoistQueryParamsToAnd = (currentWhere, incomingWhere) => {
3
- if (isEmptyObject(incomingWhere)) {
4
- return currentWhere;
5
- }
6
- if (isEmptyObject(currentWhere)) {
7
- return incomingWhere;
8
- }
9
- if ('and' in currentWhere) {
10
- currentWhere.and.push(incomingWhere);
11
- } else if ('or' in currentWhere) {
12
- currentWhere = {
13
- and: [currentWhere, incomingWhere]
14
- };
15
- } else {
16
- currentWhere = {
17
- and: [currentWhere, incomingWhere]
18
- };
19
- }
20
- return currentWhere;
21
- };
22
- export const mergeListSearchAndWhere = ({
23
- collectionConfig,
24
- search,
25
- where = {}
26
- }) => {
27
- if (search) {
28
- let copyOfWhere = {
29
- ...(where || {})
30
- };
31
- const searchAsConditions = (collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']).map(fieldName => ({
32
- [fieldName]: {
33
- like: search
34
- }
35
- }));
36
- if (searchAsConditions.length > 0) {
37
- copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {
38
- or: searchAsConditions
39
- });
40
- }
41
- if (!isEmptyObject(copyOfWhere)) {
42
- where = copyOfWhere;
43
- }
44
- }
45
- return where;
46
- };
47
- //# sourceMappingURL=mergeListSearchAndWhere.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mergeListSearchAndWhere.js","names":["isEmptyObject","obj","Object","keys","length","hoistQueryParamsToAnd","currentWhere","incomingWhere","and","push","mergeListSearchAndWhere","collectionConfig","search","where","copyOfWhere","searchAsConditions","admin","listSearchableFields","useAsTitle","map","fieldName","like","or"],"sources":["../../src/utilities/mergeListSearchAndWhere.ts"],"sourcesContent":["import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload'\n\nconst isEmptyObject = (obj: object) => Object.keys(obj).length === 0\n\nexport const hoistQueryParamsToAnd = (currentWhere: Where, incomingWhere: Where) => {\n if (isEmptyObject(incomingWhere)) {\n return currentWhere\n }\n\n if (isEmptyObject(currentWhere)) {\n return incomingWhere\n }\n\n if ('and' in currentWhere) {\n currentWhere.and.push(incomingWhere)\n } else if ('or' in currentWhere) {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n } else {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n }\n\n return currentWhere\n}\n\ntype Args = {\n collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig\n search: string\n where?: Where\n}\n\nexport const mergeListSearchAndWhere = ({ collectionConfig, search, where = {} }: Args): Where => {\n if (search) {\n let copyOfWhere = { ...(where || {}) }\n\n const searchAsConditions = (\n collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']\n ).map((fieldName) => ({\n [fieldName]: {\n like: search,\n },\n }))\n\n if (searchAsConditions.length > 0) {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {\n or: searchAsConditions,\n })\n }\n\n if (!isEmptyObject(copyOfWhere)) {\n where = copyOfWhere\n }\n }\n\n return where\n}\n"],"mappings":"AAEA,MAAMA,aAAA,GAAiBC,GAAA,IAAgBC,MAAA,CAAOC,IAAI,CAACF,GAAA,EAAKG,MAAM,KAAK;AAEnE,OAAO,MAAMC,qBAAA,GAAwBA,CAACC,YAAA,EAAqBC,aAAA;EACzD,IAAIP,aAAA,CAAcO,aAAA,GAAgB;IAChC,OAAOD,YAAA;EACT;EAEA,IAAIN,aAAA,CAAcM,YAAA,GAAe;IAC/B,OAAOC,aAAA;EACT;EAEA,IAAI,SAASD,YAAA,EAAc;IACzBA,YAAA,CAAaE,GAAG,CAACC,IAAI,CAACF,aAAA;EACxB,OAAO,IAAI,QAAQD,YAAA,EAAc;IAC/BA,YAAA,GAAe;MACbE,GAAA,EAAK,CAACF,YAAA,EAAcC,aAAA;IACtB;EACF,OAAO;IACLD,YAAA,GAAe;MACbE,GAAA,EAAK,CAACF,YAAA,EAAcC,aAAA;IACtB;EACF;EAEA,OAAOD,YAAA;AACT;AAQA,OAAO,MAAMI,uBAAA,GAA0BA,CAAC;EAAEC,gBAAgB;EAAEC,MAAM;EAAEC,KAAA,GAAQ,CAAC;AAAC,CAAQ;EACpF,IAAID,MAAA,EAAQ;IACV,IAAIE,WAAA,GAAc;MAAE,IAAID,KAAA,IAAS,CAAC,CAAC;IAAE;IAErC,MAAME,kBAAA,GAAqB,CACzBJ,gBAAA,CAAiBK,KAAK,CAACC,oBAAoB,IAAI,CAACN,gBAAA,CAAiBK,KAAK,EAAEE,UAAA,IAAc,KAAK,EAC3FC,GAAG,CAAEC,SAAA,KAAe;MACpB,CAACA,SAAA,GAAY;QACXC,IAAA,EAAMT;MACR;IACF;IAEA,IAAIG,kBAAA,CAAmBX,MAAM,GAAG,GAAG;MACjCU,WAAA,GAAcT,qBAAA,CAAsBS,WAAA,EAAa;QAC/CQ,EAAA,EAAIP;MACN;IACF;IAEA,IAAI,CAACf,aAAA,CAAcc,WAAA,GAAc;MAC/BD,KAAA,GAAQC,WAAA;IACV;EACF;EAEA,OAAOD,KAAA;AACT","ignoreList":[]}