@payloadcms/ui 3.0.0-canary.6659da8 → 3.0.0-canary.7660f90

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 (581) hide show
  1. package/dist/@types/assets.d.js.map +1 -1
  2. package/dist/assets/index.js.map +1 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.js.map +1 -1
  6. package/dist/elements/Banner/index.js.map +1 -1
  7. package/dist/elements/Button/index.js.map +1 -1
  8. package/dist/elements/Button/types.js.map +1 -1
  9. package/dist/elements/Card/index.js.map +1 -1
  10. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  11. package/dist/elements/CodeEditor/index.js.map +1 -1
  12. package/dist/elements/CodeEditor/types.js.map +1 -1
  13. package/dist/elements/Collapsible/index.js.map +1 -1
  14. package/dist/elements/Collapsible/provider.js.map +1 -1
  15. package/dist/elements/ColumnSelector/index.js.map +1 -1
  16. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  17. package/dist/elements/DatePicker/DatePicker.d.ts +2 -2
  18. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  19. package/dist/elements/DatePicker/DatePicker.js +2 -2
  20. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  21. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  22. package/dist/elements/DatePicker/index.js.map +1 -1
  23. package/dist/elements/DatePicker/types.js.map +1 -1
  24. package/dist/elements/DeleteDocument/index.js.map +1 -1
  25. package/dist/elements/DeleteDocument/index.scss +1 -0
  26. package/dist/elements/DeleteMany/index.js.map +1 -1
  27. package/dist/elements/DeleteMany/index.scss +1 -0
  28. package/dist/elements/DocumentControls/index.js.map +1 -1
  29. package/dist/elements/DocumentDrawer/DrawerContent.js +2 -2
  30. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  31. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  32. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  33. package/dist/elements/DocumentFields/index.js.map +1 -1
  34. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  35. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  36. package/dist/elements/DraggableSortable/index.js.map +1 -1
  37. package/dist/elements/DraggableSortable/types.js.map +1 -1
  38. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  39. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  40. package/dist/elements/Drawer/index.js.map +1 -1
  41. package/dist/elements/Drawer/types.js.map +1 -1
  42. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  43. package/dist/elements/Dropzone/index.js.map +1 -1
  44. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  45. package/dist/elements/EditMany/index.js.map +1 -1
  46. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  47. package/dist/elements/EditUpload/index.js +28 -11
  48. package/dist/elements/EditUpload/index.js.map +1 -1
  49. package/dist/elements/ErrorPill/index.js.map +1 -1
  50. package/dist/elements/FieldSelect/index.d.ts +7 -2
  51. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  52. package/dist/elements/FieldSelect/index.js +1 -1
  53. package/dist/elements/FieldSelect/index.js.map +1 -1
  54. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  55. package/dist/elements/FileDetails/index.d.ts +2 -1
  56. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  57. package/dist/elements/FileDetails/index.js +6 -5
  58. package/dist/elements/FileDetails/index.js.map +1 -1
  59. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  60. package/dist/elements/Gutter/index.js.map +1 -1
  61. package/dist/elements/Hamburger/index.js.map +1 -1
  62. package/dist/elements/HydrateClientUser/index.d.ts +2 -3
  63. package/dist/elements/HydrateClientUser/index.d.ts.map +1 -1
  64. package/dist/elements/HydrateClientUser/index.js.map +1 -1
  65. package/dist/elements/IDLabel/index.js.map +1 -1
  66. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  67. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  68. package/dist/elements/ListControls/index.d.ts.map +1 -1
  69. package/dist/elements/ListControls/index.js +2 -1
  70. package/dist/elements/ListControls/index.js.map +1 -1
  71. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  72. package/dist/elements/ListDrawer/index.js.map +1 -1
  73. package/dist/elements/ListDrawer/types.js.map +1 -1
  74. package/dist/elements/ListSelection/index.js.map +1 -1
  75. package/dist/elements/Loading/index.js.map +1 -1
  76. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  77. package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
  78. package/dist/elements/LoadingOverlay/types.js.map +1 -1
  79. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  80. package/dist/elements/Localizer/index.js.map +1 -1
  81. package/dist/elements/Logout/index.js.map +1 -1
  82. package/dist/elements/Modal/index.js.map +1 -1
  83. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  84. package/dist/elements/Nav/context.js.map +1 -1
  85. package/dist/elements/NavGroup/index.js.map +1 -1
  86. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  87. package/dist/elements/Pagination/Page/index.js.map +1 -1
  88. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  89. package/dist/elements/Pagination/index.js.map +1 -1
  90. package/dist/elements/PerPage/index.js.map +1 -1
  91. package/dist/elements/Pill/index.js.map +1 -1
  92. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  93. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  94. package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
  95. package/dist/elements/Popup/index.js.map +1 -1
  96. package/dist/elements/PreviewButton/index.js.map +1 -1
  97. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  98. package/dist/elements/PreviewSizes/index.js.map +1 -1
  99. package/dist/elements/PublishButton/index.js.map +1 -1
  100. package/dist/elements/PublishMany/index.js.map +1 -1
  101. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  102. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  103. package/dist/elements/ReactSelect/DropdownIndicator/index.js +1 -1
  104. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  105. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  106. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  107. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  108. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  109. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  110. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  111. package/dist/elements/ReactSelect/index.js.map +1 -1
  112. package/dist/elements/ReactSelect/types.d.ts +0 -1
  113. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  114. package/dist/elements/ReactSelect/types.js.map +1 -1
  115. package/dist/elements/RenderCustomClientComponent/index.js.map +1 -1
  116. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  117. package/dist/elements/RenderTitle/index.js.map +1 -1
  118. package/dist/elements/SaveButton/index.js.map +1 -1
  119. package/dist/elements/SaveDraftButton/index.d.ts +1 -0
  120. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  121. package/dist/elements/SaveDraftButton/index.js +1 -1
  122. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  123. package/dist/elements/SearchFilter/index.js.map +1 -1
  124. package/dist/elements/SelectAll/index.js.map +1 -1
  125. package/dist/elements/SelectRow/index.js.map +1 -1
  126. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  127. package/dist/elements/SortColumn/index.js.map +1 -1
  128. package/dist/elements/SortComplex/index.js +2 -2
  129. package/dist/elements/SortComplex/index.js.map +1 -1
  130. package/dist/elements/Status/index.js.map +1 -1
  131. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  132. package/dist/elements/StepNav/SetStepNav.d.ts +0 -1
  133. package/dist/elements/StepNav/SetStepNav.d.ts.map +1 -1
  134. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  135. package/dist/elements/StepNav/context.js.map +1 -1
  136. package/dist/elements/StepNav/index.d.ts.map +1 -1
  137. package/dist/elements/StepNav/index.js +1 -1
  138. package/dist/elements/StepNav/index.js.map +1 -1
  139. package/dist/elements/StepNav/types.js.map +1 -1
  140. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  141. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  142. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  143. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  144. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  145. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  146. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  147. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  148. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  149. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  150. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -5
  151. package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
  152. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  153. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  154. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  155. package/dist/elements/Table/RelationshipProvider/index.js +11 -10
  156. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  157. package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
  158. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  159. package/dist/elements/Table/index.js.map +1 -1
  160. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  161. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  162. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  163. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  164. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  165. package/dist/elements/TableColumns/index.js.map +1 -1
  166. package/dist/elements/Thumbnail/index.js.map +1 -1
  167. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  168. package/dist/elements/Tooltip/index.js.map +1 -1
  169. package/dist/elements/Translation/index.js.map +1 -1
  170. package/dist/elements/UnpublishMany/index.js.map +1 -1
  171. package/dist/elements/Upload/index.d.ts +9 -5
  172. package/dist/elements/Upload/index.d.ts.map +1 -1
  173. package/dist/elements/Upload/index.js +54 -41
  174. package/dist/elements/Upload/index.js.map +1 -1
  175. package/dist/elements/Upload/index.scss +1 -1
  176. package/dist/elements/ViewDescription/index.js.map +1 -1
  177. package/dist/elements/ViewDescription/types.js.map +1 -1
  178. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  179. package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
  180. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  181. package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
  182. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  183. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +8 -8
  184. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  185. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
  186. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  187. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  188. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  189. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  190. package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
  191. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  192. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  193. package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
  194. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  195. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  196. package/dist/elements/WhereBuilder/index.js +8 -7
  197. package/dist/elements/WhereBuilder/index.js.map +1 -1
  198. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +2 -2
  199. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  200. package/dist/elements/WhereBuilder/reduceFieldMap.js +34 -16
  201. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  202. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -1
  203. package/dist/elements/WhereBuilder/types.d.ts +2 -0
  204. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  205. package/dist/elements/WhereBuilder/types.js.map +1 -1
  206. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -1
  207. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  208. package/dist/elements/WindowInfo/index.js.map +1 -1
  209. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  210. package/dist/elements/withMergedProps/index.js.map +1 -1
  211. package/dist/exports/client/DatePicker-BN5AOAME.js +14 -0
  212. package/dist/exports/client/DatePicker-BN5AOAME.js.map +8 -0
  213. package/dist/exports/client/chunk-3X2D2TP2.js +30 -0
  214. package/dist/exports/client/chunk-3X2D2TP2.js.map +8 -0
  215. package/dist/exports/client/index.d.ts +35 -25
  216. package/dist/exports/client/index.d.ts.map +1 -1
  217. package/dist/exports/client/index.js +26 -18
  218. package/dist/exports/client/index.js.map +4 -4
  219. package/dist/exports/shared/index.d.ts +2 -1
  220. package/dist/exports/shared/index.d.ts.map +1 -1
  221. package/dist/exports/shared/index.js +2 -2
  222. package/dist/exports/shared/index.js.map +4 -4
  223. package/dist/fields/Array/ArrayRow.js.map +1 -1
  224. package/dist/fields/Array/index.js.map +1 -1
  225. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  226. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
  227. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  228. package/dist/fields/Blocks/RowActions.js.map +1 -1
  229. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  230. package/dist/fields/Blocks/index.js.map +1 -1
  231. package/dist/fields/Checkbox/Input.js.map +1 -1
  232. package/dist/fields/Checkbox/index.d.ts +1 -1
  233. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  234. package/dist/fields/Checkbox/index.js +2 -2
  235. package/dist/fields/Checkbox/index.js.map +1 -1
  236. package/dist/fields/Checkbox/types.js.map +1 -1
  237. package/dist/fields/Code/index.d.ts +1 -1
  238. package/dist/fields/Code/index.d.ts.map +1 -1
  239. package/dist/fields/Code/index.js +2 -2
  240. package/dist/fields/Code/index.js.map +1 -1
  241. package/dist/fields/Collapsible/index.d.ts +1 -1
  242. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  243. package/dist/fields/Collapsible/index.js +2 -2
  244. package/dist/fields/Collapsible/index.js.map +1 -1
  245. package/dist/fields/ConfirmPassword/index.d.ts +1 -1
  246. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  247. package/dist/fields/ConfirmPassword/index.js +1 -1
  248. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  249. package/dist/fields/DateTime/index.d.ts +1 -1
  250. package/dist/fields/DateTime/index.d.ts.map +1 -1
  251. package/dist/fields/DateTime/index.js +2 -2
  252. package/dist/fields/DateTime/index.js.map +1 -1
  253. package/dist/fields/Email/index.d.ts +1 -1
  254. package/dist/fields/Email/index.d.ts.map +1 -1
  255. package/dist/fields/Email/index.js +2 -2
  256. package/dist/fields/Email/index.js.map +1 -1
  257. package/dist/fields/FieldDescription/index.js.map +1 -1
  258. package/dist/fields/FieldError/index.js.map +1 -1
  259. package/dist/fields/FieldLabel/index.js.map +1 -1
  260. package/dist/fields/Group/index.d.ts +2 -1
  261. package/dist/fields/Group/index.d.ts.map +1 -1
  262. package/dist/fields/Group/index.js +2 -2
  263. package/dist/fields/Group/index.js.map +1 -1
  264. package/dist/fields/Group/provider.js.map +1 -1
  265. package/dist/fields/{HiddenInput → Hidden}/index.d.ts +1 -1
  266. package/dist/fields/Hidden/index.d.ts.map +1 -0
  267. package/dist/fields/{HiddenInput → Hidden}/index.js +2 -2
  268. package/dist/fields/Hidden/index.js.map +1 -0
  269. package/dist/fields/JSON/index.d.ts.map +1 -1
  270. package/dist/fields/JSON/index.js +2 -2
  271. package/dist/fields/JSON/index.js.map +1 -1
  272. package/dist/fields/Number/index.d.ts.map +1 -1
  273. package/dist/fields/Number/index.js +2 -2
  274. package/dist/fields/Number/index.js.map +1 -1
  275. package/dist/fields/Password/index.d.ts +1 -1
  276. package/dist/fields/Password/index.d.ts.map +1 -1
  277. package/dist/fields/Password/index.js +2 -2
  278. package/dist/fields/Password/index.js.map +1 -1
  279. package/dist/fields/Point/index.d.ts +2 -1
  280. package/dist/fields/Point/index.d.ts.map +1 -1
  281. package/dist/fields/Point/index.js +2 -2
  282. package/dist/fields/Point/index.js.map +1 -1
  283. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  284. package/dist/fields/RadioGroup/index.d.ts +1 -1
  285. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  286. package/dist/fields/RadioGroup/index.js +2 -2
  287. package/dist/fields/RadioGroup/index.js.map +1 -1
  288. package/dist/fields/Relationship/AddNew/index.js.map +1 -1
  289. package/dist/fields/Relationship/AddNew/types.js.map +1 -1
  290. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +1 -1
  291. package/dist/fields/Relationship/createRelationMap.js.map +1 -1
  292. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  293. package/dist/fields/Relationship/index.d.ts +1 -1
  294. package/dist/fields/Relationship/index.d.ts.map +1 -1
  295. package/dist/fields/Relationship/index.js +2 -2
  296. package/dist/fields/Relationship/index.js.map +1 -1
  297. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  298. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  299. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  300. package/dist/fields/Relationship/types.js.map +1 -1
  301. package/dist/fields/RichText/index.d.ts +1 -1
  302. package/dist/fields/RichText/index.d.ts.map +1 -1
  303. package/dist/fields/RichText/index.js +1 -1
  304. package/dist/fields/RichText/index.js.map +1 -1
  305. package/dist/fields/Row/index.d.ts +2 -1
  306. package/dist/fields/Row/index.d.ts.map +1 -1
  307. package/dist/fields/Row/index.js +2 -2
  308. package/dist/fields/Row/index.js.map +1 -1
  309. package/dist/fields/Row/provider.js.map +1 -1
  310. package/dist/fields/Row/types.js.map +1 -1
  311. package/dist/fields/Select/Input.js.map +1 -1
  312. package/dist/fields/Select/index.d.ts +1 -1
  313. package/dist/fields/Select/index.d.ts.map +1 -1
  314. package/dist/fields/Select/index.js +6 -4
  315. package/dist/fields/Select/index.js.map +1 -1
  316. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  317. package/dist/fields/Tabs/index.d.ts +1 -1
  318. package/dist/fields/Tabs/index.d.ts.map +1 -1
  319. package/dist/fields/Tabs/index.js +2 -2
  320. package/dist/fields/Tabs/index.js.map +1 -1
  321. package/dist/fields/Tabs/provider.js.map +1 -1
  322. package/dist/fields/Text/Input.js.map +1 -1
  323. package/dist/fields/Text/index.d.ts +1 -1
  324. package/dist/fields/Text/index.d.ts.map +1 -1
  325. package/dist/fields/Text/index.js +2 -2
  326. package/dist/fields/Text/index.js.map +1 -1
  327. package/dist/fields/Text/types.js.map +1 -1
  328. package/dist/fields/Textarea/Input.js.map +1 -1
  329. package/dist/fields/Textarea/index.d.ts +1 -1
  330. package/dist/fields/Textarea/index.d.ts.map +1 -1
  331. package/dist/fields/Textarea/index.js +2 -2
  332. package/dist/fields/Textarea/index.js.map +1 -1
  333. package/dist/fields/Textarea/types.js.map +1 -1
  334. package/dist/fields/UI/index.d.ts +1 -1
  335. package/dist/fields/UI/index.d.ts.map +1 -1
  336. package/dist/fields/UI/index.js +1 -1
  337. package/dist/fields/UI/index.js.map +1 -1
  338. package/dist/fields/Upload/Input.d.ts +1 -0
  339. package/dist/fields/Upload/Input.d.ts.map +1 -1
  340. package/dist/fields/Upload/Input.js +2 -1
  341. package/dist/fields/Upload/Input.js.map +1 -1
  342. package/dist/fields/Upload/index.d.ts +1 -1
  343. package/dist/fields/Upload/index.d.ts.map +1 -1
  344. package/dist/fields/Upload/index.js +1 -1
  345. package/dist/fields/Upload/index.js.map +1 -1
  346. package/dist/fields/Upload/types.js.map +1 -1
  347. package/dist/fields/index.js +48 -48
  348. package/dist/fields/index.js.map +1 -1
  349. package/dist/fields/shared/index.d.ts +0 -1
  350. package/dist/fields/shared/index.d.ts.map +1 -1
  351. package/dist/fields/shared/index.js.map +1 -1
  352. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  353. package/dist/forms/Form/context.d.ts +0 -1
  354. package/dist/forms/Form/context.d.ts.map +1 -1
  355. package/dist/forms/Form/context.js.map +1 -1
  356. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  357. package/dist/forms/Form/errorMessages.js.map +1 -1
  358. package/dist/forms/Form/fieldReducer.js +2 -2
  359. package/dist/forms/Form/fieldReducer.js.map +1 -1
  360. package/dist/forms/Form/getDataByPath.d.ts.map +1 -1
  361. package/dist/forms/Form/getDataByPath.js +1 -2
  362. package/dist/forms/Form/getDataByPath.js.map +1 -1
  363. package/dist/forms/Form/getSiblingData.d.ts.map +1 -1
  364. package/dist/forms/Form/getSiblingData.js +2 -5
  365. package/dist/forms/Form/getSiblingData.js.map +1 -1
  366. package/dist/forms/Form/index.js +7 -7
  367. package/dist/forms/Form/index.js.map +1 -1
  368. package/dist/forms/Form/initContextState.js.map +1 -1
  369. package/dist/forms/Form/mergeErrorPaths.js.map +1 -1
  370. package/dist/forms/Form/mergeServerFormState.js +2 -2
  371. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  372. package/dist/forms/Form/rows.js.map +1 -1
  373. package/dist/forms/Form/types.js.map +1 -1
  374. package/dist/forms/NullifyField/index.js +2 -2
  375. package/dist/forms/NullifyField/index.js.map +1 -1
  376. package/dist/forms/RenderFields/RenderField.js +2 -2
  377. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  378. package/dist/forms/RenderFields/index.js.map +1 -1
  379. package/dist/forms/RenderFields/types.js.map +1 -1
  380. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  381. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  382. package/dist/forms/RowLabel/index.js.map +1 -1
  383. package/dist/forms/RowLabel/types.js.map +1 -1
  384. package/dist/forms/Submit/index.js.map +1 -1
  385. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  386. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  387. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js.map +1 -1
  388. package/dist/forms/WatchChildErrors/getNestedFieldState.js.map +1 -1
  389. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  390. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +2 -2
  391. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  392. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  393. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js.map +1 -1
  394. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
  395. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
  396. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  397. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
  398. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  399. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  400. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts +1 -1
  401. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts.map +1 -1
  402. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.js.map +1 -1
  403. package/dist/forms/buildStateFromSchema/index.d.ts +4 -3
  404. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  405. package/dist/forms/buildStateFromSchema/index.js +1 -0
  406. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  407. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  408. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  409. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  410. package/dist/forms/useField/index.d.ts.map +1 -1
  411. package/dist/forms/useField/index.js.map +1 -1
  412. package/dist/forms/useField/types.js.map +1 -1
  413. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  414. package/dist/forms/withCondition/index.d.ts.map +1 -1
  415. package/dist/forms/withCondition/index.js.map +1 -1
  416. package/dist/graphics/Account/Default/index.js.map +1 -1
  417. package/dist/graphics/Account/Gravatar/index.d.ts.map +1 -1
  418. package/dist/graphics/Account/Gravatar/index.js +4 -4
  419. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  420. package/dist/graphics/Account/index.js.map +1 -1
  421. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  422. package/dist/graphics/ExternalLink/index.js.map +1 -1
  423. package/dist/graphics/File/index.js.map +1 -1
  424. package/dist/graphics/Icon/index.js.map +1 -1
  425. package/dist/graphics/Logo/index.js.map +1 -1
  426. package/dist/hooks/useDebounce.js.map +1 -1
  427. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  428. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  429. package/dist/hooks/useDelay.d.ts.map +1 -1
  430. package/dist/hooks/useDelay.js.map +1 -1
  431. package/dist/hooks/useDelayedRender.js.map +1 -1
  432. package/dist/hooks/useHotkey.js.map +1 -1
  433. package/dist/hooks/useIntersect.d.ts +0 -1
  434. package/dist/hooks/useIntersect.d.ts.map +1 -1
  435. package/dist/hooks/useIntersect.js.map +1 -1
  436. package/dist/hooks/usePayloadAPI.d.ts +0 -1
  437. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  438. package/dist/hooks/usePayloadAPI.js +2 -2
  439. package/dist/hooks/usePayloadAPI.js.map +1 -1
  440. package/dist/hooks/useResize.js.map +1 -1
  441. package/dist/hooks/useThrottledEffect.d.ts +0 -1
  442. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  443. package/dist/hooks/useThrottledEffect.js.map +1 -1
  444. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  445. package/dist/hooks/useUseAsTitle.js.map +1 -1
  446. package/dist/icons/Calendar/index.js.map +1 -1
  447. package/dist/icons/Check/index.js.map +1 -1
  448. package/dist/icons/Chevron/index.js.map +1 -1
  449. package/dist/icons/CloseMenu/index.js.map +1 -1
  450. package/dist/icons/CodeBlock/index.js.map +1 -1
  451. package/dist/icons/Copy/index.js.map +1 -1
  452. package/dist/icons/DragHandle/index.js.map +1 -1
  453. package/dist/icons/Edit/index.js.map +1 -1
  454. package/dist/icons/Line/index.js.map +1 -1
  455. package/dist/icons/Link/index.js.map +1 -1
  456. package/dist/icons/LogOut/index.js.map +1 -1
  457. package/dist/icons/Menu/index.js.map +1 -1
  458. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  459. package/dist/icons/More/index.js.map +1 -1
  460. package/dist/icons/Plus/index.js.map +1 -1
  461. package/dist/icons/Search/index.js.map +1 -1
  462. package/dist/icons/Swap/index.js.map +1 -1
  463. package/dist/icons/X/index.js.map +1 -1
  464. package/dist/providers/Actions/SetViewActions/index.js.map +1 -1
  465. package/dist/providers/Actions/index.js.map +1 -1
  466. package/dist/providers/Auth/index.d.ts +2 -0
  467. package/dist/providers/Auth/index.d.ts.map +1 -1
  468. package/dist/providers/Auth/index.js +7 -1
  469. package/dist/providers/Auth/index.js.map +1 -1
  470. package/dist/providers/ClientFunction/index.js.map +1 -1
  471. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
  472. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +1 -1
  473. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  474. package/dist/providers/ComponentMap/buildComponentMap/collections.js +9 -4
  475. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  476. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  477. package/dist/providers/ComponentMap/buildComponentMap/fields.js +2 -2
  478. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  479. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +1 -1
  480. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  481. package/dist/providers/ComponentMap/buildComponentMap/globals.js +1 -0
  482. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  483. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +1 -1
  484. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  485. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  486. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +2 -2
  487. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  488. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  489. package/dist/providers/ComponentMap/index.js.map +1 -1
  490. package/dist/providers/Config/index.js.map +1 -1
  491. package/dist/providers/DocumentEvents/index.js.map +1 -1
  492. package/dist/providers/DocumentInfo/index.js.map +1 -1
  493. package/dist/providers/DocumentInfo/types.js.map +1 -1
  494. package/dist/providers/EditDepth/index.js.map +1 -1
  495. package/dist/providers/EntityVisibility/index.js.map +1 -1
  496. package/dist/providers/FieldComponents/index.js.map +1 -1
  497. package/dist/providers/FormQueryParams/index.d.ts.map +1 -1
  498. package/dist/providers/FormQueryParams/index.js.map +1 -1
  499. package/dist/providers/FormQueryParams/types.js.map +1 -1
  500. package/dist/providers/ListInfo/index.js.map +1 -1
  501. package/dist/providers/ListQuery/index.js.map +1 -1
  502. package/dist/providers/Locale/index.js.map +1 -1
  503. package/dist/providers/Operation/index.js.map +1 -1
  504. package/dist/providers/Params/index.js.map +1 -1
  505. package/dist/providers/Preferences/index.js +3 -3
  506. package/dist/providers/Preferences/index.js.map +1 -1
  507. package/dist/providers/Root/index.js.map +1 -1
  508. package/dist/providers/RouteCache/index.js.map +1 -1
  509. package/dist/providers/ScrollInfo/index.d.ts +0 -1
  510. package/dist/providers/ScrollInfo/index.d.ts.map +1 -1
  511. package/dist/providers/ScrollInfo/index.js.map +1 -1
  512. package/dist/providers/SearchParams/index.js.map +1 -1
  513. package/dist/providers/Selection/index.js +2 -2
  514. package/dist/providers/Selection/index.js.map +1 -1
  515. package/dist/providers/Theme/index.js.map +1 -1
  516. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  517. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  518. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  519. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  520. package/dist/providers/ToastContainer/index.js.map +1 -1
  521. package/dist/providers/Translation/index.d.ts.map +1 -1
  522. package/dist/providers/Translation/index.js.map +1 -1
  523. package/dist/providers/WindowInfo/index.d.ts +0 -1
  524. package/dist/providers/WindowInfo/index.d.ts.map +1 -1
  525. package/dist/providers/WindowInfo/index.js.map +1 -1
  526. package/dist/styles.css +1 -1
  527. package/dist/utilities/api.d.ts.map +1 -1
  528. package/dist/utilities/api.js.map +1 -1
  529. package/dist/utilities/arraysHaveSameStrings.js.map +1 -1
  530. package/dist/utilities/buildComponentMap.js.map +1 -1
  531. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  532. package/dist/utilities/buildFieldSchemaMap/index.js +2 -5
  533. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  534. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +1 -2
  535. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  536. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +7 -11
  537. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  538. package/dist/utilities/buildFieldSchemaMap/types.js.map +1 -1
  539. package/dist/utilities/buildFormState.d.ts +4 -4
  540. package/dist/utilities/buildFormState.d.ts.map +1 -1
  541. package/dist/utilities/buildFormState.js.map +1 -1
  542. package/dist/utilities/canUseDOM.js.map +1 -1
  543. package/dist/utilities/dateLocales.js.map +1 -1
  544. package/dist/utilities/findLocaleFromCode.js.map +1 -1
  545. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  546. package/dist/utilities/flattenFieldMap.js.map +1 -1
  547. package/dist/utilities/formatDate.js.map +1 -1
  548. package/dist/utilities/formatDocTitle.d.ts +1 -1
  549. package/dist/utilities/formatDocTitle.d.ts.map +1 -1
  550. package/dist/utilities/formatDocTitle.js.map +1 -1
  551. package/dist/utilities/formatFields.js.map +1 -1
  552. package/dist/utilities/generateFieldID.js.map +1 -1
  553. package/dist/utilities/getFormState.d.ts +2 -2
  554. package/dist/utilities/getFormState.d.ts.map +1 -1
  555. package/dist/utilities/getFormState.js.map +1 -1
  556. package/dist/utilities/getOffsetTop.js.map +1 -1
  557. package/dist/utilities/getRequestLanguage.js.map +1 -1
  558. package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
  559. package/dist/utilities/groupNavItems.js.map +1 -1
  560. package/dist/utilities/hasSavePermission.js.map +1 -1
  561. package/dist/utilities/isEditing.js.map +1 -1
  562. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  563. package/dist/utilities/reduceFieldsToValues.js +2 -5
  564. package/dist/utilities/reduceFieldsToValues.js.map +1 -1
  565. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  566. package/dist/utilities/reduceFieldsToValuesWithValidation.js +2 -5
  567. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  568. package/dist/utilities/scrollToID.js.map +1 -1
  569. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  570. package/dist/utilities/setsAreEqual.js.map +1 -1
  571. package/dist/utilities/unflatten.d.ts +9 -0
  572. package/dist/utilities/unflatten.d.ts.map +1 -0
  573. package/dist/utilities/unflatten.js +58 -0
  574. package/dist/utilities/unflatten.js.map +1 -0
  575. package/package.json +50 -60
  576. package/dist/exports/client/DatePicker-CBQPW5J5.js +0 -30
  577. package/dist/exports/client/DatePicker-CBQPW5J5.js.map +0 -8
  578. package/dist/exports/client/chunk-DODCWLCH.js +0 -14
  579. package/dist/exports/client/chunk-DODCWLCH.js.map +0 -8
  580. package/dist/fields/HiddenInput/index.d.ts.map +0 -1
  581. package/dist/fields/HiddenInput/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useState } from 'react'\n\nimport type { FieldCondition } from '../types.js'\n\nexport type Props = {\n addCondition: ({\n andIndex,\n fieldName,\n orIndex,\n relation,\n }: {\n andIndex: number\n fieldName: string\n orIndex: number\n relation: 'and' | 'or'\n }) => void\n andIndex: number\n fieldName: string\n fields: FieldCondition[]\n initialValue: string\n operator: Operator\n orIndex: number\n removeCondition: ({ andIndex, orIndex }: { andIndex: number; orIndex: number }) => void\n updateCondition: ({\n andIndex,\n fieldName,\n operator,\n orIndex,\n value,\n }: {\n andIndex: number\n fieldName: string\n operator: string\n orIndex: number\n value: string\n }) => void\n}\n\nimport type { Operator } from 'payload'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { RenderCustomClientComponent } from '../../../elements/RenderCustomClientComponent/index.js'\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DateField } from './Date/index.js'\nimport { NumberField } from './Number/index.js'\nimport { RelationshipField } from './Relationship/index.js'\nimport { Select } from './Select/index.js'\nimport Text from './Text/index.js'\nimport './index.scss'\n\ntype ComponentType = 'Date' | 'Number' | 'Relationship' | 'Select' | 'Text'\nconst valueFields: Record<ComponentType, React.FC> = {\n Date: DateField,\n Number: NumberField,\n Relationship: RelationshipField,\n Select,\n Text,\n}\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n fields,\n initialValue,\n operator,\n orIndex,\n removeCondition,\n updateCondition,\n } = props\n const [internalField, setInternalField] = useState<FieldCondition>(() =>\n fields.find((field) => fieldName === field.value),\n )\n const [internalOperatorOption, setInternalOperatorOption] = useState<Operator>(operator)\n const [internalQueryValue, setInternalQueryValue] = useState<string>(initialValue)\n\n const debouncedValue = useDebounce(internalQueryValue, 300)\n\n useEffect(() => {\n // This is to trigger changes when the debounced value changes\n if (\n (internalField?.value || typeof internalField?.value === 'number') &&\n internalOperatorOption &&\n ![null, undefined].includes(debouncedValue)\n ) {\n updateCondition({\n andIndex,\n fieldName: internalField.value,\n operator: internalOperatorOption,\n orIndex,\n value: debouncedValue,\n })\n }\n }, [\n debouncedValue,\n andIndex,\n internalField?.value,\n internalOperatorOption,\n orIndex,\n updateCondition,\n operator,\n ])\n\n const booleanSelect =\n ['exists'].includes(internalOperatorOption) || internalField?.props?.type === 'checkbox'\n const ValueComponent = booleanSelect\n ? Select\n : valueFields[internalField?.component] || valueFields.Text\n\n let valueOptions\n if (booleanSelect) {\n valueOptions = ['true', 'false']\n } else if (internalField?.props && 'options' in internalField.props) {\n valueOptions = internalField.props.options\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n isClearable={false}\n onChange={(field: Option) => {\n setInternalField(fields.find((f) => f.value === field.value))\n setInternalOperatorOption(undefined)\n setInternalQueryValue(undefined)\n }}\n options={fields}\n value={fields.find((field) => internalField?.value === field.value) || fields[0]}\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={!internalField?.value && typeof internalField?.value !== 'number'}\n isClearable={false}\n onChange={(operator: Option<Operator>) => {\n setInternalOperatorOption(operator.value)\n }}\n options={internalField?.operators}\n value={\n internalField?.operators.find(\n (operator) => internalOperatorOption === operator.value,\n ) || null\n }\n />\n </div>\n <div className={`${baseClass}__value`}>\n <RenderCustomClientComponent\n CustomComponent={internalField?.props?.admin?.components?.Filter}\n DefaultComponent={ValueComponent}\n componentProps={{\n ...internalField?.props,\n disabled: !internalOperatorOption,\n onChange: setInternalQueryValue,\n operator: internalOperatorOption,\n options: valueOptions,\n relationTo:\n internalField?.props?.type === 'relationship' &&\n 'cellProps' in internalField.props &&\n typeof internalField.props.cellProps === 'object' &&\n 'relationTo' in internalField.props.cellProps\n ? internalField.props.cellProps?.relationTo\n : undefined,\n value: internalQueryValue ?? '',\n }}\n />\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex: andIndex + 1,\n fieldName: fields[0].value,\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useEffect","useState","RenderCustomClientComponent","useDebounce","Button","ReactSelect","DateField","NumberField","RelationshipField","Select","Text","valueFields","Date","Number","Relationship","baseClass","Condition","props","addCondition","andIndex","fieldName","fields","initialValue","operator","orIndex","removeCondition","updateCondition","internalField","setInternalField","find","field","value","internalOperatorOption","setInternalOperatorOption","internalQueryValue","setInternalQueryValue","debouncedValue","undefined","includes","booleanSelect","type","ValueComponent","component","valueOptions","options","div","className","isClearable","onChange","f","disabled","operators","CustomComponent","admin","components","Filter","DefaultComponent","componentProps","relationTo","cellProps","buttonStyle","icon","iconStyle","onClick","round","relation"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,OAAOA,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AA0ClD,SAASC,2BAA2B,QAAQ,yDAAwD;AACpG,SAASC,WAAW,QAAQ,gCAA+B;AAC3D,SAASC,MAAM,QAAQ,wBAAuB;AAC9C,SAASC,WAAW,QAAQ,6BAA4B;AACxD,SAASC,SAAS,QAAQ,kBAAiB;AAC3C,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAASC,iBAAiB,QAAQ,0BAAyB;AAC3D,SAASC,MAAM,QAAQ,oBAAmB;AAC1C,OAAOC,UAAU,kBAAiB;AAClC,OAAO,eAAc;AAGrB,MAAMC,cAA+C;IACnDC,MAAMN;IACNO,QAAQN;IACRO,cAAcN;IACdC;IACAC;AACF;AAEA,MAAMK,YAAY;AAElB,OAAO,MAAMC,YAA6B,CAACC;IACzC,MAAM,EACJC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,YAAY,EACZC,QAAQ,EACRC,OAAO,EACPC,eAAe,EACfC,eAAe,EAChB,GAAGT;IACJ,MAAM,CAACU,eAAeC,iBAAiB,GAAG3B,SAAyB,IACjEoB,OAAOQ,IAAI,CAAC,CAACC,QAAUV,cAAcU,MAAMC,KAAK;IAElD,MAAM,CAACC,wBAAwBC,0BAA0B,GAAGhC,SAAmBsB;IAC/E,MAAM,CAACW,oBAAoBC,sBAAsB,GAAGlC,SAAiBqB;IAErE,MAAMc,iBAAiBjC,YAAY+B,oBAAoB;IAEvDlC,UAAU;QACR,8DAA8D;QAC9D,IACE,AAAC2B,CAAAA,eAAeI,SAAS,OAAOJ,eAAeI,UAAU,QAAO,KAChEC,0BACA,CAAC;YAAC;YAAMK;SAAU,CAACC,QAAQ,CAACF,iBAC5B;YACAV,gBAAgB;gBACdP;gBACAC,WAAWO,cAAcI,KAAK;gBAC9BR,UAAUS;gBACVR;gBACAO,OAAOK;YACT;QACF;IACF,GAAG;QACDA;QACAjB;QACAQ,eAAeI;QACfC;QACAR;QACAE;QACAH;KACD;IAED,MAAMgB,gBACJ;QAAC;KAAS,CAACD,QAAQ,CAACN,2BAA2BL,eAAeV,OAAOuB,SAAS;IAChF,MAAMC,iBAAiBF,gBACnB9B,SACAE,WAAW,CAACgB,eAAee,UAAU,IAAI/B,YAAYD,IAAI;IAE7D,IAAIiC;IACJ,IAAIJ,eAAe;QACjBI,eAAe;YAAC;YAAQ;SAAQ;IAClC,OAAO,IAAIhB,eAAeV,SAAS,aAAaU,cAAcV,KAAK,EAAE;QACnE0B,eAAehB,cAAcV,KAAK,CAAC2B,OAAO;IAC5C;IAEA,qBACE,KAACC;QAAIC,WAAW/B;kBACd,cAAA,MAAC8B;YAAIC,WAAW,CAAC,EAAE/B,UAAU,MAAM,CAAC;;8BAClC,MAAC8B;oBAAIC,WAAW,CAAC,EAAE/B,UAAU,QAAQ,CAAC;;sCACpC,KAAC8B;4BAAIC,WAAW,CAAC,EAAE/B,UAAU,OAAO,CAAC;sCACnC,cAAA,KAACV;gCACC0C,aAAa;gCACbC,UAAU,CAAClB;oCACTF,iBAAiBP,OAAOQ,IAAI,CAAC,CAACoB,IAAMA,EAAElB,KAAK,KAAKD,MAAMC,KAAK;oCAC3DE,0BAA0BI;oCAC1BF,sBAAsBE;gCACxB;gCACAO,SAASvB;gCACTU,OAAOV,OAAOQ,IAAI,CAAC,CAACC,QAAUH,eAAeI,UAAUD,MAAMC,KAAK,KAAKV,MAAM,CAAC,EAAE;;;sCAGpF,KAACwB;4BAAIC,WAAW,CAAC,EAAE/B,UAAU,UAAU,CAAC;sCACtC,cAAA,KAACV;gCACC6C,UAAU,CAACvB,eAAeI,SAAS,OAAOJ,eAAeI,UAAU;gCACnEgB,aAAa;gCACbC,UAAU,CAACzB;oCACTU,0BAA0BV,SAASQ,KAAK;gCAC1C;gCACAa,SAASjB,eAAewB;gCACxBpB,OACEJ,eAAewB,UAAUtB,KACvB,CAACN,WAAaS,2BAA2BT,SAASQ,KAAK,KACpD;;;sCAIX,KAACc;4BAAIC,WAAW,CAAC,EAAE/B,UAAU,OAAO,CAAC;sCACnC,cAAA,KAACb;gCACCkD,iBAAiBzB,eAAeV,OAAOoC,OAAOC,YAAYC;gCAC1DC,kBAAkBf;gCAClBgB,gBAAgB;oCACd,GAAG9B,eAAeV,KAAK;oCACvBiC,UAAU,CAAClB;oCACXgB,UAAUb;oCACVZ,UAAUS;oCACVY,SAASD;oCACTe,YACE/B,eAAeV,OAAOuB,SAAS,kBAC/B,eAAeb,cAAcV,KAAK,IAClC,OAAOU,cAAcV,KAAK,CAAC0C,SAAS,KAAK,YACzC,gBAAgBhC,cAAcV,KAAK,CAAC0C,SAAS,GACzChC,cAAcV,KAAK,CAAC0C,SAAS,EAAED,aAC/BrB;oCACNN,OAAOG,sBAAsB;gCAC/B;;;;;8BAIN,MAACW;oBAAIC,WAAW,CAAC,EAAE/B,UAAU,SAAS,CAAC;;sCACrC,KAACX;4BACCwD,aAAY;4BACZd,WAAW,CAAC,EAAE/B,UAAU,gBAAgB,CAAC;4BACzC8C,MAAK;4BACLC,WAAU;4BACVC,SAAS,IACPtC,gBAAgB;oCACdN;oCACAK;gCACF;4BAEFwC,KAAK;;sCAEP,KAAC5D;4BACCwD,aAAY;4BACZd,WAAW,CAAC,EAAE/B,UAAU,aAAa,CAAC;4BACtC8C,MAAK;4BACLC,WAAU;4BACVC,SAAS,IACP7C,aAAa;oCACXC,UAAUA,WAAW;oCACrBC,WAAWC,MAAM,CAAC,EAAE,CAACU,KAAK;oCAC1BP;oCACAyC,UAAU;gCACZ;4BAEFD,KAAK;;;;;;;AAMjB,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useState } from 'react'\n\nimport type { FieldCondition } from '../types.js'\n\nexport type Props = {\n addCondition: ({\n andIndex,\n fieldName,\n orIndex,\n relation,\n }: {\n andIndex: number\n fieldName: string\n orIndex: number\n relation: 'and' | 'or'\n }) => void\n andIndex: number\n fieldName: string\n fields: FieldCondition[]\n initialValue: string\n operator: Operator\n orIndex: number\n removeCondition: ({ andIndex, orIndex }: { andIndex: number; orIndex: number }) => void\n updateCondition: ({\n andIndex,\n fieldName,\n operator,\n orIndex,\n value,\n }: {\n andIndex: number\n fieldName: string\n operator: string\n orIndex: number\n value: string\n }) => void\n}\n\nimport type { Operator } from 'payload'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { RenderCustomClientComponent } from '../../../elements/RenderCustomClientComponent/index.js'\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DateField } from './Date/index.js'\nimport { NumberField } from './Number/index.js'\nimport { RelationshipField } from './Relationship/index.js'\nimport { Select } from './Select/index.js'\nimport Text from './Text/index.js'\nimport './index.scss'\n\ntype ComponentType = 'Date' | 'Number' | 'Relationship' | 'Select' | 'Text'\nconst valueFields: Record<ComponentType, React.FC> = {\n Date: DateField,\n Number: NumberField,\n Relationship: RelationshipField,\n Select,\n Text,\n}\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n fields,\n initialValue,\n operator,\n orIndex,\n removeCondition,\n updateCondition,\n } = props\n const [internalField, setInternalField] = useState<FieldCondition>(() =>\n fields.find((field) => fieldName === field.value),\n )\n const [internalOperatorOption, setInternalOperatorOption] = useState<Operator>(operator)\n const [internalQueryValue, setInternalQueryValue] = useState<string>(initialValue)\n\n const debouncedValue = useDebounce(internalQueryValue, 300)\n\n useEffect(() => {\n // This is to trigger changes when the debounced value changes\n if (\n (internalField?.value || typeof internalField?.value === 'number') &&\n internalOperatorOption &&\n ![null, undefined].includes(debouncedValue)\n ) {\n updateCondition({\n andIndex,\n fieldName: internalField.value,\n operator: internalOperatorOption,\n orIndex,\n value: debouncedValue,\n })\n }\n }, [\n debouncedValue,\n andIndex,\n internalField?.value,\n internalOperatorOption,\n orIndex,\n updateCondition,\n operator,\n ])\n\n const booleanSelect =\n ['exists'].includes(internalOperatorOption) || internalField?.props?.type === 'checkbox'\n const ValueComponent = booleanSelect\n ? Select\n : valueFields[internalField?.component] || valueFields.Text\n\n let valueOptions\n if (booleanSelect) {\n valueOptions = ['true', 'false']\n } else if (internalField?.props && 'options' in internalField.props) {\n valueOptions = internalField.props.options\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n isClearable={false}\n onChange={(field: Option) => {\n setInternalField(fields.find((f) => f.value === field.value))\n setInternalOperatorOption(undefined)\n setInternalQueryValue(undefined)\n }}\n options={fields}\n value={fields.find((field) => internalField?.value === field.value) || fields[0]}\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={!internalField?.value && typeof internalField?.value !== 'number'}\n isClearable={false}\n onChange={(operator: Option<Operator>) => {\n setInternalOperatorOption(operator.value)\n }}\n options={internalField?.operators}\n value={\n internalField?.operators.find(\n (operator) => internalOperatorOption === operator.value,\n ) || null\n }\n />\n </div>\n <div className={`${baseClass}__value`}>\n <RenderCustomClientComponent\n CustomComponent={internalField?.props?.admin?.components?.Filter}\n DefaultComponent={ValueComponent}\n componentProps={{\n ...internalField?.props,\n disabled: !internalOperatorOption,\n onChange: setInternalQueryValue,\n operator: internalOperatorOption,\n options: valueOptions,\n relationTo:\n internalField?.props?.type === 'relationship' &&\n 'cellComponentProps' in internalField.props &&\n typeof internalField.props.cellComponentProps === 'object' &&\n 'relationTo' in internalField.props.cellComponentProps\n ? internalField.props.cellComponentProps?.relationTo\n : undefined,\n value: internalQueryValue ?? '',\n }}\n />\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex: andIndex + 1,\n fieldName: fields[0].value,\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useEffect","useState","RenderCustomClientComponent","useDebounce","Button","ReactSelect","DateField","NumberField","RelationshipField","Select","Text","valueFields","Date","Number","Relationship","baseClass","Condition","props","addCondition","andIndex","fieldName","fields","initialValue","operator","orIndex","removeCondition","updateCondition","internalField","setInternalField","find","field","value","internalOperatorOption","setInternalOperatorOption","internalQueryValue","setInternalQueryValue","debouncedValue","undefined","includes","booleanSelect","type","ValueComponent","component","valueOptions","options","div","className","isClearable","onChange","f","disabled","operators","CustomComponent","admin","components","Filter","DefaultComponent","componentProps","relationTo","cellComponentProps","buttonStyle","icon","iconStyle","onClick","round","relation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"sourcesContent":["import type { Where } from 'payload'\n\nimport type { Action, FieldCondition } from '../types.js'\n\nexport type Props = {\n andIndex: number\n dispatch: (action: Action) => void\n fields: FieldCondition[]\n orIndex: number\n value: Where\n}\n"],"names":[],"rangeMappings":"","mappings":"AAIA,WAMC"}
1
+ {"version":3,"sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"sourcesContent":["import type { Where } from 'payload'\n\nimport type { Action, FieldCondition } from '../types.js'\n\nexport type Props = {\n andIndex: number\n dispatch: (action: Action) => void\n fields: FieldCondition[]\n orIndex: number\n value: Where\n}\n"],"names":[],"mappings":"AAIA,WAMC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["const boolean = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nconst base = [\n ...boolean,\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n {\n label: 'exists',\n value: 'exists',\n },\n]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...boolean,\n {\n label: 'exists',\n value: 'exists',\n },\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nconst fieldTypeConditions = {\n checkbox: {\n component: 'Text',\n operators: boolean,\n },\n code: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n date: {\n component: 'Date',\n operators: [...base, ...numeric],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...base, ...numeric],\n },\n point: {\n component: 'Point',\n operators: [...geo, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n upload: {\n component: 'Text',\n operators: [...base],\n },\n}\n\nexport default fieldTypeConditions\n"],"names":["boolean","label","value","base","numeric","geo","within","intersects","like","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,MAAMA,UAAU;IACd;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMC,OAAO;OACRH;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAME,UAAU;OACXD;IACH;QACEF,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMG,MAAM;OACPL;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMI,SAAS;IACbL,OAAO;IACPC,OAAO;AACT;AAEA,MAAMK,aAAa;IACjBN,OAAO;IACPC,OAAO;AACT;AAEA,MAAMM,OAAO;IACXP,OAAO;IACPC,OAAO;AACT;AAEA,MAAMO,WAAW;IACfR,OAAO;IACPC,OAAO;AACT;AAEA,MAAMQ,sBAAsB;IAC1BC,UAAU;QACRC,WAAW;QACXC,WAAWb;IACb;IACAc,MAAM;QACJF,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAM,MAAM;QACJH,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAY,OAAO;QACLJ,WAAW;QACXC,WAAW;eAAIV;YAAMM;SAAS;IAChC;IACAQ,MAAM;QACJL,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;YAAUH;YAAQC;SAAW;IAC1D;IACAW,QAAQ;QACNN,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAe,OAAO;QACLP,WAAW;QACXC,WAAW;eAAIR;YAAKC;YAAQC;SAAW;IACzC;IACAa,OAAO;QACLR,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAkB,cAAc;QACZT,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAmB,UAAU;QACRV,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAc,QAAQ;QACNX,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAqB,MAAM;QACJZ,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAgB,UAAU;QACRb,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAiB,QAAQ;QACNd,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;AACF;AAEA,eAAeO,oBAAmB"}
1
+ {"version":3,"sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"sourcesContent":["const boolean = [\n {\n label: 'equals',\n value: 'equals',\n },\n {\n label: 'isNotEqualTo',\n value: 'not_equals',\n },\n]\n\nconst base = [\n ...boolean,\n {\n label: 'isIn',\n value: 'in',\n },\n {\n label: 'isNotIn',\n value: 'not_in',\n },\n {\n label: 'exists',\n value: 'exists',\n },\n]\n\nconst numeric = [\n ...base,\n {\n label: 'isGreaterThan',\n value: 'greater_than',\n },\n {\n label: 'isLessThan',\n value: 'less_than',\n },\n {\n label: 'isLessThanOrEqualTo',\n value: 'less_than_equal',\n },\n {\n label: 'isGreaterThanOrEqualTo',\n value: 'greater_than_equal',\n },\n]\n\nconst geo = [\n ...boolean,\n {\n label: 'exists',\n value: 'exists',\n },\n {\n label: 'near',\n value: 'near',\n },\n]\n\nconst within = {\n label: 'within',\n value: 'within',\n}\n\nconst intersects = {\n label: 'intersects',\n value: 'intersects',\n}\n\nconst like = {\n label: 'isLike',\n value: 'like',\n}\n\nconst contains = {\n label: 'contains',\n value: 'contains',\n}\n\nconst fieldTypeConditions = {\n checkbox: {\n component: 'Text',\n operators: boolean,\n },\n code: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n date: {\n component: 'Date',\n operators: [...base, ...numeric],\n },\n email: {\n component: 'Text',\n operators: [...base, contains],\n },\n json: {\n component: 'Text',\n operators: [...base, like, contains, within, intersects],\n },\n number: {\n component: 'Number',\n operators: [...base, ...numeric],\n },\n point: {\n component: 'Point',\n operators: [...geo, within, intersects],\n },\n radio: {\n component: 'Select',\n operators: [...base],\n },\n relationship: {\n component: 'Relationship',\n operators: [...base],\n },\n richText: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n select: {\n component: 'Select',\n operators: [...base],\n },\n text: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n textarea: {\n component: 'Text',\n operators: [...base, like, contains],\n },\n upload: {\n component: 'Text',\n operators: [...base],\n },\n}\n\nexport default fieldTypeConditions\n"],"names":["boolean","label","value","base","numeric","geo","within","intersects","like","contains","fieldTypeConditions","checkbox","component","operators","code","date","email","json","number","point","radio","relationship","richText","select","text","textarea","upload"],"mappings":"AAAA,MAAMA,UAAU;IACd;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMC,OAAO;OACRH;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAME,UAAU;OACXD;IACH;QACEF,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMG,MAAM;OACPL;IACH;QACEC,OAAO;QACPC,OAAO;IACT;IACA;QACED,OAAO;QACPC,OAAO;IACT;CACD;AAED,MAAMI,SAAS;IACbL,OAAO;IACPC,OAAO;AACT;AAEA,MAAMK,aAAa;IACjBN,OAAO;IACPC,OAAO;AACT;AAEA,MAAMM,OAAO;IACXP,OAAO;IACPC,OAAO;AACT;AAEA,MAAMO,WAAW;IACfR,OAAO;IACPC,OAAO;AACT;AAEA,MAAMQ,sBAAsB;IAC1BC,UAAU;QACRC,WAAW;QACXC,WAAWb;IACb;IACAc,MAAM;QACJF,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAM,MAAM;QACJH,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAY,OAAO;QACLJ,WAAW;QACXC,WAAW;eAAIV;YAAMM;SAAS;IAChC;IACAQ,MAAM;QACJL,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;YAAUH;YAAQC;SAAW;IAC1D;IACAW,QAAQ;QACNN,WAAW;QACXC,WAAW;eAAIV;eAASC;SAAQ;IAClC;IACAe,OAAO;QACLP,WAAW;QACXC,WAAW;eAAIR;YAAKC;YAAQC;SAAW;IACzC;IACAa,OAAO;QACLR,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAkB,cAAc;QACZT,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAmB,UAAU;QACRV,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAc,QAAQ;QACNX,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;IACAqB,MAAM;QACJZ,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAgB,UAAU;QACRb,WAAW;QACXC,WAAW;eAAIV;YAAMK;YAAMC;SAAS;IACtC;IACAiB,QAAQ;QACNd,WAAW;QACXC,WAAW;eAAIV;SAAK;IACtB;AACF;AAEA,eAAeO,oBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,OAAO,cAAc,CAAA;AAOrB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4NpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,OAAO,cAAc,CAAA;AAOrB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2NpD,CAAA"}
@@ -3,10 +3,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
4
  import React, { useEffect, useState } from 'react';
5
5
  import { useListQuery } from '../../providers/ListQuery/index.js';
6
+ import { useLocale } from '../../providers/Locale/index.js';
6
7
  import { useSearchParams } from '../../providers/SearchParams/index.js';
7
8
  import { useTranslation } from '../../providers/Translation/index.js';
8
9
  import { Button } from '../Button/index.js';
9
- import { useTableColumns } from '../TableColumns/index.js';
10
10
  import { Condition } from './Condition/index.js';
11
11
  import './index.scss';
12
12
  import { reduceFieldMap } from './reduceFieldMap.js';
@@ -17,15 +17,16 @@ const baseClass = 'where-builder';
17
17
  * The WhereBuilder component is used to render the filter controls for a collection's list view.
18
18
  * It is part of the {@link ListControls} component which is used to render the controls (search, filter, where).
19
19
  */ export const WhereBuilder = (props)=>{
20
- const { collectionPluralLabel } = props;
20
+ const { collectionPluralLabel, fieldMap } = props;
21
21
  const { i18n, t } = useTranslation();
22
- const { columns } = useTableColumns();
23
- const [reducedFields, setReducedColumns] = useState(()=>reduceFieldMap(columns, i18n));
22
+ const { code: currentLocale } = useLocale();
23
+ const [reducedFields, setReducedColumns] = useState(()=>reduceFieldMap(fieldMap, i18n));
24
24
  useEffect(()=>{
25
- setReducedColumns(reduceFieldMap(columns, i18n));
25
+ setReducedColumns(reduceFieldMap(fieldMap, i18n, undefined, undefined, currentLocale));
26
26
  }, [
27
- columns,
28
- i18n
27
+ fieldMap,
28
+ i18n,
29
+ currentLocale
29
30
  ]);
30
31
  const { searchParams } = useSearchParams();
31
32
  const { handleWhereChange } = useListQuery();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WhereBuilder/index.tsx"],"sourcesContent":["'use client'\nimport type { Operator } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport type { WhereBuilderProps } from './types.js'\n\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport { Condition } from './Condition/index.js'\nimport './index.scss'\nimport { reduceFieldMap } from './reduceFieldMap.js'\nimport { transformWhereQuery } from './transformWhereQuery.js'\nimport validateWhereQuery from './validateWhereQuery.js'\n\nconst baseClass = 'where-builder'\n\nexport { WhereBuilderProps }\n\n/**\n * The WhereBuilder component is used to render the filter controls for a collection's list view.\n * It is part of the {@link ListControls} component which is used to render the controls (search, filter, where).\n */\nexport const WhereBuilder: React.FC<WhereBuilderProps> = (props) => {\n const { collectionPluralLabel } = props\n const { i18n, t } = useTranslation()\n const { columns } = useTableColumns()\n\n const [reducedFields, setReducedColumns] = useState(() => reduceFieldMap(columns, i18n))\n\n useEffect(() => {\n setReducedColumns(reduceFieldMap(columns, i18n))\n }, [columns, i18n])\n\n const { searchParams } = useSearchParams()\n const { handleWhereChange } = useListQuery()\n const [shouldUpdateQuery, setShouldUpdateQuery] = React.useState(false)\n\n // This handles initializing the where conditions from the search query (URL). That way, if you pass in\n // query params to the URL, the where conditions will be initialized from those and displayed in the UI.\n // Example: /admin/collections/posts?where[or][0][and][0][text][equals]=example%20post\n /*\n stored conditions look like this:\n [\n _or_ & _and_ queries have the same shape:\n {\n and: [{\n category: {\n equals: 'category-a'\n }\n }]\n },\n\n {\n and:[{\n category: {\n equals: 'category-b'\n },\n text: {\n not_equals: 'oranges'\n },\n }]\n }\n ]\n */\n\n const [conditions, setConditions] = React.useState(() => {\n const whereFromSearch = searchParams.where\n if (whereFromSearch) {\n if (validateWhereQuery(whereFromSearch)) {\n return whereFromSearch.or\n }\n\n // Transform the where query to be in the right format. This will transform something simple like [text][equals]=example%20post to the right format\n const transformedWhere = transformWhereQuery(whereFromSearch)\n\n if (validateWhereQuery(transformedWhere)) {\n return transformedWhere.or\n }\n\n console.warn(`Invalid where query in URL: ${JSON.stringify(whereFromSearch)}`)\n }\n\n return []\n })\n\n const addCondition = React.useCallback(\n ({ andIndex, fieldName, orIndex, relation }) => {\n const newConditions = [...conditions]\n if (relation === 'and') {\n newConditions[orIndex].and.splice(andIndex, 0, { [fieldName]: {} })\n } else {\n newConditions.push({\n and: [\n {\n [fieldName]: {},\n },\n ],\n })\n }\n setConditions(newConditions)\n },\n [conditions],\n )\n\n const updateCondition = React.useCallback(\n ({ andIndex, fieldName, operator, orIndex, value: valueArg }) => {\n const existingRowCondition = conditions[orIndex].and[andIndex]\n if (typeof existingRowCondition === 'object' && fieldName && operator) {\n const value = valueArg ?? (operator ? existingRowCondition[operator] : '')\n const newRowCondition = {\n [fieldName]: operator ? { [operator]: value } : {},\n }\n\n if (JSON.stringify(existingRowCondition) !== JSON.stringify(newRowCondition)) {\n conditions[orIndex].and[andIndex] = newRowCondition\n setConditions(conditions)\n if (![null, undefined].includes(value)) {\n // only update query when field/operator/value are filled out\n setShouldUpdateQuery(true)\n }\n }\n }\n },\n [conditions],\n )\n\n const removeCondition = React.useCallback(\n ({ andIndex, orIndex }) => {\n const newConditions = [...conditions]\n newConditions[orIndex].and.splice(andIndex, 1)\n if (newConditions[orIndex].and.length === 0) {\n newConditions.splice(orIndex, 1)\n }\n setConditions(newConditions)\n setShouldUpdateQuery(true)\n },\n [conditions],\n )\n\n React.useEffect(() => {\n if (shouldUpdateQuery) {\n handleWhereChange({ or: conditions })\n setShouldUpdateQuery(false)\n }\n }, [conditions, handleWhereChange, shouldUpdateQuery])\n\n return (\n <div className={baseClass}>\n {conditions.length > 0 && (\n <React.Fragment>\n <div className={`${baseClass}__label`}>\n {t('general:filterWhere', { label: getTranslation(collectionPluralLabel, i18n) })}\n </div>\n <ul className={`${baseClass}__or-filters`}>\n {conditions.map((or, orIndex) => {\n const compoundOrKey = `${orIndex}_${Array.isArray(or?.and) ? or.and.length : ''}`\n\n return (\n <li key={compoundOrKey}>\n {orIndex !== 0 && <div className={`${baseClass}__label`}>{t('general:or')}</div>}\n <ul className={`${baseClass}__and-filters`}>\n {Array.isArray(or?.and) &&\n or.and.map((_, andIndex) => {\n const initialFieldName = Object.keys(conditions[orIndex].and[andIndex])[0]\n const initialOperator =\n (Object.keys(\n conditions[orIndex].and[andIndex]?.[initialFieldName] || {},\n )?.[0] as Operator) || undefined\n const initialValue =\n conditions[orIndex].and[andIndex]?.[initialFieldName]?.[\n initialOperator\n ] || ''\n\n return (\n <li key={andIndex}>\n {andIndex !== 0 && (\n <div className={`${baseClass}__label`}>{t('general:and')}</div>\n )}\n <Condition\n addCondition={addCondition}\n andIndex={andIndex}\n fieldName={initialFieldName}\n fields={reducedFields}\n initialValue={initialValue}\n operator={initialOperator}\n orIndex={orIndex}\n removeCondition={removeCondition}\n updateCondition={updateCondition}\n />\n </li>\n )\n })}\n </ul>\n </li>\n )\n })}\n </ul>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-or`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }}\n >\n {t('general:or')}\n </Button>\n </React.Fragment>\n )}\n {conditions.length === 0 && (\n <div className={`${baseClass}__no-filters`}>\n <div className={`${baseClass}__label`}>{t('general:noFiltersSet')}</div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-first-filter`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n if (reducedFields.length > 0) {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }\n }}\n >\n {t('general:addFilter')}\n </Button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["getTranslation","React","useEffect","useState","useListQuery","useSearchParams","useTranslation","Button","useTableColumns","Condition","reduceFieldMap","transformWhereQuery","validateWhereQuery","baseClass","WhereBuilder","props","collectionPluralLabel","i18n","t","columns","reducedFields","setReducedColumns","searchParams","handleWhereChange","shouldUpdateQuery","setShouldUpdateQuery","conditions","setConditions","whereFromSearch","where","or","transformedWhere","console","warn","JSON","stringify","addCondition","useCallback","andIndex","fieldName","orIndex","relation","newConditions","and","splice","push","updateCondition","operator","value","valueArg","existingRowCondition","newRowCondition","undefined","includes","removeCondition","length","div","className","Fragment","label","ul","map","compoundOrKey","Array","isArray","li","_","initialFieldName","Object","keys","initialOperator","initialValue","fields","buttonStyle","icon","iconPosition","iconStyle","onClick"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/WhereBuilder/index.tsx"],"sourcesContent":["'use client'\nimport type { Operator } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport type { WhereBuilderProps } from './types.js'\n\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Condition } from './Condition/index.js'\nimport './index.scss'\nimport { reduceFieldMap } from './reduceFieldMap.js'\nimport { transformWhereQuery } from './transformWhereQuery.js'\nimport validateWhereQuery from './validateWhereQuery.js'\n\nconst baseClass = 'where-builder'\n\nexport { WhereBuilderProps }\n\n/**\n * The WhereBuilder component is used to render the filter controls for a collection's list view.\n * It is part of the {@link ListControls} component which is used to render the controls (search, filter, where).\n */\nexport const WhereBuilder: React.FC<WhereBuilderProps> = (props) => {\n const { collectionPluralLabel, fieldMap } = props\n const { i18n, t } = useTranslation()\n const { code: currentLocale } = useLocale()\n\n const [reducedFields, setReducedColumns] = useState(() => reduceFieldMap(fieldMap, i18n))\n\n useEffect(() => {\n setReducedColumns(reduceFieldMap(fieldMap, i18n, undefined, undefined, currentLocale))\n }, [fieldMap, i18n, currentLocale])\n\n const { searchParams } = useSearchParams()\n const { handleWhereChange } = useListQuery()\n const [shouldUpdateQuery, setShouldUpdateQuery] = React.useState(false)\n\n // This handles initializing the where conditions from the search query (URL). That way, if you pass in\n // query params to the URL, the where conditions will be initialized from those and displayed in the UI.\n // Example: /admin/collections/posts?where[or][0][and][0][text][equals]=example%20post\n /*\n stored conditions look like this:\n [\n _or_ & _and_ queries have the same shape:\n {\n and: [{\n category: {\n equals: 'category-a'\n }\n }]\n },\n\n {\n and:[{\n category: {\n equals: 'category-b'\n },\n text: {\n not_equals: 'oranges'\n },\n }]\n }\n ]\n */\n\n const [conditions, setConditions] = React.useState(() => {\n const whereFromSearch = searchParams.where\n if (whereFromSearch) {\n if (validateWhereQuery(whereFromSearch)) {\n return whereFromSearch.or\n }\n // Transform the where query to be in the right format. This will transform something simple like [text][equals]=example%20post to the right format\n const transformedWhere = transformWhereQuery(whereFromSearch)\n\n if (validateWhereQuery(transformedWhere)) {\n return transformedWhere.or\n }\n\n console.warn(`Invalid where query in URL: ${JSON.stringify(whereFromSearch)}`)\n }\n\n return []\n })\n\n const addCondition = React.useCallback(\n ({ andIndex, fieldName, orIndex, relation }) => {\n const newConditions = [...conditions]\n if (relation === 'and') {\n newConditions[orIndex].and.splice(andIndex, 0, { [fieldName]: {} })\n } else {\n newConditions.push({\n and: [\n {\n [fieldName]: {},\n },\n ],\n })\n }\n setConditions(newConditions)\n },\n [conditions],\n )\n\n const updateCondition = React.useCallback(\n ({ andIndex, fieldName, operator, orIndex, value: valueArg }) => {\n const existingRowCondition = conditions[orIndex].and[andIndex]\n if (typeof existingRowCondition === 'object' && fieldName && operator) {\n const value = valueArg ?? (operator ? existingRowCondition[operator] : '')\n const newRowCondition = {\n [fieldName]: operator ? { [operator]: value } : {},\n }\n\n if (JSON.stringify(existingRowCondition) !== JSON.stringify(newRowCondition)) {\n conditions[orIndex].and[andIndex] = newRowCondition\n setConditions(conditions)\n if (![null, undefined].includes(value)) {\n // only update query when field/operator/value are filled out\n setShouldUpdateQuery(true)\n }\n }\n }\n },\n [conditions],\n )\n\n const removeCondition = React.useCallback(\n ({ andIndex, orIndex }) => {\n const newConditions = [...conditions]\n newConditions[orIndex].and.splice(andIndex, 1)\n if (newConditions[orIndex].and.length === 0) {\n newConditions.splice(orIndex, 1)\n }\n setConditions(newConditions)\n setShouldUpdateQuery(true)\n },\n [conditions],\n )\n\n React.useEffect(() => {\n if (shouldUpdateQuery) {\n handleWhereChange({ or: conditions })\n setShouldUpdateQuery(false)\n }\n }, [conditions, handleWhereChange, shouldUpdateQuery])\n\n return (\n <div className={baseClass}>\n {conditions.length > 0 && (\n <React.Fragment>\n <div className={`${baseClass}__label`}>\n {t('general:filterWhere', { label: getTranslation(collectionPluralLabel, i18n) })}\n </div>\n <ul className={`${baseClass}__or-filters`}>\n {conditions.map((or, orIndex) => {\n const compoundOrKey = `${orIndex}_${Array.isArray(or?.and) ? or.and.length : ''}`\n\n return (\n <li key={compoundOrKey}>\n {orIndex !== 0 && <div className={`${baseClass}__label`}>{t('general:or')}</div>}\n <ul className={`${baseClass}__and-filters`}>\n {Array.isArray(or?.and) &&\n or.and.map((_, andIndex) => {\n const initialFieldName = Object.keys(conditions[orIndex].and[andIndex])[0]\n const initialOperator =\n (Object.keys(\n conditions[orIndex].and[andIndex]?.[initialFieldName] || {},\n )?.[0] as Operator) || undefined\n const initialValue =\n conditions[orIndex].and[andIndex]?.[initialFieldName]?.[\n initialOperator\n ] || ''\n\n return (\n <li key={andIndex}>\n {andIndex !== 0 && (\n <div className={`${baseClass}__label`}>{t('general:and')}</div>\n )}\n <Condition\n addCondition={addCondition}\n andIndex={andIndex}\n fieldName={initialFieldName}\n fields={reducedFields}\n initialValue={initialValue}\n operator={initialOperator}\n orIndex={orIndex}\n removeCondition={removeCondition}\n updateCondition={updateCondition}\n />\n </li>\n )\n })}\n </ul>\n </li>\n )\n })}\n </ul>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-or`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }}\n >\n {t('general:or')}\n </Button>\n </React.Fragment>\n )}\n {conditions.length === 0 && (\n <div className={`${baseClass}__no-filters`}>\n <div className={`${baseClass}__label`}>{t('general:noFiltersSet')}</div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-first-filter`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n if (reducedFields.length > 0) {\n addCondition({\n andIndex: 0,\n fieldName: reducedFields[0].value,\n orIndex: conditions.length,\n relation: 'or',\n })\n }\n }}\n >\n {t('general:addFilter')}\n </Button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["getTranslation","React","useEffect","useState","useListQuery","useLocale","useSearchParams","useTranslation","Button","Condition","reduceFieldMap","transformWhereQuery","validateWhereQuery","baseClass","WhereBuilder","props","collectionPluralLabel","fieldMap","i18n","t","code","currentLocale","reducedFields","setReducedColumns","undefined","searchParams","handleWhereChange","shouldUpdateQuery","setShouldUpdateQuery","conditions","setConditions","whereFromSearch","where","or","transformedWhere","console","warn","JSON","stringify","addCondition","useCallback","andIndex","fieldName","orIndex","relation","newConditions","and","splice","push","updateCondition","operator","value","valueArg","existingRowCondition","newRowCondition","includes","removeCondition","length","div","className","Fragment","label","ul","map","compoundOrKey","Array","isArray","li","_","initialFieldName","Object","keys","initialOperator","initialValue","fields","buttonStyle","icon","iconPosition","iconStyle","onClick"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { Column } from '../Table/index.js';
2
- export declare const reduceFieldMap: (fieldMap: Column[], i18n: any) => any[];
1
+ import type { FieldMap } from '../../utilities/buildComponentMap.js';
2
+ export declare const reduceFieldMap: (fieldMap: FieldMap, i18n: any, labelPrefix?: string, pathPrefix?: string, locale?: string) => any[];
3
3
  //# sourceMappingURL=reduceFieldMap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reduceFieldMap.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/reduceFieldMap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI/C,eAAO,MAAM,cAAc,aAAc,MAAM,EAAE,qBAoCzC,CAAA"}
1
+ {"version":3,"file":"reduceFieldMap.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/reduceFieldMap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAMpE,eAAO,MAAM,cAAc,aACf,QAAQ,2BAEJ,MAAM,eACP,MAAM,WACV,MAAM,UAyEhB,CAAA"}
@@ -1,38 +1,56 @@
1
1
  'use client';
2
+ import { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldPath.js';
3
+ import { combineLabel } from '../FieldSelect/index.js';
2
4
  import fieldTypes from './field-types.js';
3
- export const reduceFieldMap = (fieldMap, i18n)=>fieldMap.reduce((reduced, field)=>{
5
+ export const reduceFieldMap = (fieldMap, i18n, labelPrefix, pathPrefix, locale)=>{
6
+ return fieldMap.reduce((reduced, field)=>{
7
+ if (field.disableListFilter) return reduced;
8
+ if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {
9
+ const tabs = field.fieldComponentProps.tabs;
10
+ tabs.forEach((tab)=>{
11
+ if (tab.name && typeof tab.label === 'string' && tab.fieldMap) {
12
+ reduced.push(...reduceFieldMap(tab.fieldMap, i18n, tab.label, tab.name));
13
+ }
14
+ });
15
+ return reduced;
16
+ }
17
+ if (field.type === 'group' && 'fieldMap' in field.fieldComponentProps) {
18
+ reduced.push(...reduceFieldMap(field.fieldComponentProps.fieldMap, i18n, field.fieldComponentProps.label, field.name));
19
+ return reduced;
20
+ }
4
21
  if (typeof fieldTypes[field.type] === 'object') {
5
22
  const operatorKeys = new Set();
6
23
  const operators = fieldTypes[field.type].operators.reduce((acc, operator)=>{
7
24
  if (!operatorKeys.has(operator.value)) {
8
25
  operatorKeys.add(operator.value);
9
- return [
10
- ...acc,
11
- {
12
- ...operator,
13
- label: i18n.t(`operators:${operator.label}`)
14
- }
15
- ];
26
+ acc.push({
27
+ ...operator,
28
+ label: i18n.t(`operators:${operator.label}`)
29
+ });
16
30
  }
17
31
  return acc;
18
32
  }, []);
33
+ const localizedLabel = locale && typeof field.fieldComponentProps.label === 'object' ? field.fieldComponentProps.label[locale] : field.fieldComponentProps.label;
34
+ const formattedLabel = labelPrefix ? combineLabel({
35
+ field,
36
+ prefix: labelPrefix
37
+ }) : localizedLabel;
38
+ const formattedValue = pathPrefix ? createNestedClientFieldPath(pathPrefix, field) : field.name;
19
39
  const formattedField = {
20
- label: field.Label,
21
- value: field.name,
40
+ label: formattedLabel,
41
+ value: formattedValue,
22
42
  ...fieldTypes[field.type],
23
43
  operators,
24
44
  props: {
25
45
  ...field,
26
- ...field?.cellProps || {}
46
+ ...field?.cellComponentProps || {}
27
47
  }
28
48
  };
29
- if (field.admin?.disableListFilter) return reduced;
30
- return [
31
- ...reduced,
32
- formattedField
33
- ];
49
+ reduced.push(formattedField);
50
+ return reduced;
34
51
  }
35
52
  return reduced;
36
53
  }, []);
54
+ };
37
55
 
38
56
  //# sourceMappingURL=reduceFieldMap.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WhereBuilder/reduceFieldMap.tsx"],"sourcesContent":["'use client'\nimport type { Column } from '../Table/index.js'\n\nimport fieldTypes from './field-types.js'\n\nexport const reduceFieldMap = (fieldMap: Column[], i18n) =>\n fieldMap.reduce((reduced, field) => {\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n\n const operators = fieldTypes[field.type].operators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n return [\n ...acc,\n {\n ...operator,\n label: i18n.t(`operators:${operator.label}`),\n },\n ]\n }\n return acc\n }, [])\n\n const formattedField = {\n label: field.Label,\n value: field.name,\n ...fieldTypes[field.type],\n operators,\n props: {\n ...field,\n ...(field?.cellProps || {}),\n },\n }\n\n if (field.admin?.disableListFilter) return reduced\n\n return [...reduced, formattedField]\n }\n\n return reduced\n }, [])\n"],"names":["fieldTypes","reduceFieldMap","fieldMap","i18n","reduce","reduced","field","type","operatorKeys","Set","operators","acc","operator","has","value","add","label","t","formattedField","Label","name","props","cellProps","admin","disableListFilter"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,OAAOA,gBAAgB,mBAAkB;AAEzC,OAAO,MAAMC,iBAAiB,CAACC,UAAoBC,OACjDD,SAASE,MAAM,CAAC,CAACC,SAASC;QACxB,IAAI,OAAON,UAAU,CAACM,MAAMC,IAAI,CAAC,KAAK,UAAU;YAC9C,MAAMC,eAAe,IAAIC;YAEzB,MAAMC,YAAYV,UAAU,CAACM,MAAMC,IAAI,CAAC,CAACG,SAAS,CAACN,MAAM,CAAC,CAACO,KAAKC;gBAC9D,IAAI,CAACJ,aAAaK,GAAG,CAACD,SAASE,KAAK,GAAG;oBACrCN,aAAaO,GAAG,CAACH,SAASE,KAAK;oBAC/B,OAAO;2BACFH;wBACH;4BACE,GAAGC,QAAQ;4BACXI,OAAOb,KAAKc,CAAC,CAAC,CAAC,UAAU,EAAEL,SAASI,KAAK,CAAC,CAAC;wBAC7C;qBACD;gBACH;gBACA,OAAOL;YACT,GAAG,EAAE;YAEL,MAAMO,iBAAiB;gBACrBF,OAAOV,MAAMa,KAAK;gBAClBL,OAAOR,MAAMc,IAAI;gBACjB,GAAGpB,UAAU,CAACM,MAAMC,IAAI,CAAC;gBACzBG;gBACAW,OAAO;oBACL,GAAGf,KAAK;oBACR,GAAIA,OAAOgB,aAAa,CAAC,CAAC;gBAC5B;YACF;YAEA,IAAIhB,MAAMiB,KAAK,EAAEC,mBAAmB,OAAOnB;YAE3C,OAAO;mBAAIA;gBAASa;aAAe;QACrC;QAEA,OAAOb;IACT,GAAG,EAAE,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/WhereBuilder/reduceFieldMap.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap } from '../../utilities/buildComponentMap.js'\n\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldPath.js'\nimport { combineLabel } from '../FieldSelect/index.js'\nimport fieldTypes from './field-types.js'\n\nexport const reduceFieldMap = (\n fieldMap: FieldMap,\n i18n,\n labelPrefix?: string,\n pathPrefix?: string,\n locale?: string,\n) => {\n return fieldMap.reduce((reduced, field) => {\n if (field.disableListFilter) return reduced\n\n if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {\n const tabs = field.fieldComponentProps.tabs\n tabs.forEach((tab) => {\n if (tab.name && typeof tab.label === 'string' && tab.fieldMap) {\n reduced.push(...reduceFieldMap(tab.fieldMap, i18n, tab.label, tab.name))\n }\n })\n return reduced\n }\n\n if (field.type === 'group' && 'fieldMap' in field.fieldComponentProps) {\n reduced.push(\n ...reduceFieldMap(\n field.fieldComponentProps.fieldMap,\n i18n,\n field.fieldComponentProps.label as string,\n field.name,\n ),\n )\n return reduced\n }\n\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n const operators = fieldTypes[field.type].operators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n acc.push({\n ...operator,\n label: i18n.t(`operators:${operator.label}`),\n })\n }\n return acc\n }, [])\n\n const localizedLabel =\n locale && typeof field.fieldComponentProps.label === 'object'\n ? field.fieldComponentProps.label[locale]\n : field.fieldComponentProps.label\n\n const formattedLabel = labelPrefix\n ? combineLabel({\n field,\n prefix: labelPrefix,\n })\n : localizedLabel\n\n const formattedValue = pathPrefix\n ? createNestedClientFieldPath(pathPrefix, field)\n : field.name\n\n const formattedField = {\n label: formattedLabel,\n value: formattedValue,\n ...fieldTypes[field.type],\n operators,\n props: {\n ...field,\n ...(field?.cellComponentProps || {}),\n },\n }\n\n reduced.push(formattedField)\n return reduced\n }\n\n return reduced\n }, [])\n}\n"],"names":["createNestedClientFieldPath","combineLabel","fieldTypes","reduceFieldMap","fieldMap","i18n","labelPrefix","pathPrefix","locale","reduce","reduced","field","disableListFilter","type","fieldComponentProps","tabs","forEach","tab","name","label","push","operatorKeys","Set","operators","acc","operator","has","value","add","t","localizedLabel","formattedLabel","prefix","formattedValue","formattedField","props","cellComponentProps"],"mappings":"AAAA;AAGA,SAASA,2BAA2B,QAAQ,4CAA2C;AACvF,SAASC,YAAY,QAAQ,0BAAyB;AACtD,OAAOC,gBAAgB,mBAAkB;AAEzC,OAAO,MAAMC,iBAAiB,CAC5BC,UACAC,MACAC,aACAC,YACAC;IAEA,OAAOJ,SAASK,MAAM,CAAC,CAACC,SAASC;QAC/B,IAAIA,MAAMC,iBAAiB,EAAE,OAAOF;QAEpC,IAAIC,MAAME,IAAI,KAAK,UAAU,UAAUF,MAAMG,mBAAmB,EAAE;YAChE,MAAMC,OAAOJ,MAAMG,mBAAmB,CAACC,IAAI;YAC3CA,KAAKC,OAAO,CAAC,CAACC;gBACZ,IAAIA,IAAIC,IAAI,IAAI,OAAOD,IAAIE,KAAK,KAAK,YAAYF,IAAIb,QAAQ,EAAE;oBAC7DM,QAAQU,IAAI,IAAIjB,eAAec,IAAIb,QAAQ,EAAEC,MAAMY,IAAIE,KAAK,EAAEF,IAAIC,IAAI;gBACxE;YACF;YACA,OAAOR;QACT;QAEA,IAAIC,MAAME,IAAI,KAAK,WAAW,cAAcF,MAAMG,mBAAmB,EAAE;YACrEJ,QAAQU,IAAI,IACPjB,eACDQ,MAAMG,mBAAmB,CAACV,QAAQ,EAClCC,MACAM,MAAMG,mBAAmB,CAACK,KAAK,EAC/BR,MAAMO,IAAI;YAGd,OAAOR;QACT;QAEA,IAAI,OAAOR,UAAU,CAACS,MAAME,IAAI,CAAC,KAAK,UAAU;YAC9C,MAAMQ,eAAe,IAAIC;YACzB,MAAMC,YAAYrB,UAAU,CAACS,MAAME,IAAI,CAAC,CAACU,SAAS,CAACd,MAAM,CAAC,CAACe,KAAKC;gBAC9D,IAAI,CAACJ,aAAaK,GAAG,CAACD,SAASE,KAAK,GAAG;oBACrCN,aAAaO,GAAG,CAACH,SAASE,KAAK;oBAC/BH,IAAIJ,IAAI,CAAC;wBACP,GAAGK,QAAQ;wBACXN,OAAOd,KAAKwB,CAAC,CAAC,CAAC,UAAU,EAAEJ,SAASN,KAAK,CAAC,CAAC;oBAC7C;gBACF;gBACA,OAAOK;YACT,GAAG,EAAE;YAEL,MAAMM,iBACJtB,UAAU,OAAOG,MAAMG,mBAAmB,CAACK,KAAK,KAAK,WACjDR,MAAMG,mBAAmB,CAACK,KAAK,CAACX,OAAO,GACvCG,MAAMG,mBAAmB,CAACK,KAAK;YAErC,MAAMY,iBAAiBzB,cACnBL,aAAa;gBACXU;gBACAqB,QAAQ1B;YACV,KACAwB;YAEJ,MAAMG,iBAAiB1B,aACnBP,4BAA4BO,YAAYI,SACxCA,MAAMO,IAAI;YAEd,MAAMgB,iBAAiB;gBACrBf,OAAOY;gBACPJ,OAAOM;gBACP,GAAG/B,UAAU,CAACS,MAAME,IAAI,CAAC;gBACzBU;gBACAY,OAAO;oBACL,GAAGxB,KAAK;oBACR,GAAIA,OAAOyB,sBAAsB,CAAC,CAAC;gBACrC;YACF;YAEA1B,QAAQU,IAAI,CAACc;YACb,OAAOxB;QACT;QAEA,OAAOA;IACT,GAAG,EAAE;AACP,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"sourcesContent":["import 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"],"names":["transformWhereQuery","whereQuery","or","and","map","query"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA;;;;CAIC,GACD,OAAO,MAAMA,sBAAsB,CAACC;IAClC,IAAI,CAACA,YAAY;QACf,OAAO,CAAC;IACV;IACA,4FAA4F;IAC5F,IAAIA,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACpC,OAAO;YACLD,IAAID,WAAWC,EAAE,CAACE,GAAG,CAAC,CAACC;gBACrB,iEAAiE;gBACjE,IAAI,CAACA,MAAMF,GAAG,EAAE;oBACd,OAAO;wBACLA,KAAK;4BAACE;yBAAM;oBACd;gBACF;gBACA,OAAOA;YACT;QACF;IACF;IAEA,qDAAqD;IACrD,IAAIJ,WAAWE,GAAG,IAAI,CAACF,WAAWC,EAAE,EAAE;QACpC,OAAO;YACLA,IAAI;gBACF;oBACEC,KAAKF,WAAWE,GAAG;gBACrB;aACD;QACH;IACF;IAEA,oDAAoD;IACpD,IAAI,CAACF,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACrC,OAAO;YACLD,IAAI;gBACF;oBACEC,KAAK;wBAACF;qBAAW;gBACnB;aACD;QACH;IACF;IAEA,+DAA+D;IAC/D,OAAOA;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/WhereBuilder/transformWhereQuery.ts"],"sourcesContent":["import 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"],"names":["transformWhereQuery","whereQuery","or","and","map","query"],"mappings":"AAEA;;;;CAIC,GACD,OAAO,MAAMA,sBAAsB,CAACC;IAClC,IAAI,CAACA,YAAY;QACf,OAAO,CAAC;IACV;IACA,4FAA4F;IAC5F,IAAIA,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACpC,OAAO;YACLD,IAAID,WAAWC,EAAE,CAACE,GAAG,CAAC,CAACC;gBACrB,iEAAiE;gBACjE,IAAI,CAACA,MAAMF,GAAG,EAAE;oBACd,OAAO;wBACLA,KAAK;4BAACE;yBAAM;oBACd;gBACF;gBACA,OAAOA;YACT;QACF;IACF;IAEA,qDAAqD;IACrD,IAAIJ,WAAWE,GAAG,IAAI,CAACF,WAAWC,EAAE,EAAE;QACpC,OAAO;YACLA,IAAI;gBACF;oBACEC,KAAKF,WAAWE,GAAG;gBACrB;aACD;QACH;IACF;IAEA,oDAAoD;IACpD,IAAI,CAACF,WAAWC,EAAE,IAAI,CAACD,WAAWE,GAAG,EAAE;QACrC,OAAO;YACLD,IAAI;gBACF;oBACEC,KAAK;wBAACF;qBAAW;gBACnB;aACD;QACH;IACF;IAEA,+DAA+D;IAC/D,OAAOA;AACT,EAAC"}
@@ -1,7 +1,9 @@
1
1
  import type { Field, Operator, SanitizedCollectionConfig, Where } from 'payload';
2
+ import type { FieldMap } from '../../utilities/buildComponentMap.js';
2
3
  export type WhereBuilderProps = {
3
4
  collectionPluralLabel: SanitizedCollectionConfig['labels']['plural'];
4
5
  collectionSlug: SanitizedCollectionConfig['slug'];
6
+ fieldMap?: FieldMap;
5
7
  };
6
8
  export type FieldCondition = {
7
9
  component?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEhF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qBAAqB,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpE,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,QAAQ,CAAA;KAChB,EAAE,CAAA;IACH,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAA;AAEnC,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,KAAK,EAAE,CAAA;CACZ,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAEpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qBAAqB,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpE,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,QAAQ,CAAA;KAChB,EAAE,CAAA;IACH,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAA;AAEnC,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,KAAK,EAAE,CAAA;CACZ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WhereBuilder/types.ts"],"sourcesContent":["import type { Field, Operator, SanitizedCollectionConfig, Where } from 'payload'\n\nexport type WhereBuilderProps = {\n collectionPluralLabel: SanitizedCollectionConfig['labels']['plural']\n collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport type FieldCondition = {\n component?: string\n label: string\n operators: {\n label: string\n value: Operator\n }[]\n props: Field\n value: string\n}\n\nexport type Relation = 'and' | 'or'\n\nexport type ADD = {\n andIndex?: number\n field: string\n orIndex?: number\n relation?: Relation\n type: 'add'\n}\n\nexport type REMOVE = {\n andIndex: number\n orIndex: number\n type: 'remove'\n}\n\nexport type UPDATE = {\n andIndex: number\n field?: string\n operator?: string\n orIndex: number\n type: 'update'\n value?: unknown\n}\n\nexport type Action = ADD | REMOVE | UPDATE\n\nexport type State = {\n or: Where[]\n}\n"],"names":[],"rangeMappings":"","mappings":"AA6CA,WAEC"}
1
+ {"version":3,"sources":["../../../src/elements/WhereBuilder/types.ts"],"sourcesContent":["import type { Field, Operator, SanitizedCollectionConfig, Where } from 'payload'\n\nimport type { FieldMap } from '../../utilities/buildComponentMap.js'\n\nexport type WhereBuilderProps = {\n collectionPluralLabel: SanitizedCollectionConfig['labels']['plural']\n collectionSlug: SanitizedCollectionConfig['slug']\n fieldMap?: FieldMap\n}\n\nexport type FieldCondition = {\n component?: string\n label: string\n operators: {\n label: string\n value: Operator\n }[]\n props: Field\n value: string\n}\n\nexport type Relation = 'and' | 'or'\n\nexport type ADD = {\n andIndex?: number\n field: string\n orIndex?: number\n relation?: Relation\n type: 'add'\n}\n\nexport type REMOVE = {\n andIndex: number\n orIndex: number\n type: 'remove'\n}\n\nexport type UPDATE = {\n andIndex: number\n field?: string\n operator?: string\n orIndex: number\n type: 'update'\n value?: unknown\n}\n\nexport type Action = ADD | REMOVE | UPDATE\n\nexport type State = {\n or: Where[]\n}\n"],"names":[],"mappings":"AAgDA,WAEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9C,QAAA,MAAM,kBAAkB,0CAsCvB,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"validateWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9C,QAAA,MAAM,kBAAkB,uBAAiB,UAAU,IAAI,KAsCtD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["import type { Operator, Where } from 'payload'\n\nimport { validOperators } 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 const andKeys = Object.keys(andQuery)\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n // eslint-disable-next-line no-restricted-syntax\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 || !validOperators.includes(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"],"names":["validOperators","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,cAAc,QAAQ,iBAAgB;AAE/C,MAAMC,qBAAqB,CAACC;IAC1B,IACEA,YAAYC,IAAIC,SAAS,KACzBF,YAAYC,IAAI,CAAC,EAAE,EAAEE,OACrBH,YAAYC,IAAI,CAAC,EAAE,EAAEE,KAAKD,SAAS,GACnC;QACA,uEAAuE;QACvE,6DAA6D;QAE7D,MAAME,UAAUJ,WAAWC,EAAE,CAACI,KAAK,CAAC,CAACC;YACnC,IAAIA,QAAQH,GAAG,IAAII,MAAMC,OAAO,CAACF,QAAQH,GAAG,GAAG;gBAC7C,OAAOG,QAAQH,GAAG,CAACE,KAAK,CAAC,CAACI;oBACxB,IAAI,OAAOA,aAAa,UAAU;wBAChC,OAAO;oBACT;oBACA,MAAMC,UAAUC,OAAOC,IAAI,CAACH;oBAC5B,qDAAqD;oBACrD,IAAIC,QAAQR,MAAM,KAAK,GAAG;wBACxB,OAAO;oBACT;oBACA,gDAAgD;oBAChD,KAAK,MAAMW,OAAOH,QAAS;wBACzB,MAAMI,WAAWH,OAAOC,IAAI,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAC,EAAE;wBAC9C,wCAAwC;wBACxC,IAAI,CAACC,YAAY,CAAChB,eAAeiB,QAAQ,CAACD,WAAuB;4BAC/D,OAAO;wBACT;oBACF;oBACA,OAAO;gBACT;YACF;YACA,OAAO;QACT;QAEA,OAAOV;IACT;IAEA,OAAO;AACT;AAEA,eAAeL,mBAAkB"}
1
+ {"version":3,"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["import type { Operator, Where } from 'payload'\n\nimport { validOperators } 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 const andKeys = Object.keys(andQuery)\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n // eslint-disable-next-line no-restricted-syntax\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 || !validOperators.includes(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"],"names":["validOperators","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","includes"],"mappings":"AAEA,SAASA,cAAc,QAAQ,iBAAgB;AAE/C,MAAMC,qBAAqB,CAACC;IAC1B,IACEA,YAAYC,IAAIC,SAAS,KACzBF,YAAYC,IAAI,CAAC,EAAE,EAAEE,OACrBH,YAAYC,IAAI,CAAC,EAAE,EAAEE,KAAKD,SAAS,GACnC;QACA,uEAAuE;QACvE,6DAA6D;QAE7D,MAAME,UAAUJ,WAAWC,EAAE,CAACI,KAAK,CAAC,CAACC;YACnC,IAAIA,QAAQH,GAAG,IAAII,MAAMC,OAAO,CAACF,QAAQH,GAAG,GAAG;gBAC7C,OAAOG,QAAQH,GAAG,CAACE,KAAK,CAAC,CAACI;oBACxB,IAAI,OAAOA,aAAa,UAAU;wBAChC,OAAO;oBACT;oBACA,MAAMC,UAAUC,OAAOC,IAAI,CAACH;oBAC5B,qDAAqD;oBACrD,IAAIC,QAAQR,MAAM,KAAK,GAAG;wBACxB,OAAO;oBACT;oBACA,gDAAgD;oBAChD,KAAK,MAAMW,OAAOH,QAAS;wBACzB,MAAMI,WAAWH,OAAOC,IAAI,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAC,EAAE;wBAC9C,wCAAwC;wBACxC,IAAI,CAACC,YAAY,CAAChB,eAAeiB,QAAQ,CAACD,WAAuB;4BAC/D,OAAO;wBACT;oBACF;oBACA,OAAO;gBACT;YACF;YACA,OAAO;QACT;QAEA,OAAOV;IACT;IAEA,OAAO;AACT;AAEA,eAAeL,mBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WindowInfo/index.tsx"],"sourcesContent":["import { WindowInfoProvider, useWindowInfo } from '@faceless-ui/window-info'\nexport { WindowInfoProvider, useWindowInfo }\n"],"names":["WindowInfoProvider","useWindowInfo"],"rangeMappings":";","mappings":"AAAA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,2BAA0B;AAC5E,SAASD,kBAAkB,EAAEC,aAAa,GAAE"}
1
+ {"version":3,"sources":["../../../src/elements/WindowInfo/index.tsx"],"sourcesContent":["import { WindowInfoProvider, useWindowInfo } from '@faceless-ui/window-info'\nexport { WindowInfoProvider, useWindowInfo }\n"],"names":["WindowInfoProvider","useWindowInfo"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,2BAA0B;AAC5E,SAASD,kBAAkB,EAAEC,aAAa,GAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/WithServerSideProps/index.tsx"],"sourcesContent":["import type { WithServerSidePropsComponent } from 'payload'\n\nimport { isReactServerComponentOrFunction } from 'payload/shared'\nimport React from 'react'\n\nexport const WithServerSideProps: WithServerSidePropsComponent = ({\n Component,\n serverOnlyProps,\n ...rest\n}) => {\n if (Component) {\n const WithServerSideProps: React.FC = (passedProps) => {\n const propsWithServerOnlyProps = {\n ...passedProps,\n ...(isReactServerComponentOrFunction(Component) ? serverOnlyProps ?? {} : {}),\n }\n\n return <Component {...propsWithServerOnlyProps} />\n }\n\n return <WithServerSideProps {...rest} />\n }\n\n return null\n}\n"],"names":["isReactServerComponentOrFunction","React","WithServerSideProps","Component","serverOnlyProps","rest","passedProps","propsWithServerOnlyProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":";AAEA,SAASA,gCAAgC,QAAQ,iBAAgB;AACjE,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,sBAAoD,CAAC,EAChEC,SAAS,EACTC,eAAe,EACf,GAAGC,MACJ;IACC,IAAIF,WAAW;QACb,MAAMD,sBAAgC,CAACI;YACrC,MAAMC,2BAA2B;gBAC/B,GAAGD,WAAW;gBACd,GAAIN,iCAAiCG,aAAaC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC9E;YAEA,qBAAO,KAACD;gBAAW,GAAGI,wBAAwB;;QAChD;QAEA,qBAAO,KAACL;YAAqB,GAAGG,IAAI;;IACtC;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/WithServerSideProps/index.tsx"],"sourcesContent":["import type { WithServerSidePropsComponent } from 'payload'\n\nimport { isReactServerComponentOrFunction } from 'payload/shared'\nimport React from 'react'\n\nexport const WithServerSideProps: WithServerSidePropsComponent = ({\n Component,\n serverOnlyProps,\n ...rest\n}) => {\n if (Component) {\n const WithServerSideProps: React.FC = (passedProps) => {\n const propsWithServerOnlyProps = {\n ...passedProps,\n ...(isReactServerComponentOrFunction(Component) ? serverOnlyProps ?? {} : {}),\n }\n\n return <Component {...propsWithServerOnlyProps} />\n }\n\n return <WithServerSideProps {...rest} />\n }\n\n return null\n}\n"],"names":["isReactServerComponentOrFunction","React","WithServerSideProps","Component","serverOnlyProps","rest","passedProps","propsWithServerOnlyProps"],"mappings":";AAEA,SAASA,gCAAgC,QAAQ,iBAAgB;AACjE,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,sBAAoD,CAAC,EAChEC,SAAS,EACTC,eAAe,EACf,GAAGC,MACJ;IACC,IAAIF,WAAW;QACb,MAAMD,sBAAgC,CAACI;YACrC,MAAMC,2BAA2B;gBAC/B,GAAGD,WAAW;gBACd,GAAIN,iCAAiCG,aAAaC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC9E;YAEA,qBAAO,KAACD;gBAAW,GAAGI,wBAAwB;;QAChD;QAEA,qBAAO,KAACL;YAAqB,GAAGG,IAAI;;IACtC;IAEA,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { deepMerge, isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = getMergedPropsComponent({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n *\n * @param Component - The original component to wrap.\n * @param sanitizeServerOnlyProps - If true, server-only props will be removed from the merged props. @default true if the component is not a server component, false otherwise.\n * @param toMergeIntoProps - The properties to merge into the passed props.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n sanitizeServerOnlyProps,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n sanitizeServerOnlyProps?: boolean\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n if (sanitizeServerOnlyProps === undefined) {\n sanitizeServerOnlyProps = !isReactServerComponentOrFunction(Component)\n }\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = deepMerge(passedProps, toMergeIntoProps)\n\n if (sanitizeServerOnlyProps) {\n serverProps.forEach((prop) => {\n delete mergedProps[prop]\n })\n }\n\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n"],"names":["deepMerge","isReactServerComponentOrFunction","serverProps","React","withMergedProps","Component","sanitizeServerOnlyProps","toMergeIntoProps","undefined","MergedPropsComponent","passedProps","mergedProps","forEach","prop"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,SAAS,EAAEC,gCAAgC,EAAEC,WAAW,QAAQ,iBAAgB;AACzF,OAAOC,WAAW,QAAO;AAEzB;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,SAASC,gBAAuD,EACrEC,SAAS,EACTC,uBAAuB,EACvBC,gBAAgB,EAKjB;IACC,IAAID,4BAA4BE,WAAW;QACzCF,0BAA0B,CAACL,iCAAiCI;IAC9D;IACA,sHAAsH;IACtH,MAAMI,uBAAsD,CAACC;QAC3D,MAAMC,cAAcX,UAAUU,aAAaH;QAE3C,IAAID,yBAAyB;YAC3BJ,YAAYU,OAAO,CAAC,CAACC;gBACnB,OAAOF,WAAW,CAACE,KAAK;YAC1B;QACF;QAEA,qBAAO,KAACR;YAAW,GAAGM,WAAW;;IACnC;IAEA,OAAOF;AACT"}
1
+ {"version":3,"sources":["../../../src/elements/withMergedProps/index.tsx"],"sourcesContent":["import { deepMerge, isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = getMergedPropsComponent({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n *\n * @param Component - The original component to wrap.\n * @param sanitizeServerOnlyProps - If true, server-only props will be removed from the merged props. @default true if the component is not a server component, false otherwise.\n * @param toMergeIntoProps - The properties to merge into the passed props.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n sanitizeServerOnlyProps,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n sanitizeServerOnlyProps?: boolean\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n if (sanitizeServerOnlyProps === undefined) {\n sanitizeServerOnlyProps = !isReactServerComponentOrFunction(Component)\n }\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = deepMerge(passedProps, toMergeIntoProps)\n\n if (sanitizeServerOnlyProps) {\n serverProps.forEach((prop) => {\n delete mergedProps[prop]\n })\n }\n\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n"],"names":["deepMerge","isReactServerComponentOrFunction","serverProps","React","withMergedProps","Component","sanitizeServerOnlyProps","toMergeIntoProps","undefined","MergedPropsComponent","passedProps","mergedProps","forEach","prop"],"mappings":";AAAA,SAASA,SAAS,EAAEC,gCAAgC,EAAEC,WAAW,QAAQ,iBAAgB;AACzF,OAAOC,WAAW,QAAO;AAEzB;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,SAASC,gBAAuD,EACrEC,SAAS,EACTC,uBAAuB,EACvBC,gBAAgB,EAKjB;IACC,IAAID,4BAA4BE,WAAW;QACzCF,0BAA0B,CAACL,iCAAiCI;IAC9D;IACA,sHAAsH;IACtH,MAAMI,uBAAsD,CAACC;QAC3D,MAAMC,cAAcX,UAAUU,aAAaH;QAE3C,IAAID,yBAAyB;YAC3BJ,YAAYU,OAAO,CAAC,CAACC;gBACnB,OAAOF,WAAW,CAACE,KAAK;YAC1B;QACF;QAEA,qBAAO,KAACR;YAAW,GAAGM,WAAW;;IACnC;IAEA,OAAOF;AACT"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ // Workaround for react-datepicker and other cjs dependencies potentially inserting require("react") statements
3
+ import * as requireReact from 'react';
4
+ import * as requireReactDom from 'react-dom';
5
+
6
+ function require(m) {
7
+ if (m === 'react') return requireReact;
8
+ if (m === 'react-dom') return requireReactDom;
9
+ throw new Error(`Unknown module ${m}`);
10
+ }
11
+ // Workaround end
12
+
13
+ import{j as a}from"./chunk-3X2D2TP2.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
+ //# sourceMappingURL=DatePicker-BN5AOAME.js.map
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ {
3
+ "version": 3,
4
+ "sources": [],
5
+ "sourcesContent": [],
6
+ "mappings": "",
7
+ "names": []
8
+ }