@payloadcms/ui 3.29.0-internal.2984e42 → 3.29.0-internal.37e46b5

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 (493) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +8 -5
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +127 -143
  6. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  7. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  8. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  9. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  10. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  11. package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
  12. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js +3 -3
  14. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  16. package/dist/elements/BulkUpload/index.js +4 -2
  17. package/dist/elements/BulkUpload/index.js.map +1 -1
  18. package/dist/elements/Collapsible/provider.d.ts.map +1 -1
  19. package/dist/elements/Collapsible/provider.js +5 -3
  20. package/dist/elements/Collapsible/provider.js.map +1 -1
  21. package/dist/elements/ColumnSelector/index.js +1 -1
  22. package/dist/elements/ColumnSelector/index.js.map +1 -1
  23. package/dist/elements/ColumnSelector/index.scss +3 -2
  24. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  25. package/dist/elements/DeleteDocument/index.js +2 -1
  26. package/dist/elements/DeleteDocument/index.js.map +1 -1
  27. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  28. package/dist/elements/DeleteMany/index.js +1 -1
  29. package/dist/elements/DeleteMany/index.js.map +1 -1
  30. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  31. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -2
  32. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  33. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  34. package/dist/elements/DocumentDrawer/Provider.js +3 -3
  35. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  36. package/dist/elements/DocumentDrawer/types.d.ts +0 -4
  37. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  38. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  39. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  40. package/dist/elements/DocumentFields/index.js +5 -1
  41. package/dist/elements/DocumentFields/index.js.map +1 -1
  42. package/dist/elements/Drawer/index.d.ts.map +1 -1
  43. package/dist/elements/Drawer/index.js +5 -3
  44. package/dist/elements/Drawer/index.js.map +1 -1
  45. package/dist/elements/EditMany/DrawerContent.d.ts +1 -2
  46. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  47. package/dist/elements/EditMany/DrawerContent.js +120 -108
  48. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  49. package/dist/elements/EditMany/index.d.ts.map +1 -1
  50. package/dist/elements/EditMany/index.js +5 -6
  51. package/dist/elements/EditMany/index.js.map +1 -1
  52. package/dist/elements/FieldSelect/index.d.ts +2 -12
  53. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  54. package/dist/elements/FieldSelect/index.js +48 -31
  55. package/dist/elements/FieldSelect/index.js.map +1 -1
  56. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  57. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -2
  58. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  59. package/dist/elements/ListControls/index.d.ts +24 -1
  60. package/dist/elements/ListControls/index.d.ts.map +1 -1
  61. package/dist/elements/ListControls/index.js +86 -115
  62. package/dist/elements/ListControls/index.js.map +1 -1
  63. package/dist/elements/ListControls/index.scss +9 -5
  64. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  65. package/dist/elements/ListDrawer/DrawerContent.js +2 -4
  66. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  67. package/dist/elements/ListDrawer/Provider.js +3 -3
  68. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  69. package/dist/elements/ListDrawer/types.d.ts +2 -3
  70. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  71. package/dist/elements/ListDrawer/types.js.map +1 -1
  72. package/dist/elements/LoadingOverlay/index.js +3 -3
  73. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  74. package/dist/elements/Nav/context.d.ts.map +1 -1
  75. package/dist/elements/Nav/context.js +4 -2
  76. package/dist/elements/Nav/context.js.map +1 -1
  77. package/dist/elements/Pill/index.d.ts +1 -1
  78. package/dist/elements/Pill/index.d.ts.map +1 -1
  79. package/dist/elements/Pill/index.js +0 -2
  80. package/dist/elements/Pill/index.js.map +1 -1
  81. package/dist/elements/Pill/index.scss +6 -29
  82. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
  83. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  84. package/dist/elements/Popup/PopupButtonList/index.js +0 -1
  85. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  86. package/dist/elements/Popup/index.d.ts.map +1 -1
  87. package/dist/elements/Popup/index.js +1 -1
  88. package/dist/elements/Popup/index.js.map +1 -1
  89. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
  90. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  91. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -4
  92. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  93. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  94. package/dist/elements/PublishButton/ScheduleDrawer/index.js +3 -3
  95. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  96. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  97. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  98. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  99. package/dist/elements/RelationshipTable/index.js +4 -3
  100. package/dist/elements/RelationshipTable/index.js.map +1 -1
  101. package/dist/elements/StepNav/context.d.ts.map +1 -1
  102. package/dist/elements/StepNav/context.js +5 -3
  103. package/dist/elements/StepNav/context.js.map +1 -1
  104. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  105. package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -24
  106. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  107. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  108. package/dist/elements/Table/DefaultCell/index.js +25 -32
  109. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  110. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  111. package/dist/elements/Table/RelationshipProvider/index.js +5 -3
  112. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  113. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  114. package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.js +6 -4
  115. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -0
  116. package/dist/{providers → elements}/TableColumns/buildColumnState.d.ts +1 -1
  117. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  118. package/dist/{providers → elements}/TableColumns/buildColumnState.js +2 -9
  119. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  120. package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  121. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  122. package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.js +1 -1
  123. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  124. package/dist/elements/TableColumns/context.d.ts.map +1 -0
  125. package/dist/elements/TableColumns/context.js +4 -0
  126. package/dist/elements/TableColumns/context.js.map +1 -0
  127. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  128. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  129. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  130. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  131. package/dist/elements/TableColumns/index.d.ts.map +1 -0
  132. package/dist/{providers → elements}/TableColumns/index.js +3 -5
  133. package/dist/elements/TableColumns/index.js.map +1 -0
  134. package/dist/{providers → elements}/TableColumns/types.d.ts +1 -1
  135. package/dist/elements/TableColumns/types.d.ts.map +1 -0
  136. package/dist/elements/TableColumns/types.js.map +1 -0
  137. package/dist/elements/Thumbnail/index.js +23 -25
  138. package/dist/elements/Thumbnail/index.js.map +1 -1
  139. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  140. package/dist/elements/Toasts/fieldErrors.js +2 -2
  141. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  142. package/dist/elements/Upload/index.d.ts.map +1 -1
  143. package/dist/elements/Upload/index.js +52 -8
  144. package/dist/elements/Upload/index.js.map +1 -1
  145. package/dist/elements/Upload/index.scss +1 -0
  146. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  147. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  148. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  149. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  150. package/dist/elements/WhereBuilder/index.js +15 -18
  151. package/dist/elements/WhereBuilder/index.js.map +1 -1
  152. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +8 -0
  153. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +1 -0
  154. package/dist/elements/WhereBuilder/transformWhereQuery.js +45 -0
  155. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -0
  156. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +4 -0
  157. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -0
  158. package/dist/elements/WhereBuilder/validateWhereQuery.js +36 -0
  159. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -0
  160. package/dist/exports/client/{DatePicker-DMHV2M2L.js → CodeEditor-TQ5ADFPC.js} +2 -2
  161. package/dist/exports/client/{CodeEditor-J4IKAVAK.js → DatePicker-HHQ6TPOW.js} +2 -2
  162. package/dist/exports/client/{chunk-3AA2TJQ5.js → chunk-IMEQ6NKQ.js} +2 -2
  163. package/dist/exports/client/{chunk-3AA2TJQ5.js.map → chunk-IMEQ6NKQ.js.map} +3 -3
  164. package/dist/exports/client/{chunk-PKQOCWZD.js → chunk-LMYT7O7U.js} +2 -2
  165. package/dist/exports/client/{chunk-PKQOCWZD.js.map → chunk-LMYT7O7U.js.map} +3 -3
  166. package/dist/exports/client/index.d.ts +3 -7
  167. package/dist/exports/client/index.d.ts.map +1 -1
  168. package/dist/exports/client/index.js +23 -23
  169. package/dist/exports/client/index.js.map +4 -4
  170. package/dist/exports/shared/index.d.ts +3 -8
  171. package/dist/exports/shared/index.d.ts.map +1 -1
  172. package/dist/exports/shared/index.js +2 -2
  173. package/dist/exports/shared/index.js.map +4 -4
  174. package/dist/fields/Array/index.d.ts.map +1 -1
  175. package/dist/fields/Array/index.js +3 -4
  176. package/dist/fields/Array/index.js.map +1 -1
  177. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  178. package/dist/fields/Blocks/BlockRow.js +20 -26
  179. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  180. package/dist/fields/Blocks/index.d.ts.map +1 -1
  181. package/dist/fields/Blocks/index.js +4 -5
  182. package/dist/fields/Blocks/index.js.map +1 -1
  183. package/dist/fields/Checkbox/index.d.ts +1 -1
  184. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  185. package/dist/fields/Checkbox/index.js +3 -4
  186. package/dist/fields/Checkbox/index.js.map +1 -1
  187. package/dist/fields/Code/index.d.ts.map +1 -1
  188. package/dist/fields/Code/index.js +3 -4
  189. package/dist/fields/Code/index.js.map +1 -1
  190. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  191. package/dist/fields/Collapsible/index.js +2 -3
  192. package/dist/fields/Collapsible/index.js.map +1 -1
  193. package/dist/fields/ConfirmPassword/index.js +11 -13
  194. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  195. package/dist/fields/DateTime/index.d.ts.map +1 -1
  196. package/dist/fields/DateTime/index.js +4 -5
  197. package/dist/fields/DateTime/index.js.map +1 -1
  198. package/dist/fields/Email/index.d.ts.map +1 -1
  199. package/dist/fields/Email/index.js +2 -3
  200. package/dist/fields/Email/index.js.map +1 -1
  201. package/dist/fields/Group/index.d.ts.map +1 -1
  202. package/dist/fields/Group/index.js.map +1 -1
  203. package/dist/fields/Group/index.scss +6 -12
  204. package/dist/fields/Group/provider.d.ts.map +1 -1
  205. package/dist/fields/Group/provider.js +5 -3
  206. package/dist/fields/Group/provider.js.map +1 -1
  207. package/dist/fields/JSON/index.d.ts.map +1 -1
  208. package/dist/fields/JSON/index.js +4 -5
  209. package/dist/fields/JSON/index.js.map +1 -1
  210. package/dist/fields/Number/index.d.ts.map +1 -1
  211. package/dist/fields/Number/index.js +5 -6
  212. package/dist/fields/Number/index.js.map +1 -1
  213. package/dist/fields/Password/index.d.ts.map +1 -1
  214. package/dist/fields/Password/index.js +4 -2
  215. package/dist/fields/Password/index.js.map +1 -1
  216. package/dist/fields/Point/index.d.ts.map +1 -1
  217. package/dist/fields/Point/index.js +3 -4
  218. package/dist/fields/Point/index.js.map +1 -1
  219. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  220. package/dist/fields/RadioGroup/index.js +3 -4
  221. package/dist/fields/RadioGroup/index.js.map +1 -1
  222. package/dist/fields/Relationship/index.d.ts.map +1 -1
  223. package/dist/fields/Relationship/index.js +4 -5
  224. package/dist/fields/Relationship/index.js.map +1 -1
  225. package/dist/fields/Row/provider.d.ts.map +1 -1
  226. package/dist/fields/Row/provider.js +5 -3
  227. package/dist/fields/Row/provider.js.map +1 -1
  228. package/dist/fields/Select/index.d.ts.map +1 -1
  229. package/dist/fields/Select/index.js +3 -4
  230. package/dist/fields/Select/index.js.map +1 -1
  231. package/dist/fields/Tabs/Tab/index.d.ts +0 -1
  232. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  233. package/dist/fields/Tabs/Tab/index.js +25 -29
  234. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  235. package/dist/fields/Tabs/Tab/index.scss +0 -4
  236. package/dist/fields/Tabs/index.d.ts +1 -1
  237. package/dist/fields/Tabs/index.d.ts.map +1 -1
  238. package/dist/fields/Tabs/index.js +194 -285
  239. package/dist/fields/Tabs/index.js.map +1 -1
  240. package/dist/fields/Tabs/index.scss +0 -8
  241. package/dist/fields/Tabs/provider.d.ts.map +1 -1
  242. package/dist/fields/Tabs/provider.js +5 -3
  243. package/dist/fields/Tabs/provider.js.map +1 -1
  244. package/dist/fields/Text/index.d.ts.map +1 -1
  245. package/dist/fields/Text/index.js +3 -4
  246. package/dist/fields/Text/index.js.map +1 -1
  247. package/dist/fields/Textarea/index.d.ts.map +1 -1
  248. package/dist/fields/Textarea/index.js +1 -2
  249. package/dist/fields/Textarea/index.js.map +1 -1
  250. package/dist/fields/Upload/index.d.ts.map +1 -1
  251. package/dist/fields/Upload/index.js +1 -2
  252. package/dist/fields/Upload/index.js.map +1 -1
  253. package/dist/forms/Form/context.d.ts.map +1 -1
  254. package/dist/forms/Form/context.js +25 -9
  255. package/dist/forms/Form/context.js.map +1 -1
  256. package/dist/forms/Form/fieldReducer.js +1 -1
  257. package/dist/forms/Form/fieldReducer.js.map +1 -1
  258. package/dist/forms/Form/index.d.ts.map +1 -1
  259. package/dist/forms/Form/index.js +8 -8
  260. package/dist/forms/Form/index.js.map +1 -1
  261. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  262. package/dist/forms/RowLabel/Context/index.js +2 -2
  263. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  264. package/dist/forms/RowLabel/index.d.ts.map +1 -1
  265. package/dist/forms/RowLabel/index.js +2 -2
  266. package/dist/forms/RowLabel/index.js.map +1 -1
  267. package/dist/forms/RowLabel/types.d.ts +1 -1
  268. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  269. package/dist/forms/RowLabel/types.js.map +1 -1
  270. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -3
  271. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  272. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -45
  273. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  274. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -4
  275. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  276. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +0 -4
  277. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  278. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -4
  279. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  280. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +0 -4
  281. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  282. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -4
  283. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  284. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +2 -41
  285. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  286. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -4
  287. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  288. package/dist/forms/fieldSchemasToFormState/index.js +0 -6
  289. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  290. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -4
  291. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  292. package/dist/forms/fieldSchemasToFormState/iterateFields.js +0 -16
  293. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  294. package/dist/forms/useField/index.d.ts.map +1 -1
  295. package/dist/forms/useField/index.js +67 -70
  296. package/dist/forms/useField/index.js.map +1 -1
  297. package/dist/forms/useField/types.d.ts +0 -1
  298. package/dist/forms/useField/types.d.ts.map +1 -1
  299. package/dist/forms/useField/types.js.map +1 -1
  300. package/dist/hooks/useQueues.js +3 -3
  301. package/dist/hooks/useQueues.js.map +1 -1
  302. package/dist/icons/Chevron/index.d.ts +0 -1
  303. package/dist/icons/Chevron/index.d.ts.map +1 -1
  304. package/dist/icons/Chevron/index.js +0 -2
  305. package/dist/icons/Chevron/index.js.map +1 -1
  306. package/dist/icons/Dots/index.d.ts +0 -2
  307. package/dist/icons/Dots/index.d.ts.map +1 -1
  308. package/dist/icons/Dots/index.js +2 -5
  309. package/dist/icons/Dots/index.js.map +1 -1
  310. package/dist/icons/Dots/index.scss +0 -14
  311. package/dist/providers/Actions/index.d.ts.map +1 -1
  312. package/dist/providers/Actions/index.js +5 -3
  313. package/dist/providers/Actions/index.js.map +1 -1
  314. package/dist/providers/Auth/index.d.ts.map +1 -1
  315. package/dist/providers/Auth/index.js +5 -3
  316. package/dist/providers/Auth/index.js.map +1 -1
  317. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  318. package/dist/providers/ClientFunction/index.js +4 -4
  319. package/dist/providers/ClientFunction/index.js.map +1 -1
  320. package/dist/providers/Config/index.d.ts.map +1 -1
  321. package/dist/providers/Config/index.js +5 -3
  322. package/dist/providers/Config/index.js.map +1 -1
  323. package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
  324. package/dist/providers/DocumentEvents/index.js +5 -3
  325. package/dist/providers/DocumentEvents/index.js.map +1 -1
  326. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  327. package/dist/providers/DocumentInfo/index.js +5 -3
  328. package/dist/providers/DocumentInfo/index.js.map +1 -1
  329. package/dist/providers/DocumentInfo/types.d.ts +0 -1
  330. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  331. package/dist/providers/DocumentInfo/types.js.map +1 -1
  332. package/dist/providers/EditDepth/index.d.ts.map +1 -1
  333. package/dist/providers/EditDepth/index.js +5 -3
  334. package/dist/providers/EditDepth/index.js.map +1 -1
  335. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  336. package/dist/providers/EntityVisibility/index.js +5 -3
  337. package/dist/providers/EntityVisibility/index.js.map +1 -1
  338. package/dist/providers/ListQuery/context.d.ts +0 -2
  339. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  340. package/dist/providers/ListQuery/context.js +2 -4
  341. package/dist/providers/ListQuery/context.js.map +1 -1
  342. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  343. package/dist/providers/ListQuery/index.js +14 -30
  344. package/dist/providers/ListQuery/index.js.map +1 -1
  345. package/dist/providers/ListQuery/types.d.ts +3 -6
  346. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  347. package/dist/providers/ListQuery/types.js.map +1 -1
  348. package/dist/providers/Locale/index.d.ts.map +1 -1
  349. package/dist/providers/Locale/index.js +9 -5
  350. package/dist/providers/Locale/index.js.map +1 -1
  351. package/dist/providers/Operation/index.d.ts.map +1 -1
  352. package/dist/providers/Operation/index.js +5 -3
  353. package/dist/providers/Operation/index.js.map +1 -1
  354. package/dist/providers/Params/index.d.ts.map +1 -1
  355. package/dist/providers/Params/index.js +5 -3
  356. package/dist/providers/Params/index.js.map +1 -1
  357. package/dist/providers/Preferences/index.d.ts.map +1 -1
  358. package/dist/providers/Preferences/index.js +5 -3
  359. package/dist/providers/Preferences/index.js.map +1 -1
  360. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  361. package/dist/providers/RouteCache/index.js +5 -3
  362. package/dist/providers/RouteCache/index.js.map +1 -1
  363. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  364. package/dist/providers/RouteTransition/index.js +4 -2
  365. package/dist/providers/RouteTransition/index.js.map +1 -1
  366. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  367. package/dist/providers/SearchParams/index.js +5 -3
  368. package/dist/providers/SearchParams/index.js.map +1 -1
  369. package/dist/providers/Selection/index.d.ts.map +1 -1
  370. package/dist/providers/Selection/index.js +5 -3
  371. package/dist/providers/Selection/index.js.map +1 -1
  372. package/dist/providers/ServerFunctions/index.d.ts +0 -1
  373. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  374. package/dist/providers/ServerFunctions/index.js +2 -2
  375. package/dist/providers/ServerFunctions/index.js.map +1 -1
  376. package/dist/providers/Theme/index.d.ts.map +1 -1
  377. package/dist/providers/Theme/index.js +5 -3
  378. package/dist/providers/Theme/index.js.map +1 -1
  379. package/dist/providers/Translation/index.d.ts.map +1 -1
  380. package/dist/providers/Translation/index.js +5 -3
  381. package/dist/providers/Translation/index.js.map +1 -1
  382. package/dist/providers/UploadControls/index.d.ts +12 -0
  383. package/dist/providers/UploadControls/index.d.ts.map +1 -0
  384. package/dist/providers/UploadControls/index.js +41 -0
  385. package/dist/providers/UploadControls/index.js.map +1 -0
  386. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  387. package/dist/providers/UploadEdits/index.js +4 -2
  388. package/dist/providers/UploadEdits/index.js.map +1 -1
  389. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  390. package/dist/providers/UploadHandlers/index.js +3 -3
  391. package/dist/providers/UploadHandlers/index.js.map +1 -1
  392. package/dist/styles.css +1 -1
  393. package/dist/utilities/buildFormState.d.ts.map +1 -1
  394. package/dist/utilities/buildFormState.js +1 -5
  395. package/dist/utilities/buildFormState.js.map +1 -1
  396. package/dist/utilities/mergeListSearchAndWhere.d.ts +10 -0
  397. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
  398. package/dist/utilities/mergeListSearchAndWhere.js +47 -0
  399. package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
  400. package/dist/utilities/renderTable.js +4 -4
  401. package/dist/utilities/renderTable.js.map +1 -1
  402. package/dist/utilities/upsertPreferences.d.ts +2 -7
  403. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  404. package/dist/utilities/upsertPreferences.js +5 -11
  405. package/dist/utilities/upsertPreferences.js.map +1 -1
  406. package/dist/views/Edit/index.d.ts.map +1 -1
  407. package/dist/views/Edit/index.js +10 -8
  408. package/dist/views/Edit/index.js.map +1 -1
  409. package/dist/views/List/index.d.ts.map +1 -1
  410. package/dist/views/List/index.js +1 -7
  411. package/dist/views/List/index.js.map +1 -1
  412. package/package.json +5 -5
  413. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +0 -8
  414. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +0 -1
  415. package/dist/elements/ListControls/ActiveQueryPreset/index.js +0 -102
  416. package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +0 -1
  417. package/dist/elements/ListControls/ActiveQueryPreset/index.scss +0 -21
  418. package/dist/elements/ListControls/types.d.ts +0 -28
  419. package/dist/elements/ListControls/types.d.ts.map +0 -1
  420. package/dist/elements/ListControls/types.js.map +0 -1
  421. package/dist/elements/ListControls/useQueryPresets.d.ts +0 -17
  422. package/dist/elements/ListControls/useQueryPresets.d.ts.map +0 -1
  423. package/dist/elements/ListControls/useQueryPresets.js +0 -259
  424. package/dist/elements/ListControls/useQueryPresets.js.map +0 -1
  425. package/dist/elements/Popup/PopupDivider/index.d.ts +0 -4
  426. package/dist/elements/Popup/PopupDivider/index.d.ts.map +0 -1
  427. package/dist/elements/Popup/PopupDivider/index.js +0 -10
  428. package/dist/elements/Popup/PopupDivider/index.js.map +0 -1
  429. package/dist/elements/Popup/PopupDivider/index.scss +0 -10
  430. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +0 -4
  431. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +0 -1
  432. package/dist/elements/QueryPresets/cells/AccessCell/index.js +0 -25
  433. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +0 -1
  434. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +0 -4
  435. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +0 -1
  436. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +0 -11
  437. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +0 -1
  438. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +0 -4
  439. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +0 -1
  440. package/dist/elements/QueryPresets/cells/WhereCell/index.js +0 -29
  441. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +0 -1
  442. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +0 -4
  443. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +0 -1
  444. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +0 -64
  445. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +0 -1
  446. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -28
  447. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +0 -4
  448. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +0 -1
  449. package/dist/elements/QueryPresets/fields/WhereField/index.js +0 -121
  450. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +0 -1
  451. package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
  452. package/dist/icons/People/index.d.ts +0 -6
  453. package/dist/icons/People/index.d.ts.map +0 -1
  454. package/dist/icons/People/index.js +0 -18
  455. package/dist/icons/People/index.js.map +0 -1
  456. package/dist/icons/People/index.scss +0 -11
  457. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  458. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +0 -1
  459. package/dist/providers/TableColumns/buildColumnState.d.ts.map +0 -1
  460. package/dist/providers/TableColumns/buildColumnState.js.map +0 -1
  461. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  462. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  463. package/dist/providers/TableColumns/context.d.ts.map +0 -1
  464. package/dist/providers/TableColumns/context.js +0 -4
  465. package/dist/providers/TableColumns/context.js.map +0 -1
  466. package/dist/providers/TableColumns/filterFields.d.ts.map +0 -1
  467. package/dist/providers/TableColumns/filterFields.js.map +0 -1
  468. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +0 -1
  469. package/dist/providers/TableColumns/getInitialColumns.js.map +0 -1
  470. package/dist/providers/TableColumns/index.d.ts.map +0 -1
  471. package/dist/providers/TableColumns/index.js.map +0 -1
  472. package/dist/providers/TableColumns/types.d.ts.map +0 -1
  473. package/dist/providers/TableColumns/types.js +0 -2
  474. package/dist/providers/TableColumns/types.js.map +0 -1
  475. package/dist/utilities/getDisplayedFieldValue.d.ts +0 -13
  476. package/dist/utilities/getDisplayedFieldValue.d.ts.map +0 -1
  477. package/dist/utilities/getDisplayedFieldValue.js +0 -28
  478. package/dist/utilities/getDisplayedFieldValue.js.map +0 -1
  479. package/dist/utilities/hasOptionLabelJSXElement.d.ts +0 -3
  480. package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +0 -1
  481. package/dist/utilities/hasOptionLabelJSXElement.js +0 -15
  482. package/dist/utilities/hasOptionLabelJSXElement.js.map +0 -1
  483. /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  484. /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.scss +0 -0
  485. /package/dist/{providers → elements}/TableColumns/context.d.ts +0 -0
  486. /package/dist/{providers → elements}/TableColumns/filterFields.d.ts +0 -0
  487. /package/dist/{providers → elements}/TableColumns/filterFields.js +0 -0
  488. /package/dist/{providers → elements}/TableColumns/getInitialColumns.d.ts +0 -0
  489. /package/dist/{providers → elements}/TableColumns/getInitialColumns.js +0 -0
  490. /package/dist/{providers → elements}/TableColumns/index.d.ts +0 -0
  491. /package/dist/elements/{ListControls → TableColumns}/types.js +0 -0
  492. /package/dist/exports/client/{CodeEditor-J4IKAVAK.js.map → CodeEditor-TQ5ADFPC.js.map} +0 -0
  493. /package/dist/exports/client/{DatePicker-DMHV2M2L.js.map → DatePicker-HHQ6TPOW.js.map} +0 -0
@@ -9,7 +9,6 @@ import { FieldLabel } from '../../fields/FieldLabel/index.js';
9
9
  import { useForm } from '../../forms/Form/context.js';
10
10
  import { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
- import { filterOutUploadFields } from '../../utilities/filterOutUploadFields.js';
13
12
  import { ReactSelect } from '../ReactSelect/index.js';
14
13
  import './index.scss';
15
14
  const baseClass = 'field-select';
@@ -92,10 +91,10 @@ const reduceFields = ({
92
91
  }, []);
93
92
  };
94
93
  export const FieldSelect = t0 => {
95
- const $ = _c(13);
94
+ const $ = _c(11);
96
95
  const {
97
96
  fields,
98
- onChange
97
+ setSelected
99
98
  } = t0;
100
99
  const {
101
100
  t
@@ -107,7 +106,7 @@ export const FieldSelect = t0 => {
107
106
  let t1;
108
107
  if ($[0] !== fields || $[1] !== getFields) {
109
108
  t1 = () => reduceFields({
110
- fields: filterOutUploadFields(fields),
109
+ fields,
111
110
  formState: getFields()
112
111
  });
113
112
  $[0] = fields;
@@ -118,44 +117,62 @@ export const FieldSelect = t0 => {
118
117
  }
119
118
  const [options] = useState(t1);
120
119
  let t2;
121
- if ($[3] !== dispatchFields || $[4] !== getFields || $[5] !== onChange || $[6] !== options || $[7] !== t) {
122
- let t3;
123
- if ($[9] !== dispatchFields || $[10] !== getFields || $[11] !== onChange) {
124
- t3 = selected => onChange({
125
- dispatchFields,
126
- formState: getFields(),
127
- selected
128
- });
129
- $[9] = dispatchFields;
130
- $[10] = getFields;
131
- $[11] = onChange;
132
- $[12] = t3;
133
- } else {
134
- t3 = $[12];
135
- }
136
- t2 = _jsxs("div", {
120
+ if ($[3] !== dispatchFields || $[4] !== getFields || $[5] !== setSelected) {
121
+ t2 = selected => {
122
+ const activeFields = getFields();
123
+ if (selected === null) {
124
+ setSelected([]);
125
+ } else {
126
+ setSelected(selected.map(_temp));
127
+ }
128
+ if (selected === null || Object.keys(activeFields || []).length > selected.length) {
129
+ Object.keys(activeFields).forEach(path => {
130
+ if (selected === null || !selected.find(field => field.value.path === path)) {
131
+ dispatchFields({
132
+ type: "REMOVE",
133
+ path
134
+ });
135
+ }
136
+ });
137
+ }
138
+ };
139
+ $[3] = dispatchFields;
140
+ $[4] = getFields;
141
+ $[5] = setSelected;
142
+ $[6] = t2;
143
+ } else {
144
+ t2 = $[6];
145
+ }
146
+ const handleChange = t2;
147
+ let t3;
148
+ if ($[7] !== handleChange || $[8] !== options || $[9] !== t) {
149
+ t3 = _jsxs("div", {
137
150
  className: baseClass,
138
151
  children: [_jsx(FieldLabel, {
139
152
  label: t("fields:selectFieldsToEdit")
140
153
  }), _jsx(ReactSelect, {
141
- getOptionValue: _temp,
154
+ getOptionValue: _temp2,
142
155
  isMulti: true,
143
- onChange: t3,
156
+ onChange: handleChange,
144
157
  options
145
158
  })]
146
159
  });
147
- $[3] = dispatchFields;
148
- $[4] = getFields;
149
- $[5] = onChange;
150
- $[6] = options;
151
- $[7] = t;
152
- $[8] = t2;
160
+ $[7] = handleChange;
161
+ $[8] = options;
162
+ $[9] = t;
163
+ $[10] = t3;
153
164
  } else {
154
- t2 = $[8];
165
+ t3 = $[10];
155
166
  }
156
- return t2;
167
+ return t3;
157
168
  };
158
- function _temp(option) {
169
+ function _temp(t0) {
170
+ const {
171
+ value
172
+ } = t0;
173
+ return value;
174
+ }
175
+ function _temp2(option) {
159
176
  if (typeof option.value === "object" && "path" in option.value) {
160
177
  return String(option.value.path);
161
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","React","Fragment","useState","RenderCustomComponent","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","filterOutUploadFields","ReactSelect","baseClass","combineLabel","CustomLabel","field","prefix","_jsxs","_jsx","style","display","CustomComponent","Fallback","label","reduceFields","fields","formState","labelPrefix","path","customComponents","Label","reduce","fieldsToUse","type","admin","disableBulkEdit","unique","readOnly","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","t0","$","onChange","t","dispatchFields","getFields","t1","options","t2","t3","selected","className","children","getOptionValue","_temp","isMulti","option","String"],"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FieldWithPathClient, FormState } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React, { Fragment, useState } from 'react'\n\nimport type { FieldAction } from '../../forms/Form/types.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { filterOutUploadFields } from '../../utilities/filterOutUploadFields.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type OnFieldSelect = ({\n dispatchFields,\n formState,\n selected,\n}: {\n dispatchFields: React.Dispatch<FieldAction>\n formState: FormState\n selected: FieldOption[]\n}) => void\n\nexport type FieldSelectProps = {\n readonly fields: ClientField[]\n readonly onChange: OnFieldSelect\n}\n\nexport const combineLabel = ({\n CustomLabel,\n field,\n prefix,\n}: {\n CustomLabel?: React.ReactNode\n field?: ClientField\n prefix?: React.ReactNode\n}): React.ReactNode => {\n return (\n <Fragment>\n {prefix ? (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n ) : null}\n <span style={{ display: 'inline-block' }}>\n <RenderCustomComponent\n CustomComponent={CustomLabel}\n Fallback={<FieldLabel label={'label' in field && field.label} />}\n />\n </span>\n </Fragment>\n )\n}\n\nexport type FieldOption = { Label: React.ReactNode; value: FieldWithPathClient }\n\nconst reduceFields = ({\n fields,\n formState,\n labelPrefix = null,\n path = '',\n}: {\n fields: ClientField[]\n formState?: FormState\n labelPrefix?: React.ReactNode\n path?: string\n}): FieldOption[] => {\n if (!fields) {\n return []\n }\n\n const CustomLabel = formState?.[path]?.customComponents?.Label\n\n return fields?.reduce((fieldsToUse, field) => {\n // escape for a variety of reasons, include ui fields as they have `name`.\n if (\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin?.disableBulkEdit ||\n field.unique ||\n fieldIsHiddenOrDisabled(field) ||\n ('readOnly' in field && field.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fields: field.fields,\n labelPrefix: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n if ('fields' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fields: tab.fields,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fields, onChange }) => {\n const { t } = useTranslation()\n const { dispatchFields, getFields } = useForm()\n\n const [options] = useState<FieldOption[]>(() =>\n reduceFields({ fields: filterOutUploadFields(fields), formState: getFields() }),\n )\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={(selected: FieldOption[]) =>\n onChange({ dispatchFields, formState: getFields(), selected })\n }\n options={options}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","React","Fragment","useState","RenderCustomComponent","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","CustomLabel","field","prefix","_jsxs","_jsx","style","display","CustomComponent","Fallback","label","reduceFields","fields","formState","labelPrefix","path","customComponents","Label","reduce","fieldsToUse","type","admin","disableBulkEdit","unique","readOnly","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","t0","$","setSelected","t","dispatchFields","getFields","t1","options","t2","selected","activeFields","map","_temp","Object","keys","length","forEach","find","handleChange","t3","className","children","getOptionValue","_temp2","isMulti","onChange","option","String"],"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FieldWithPathClient, FormState } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React, { Fragment, useState } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n readonly fields: ClientField[]\n readonly setSelected: (fields: FieldWithPathClient[]) => void\n}\n\nexport const combineLabel = ({\n CustomLabel,\n field,\n prefix,\n}: {\n CustomLabel?: React.ReactNode\n field?: ClientField\n prefix?: React.ReactNode\n}): React.ReactNode => {\n return (\n <Fragment>\n {prefix ? (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n ) : null}\n <span style={{ display: 'inline-block' }}>\n <RenderCustomComponent\n CustomComponent={CustomLabel}\n Fallback={<FieldLabel label={'label' in field && field.label} />}\n />\n </span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fields,\n formState,\n labelPrefix = null,\n path = '',\n}: {\n fields: ClientField[]\n formState?: FormState\n labelPrefix?: React.ReactNode\n path?: string\n}): { Label: React.ReactNode; value: FieldWithPathClient }[] => {\n if (!fields) {\n return []\n }\n\n const CustomLabel = formState?.[path]?.customComponents?.Label\n\n return fields?.reduce((fieldsToUse, field) => {\n // escape for a variety of reasons, include ui fields as they have `name`.\n if (\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin?.disableBulkEdit ||\n field.unique ||\n fieldIsHiddenOrDisabled(field) ||\n ('readOnly' in field && field.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fields: field.fields,\n labelPrefix: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n if ('fields' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fields: tab.fields,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fields, setSelected }) => {\n const { t } = useTranslation()\n const { dispatchFields, getFields } = useForm()\n\n const [options] = useState(() => reduceFields({ fields, formState: getFields() }))\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePreventLeave.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,eAAe,aAAa,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,YAAmB,MAAM,SA6B1F,CAAA;AAED,eAAO,MAAM,eAAe,4DAMzB;IACD,WAAW,EAAE,OAAO,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,SAsFA,CAAA"}
1
+ {"version":3,"file":"usePreventLeave.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,eAAe,aAAa,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,YAAmB,MAAM,SA6B1F,CAAA;AAED,eAAO,MAAM,eAAe,4DAMzB;IACD,WAAW,EAAE,OAAO,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,SAqFA,CAAA"}
@@ -105,8 +105,7 @@ export const usePreventLeave = ({
105
105
  const newUrl_0 = anchor.href;
106
106
  const isAnchor = isAnchorOfCurrentUrl(currentUrl_0, newUrl_0);
107
107
  const isDownloadLink = anchor.download !== '';
108
- const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey;
109
- const isPageLeaving = !(newUrl_0 === currentUrl_0 || isAnchor || isDownloadLink || isNewTab);
108
+ const isPageLeaving = !(newUrl_0 === currentUrl_0 || isAnchor || isDownloadLink);
110
109
  if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {
111
110
  // Keep a reference of the href
112
111
  cancelledURL.current = newUrl_0;
@@ -1 +1 @@
1
- {"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","err","alert","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n alert(err)\n }\n }\n\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isPageLeaving","confirm","current","stopPropagation","err","alert","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n alert(err)\n }\n }\n\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,29 @@
1
+ import type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload';
1
2
  import React from 'react';
2
- import type { ListControlsProps } from './types.js';
3
3
  import './index.scss';
4
+ export type ListControlsProps = {
5
+ readonly beforeActions?: React.ReactNode[];
6
+ readonly collectionConfig: ClientCollectionConfig;
7
+ readonly collectionSlug: string;
8
+ /**
9
+ * @deprecated
10
+ * These are now handled by the `ListSelection` component
11
+ */
12
+ readonly disableBulkDelete?: boolean;
13
+ /**
14
+ * @deprecated
15
+ * These are now handled by the `ListSelection` component
16
+ */
17
+ readonly disableBulkEdit?: boolean;
18
+ readonly enableColumns?: boolean;
19
+ readonly enableSort?: boolean;
20
+ readonly handleSearchChange?: (search: string) => void;
21
+ readonly handleSortChange?: (sort: string) => void;
22
+ readonly handleWhereChange?: (where: Where) => void;
23
+ readonly listMenuItems?: React.ReactNode[];
24
+ readonly renderedFilters?: Map<string, React.ReactNode>;
25
+ readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>;
26
+ };
4
27
  /**
5
28
  * The ListControls component is used to render the controls (search, filter, where)
6
29
  * for a collection's list view. You can find those directly above the table which lists
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgD,MAAM,OAAO,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAiBnD,OAAO,cAAc,CAAA;AAIrB;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuOpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAInF,OAAO,KAAsC,MAAM,OAAO,CAAA;AAgB1D,OAAO,cAAc,CAAA;AAIrB,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,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,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;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4LpD,CAAA"}
@@ -3,8 +3,7 @@
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 { validateWhereQuery } from 'payload/shared';
7
- import React, { Fragment, useEffect, useRef, useState } from 'react';
6
+ import React, { useEffect, useRef, useState } from 'react';
8
7
  import { Popup, PopupList } from '../../elements/Popup/index.js';
9
8
  import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
10
9
  import { ChevronIcon } from '../../icons/Chevron/index.js';
@@ -17,9 +16,8 @@ import { ColumnSelector } from '../ColumnSelector/index.js';
17
16
  import { Pill } from '../Pill/index.js';
18
17
  import { SearchFilter } from '../SearchFilter/index.js';
19
18
  import { WhereBuilder } from '../WhereBuilder/index.js';
20
- import { ActiveQueryPreset } from './ActiveQueryPreset/index.js';
19
+ import validateWhereQuery from '../WhereBuilder/validateWhereQuery.js';
21
20
  import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
22
- import { useQueryPresets } from './useQueryPresets.js';
23
21
  import './index.scss';
24
22
  const baseClass = 'list-controls';
25
23
  /**
@@ -32,12 +30,9 @@ export const ListControls = props => {
32
30
  beforeActions,
33
31
  collectionConfig,
34
32
  collectionSlug,
35
- disableQueryPresets,
36
33
  enableColumns = true,
37
34
  enableSort = false,
38
- listMenuItems: listMenuItemsFromProps,
39
- queryPreset: activePreset,
40
- queryPresetPermissions,
35
+ listMenuItems,
41
36
  renderedFilters,
42
37
  resolvedFilterOptions
43
38
  } = props;
@@ -45,20 +40,6 @@ export const ListControls = props => {
45
40
  handleSearchChange,
46
41
  query
47
42
  } = useListQuery();
48
- const {
49
- CreateNewPresetDrawer,
50
- DeletePresetModal,
51
- EditPresetDrawer,
52
- hasModifiedPreset,
53
- openPresetListDrawer,
54
- PresetListDrawer,
55
- queryPresetMenuItems,
56
- resetPreset
57
- } = useQueryPresets({
58
- activePreset,
59
- collectionSlug,
60
- queryPresetPermissions
61
- });
62
43
  const titleField = useUseTitleField(collectionConfig);
63
44
  const {
64
45
  i18n,
@@ -104,102 +85,92 @@ export const ListControls = props => {
104
85
  });
105
86
  }
106
87
  }, [t, listSearchableFields, i18n, searchLabel]);
107
- let listMenuItems = listMenuItemsFromProps;
108
- if (collectionConfig?.enableQueryPresets && !disableQueryPresets && queryPresetMenuItems?.length > 0) {
109
- // Cannot push or unshift into `listMenuItemsFromProps` as it will mutate the original array
110
- listMenuItems = [...queryPresetMenuItems, listMenuItemsFromProps?.length > 0 ? /*#__PURE__*/_jsx(PopupList.Divider, {}, "divider") : null, ...(listMenuItemsFromProps || [])];
111
- }
112
- return /*#__PURE__*/_jsxs(Fragment, {
88
+ return /*#__PURE__*/_jsxs("div", {
89
+ className: baseClass,
113
90
  children: [/*#__PURE__*/_jsxs("div", {
114
- className: baseClass,
115
- children: [/*#__PURE__*/_jsxs("div", {
116
- className: `${baseClass}__wrap`,
117
- children: [/*#__PURE__*/_jsx(SearchIcon, {}), /*#__PURE__*/_jsx(SearchFilter, {
118
- fieldName: titleField && 'name' in titleField ? titleField?.name : null,
119
- handleChange: search => {
120
- return void handleSearchChange(search);
121
- },
122
- // @ts-expect-error @todo: fix types
123
- initialParams: query,
124
- label: searchLabelTranslated.current
125
- }, collectionSlug), activePreset && hasModifiedPreset ? /*#__PURE__*/_jsx("div", {
126
- className: `${baseClass}__modified`,
127
- children: "Modified"
128
- }) : null, /*#__PURE__*/_jsx("div", {
129
- className: `${baseClass}__buttons`,
130
- children: /*#__PURE__*/_jsxs("div", {
131
- className: `${baseClass}__buttons-wrap`,
132
- children: [!smallBreak && /*#__PURE__*/_jsx(React.Fragment, {
133
- children: beforeActions && beforeActions
134
- }), enableColumns && /*#__PURE__*/_jsx(Pill, {
135
- "aria-controls": `${baseClass}-columns`,
136
- "aria-expanded": visibleDrawer === 'columns',
137
- className: `${baseClass}__toggle-columns`,
138
- icon: /*#__PURE__*/_jsx(ChevronIcon, {
139
- direction: visibleDrawer === 'columns' ? 'up' : 'down'
140
- }),
141
- onClick: () => setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
142
- pillStyle: "light",
143
- children: t('general:columns')
144
- }), /*#__PURE__*/_jsx(Pill, {
145
- "aria-controls": `${baseClass}-where`,
146
- "aria-expanded": visibleDrawer === 'where',
147
- className: `${baseClass}__toggle-where`,
148
- icon: /*#__PURE__*/_jsx(ChevronIcon, {
149
- direction: visibleDrawer === 'where' ? 'up' : 'down'
150
- }),
151
- onClick: () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
152
- pillStyle: "light",
153
- children: t('general:filters')
154
- }), enableSort && /*#__PURE__*/_jsx(Pill, {
155
- "aria-controls": `${baseClass}-sort`,
156
- "aria-expanded": visibleDrawer === 'sort',
157
- className: `${baseClass}__toggle-sort`,
158
- icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
159
- onClick: () => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
160
- pillStyle: "light",
161
- children: t('general:sort')
162
- }), !disableQueryPresets && /*#__PURE__*/_jsx(ActiveQueryPreset, {
163
- activePreset: activePreset,
164
- openPresetListDrawer: openPresetListDrawer,
165
- resetPreset: resetPreset
166
- }), listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && /*#__PURE__*/_jsx(Popup, {
167
- button: /*#__PURE__*/_jsx(Dots, {
168
- ariaLabel: t('general:moreOptions')
169
- }),
170
- className: `${baseClass}__popup`,
171
- horizontalAlign: "right",
172
- id: "list-menu",
173
- size: "large",
174
- verticalAlign: "bottom",
175
- children: /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
176
- children: listMenuItems.map((item, i_0) => /*#__PURE__*/_jsx(Fragment, {
177
- children: item
178
- }, `list-menu-item-${i_0}`))
179
- })
180
- })]
181
- })
182
- })]
183
- }), enableColumns && /*#__PURE__*/_jsx(AnimateHeight, {
184
- className: `${baseClass}__columns`,
185
- height: visibleDrawer === 'columns' ? 'auto' : 0,
186
- id: `${baseClass}-columns`,
187
- children: /*#__PURE__*/_jsx(ColumnSelector, {
188
- collectionSlug: collectionConfig.slug
189
- })
190
- }), /*#__PURE__*/_jsx(AnimateHeight, {
191
- className: `${baseClass}__where`,
192
- height: visibleDrawer === 'where' ? 'auto' : 0,
193
- id: `${baseClass}-where`,
194
- children: /*#__PURE__*/_jsx(WhereBuilder, {
195
- collectionPluralLabel: collectionConfig?.labels?.plural,
196
- collectionSlug: collectionConfig.slug,
197
- fields: collectionConfig?.fields,
198
- renderedFilters: renderedFilters,
199
- resolvedFilterOptions: resolvedFilterOptions
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
+ })]
200
146
  })
201
147
  })]
202
- }), PresetListDrawer, EditPresetDrawer, CreateNewPresetDrawer, DeletePresetModal]
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
+ })]
203
174
  });
204
175
  };
205
176
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","validateWhereQuery","React","Fragment","useEffect","useRef","useState","Popup","PopupList","useUseTitleField","ChevronIcon","Dots","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","Pill","SearchFilter","WhereBuilder","ActiveQueryPreset","getTextFieldsToBeSearched","useQueryPresets","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","enableSort","listMenuItems","listMenuItemsFromProps","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","handleSearchChange","query","CreateNewPresetDrawer","DeletePresetModal","EditPresetDrawer","hasModifiedPreset","openPresetListDrawer","PresetListDrawer","queryPresetMenuItems","resetPreset","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","enableQueryPresets","_jsx","Divider","_jsxs","className","fieldName","handleChange","search","initialParams","icon","direction","onClick","pillStyle","Array","isArray","button","ariaLabel","horizontalAlign","id","size","verticalAlign","ButtonGroup","map","item","height","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport { validateWhereQuery } from 'payload/shared'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport { ActiveQueryPreset } from './ActiveQueryPreset/index.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport { useQueryPresets } from './useQueryPresets.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableSort = false,\n listMenuItems: listMenuItemsFromProps,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n\n const {\n CreateNewPresetDrawer,\n DeletePresetModal,\n EditPresetDrawer,\n hasModifiedPreset,\n openPresetListDrawer,\n PresetListDrawer,\n queryPresetMenuItems,\n resetPreset,\n } = useQueryPresets({\n activePreset,\n collectionSlug,\n queryPresetPermissions,\n })\n\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField &&\n (typeof titleField.label === 'string' || typeof titleField.label === 'object')\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n let listMenuItems: React.ReactNode[] = listMenuItemsFromProps\n\n if (\n collectionConfig?.enableQueryPresets &&\n !disableQueryPresets &&\n queryPresetMenuItems?.length > 0\n ) {\n // Cannot push or unshift into `listMenuItemsFromProps` as it will mutate the original array\n listMenuItems = [\n ...queryPresetMenuItems,\n listMenuItemsFromProps?.length > 0 ? <PopupList.Divider key=\"divider\" /> : null,\n ...(listMenuItemsFromProps || []),\n ]\n }\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n {activePreset && hasModifiedPreset ? (\n <div className={`${baseClass}__modified`}>Modified</div>\n ) : null}\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && <React.Fragment>{beforeActions && beforeActions}</React.Fragment>}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {!disableQueryPresets && (\n <ActiveQueryPreset\n activePreset={activePreset}\n openPresetListDrawer={openPresetListDrawer}\n resetPreset={resetPreset}\n />\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n </div>\n {PresetListDrawer}\n {EditPresetDrawer}\n {CreateNewPresetDrawer}\n {DeletePresetModal}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
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":[]}