@payloadcms/ui 3.0.0-alpha.49 → 3.0.0-alpha.50

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 (442) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +2 -43
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +2 -5
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/DeleteDocument/index.js +2 -2
  8. package/dist/elements/DeleteDocument/index.js.map +1 -1
  9. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentControls/index.js +13 -4
  11. package/dist/elements/DocumentControls/index.js.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
  14. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.d.ts +0 -2
  16. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  24. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  25. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
  27. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  28. package/dist/elements/EditMany/index.d.ts.map +1 -1
  29. package/dist/elements/EditMany/index.js +3 -25
  30. package/dist/elements/EditMany/index.js.map +1 -1
  31. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  32. package/dist/elements/FieldSelect/index.js +39 -12
  33. package/dist/elements/FieldSelect/index.js.map +1 -1
  34. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/index.js +2 -1
  36. package/dist/elements/FileDetails/index.js.map +1 -1
  37. package/dist/elements/ListControls/index.d.ts +0 -1
  38. package/dist/elements/ListControls/index.d.ts.map +1 -1
  39. package/dist/elements/ListControls/index.js +7 -6
  40. package/dist/elements/ListControls/index.js.map +1 -1
  41. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  42. package/dist/elements/ListDrawer/DrawerContent.js +5 -9
  43. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  44. package/dist/elements/Nav/index.client.d.ts +3 -0
  45. package/dist/elements/Nav/index.client.d.ts.map +1 -0
  46. package/dist/elements/Nav/index.client.js +77 -0
  47. package/dist/elements/Nav/index.client.js.map +1 -0
  48. package/dist/elements/Nav/index.d.ts +3 -7
  49. package/dist/elements/Nav/index.d.ts.map +1 -1
  50. package/dist/elements/Nav/index.js +4 -66
  51. package/dist/elements/Nav/index.js.map +1 -1
  52. package/dist/elements/PerPage/index.d.ts +1 -0
  53. package/dist/elements/PerPage/index.d.ts.map +1 -1
  54. package/dist/elements/PerPage/index.js +6 -4
  55. package/dist/elements/PerPage/index.js.map +1 -1
  56. package/dist/elements/PreviewButton/index.d.ts +4 -6
  57. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  58. package/dist/elements/PreviewButton/index.js +11 -65
  59. package/dist/elements/PreviewButton/index.js.map +1 -1
  60. package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
  62. package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
  64. package/dist/elements/Publish/index.d.ts +4 -2
  65. package/dist/elements/Publish/index.d.ts.map +1 -1
  66. package/dist/elements/Publish/index.js +15 -25
  67. package/dist/elements/Publish/index.js.map +1 -1
  68. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  69. package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
  70. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  71. package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
  72. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  73. package/dist/elements/ReactSelect/index.js +4 -1
  74. package/dist/elements/ReactSelect/index.js.map +1 -1
  75. package/dist/elements/ReactSelect/types.d.ts +2 -0
  76. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  77. package/dist/elements/ReactSelect/types.js.map +1 -1
  78. package/dist/elements/Save/index.d.ts +4 -2
  79. package/dist/elements/Save/index.d.ts.map +1 -1
  80. package/dist/elements/Save/index.js +7 -14
  81. package/dist/elements/Save/index.js.map +1 -1
  82. package/dist/elements/SaveDraft/index.d.ts +1 -2
  83. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  84. package/dist/elements/SaveDraft/index.js +33 -42
  85. package/dist/elements/SaveDraft/index.js.map +1 -1
  86. package/dist/elements/SortColumn/index.d.ts +3 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js +5 -6
  89. package/dist/elements/SortColumn/index.js.map +1 -1
  90. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
  91. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  92. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  93. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
  94. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  95. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  96. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
  97. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  98. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  99. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
  100. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  101. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  102. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
  103. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  104. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  105. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
  106. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  107. package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
  108. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  109. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
  110. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  111. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  112. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
  113. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
  116. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  117. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
  119. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
  120. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
  122. package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
  123. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  124. package/dist/elements/Table/DefaultCell/index.js +4 -2
  125. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  126. package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
  127. package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
  128. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  129. package/dist/elements/Table/index.d.ts +8 -4
  130. package/dist/elements/Table/index.d.ts.map +1 -1
  131. package/dist/elements/Table/index.js +1 -0
  132. package/dist/elements/Table/index.js.map +1 -1
  133. package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
  134. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  135. package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
  136. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  137. package/dist/elements/TableColumns/filterFields.d.ts +3 -0
  138. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  139. package/dist/elements/TableColumns/filterFields.js +27 -0
  140. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  141. package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
  142. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  143. package/dist/elements/TableColumns/getInitialColumns.js +48 -0
  144. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  145. package/dist/elements/TableColumns/index.d.ts +2 -2
  146. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  147. package/dist/elements/TableColumns/index.js +11 -7
  148. package/dist/elements/TableColumns/index.js.map +1 -1
  149. package/dist/elements/Thumbnail/index.d.ts +6 -0
  150. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  151. package/dist/elements/Thumbnail/index.js +32 -16
  152. package/dist/elements/Thumbnail/index.js.map +1 -1
  153. package/dist/elements/ThumbnailCard/index.d.ts +1 -1
  154. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  155. package/dist/elements/ThumbnailCard/index.js +2 -6
  156. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  157. package/dist/elements/Tooltip/index.scss +4 -4
  158. package/dist/elements/Translation/index.d.ts.map +1 -1
  159. package/dist/elements/Translation/index.js +12 -9
  160. package/dist/elements/Translation/index.js.map +1 -1
  161. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  162. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
  163. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  164. package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
  165. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  166. package/dist/elements/WhereBuilder/Condition/index.js +45 -61
  167. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  168. package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
  169. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  170. package/dist/elements/WhereBuilder/index.js +134 -55
  171. package/dist/elements/WhereBuilder/index.js.map +1 -1
  172. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
  173. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
  174. package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
  175. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
  176. package/dist/elements/withMergedProps/index.js +1 -1
  177. package/dist/elements/withMergedProps/index.js.map +1 -1
  178. package/dist/fields/Array/ArrayRow.d.ts +2 -0
  179. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  180. package/dist/fields/Array/ArrayRow.js +3 -3
  181. package/dist/fields/Array/ArrayRow.js.map +1 -1
  182. package/dist/fields/Array/index.d.ts +1 -1
  183. package/dist/fields/Array/index.d.ts.map +1 -1
  184. package/dist/fields/Array/index.js +23 -8
  185. package/dist/fields/Array/index.js.map +1 -1
  186. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  187. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  188. package/dist/fields/Blocks/BlockRow.js +2 -3
  189. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  190. package/dist/fields/Blocks/index.d.ts +0 -1
  191. package/dist/fields/Blocks/index.d.ts.map +1 -1
  192. package/dist/fields/Blocks/index.js +17 -5
  193. package/dist/fields/Blocks/index.js.map +1 -1
  194. package/dist/fields/Checkbox/Input.d.ts +2 -1
  195. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  196. package/dist/fields/Checkbox/Input.js +3 -1
  197. package/dist/fields/Checkbox/Input.js.map +1 -1
  198. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  199. package/dist/fields/Checkbox/index.js +6 -2
  200. package/dist/fields/Checkbox/index.js.map +1 -1
  201. package/dist/fields/Code/index.d.ts.map +1 -1
  202. package/dist/fields/Code/index.js +8 -3
  203. package/dist/fields/Code/index.js.map +1 -1
  204. package/dist/fields/Collapsible/index.d.ts +2 -1
  205. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  206. package/dist/fields/Collapsible/index.js +4 -3
  207. package/dist/fields/Collapsible/index.js.map +1 -1
  208. package/dist/fields/DateTime/index.d.ts.map +1 -1
  209. package/dist/fields/DateTime/index.js +7 -2
  210. package/dist/fields/DateTime/index.js.map +1 -1
  211. package/dist/fields/Email/index.d.ts.map +1 -1
  212. package/dist/fields/Email/index.js +7 -2
  213. package/dist/fields/Email/index.js.map +1 -1
  214. package/dist/fields/Group/index.d.ts +0 -1
  215. package/dist/fields/Group/index.d.ts.map +1 -1
  216. package/dist/fields/Group/index.js +9 -8
  217. package/dist/fields/Group/index.js.map +1 -1
  218. package/dist/fields/HiddenInput/index.d.ts +1 -0
  219. package/dist/fields/HiddenInput/index.d.ts.map +1 -1
  220. package/dist/fields/HiddenInput/index.js +4 -2
  221. package/dist/fields/HiddenInput/index.js.map +1 -1
  222. package/dist/fields/JSON/index.d.ts.map +1 -1
  223. package/dist/fields/JSON/index.js +8 -4
  224. package/dist/fields/JSON/index.js.map +1 -1
  225. package/dist/fields/Number/index.d.ts.map +1 -1
  226. package/dist/fields/Number/index.js +7 -2
  227. package/dist/fields/Number/index.js.map +1 -1
  228. package/dist/fields/Password/index.d.ts +0 -1
  229. package/dist/fields/Password/index.d.ts.map +1 -1
  230. package/dist/fields/Password/index.js +5 -2
  231. package/dist/fields/Password/index.js.map +1 -1
  232. package/dist/fields/Point/index.d.ts.map +1 -1
  233. package/dist/fields/Point/index.js +15 -10
  234. package/dist/fields/Point/index.js.map +1 -1
  235. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  236. package/dist/fields/RadioGroup/index.js +7 -2
  237. package/dist/fields/RadioGroup/index.js.map +1 -1
  238. package/dist/fields/Relationship/index.d.ts.map +1 -1
  239. package/dist/fields/Relationship/index.js +45 -14
  240. package/dist/fields/Relationship/index.js.map +1 -1
  241. package/dist/fields/Relationship/types.d.ts +3 -1
  242. package/dist/fields/Relationship/types.d.ts.map +1 -1
  243. package/dist/fields/Relationship/types.js.map +1 -1
  244. package/dist/fields/RichText/index.d.ts +2 -0
  245. package/dist/fields/RichText/index.d.ts.map +1 -1
  246. package/dist/fields/RichText/index.js.map +1 -1
  247. package/dist/fields/Row/index.d.ts.map +1 -1
  248. package/dist/fields/Row/index.js +2 -1
  249. package/dist/fields/Row/index.js.map +1 -1
  250. package/dist/fields/Select/index.d.ts +0 -1
  251. package/dist/fields/Select/index.d.ts.map +1 -1
  252. package/dist/fields/Select/index.js +8 -3
  253. package/dist/fields/Select/index.js.map +1 -1
  254. package/dist/fields/Tabs/index.d.ts +0 -1
  255. package/dist/fields/Tabs/index.d.ts.map +1 -1
  256. package/dist/fields/Tabs/index.js +2 -2
  257. package/dist/fields/Tabs/index.js.map +1 -1
  258. package/dist/fields/Text/Input.d.ts.map +1 -1
  259. package/dist/fields/Text/Input.js +4 -1
  260. package/dist/fields/Text/Input.js.map +1 -1
  261. package/dist/fields/Text/index.d.ts.map +1 -1
  262. package/dist/fields/Text/index.js +3 -1
  263. package/dist/fields/Text/index.js.map +1 -1
  264. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  265. package/dist/fields/Textarea/Input.js +4 -1
  266. package/dist/fields/Textarea/Input.js.map +1 -1
  267. package/dist/fields/Textarea/index.d.ts.map +1 -1
  268. package/dist/fields/Textarea/index.js +3 -1
  269. package/dist/fields/Textarea/index.js.map +1 -1
  270. package/dist/fields/Upload/Input.d.ts.map +1 -1
  271. package/dist/fields/Upload/Input.js +10 -8
  272. package/dist/fields/Upload/Input.js.map +1 -1
  273. package/dist/fields/Upload/index.d.ts.map +1 -1
  274. package/dist/fields/Upload/index.js +6 -2
  275. package/dist/fields/Upload/index.js.map +1 -1
  276. package/dist/fields/shared/index.d.ts +1 -2
  277. package/dist/fields/shared/index.d.ts.map +1 -1
  278. package/dist/fields/shared/index.js.map +1 -1
  279. package/dist/forms/FieldDescription/index.d.ts +1 -2
  280. package/dist/forms/FieldDescription/index.d.ts.map +1 -1
  281. package/dist/forms/FieldDescription/index.js.map +1 -1
  282. package/dist/forms/FieldError/index.js +1 -1
  283. package/dist/forms/FieldError/index.js.map +1 -1
  284. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  285. package/dist/forms/FieldLabel/index.js +4 -4
  286. package/dist/forms/FieldLabel/index.js.map +1 -1
  287. package/dist/forms/FieldLabel/index.scss +1 -1
  288. package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
  289. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  290. package/dist/forms/FieldPropsProvider/index.js +5 -1
  291. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  292. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  293. package/dist/forms/Form/fieldReducer.js +6 -8
  294. package/dist/forms/Form/fieldReducer.js.map +1 -1
  295. package/dist/forms/Form/index.d.ts.map +1 -1
  296. package/dist/forms/Form/index.js +37 -20
  297. package/dist/forms/Form/index.js.map +1 -1
  298. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  299. package/dist/forms/Form/initContextState.js +1 -0
  300. package/dist/forms/Form/initContextState.js.map +1 -1
  301. package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
  302. package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
  303. package/dist/forms/Form/mergeErrorPaths.js +29 -0
  304. package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
  305. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  306. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  307. package/dist/forms/Form/mergeServerFormState.js +36 -19
  308. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  309. package/dist/forms/Form/types.d.ts +8 -2
  310. package/dist/forms/Form/types.d.ts.map +1 -1
  311. package/dist/forms/Form/types.js.map +1 -1
  312. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  313. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  314. package/dist/forms/RenderFields/RenderField.js +12 -4
  315. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  316. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  317. package/dist/forms/RenderFields/index.js +3 -3
  318. package/dist/forms/RenderFields/index.js.map +1 -1
  319. package/dist/forms/RenderFields/types.d.ts +1 -0
  320. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  321. package/dist/forms/RenderFields/types.js.map +1 -1
  322. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
  323. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  324. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
  325. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  326. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
  327. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
  328. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
  329. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
  330. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
  331. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
  332. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
  333. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
  334. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
  335. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
  336. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
  337. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
  338. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  339. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  340. package/dist/forms/buildStateFromSchema/index.js +10 -2
  341. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  342. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  343. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  344. package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
  345. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  346. package/dist/forms/useField/index.d.ts.map +1 -1
  347. package/dist/forms/useField/index.js +32 -12
  348. package/dist/forms/useField/index.js.map +1 -1
  349. package/dist/forms/useField/types.d.ts +1 -0
  350. package/dist/forms/useField/types.d.ts.map +1 -1
  351. package/dist/forms/useField/types.js.map +1 -1
  352. package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
  353. package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
  354. package/dist/forms/withCondition/WatchCondition.js +10 -2
  355. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  356. package/dist/forms/withCondition/index.js +4 -2
  357. package/dist/forms/withCondition/index.js.map +1 -1
  358. package/dist/hooks/usePayloadAPI.js +1 -1
  359. package/dist/hooks/usePayloadAPI.js.map +1 -1
  360. package/dist/hooks/useUseAsTitle.d.ts +3 -2
  361. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  362. package/dist/hooks/useUseAsTitle.js +5 -6
  363. package/dist/hooks/useUseAsTitle.js.map +1 -1
  364. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  365. package/dist/providers/ClientFunction/index.js +27 -5
  366. package/dist/providers/ClientFunction/index.js.map +1 -1
  367. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
  368. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
  369. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
  370. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
  371. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
  372. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
  373. package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
  374. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
  375. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
  376. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
  377. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
  378. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
  379. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
  380. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
  381. package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
  382. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
  383. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
  384. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  385. package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
  386. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  387. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
  388. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  389. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  390. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  391. package/dist/providers/DocumentInfo/index.js +120 -96
  392. package/dist/providers/DocumentInfo/index.js.map +1 -1
  393. package/dist/providers/DocumentInfo/types.d.ts +12 -13
  394. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  395. package/dist/providers/DocumentInfo/types.js.map +1 -1
  396. package/dist/providers/EntityVisibility/index.d.ts +16 -0
  397. package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
  398. package/dist/providers/EntityVisibility/index.js +25 -0
  399. package/dist/providers/EntityVisibility/index.js.map +1 -0
  400. package/dist/providers/ListInfo/index.d.ts +0 -1
  401. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  402. package/dist/providers/ListInfo/index.js +2 -7
  403. package/dist/providers/ListInfo/index.js.map +1 -1
  404. package/dist/templates/Default/index.d.ts +2 -7
  405. package/dist/templates/Default/index.d.ts.map +1 -1
  406. package/dist/templates/Default/index.js +10 -12
  407. package/dist/templates/Default/index.js.map +1 -1
  408. package/dist/utilities/buildComponentMap.d.ts +1 -1
  409. package/dist/utilities/buildComponentMap.d.ts.map +1 -1
  410. package/dist/utilities/buildComponentMap.js +1 -1
  411. package/dist/utilities/buildComponentMap.js.map +1 -1
  412. package/dist/utilities/flattenFieldMap.d.ts +10 -0
  413. package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
  414. package/dist/utilities/flattenFieldMap.js +33 -0
  415. package/dist/utilities/flattenFieldMap.js.map +1 -0
  416. package/dist/utilities/getFormState.d.ts +2 -0
  417. package/dist/utilities/getFormState.d.ts.map +1 -1
  418. package/dist/utilities/getFormState.js +8 -3
  419. package/dist/utilities/getFormState.js.map +1 -1
  420. package/package.json +10 -4
  421. package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
  422. package/dist/elements/TableColumns/buildColumns.js.map +0 -1
  423. package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
  424. package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
  425. package/dist/elements/WhereBuilder/reducer.js +0 -78
  426. package/dist/elements/WhereBuilder/reducer.js.map +0 -1
  427. package/dist/forms/FieldDescription/types.d.ts +0 -8
  428. package/dist/forms/FieldDescription/types.d.ts.map +0 -1
  429. package/dist/forms/FieldDescription/types.js +0 -3
  430. package/dist/forms/FieldDescription/types.js.map +0 -1
  431. package/dist/hooks/useAdminThumbnail.d.ts +0 -3
  432. package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
  433. package/dist/hooks/useAdminThumbnail.js +0 -8
  434. package/dist/hooks/useAdminThumbnail.js.map +0 -1
  435. package/dist/hooks/useThumbnail.d.ts +0 -3
  436. package/dist/hooks/useThumbnail.d.ts.map +0 -1
  437. package/dist/hooks/useThumbnail.js +0 -45
  438. package/dist/hooks/useThumbnail.js.map +0 -1
  439. package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
  440. package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
  441. package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
  442. package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/forms/buildStateFromSchema/calculateDefaultValues/promise.ts"],"sourcesContent":["import type { Data } from 'payload/types'\n\nimport {\n type Field,\n type PayloadRequest,\n type TabAsField,\n fieldAffectsData,\n tabHasName,\n} from 'payload/types'\nimport { getDefaultValue } from 'payload/utilities'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n req: PayloadRequest\n siblingData: Data\n}\n\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n req,\n siblingData,\n}: Args<T>): Promise<void> => {\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale: req.locale,\n user: req.user,\n value: siblingData[field.name],\n })\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n req,\n siblingData: groupData,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n req,\n siblingData: row,\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row) => {\n const blockTypeToMatch = row.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n req,\n siblingData: row,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n req,\n siblingData,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n req,\n siblingData: tabSiblingData,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n req,\n siblingData,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["fieldAffectsData","tabHasName","getDefaultValue","iterateFields","defaultValuePromise","id","data","field","req","siblingData","name","defaultValue","locale","user","value","type","groupData","fields","rows","Array","isArray","promises","forEach","row","push","Promise","all","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabs","map","tab"],"mappings":"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"}
@@ -17,6 +17,7 @@ export type BuildFormStateArgs = {
17
17
  formState?: FormState;
18
18
  globalSlug?: string;
19
19
  id?: number | string;
20
+ locale?: string;
20
21
  operation?: 'create' | 'update';
21
22
  schemaPath: string;
22
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/buildStateFromSchema/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,KAAK,IAAI,WAAW,EACpB,SAAS,EACT,cAAc,EACf,MAAM,eAAe,CAAA;AAItB,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,CAAA;IACtC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,WAAW,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IACD,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAgB,IAAI,KAAG,QAAQ,SAAS,CAwBxE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/buildStateFromSchema/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,KAAK,IAAI,WAAW,EACpB,SAAS,EACT,cAAc,EACf,MAAM,eAAe,CAAA;AAKtB,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS,CAAA;IACtC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,WAAW,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IACD,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAgB,IAAI,KAAG,QAAQ,SAAS,CAgCxE,CAAA"}
@@ -1,12 +1,20 @@
1
+ import { calculateDefaultValues } from './calculateDefaultValues/index.js';
1
2
  import { iterateFields } from './iterateFields.js';
2
3
  export const buildStateFromSchema = async (args)=>{
3
4
  const { id, data: fullData = {}, fieldSchema, operation, preferences, req } = args;
4
5
  if (fieldSchema) {
5
6
  const state = {};
6
- await iterateFields({
7
+ const dataWithDefaultValues = await calculateDefaultValues({
7
8
  id,
8
9
  data: fullData,
9
- errorPaths: new Set(),
10
+ fields: fieldSchema,
11
+ req,
12
+ siblingData: fullData
13
+ });
14
+ await iterateFields({
15
+ id,
16
+ addErrorPathToParent: null,
17
+ data: dataWithDefaultValues,
10
18
  fields: fieldSchema,
11
19
  fullData,
12
20
  operation,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/buildStateFromSchema/index.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field as FieldSchema,\n FormState,\n PayloadRequest,\n} from 'payload/types'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args = {\n data?: Data\n fieldSchema: FieldSchema[] | undefined\n id?: number | string\n operation?: 'create' | 'update'\n preferences: {\n [key: string]: unknown\n }\n req: PayloadRequest\n siblingData?: Data\n}\n\nexport type BuildFormStateArgs = {\n collectionSlug?: string\n data?: Data\n docPreferences?: DocumentPreferences\n formState?: FormState\n globalSlug?: string\n id?: number | string\n operation?: 'create' | 'update'\n schemaPath: string\n}\n\nexport const buildStateFromSchema = async (args: Args): Promise<FormState> => {\n const { id, data: fullData = {}, fieldSchema, operation, preferences, req } = args\n\n if (fieldSchema) {\n const state: FormState = {}\n\n await iterateFields({\n id,\n data: fullData,\n errorPaths: new Set(),\n fields: fieldSchema,\n fullData,\n operation,\n parentPassesCondition: true,\n path: '',\n preferences,\n req,\n state,\n })\n\n return state\n }\n\n return {}\n}\n"],"names":["iterateFields","buildStateFromSchema","args","id","data","fullData","fieldSchema","operation","preferences","req","state","errorPaths","Set","fields","parentPassesCondition","path"],"mappings":"AAQA,SAASA,aAAa,QAAQ,qBAAoB;AAyBlD,OAAO,MAAMC,uBAAuB,OAAOC;IACzC,MAAM,EAAEC,EAAE,EAAEC,MAAMC,WAAW,CAAC,CAAC,EAAEC,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGP;IAE9E,IAAII,aAAa;QACf,MAAMI,QAAmB,CAAC;QAE1B,MAAMV,cAAc;YAClBG;YACAC,MAAMC;YACNM,YAAY,IAAIC;YAChBC,QAAQP;YACRD;YACAE;YACAO,uBAAuB;YACvBC,MAAM;YACNP;YACAC;YACAC;QACF;QAEA,OAAOA;IACT;IAEA,OAAO,CAAC;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/buildStateFromSchema/index.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field as FieldSchema,\n FormState,\n PayloadRequest,\n} from 'payload/types'\n\nimport { calculateDefaultValues } from './calculateDefaultValues/index.js'\nimport { iterateFields } from './iterateFields.js'\n\ntype Args = {\n data?: Data\n fieldSchema: FieldSchema[] | undefined\n id?: number | string\n operation?: 'create' | 'update'\n preferences: {\n [key: string]: unknown\n }\n req: PayloadRequest\n siblingData?: Data\n}\n\nexport type BuildFormStateArgs = {\n collectionSlug?: string\n data?: Data\n docPreferences?: DocumentPreferences\n formState?: FormState\n globalSlug?: string\n id?: number | string\n locale?: string\n operation?: 'create' | 'update'\n schemaPath: string\n}\n\nexport const buildStateFromSchema = async (args: Args): Promise<FormState> => {\n const { id, data: fullData = {}, fieldSchema, operation, preferences, req } = args\n\n if (fieldSchema) {\n const state: FormState = {}\n\n const dataWithDefaultValues = await calculateDefaultValues({\n id,\n data: fullData,\n fields: fieldSchema,\n req,\n siblingData: fullData,\n })\n\n await iterateFields({\n id,\n addErrorPathToParent: null,\n data: dataWithDefaultValues,\n fields: fieldSchema,\n fullData,\n operation,\n parentPassesCondition: true,\n path: '',\n preferences,\n req,\n state,\n })\n\n return state\n }\n\n return {}\n}\n"],"names":["calculateDefaultValues","iterateFields","buildStateFromSchema","args","id","data","fullData","fieldSchema","operation","preferences","req","state","dataWithDefaultValues","fields","siblingData","addErrorPathToParent","parentPassesCondition","path"],"mappings":"AAQA,SAASA,sBAAsB,QAAQ,oCAAmC;AAC1E,SAASC,aAAa,QAAQ,qBAAoB;AA0BlD,OAAO,MAAMC,uBAAuB,OAAOC;IACzC,MAAM,EAAEC,EAAE,EAAEC,MAAMC,WAAW,CAAC,CAAC,EAAEC,WAAW,EAAEC,SAAS,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGP;IAE9E,IAAII,aAAa;QACf,MAAMI,QAAmB,CAAC;QAE1B,MAAMC,wBAAwB,MAAMZ,uBAAuB;YACzDI;YACAC,MAAMC;YACNO,QAAQN;YACRG;YACAI,aAAaR;QACf;QAEA,MAAML,cAAc;YAClBG;YACAW,sBAAsB;YACtBV,MAAMO;YACNC,QAAQN;YACRD;YACAE;YACAQ,uBAAuB;YACvBC,MAAM;YACNR;YACAC;YACAC;QACF;QAEA,OAAOA;IACT;IAEA,OAAO,CAAC;AACV,EAAC"}
@@ -1,12 +1,12 @@
1
1
  import type { Data, Field as FieldSchema, FormState, PayloadRequest } from 'payload/types';
2
2
  import type { AddFieldStatePromiseArgs } from './addFieldStatePromise.js';
3
3
  type Args = {
4
+ addErrorPathToParent: (path: string) => void;
4
5
  /**
5
6
  * if any parents is localized, then the field is localized. @default false
6
7
  */
7
8
  anyParentLocalized?: boolean;
8
9
  data: Data;
9
- errorPaths: Set<string>;
10
10
  fields: FieldSchema[];
11
11
  filter?: (args: AddFieldStatePromiseArgs) => boolean;
12
12
  /**
@@ -49,6 +49,6 @@ type Args = {
49
49
  /**
50
50
  * Flattens the fields schema and fields data
51
51
  */
52
- export declare const iterateFields: ({ id, anyParentLocalized, data, errorPaths, fields, filter, forceFullValue, fullData, includeSchema, omitParents, operation, parentPassesCondition, path, preferences, req, skipConditionChecks, skipValidation, state, }: Args) => Promise<void>;
52
+ export declare const iterateFields: ({ id, addErrorPathToParent: addErrorPathToParentArg, anyParentLocalized, data, fields, filter, forceFullValue, fullData, includeSchema, omitParents, operation, parentPassesCondition, path, preferences, req, skipConditionChecks, skipValidation, state, }: Args) => Promise<void>;
53
53
  export {};
54
54
  //# sourceMappingURL=iterateFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../src/forms/buildStateFromSchema/iterateFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAIzE,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IACD,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,8NAmBvB,IAAI,KAAG,QAAQ,IAAI,CAwCrB,CAAA"}
1
+ {"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../src/forms/buildStateFromSchema/iterateFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAIzE,KAAK,IAAI,GAAG;IACV,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IACD,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,iQAmBvB,IAAI,KAAG,QAAQ,IAAI,CAyCrB,CAAA"}
@@ -2,9 +2,9 @@ import { fieldIsPresentationalOnly } from 'payload/types';
2
2
  import { addFieldStatePromise } from './addFieldStatePromise.js';
3
3
  /**
4
4
  * Flattens the fields schema and fields data
5
- */ export const iterateFields = async ({ id, anyParentLocalized = false, data, errorPaths, fields, filter, forceFullValue = false, fullData, includeSchema = false, omitParents = false, operation, parentPassesCondition = true, path = '', preferences, req, skipConditionChecks = false, skipValidation = false, state = {} })=>{
5
+ */ export const iterateFields = async ({ id, addErrorPathToParent: addErrorPathToParentArg, anyParentLocalized = false, data, fields, filter, forceFullValue = false, fullData, includeSchema = false, omitParents = false, operation, parentPassesCondition = true, path = '', preferences, req, skipConditionChecks = false, skipValidation = false, state = {} })=>{
6
6
  const promises = [];
7
- fields.forEach((field)=>{
7
+ fields.forEach((field, fieldIndex)=>{
8
8
  if (!fieldIsPresentationalOnly(field) && !field?.admin?.disabled) {
9
9
  let passesCondition = true;
10
10
  if (!skipConditionChecks) {
@@ -14,10 +14,11 @@ import { addFieldStatePromise } from './addFieldStatePromise.js';
14
14
  }
15
15
  promises.push(addFieldStatePromise({
16
16
  id,
17
+ addErrorPathToParent: addErrorPathToParentArg,
17
18
  anyParentLocalized,
18
19
  data,
19
- errorPaths,
20
20
  field,
21
+ fieldIndex,
21
22
  filter,
22
23
  forceFullValue,
23
24
  fullData,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/buildStateFromSchema/iterateFields.ts"],"sourcesContent":["import type { Data, Field as FieldSchema, FormState, PayloadRequest } from 'payload/types'\n\nimport { fieldIsPresentationalOnly } from 'payload/types'\n\nimport type { AddFieldStatePromiseArgs } from './addFieldStatePromise.js'\n\nimport { addFieldStatePromise } from './addFieldStatePromise.js'\n\ntype Args = {\n /**\n * if any parents is localized, then the field is localized. @default false\n */\n anyParentLocalized?: boolean\n data: Data\n errorPaths: Set<string>\n fields: FieldSchema[]\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id?: number | string\n /**\n * Whether the field schema should be included in the state. @default false\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n /**\n * operation is only needed for validation\n */\n operation: 'create' | 'update'\n parentPassesCondition?: boolean\n /**\n * The initial path of the field. @default ''\n */\n path?: string\n preferences?: {\n [key: string]: unknown\n }\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state?: FormState\n}\n\n/**\n * Flattens the fields schema and fields data\n */\nexport const iterateFields = async ({\n id,\n anyParentLocalized = false,\n data,\n errorPaths,\n fields,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n parentPassesCondition = true,\n path = '',\n preferences,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state = {},\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field) => {\n if (!fieldIsPresentationalOnly(field) && !field?.admin?.disabled) {\n let passesCondition = true\n if (!skipConditionChecks) {\n passesCondition = Boolean(\n (field?.admin?.condition\n ? Boolean(field.admin.condition(fullData || {}, data || {}, { user: req.user }))\n : true) && parentPassesCondition,\n )\n }\n\n promises.push(\n addFieldStatePromise({\n id,\n anyParentLocalized,\n data,\n errorPaths,\n field,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n }\n })\n\n await Promise.all(promises)\n}\n"],"names":["fieldIsPresentationalOnly","addFieldStatePromise","iterateFields","id","anyParentLocalized","data","errorPaths","fields","filter","forceFullValue","fullData","includeSchema","omitParents","operation","parentPassesCondition","path","preferences","req","skipConditionChecks","skipValidation","state","promises","forEach","field","admin","disabled","passesCondition","Boolean","condition","user","push","Promise","all"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ,gBAAe;AAIzD,SAASC,oBAAoB,QAAQ,4BAA2B;AAiDhE;;CAEC,GACD,OAAO,MAAMC,gBAAgB,OAAO,EAClCC,EAAE,EACFC,qBAAqB,KAAK,EAC1BC,IAAI,EACJC,UAAU,EACVC,MAAM,EACNC,MAAM,EACNC,iBAAiB,KAAK,EACtBC,QAAQ,EACRC,gBAAgB,KAAK,EACrBC,cAAc,KAAK,EACnBC,SAAS,EACTC,wBAAwB,IAAI,EAC5BC,OAAO,EAAE,EACTC,WAAW,EACXC,GAAG,EACHC,sBAAsB,KAAK,EAC3BC,iBAAiB,KAAK,EACtBC,QAAQ,CAAC,CAAC,EACL;IACL,MAAMC,WAAW,EAAE;IAEnBd,OAAOe,OAAO,CAAC,CAACC;QACd,IAAI,CAACvB,0BAA0BuB,UAAU,CAACA,OAAOC,OAAOC,UAAU;YAChE,IAAIC,kBAAkB;YACtB,IAAI,CAACR,qBAAqB;gBACxBQ,kBAAkBC,QAChB,AAACJ,CAAAA,OAAOC,OAAOI,YACXD,QAAQJ,MAAMC,KAAK,CAACI,SAAS,CAAClB,YAAY,CAAC,GAAGL,QAAQ,CAAC,GAAG;oBAAEwB,MAAMZ,IAAIY,IAAI;gBAAC,MAC3E,IAAG,KAAMf;YAEjB;YAEAO,SAASS,IAAI,CACX7B,qBAAqB;gBACnBE;gBACAC;gBACAC;gBACAC;gBACAiB;gBACAf;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAa;gBACAX;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;YACF;QAEJ;IACF;IAEA,MAAMW,QAAQC,GAAG,CAACX;AACpB,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/buildStateFromSchema/iterateFields.ts"],"sourcesContent":["import type { Data, Field as FieldSchema, FormState, PayloadRequest } from 'payload/types'\n\nimport { fieldIsPresentationalOnly } from 'payload/types'\n\nimport type { AddFieldStatePromiseArgs } from './addFieldStatePromise.js'\n\nimport { addFieldStatePromise } from './addFieldStatePromise.js'\n\ntype Args = {\n addErrorPathToParent: (path: string) => void\n /**\n * if any parents is localized, then the field is localized. @default false\n */\n anyParentLocalized?: boolean\n data: Data\n fields: FieldSchema[]\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id?: number | string\n /**\n * Whether the field schema should be included in the state. @default false\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n /**\n * operation is only needed for validation\n */\n operation: 'create' | 'update'\n parentPassesCondition?: boolean\n /**\n * The initial path of the field. @default ''\n */\n path?: string\n preferences?: {\n [key: string]: unknown\n }\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state?: FormState\n}\n\n/**\n * Flattens the fields schema and fields data\n */\nexport const iterateFields = async ({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n data,\n fields,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n parentPassesCondition = true,\n path = '',\n preferences,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state = {},\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field, fieldIndex) => {\n if (!fieldIsPresentationalOnly(field) && !field?.admin?.disabled) {\n let passesCondition = true\n if (!skipConditionChecks) {\n passesCondition = Boolean(\n (field?.admin?.condition\n ? Boolean(field.admin.condition(fullData || {}, data || {}, { user: req.user }))\n : true) && parentPassesCondition,\n )\n }\n\n promises.push(\n addFieldStatePromise({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized,\n data,\n field,\n fieldIndex,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n }\n })\n\n await Promise.all(promises)\n}\n"],"names":["fieldIsPresentationalOnly","addFieldStatePromise","iterateFields","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","data","fields","filter","forceFullValue","fullData","includeSchema","omitParents","operation","parentPassesCondition","path","preferences","req","skipConditionChecks","skipValidation","state","promises","forEach","field","fieldIndex","admin","disabled","passesCondition","Boolean","condition","user","push","Promise","all"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ,gBAAe;AAIzD,SAASC,oBAAoB,QAAQ,4BAA2B;AAiDhE;;CAEC,GACD,OAAO,MAAMC,gBAAgB,OAAO,EAClCC,EAAE,EACFC,sBAAsBC,uBAAuB,EAC7CC,qBAAqB,KAAK,EAC1BC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,iBAAiB,KAAK,EACtBC,QAAQ,EACRC,gBAAgB,KAAK,EACrBC,cAAc,KAAK,EACnBC,SAAS,EACTC,wBAAwB,IAAI,EAC5BC,OAAO,EAAE,EACTC,WAAW,EACXC,GAAG,EACHC,sBAAsB,KAAK,EAC3BC,iBAAiB,KAAK,EACtBC,QAAQ,CAAC,CAAC,EACL;IACL,MAAMC,WAAW,EAAE;IAEnBd,OAAOe,OAAO,CAAC,CAACC,OAAOC;QACrB,IAAI,CAACzB,0BAA0BwB,UAAU,CAACA,OAAOE,OAAOC,UAAU;YAChE,IAAIC,kBAAkB;YACtB,IAAI,CAACT,qBAAqB;gBACxBS,kBAAkBC,QAChB,AAACL,CAAAA,OAAOE,OAAOI,YACXD,QAAQL,MAAME,KAAK,CAACI,SAAS,CAACnB,YAAY,CAAC,GAAGJ,QAAQ,CAAC,GAAG;oBAAEwB,MAAMb,IAAIa,IAAI;gBAAC,MAC3E,IAAG,KAAMhB;YAEjB;YAEAO,SAASU,IAAI,CACX/B,qBAAqB;gBACnBE;gBACAC,sBAAsBC;gBACtBC;gBACAC;gBACAiB;gBACAC;gBACAhB;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAc;gBACAZ;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;YACF;QAEJ;IACF;IAEA,MAAMY,QAAQC,GAAG,CAACZ;AACpB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAWlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,eAAiB,OAAO,KAAG,UAAU,CAAC,CA6K1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAiBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,eAAiB,OAAO,KAAG,UAAU,CAAC,CAgM1D,CAAA"}
@@ -7,7 +7,7 @@ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
7
7
  import { useOperation } from '../../providers/Operation/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
9
  import { useFieldProps } from '../FieldPropsProvider/index.js';
10
- import { useForm, useFormFields, useFormProcessing, useFormSubmitted } from '../Form/context.js';
10
+ import { useForm, useFormFields, useFormModified, useFormProcessing, useFormSubmitted } from '../Form/context.js';
11
11
  /**
12
12
  * Get and set the value of a form field.
13
13
  *
@@ -15,7 +15,8 @@ import { useForm, useFormFields, useFormProcessing, useFormSubmitted } from '../
15
15
  */ export const useField = (options)=>{
16
16
  const { disableFormData = false, hasRows, validate } = options;
17
17
  const { path: pathFromContext, permissions, readOnly, schemaPath } = useFieldProps();
18
- const path = pathFromContext || options.path;
18
+ // Prioritize passed in path over context path. If the context path should be prioritized (which is the case for top-level useField calls in fields), it should be passed in as the options path.
19
+ const path = options.path || pathFromContext;
19
20
  const submitted = useFormSubmitted();
20
21
  const processing = useFormProcessing();
21
22
  const { user } = useAuth();
@@ -28,6 +29,7 @@ import { useForm, useFormFields, useFormProcessing, useFormSubmitted } from '../
28
29
  const { t } = useTranslation();
29
30
  const config = useConfig();
30
31
  const { getData, getDataByPath, getSiblingData, setModified } = useForm();
32
+ const modified = useFormModified();
31
33
  const filterOptions = field?.filterOptions;
32
34
  const value = field?.value;
33
35
  const initialValue = field?.initialValue;
@@ -38,32 +40,49 @@ import { useForm, useFormFields, useFormProcessing, useFormSubmitted } from '../
38
40
  // update field values from field component(s)
39
41
  const setValue = useCallback((e, disableModifyingForm = false)=>{
40
42
  const val = e && e.target ? e.target.value : e;
41
- if (!disableModifyingForm) {
42
- if (typeof setModified === 'function') {
43
- // Update modified state after field value comes back
44
- // to avoid cursor jump caused by state value / DOM mismatch
45
- setTimeout(()=>{
46
- setModified(true);
47
- }, 10);
48
- }
49
- }
50
43
  dispatchField({
51
44
  type: 'UPDATE',
52
45
  disableFormData: disableFormData || hasRows && val > 0,
53
46
  path,
54
47
  value: val
55
48
  });
49
+ if (!disableModifyingForm) {
50
+ if (typeof setModified === 'function') {
51
+ // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:
52
+ // 1. Text field: someone types in it in an unmodified form
53
+ // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!
54
+ // 3. Type something in text field
55
+ // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)
56
+ // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, "saved successfully" toast appears
57
+ // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way
58
+ // until a NEW change happens. Due to this, the "Leave without saving" modal appears even though it should not when leaving the page fast immediately after saving the document.
59
+ // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run
60
+ // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster
61
+ // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.
62
+ // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.
63
+ // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.
64
+ if (modified === false) {
65
+ // Update modified state after field value comes back
66
+ // to avoid cursor jump caused by state value / DOM mismatch
67
+ setTimeout(()=>{
68
+ setModified(true);
69
+ }, 10);
70
+ }
71
+ }
72
+ }
56
73
  }, [
57
74
  setModified,
58
75
  path,
59
76
  dispatchField,
60
77
  disableFormData,
61
- hasRows
78
+ hasRows,
79
+ modified
62
80
  ]);
63
81
  // Store result from hook as ref
64
82
  // to prevent unnecessary rerenders
65
83
  const result = useMemo(()=>({
66
84
  errorMessage: field?.errorMessage,
85
+ errorPaths: field?.errorPaths || [],
67
86
  filterOptions,
68
87
  formProcessing: processing,
69
88
  formSubmitted: submitted,
@@ -81,6 +100,7 @@ import { useForm, useFormFields, useFormProcessing, useFormSubmitted } from '../
81
100
  field?.errorMessage,
82
101
  field?.rows,
83
102
  field?.valid,
103
+ field?.errorPaths,
84
104
  processing,
85
105
  setValue,
86
106
  showError,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport useThrottledEffect from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport { useForm, useFormFields, useFormProcessing, useFormSubmitted } from '../Form/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/hooks#usefield\n */\nexport const useField = <T,>(options: Options): FieldType<T> => {\n const { disableFormData = false, hasRows, validate } = options\n\n const { path: pathFromContext, permissions, readOnly, schemaPath } = useFieldProps()\n\n const path = pathFromContext || options.path\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const { user } = useAuth()\n const { id } = useDocumentInfo()\n const operation = useOperation()\n\n const { dispatchField, field } = useFormFields(([fields, dispatch]) => ({\n dispatchField: dispatch,\n field: (fields && fields?.[path]) || null,\n }))\n\n const { t } = useTranslation()\n const config = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as T\n const initialValue = field?.initialValue as T\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n },\n [setModified, path, dispatchField, disableFormData, hasRows],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<T> = useMemo(\n () => ({\n errorMessage: field?.errorMessage,\n filterOptions,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n permissions,\n readOnly: readOnly || false,\n rows: field?.rows,\n schemaPath,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field?.errorMessage,\n field?.rows,\n field?.valid,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n schemaPath,\n readOnly,\n permissions,\n filterOptions,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined\n let valid: boolean | string = prevValid.current\n\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n config,\n data: getData(),\n operation,\n siblingData: getSiblingData(path),\n t,\n user,\n })\n : true\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current) {\n prevValid.current = valid\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n // validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n ],\n )\n\n return result\n}\n"],"names":["useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useFieldProps","useForm","useFormFields","useFormProcessing","useFormSubmitted","useField","options","disableFormData","hasRows","validate","path","pathFromContext","permissions","readOnly","schemaPath","submitted","processing","user","id","operation","dispatchField","field","fields","dispatch","t","config","getData","getDataByPath","getSiblingData","setModified","filterOptions","value","initialValue","valid","showError","prevValid","setValue","e","disableModifyingForm","val","target","setTimeout","type","result","errorMessage","formProcessing","formSubmitted","rows","validateField","valueToValidate","Array","isArray","current","isValid","data","siblingData","undefined","update"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport useThrottledEffect from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport {\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/hooks#usefield\n */\nexport const useField = <T,>(options: Options): FieldType<T> => {\n const { disableFormData = false, hasRows, validate } = options\n\n const { path: pathFromContext, permissions, readOnly, schemaPath } = useFieldProps()\n\n // Prioritize passed in path over context path. If the context path should be prioritized (which is the case for top-level useField calls in fields), it should be passed in as the options path.\n const path = options.path || pathFromContext\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const { user } = useAuth()\n const { id } = useDocumentInfo()\n const operation = useOperation()\n\n const { dispatchField, field } = useFormFields(([fields, dispatch]) => ({\n dispatchField: dispatch,\n field: (fields && fields?.[path]) || null,\n }))\n\n const { t } = useTranslation()\n const config = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as T\n const initialValue = field?.initialValue as T\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<T> = useMemo(\n () => ({\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n permissions,\n readOnly: readOnly || false,\n rows: field?.rows,\n schemaPath,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field?.errorMessage,\n field?.rows,\n field?.valid,\n field?.errorPaths,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n schemaPath,\n readOnly,\n permissions,\n filterOptions,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined\n let valid: boolean | string = prevValid.current\n\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n config,\n data: getData(),\n operation,\n siblingData: getSiblingData(path),\n t,\n user,\n })\n : true\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current) {\n prevValid.current = valid\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n // validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n ],\n )\n\n return result\n}\n"],"names":["useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useFieldProps","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useField","options","disableFormData","hasRows","validate","path","pathFromContext","permissions","readOnly","schemaPath","submitted","processing","user","id","operation","dispatchField","field","fields","dispatch","t","config","getData","getDataByPath","getSiblingData","setModified","modified","filterOptions","value","initialValue","valid","showError","prevValid","setValue","e","disableModifyingForm","val","target","type","setTimeout","result","errorMessage","errorPaths","formProcessing","formSubmitted","rows","validateField","valueToValidate","Array","isArray","current","isValid","data","siblingData","undefined","update"],"mappings":"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"}
@@ -10,6 +10,7 @@ export type Options = {
10
10
  };
11
11
  export type FieldType<T> = {
12
12
  errorMessage?: string;
13
+ errorPaths?: string[];
13
14
  filterOptions?: FilterOptionsResult;
14
15
  formProcessing: boolean;
15
16
  formSubmitted: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAE/F,MAAM,MAAM,OAAO,GAAG;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;QAEI;IACJ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAE/F,MAAM,MAAM,OAAO,GAAG;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;QAEI;IACJ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/useField/types.ts"],"sourcesContent":["import type { ClientValidate, FieldPermissions, FilterOptionsResult, Row } from 'payload/types'\n\nexport type Options = {\n disableFormData?: boolean\n hasRows?: boolean\n /**\n * If you do not provide a `path` or a `name`, this hook will look for one using the `useFieldPath` hook.\n **/\n path?: string\n validate?: ClientValidate\n}\n\nexport type FieldType<T> = {\n errorMessage?: string\n filterOptions?: FilterOptionsResult\n formProcessing: boolean\n formSubmitted: boolean\n initialValue?: T\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n rows?: Row[]\n schemaPath: string\n setValue: (val: unknown, disableModifyingForm?: boolean) => void\n showError: boolean\n valid?: boolean\n value: T\n}\n"],"names":[],"mappings":"AAYA,WAeC"}
1
+ {"version":3,"sources":["../../../src/forms/useField/types.ts"],"sourcesContent":["import type { ClientValidate, FieldPermissions, FilterOptionsResult, Row } from 'payload/types'\n\nexport type Options = {\n disableFormData?: boolean\n hasRows?: boolean\n /**\n * If you do not provide a `path` or a `name`, this hook will look for one using the `useFieldPath` hook.\n **/\n path?: string\n validate?: ClientValidate\n}\n\nexport type FieldType<T> = {\n errorMessage?: string\n errorPaths?: string[]\n filterOptions?: FilterOptionsResult\n formProcessing: boolean\n formSubmitted: boolean\n initialValue?: T\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n rows?: Row[]\n schemaPath: string\n setValue: (val: unknown, disableModifyingForm?: boolean) => void\n showError: boolean\n valid?: boolean\n value: T\n}\n"],"names":[],"mappings":"AAYA,WAgBC"}
@@ -1,7 +1,10 @@
1
+ import type { FieldTypes } from 'payload/config';
1
2
  import React from 'react';
2
3
  export declare const WatchCondition: React.FC<{
3
4
  children: React.ReactNode;
5
+ indexPath: string;
4
6
  name?: string;
5
7
  path?: string;
8
+ type: keyof FieldTypes;
6
9
  }>;
7
10
  //# sourceMappingURL=WatchCondition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WatchCondition.d.ts","sourceRoot":"","sources":["../../../src/forms/withCondition/WatchCondition.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAcA,CAAA"}
1
+ {"version":3,"file":"WatchCondition.d.ts","sourceRoot":"","sources":["../../../src/forms/withCondition/WatchCondition.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,UAAU,CAAA;CACvB,CAqBA,CAAA"}
@@ -3,9 +3,17 @@ import React from 'react';
3
3
  import { Fragment } from 'react';
4
4
  import { useFormFields } from '../Form/context.js';
5
5
  export const WatchCondition = (props)=>{
6
- const { name, children, path: pathFromProps } = props;
6
+ const { name, type, children, indexPath, path: pathFromProps } = props;
7
7
  const path = typeof pathFromProps === 'string' ? pathFromProps : name;
8
- const field = useFormFields(([fields])=>fields && fields?.[path] || null);
8
+ let formStateID = path;
9
+ if ([
10
+ 'collapsible',
11
+ 'row'
12
+ ].includes(type)) {
13
+ const index = indexPath.split('.').pop();
14
+ formStateID = `${path ? `${path}.` : ''}_index-${index}`;
15
+ }
16
+ const field = useFormFields(([fields])=>fields && fields?.[formStateID] || null);
9
17
  const { passesCondition } = field || {};
10
18
  if (passesCondition === false) {
11
19
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/withCondition/WatchCondition.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { Fragment } from 'react'\n\nimport { useFormFields } from '../Form/context.js'\n\nexport const WatchCondition: React.FC<{\n children: React.ReactNode\n name?: string\n path?: string\n}> = (props) => {\n const { name, children, path: pathFromProps } = props\n\n const path = typeof pathFromProps === 'string' ? pathFromProps : name\n\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { passesCondition } = field || {}\n\n if (passesCondition === false) {\n return null\n }\n\n return <Fragment>{children}</Fragment>\n}\n"],"names":["React","Fragment","useFormFields","WatchCondition","props","name","children","path","pathFromProps","field","fields","passesCondition"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AACzB,SAASC,QAAQ,QAAQ,QAAO;AAEhC,SAASC,aAAa,QAAQ,qBAAoB;AAElD,OAAO,MAAMC,iBAIR,CAACC;IACJ,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,MAAMC,aAAa,EAAE,GAAGJ;IAEhD,MAAMG,OAAO,OAAOC,kBAAkB,WAAWA,gBAAgBH;IAEjE,MAAMI,QAAQP,cAAc,CAAC,CAACQ,OAAO,GAAK,AAACA,UAAUA,QAAQ,CAACH,KAAK,IAAK;IAExE,MAAM,EAAEI,eAAe,EAAE,GAAGF,SAAS,CAAC;IAEtC,IAAIE,oBAAoB,OAAO;QAC7B,OAAO;IACT;IAEA,qBAAO,oBAACV,gBAAUK;AACpB,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/withCondition/WatchCondition.tsx"],"sourcesContent":["'use client'\nimport type { FieldTypes } from 'payload/config'\n\nimport React from 'react'\nimport { Fragment } from 'react'\n\nimport { useFormFields } from '../Form/context.js'\n\nexport const WatchCondition: React.FC<{\n children: React.ReactNode\n indexPath: string\n name?: string\n path?: string\n type: keyof FieldTypes\n}> = (props) => {\n const { name, type, children, indexPath, path: pathFromProps } = props\n\n const path = typeof pathFromProps === 'string' ? pathFromProps : name\n\n let formStateID = path\n\n if (['collapsible', 'row'].includes(type)) {\n const index = indexPath.split('.').pop()\n formStateID = `${path ? `${path}.` : ''}_index-${index}`\n }\n\n const field = useFormFields(([fields]) => (fields && fields?.[formStateID]) || null)\n\n const { passesCondition } = field || {}\n\n if (passesCondition === false) {\n return null\n }\n\n return <Fragment>{children}</Fragment>\n}\n"],"names":["React","Fragment","useFormFields","WatchCondition","props","name","type","children","indexPath","path","pathFromProps","formStateID","includes","index","split","pop","field","fields","passesCondition"],"mappings":"AAAA;AAGA,OAAOA,WAAW,QAAO;AACzB,SAASC,QAAQ,QAAQ,QAAO;AAEhC,SAASC,aAAa,QAAQ,qBAAoB;AAElD,OAAO,MAAMC,iBAMR,CAACC;IACJ,MAAM,EAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,MAAMC,aAAa,EAAE,GAAGN;IAEjE,MAAMK,OAAO,OAAOC,kBAAkB,WAAWA,gBAAgBL;IAEjE,IAAIM,cAAcF;IAElB,IAAI;QAAC;QAAe;KAAM,CAACG,QAAQ,CAACN,OAAO;QACzC,MAAMO,QAAQL,UAAUM,KAAK,CAAC,KAAKC,GAAG;QACtCJ,cAAc,CAAC,EAAEF,OAAO,CAAC,EAAEA,KAAK,CAAC,CAAC,GAAG,GAAG,OAAO,EAAEI,MAAM,CAAC;IAC1D;IAEA,MAAMG,QAAQd,cAAc,CAAC,CAACe,OAAO,GAAK,AAACA,UAAUA,QAAQ,CAACN,YAAY,IAAK;IAE/E,MAAM,EAAEO,eAAe,EAAE,GAAGF,SAAS,CAAC;IAEtC,IAAIE,oBAAoB,OAAO;QAC7B,OAAO;IACT;IAEA,qBAAO,oBAACjB,gBAAUM;AACpB,EAAC"}
@@ -5,11 +5,13 @@ import { WatchCondition } from './WatchCondition.js';
5
5
  export const withCondition = (Field)=>{
6
6
  const CheckForCondition = (props)=>{
7
7
  const { name } = props;
8
- const { path: pathFromContext } = useFieldProps();
8
+ const { type, indexPath, path: pathFromContext } = useFieldProps();
9
9
  const path = pathFromContext || name;
10
10
  return /*#__PURE__*/ React.createElement(WatchCondition, {
11
+ indexPath: indexPath,
11
12
  name: name,
12
- path: path
13
+ path: path,
14
+ type: type
13
15
  }, /*#__PURE__*/ React.createElement(Field, props));
14
16
  };
15
17
  return CheckForCondition;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/withCondition/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport { WatchCondition } from './WatchCondition.js'\n\nexport const withCondition = <P extends Record<string, unknown>>(\n Field: React.ComponentType<P>,\n): React.FC<P> => {\n const CheckForCondition: React.FC<P> = (props) => {\n const { name } = props\n const { path: pathFromContext } = useFieldProps()\n const path = pathFromContext || name\n\n return (\n <WatchCondition name={name as string} path={path as string}>\n <Field {...props} />\n </WatchCondition>\n )\n }\n\n return CheckForCondition\n}\n"],"names":["React","useFieldProps","WatchCondition","withCondition","Field","CheckForCondition","props","name","path","pathFromContext"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,MAAMC,gBAAgB,CAC3BC;IAEA,MAAMC,oBAAiC,CAACC;QACtC,MAAM,EAAEC,IAAI,EAAE,GAAGD;QACjB,MAAM,EAAEE,MAAMC,eAAe,EAAE,GAAGR;QAClC,MAAMO,OAAOC,mBAAmBF;QAEhC,qBACE,oBAACL;YAAeK,MAAMA;YAAgBC,MAAMA;yBAC1C,oBAACJ,OAAUE;IAGjB;IAEA,OAAOD;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/withCondition/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport { WatchCondition } from './WatchCondition.js'\n\nexport const withCondition = <P extends Record<string, unknown>>(\n Field: React.ComponentType<P>,\n): React.FC<P> => {\n const CheckForCondition: React.FC<P> = (props) => {\n const { name } = props\n const { type, indexPath, path: pathFromContext } = useFieldProps()\n const path = pathFromContext || name\n\n return (\n <WatchCondition indexPath={indexPath} name={name as string} path={path as string} type={type}>\n <Field {...props} />\n </WatchCondition>\n )\n }\n\n return CheckForCondition\n}\n"],"names":["React","useFieldProps","WatchCondition","withCondition","Field","CheckForCondition","props","name","type","indexPath","path","pathFromContext"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,MAAMC,gBAAgB,CAC3BC;IAEA,MAAMC,oBAAiC,CAACC;QACtC,MAAM,EAAEC,IAAI,EAAE,GAAGD;QACjB,MAAM,EAAEE,IAAI,EAAEC,SAAS,EAAEC,MAAMC,eAAe,EAAE,GAAGV;QACnD,MAAMS,OAAOC,mBAAmBJ;QAEhC,qBACE,oBAACL;YAAeO,WAAWA;YAAWF,MAAMA;YAAgBG,MAAMA;YAAgBF,MAAMA;yBACtF,oBAACJ,OAAUE;IAGjB;IAEA,OAAOD;AACT,EAAC"}
@@ -7,7 +7,7 @@ import { requests } from '../utilities/api.js';
7
7
  const usePayloadAPI = (url, options = {})=>{
8
8
  const { initialData, initialParams = {} } = options;
9
9
  const { i18n } = useTranslation();
10
- const [data, setData] = useState(initialData);
10
+ const [data, setData] = useState(initialData || {});
11
11
  const [params, setParams] = useState(initialParams);
12
12
  const [isLoading, setIsLoading] = useState(!initialData);
13
13
  const [isError, setIsError] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport queryString from 'qs'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nconst usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData)\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const { code: locale } = useLocale()\n const hasInitialized = useRef(false)\n\n const search = queryString.stringify(\n {\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n abortController.abort()\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n\nexport default usePayloadAPI\n"],"names":["queryString","useEffect","useRef","useState","useLocale","useTranslation","requests","usePayloadAPI","url","options","initialData","initialParams","i18n","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","code","locale","hasInitialized","search","stringify","addQueryPrefix","current","abortController","AbortController","fetchData","response","get","headers","language","signal","status","json","error","aborted","abort"],"mappings":"AAAA;AACA,OAAOA,iBAAiB,KAAI;AAC5B,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAEnD,SAASC,SAAS,QAAQ,+BAA8B;AACxD,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,QAAQ,QAAQ,sBAAqB;AAoB9C,MAAMC,gBAA+B,CAACC,KAAKC,UAAU,CAAC,CAAC;IACrD,MAAM,EAAEC,WAAW,EAAEC,gBAAgB,CAAC,CAAC,EAAE,GAAGF;IAE5C,MAAM,EAAEG,IAAI,EAAE,GAAGP;IACjB,MAAM,CAACQ,MAAMC,QAAQ,GAAGX,SAASO;IACjC,MAAM,CAACK,QAAQC,UAAU,GAAGb,SAASQ;IACrC,MAAM,CAACM,WAAWC,aAAa,GAAGf,SAAS,CAACO;IAC5C,MAAM,CAACS,SAASC,WAAW,GAAGjB,SAAS;IACvC,MAAM,EAAEkB,MAAMC,MAAM,EAAE,GAAGlB;IACzB,MAAMmB,iBAAiBrB,OAAO;IAE9B,MAAMsB,SAASxB,YAAYyB,SAAS,CAClC;QACEH;QACA,GAAI,OAAOP,WAAW,WAAWA,SAAS,CAAC,CAAC;IAC9C,GACA;QACEW,gBAAgB;IAClB;IAGF,8CAA8C;IAC9CzB,UAAU;QACR,IAAIS,eAAe,CAACa,eAAeI,OAAO,EAAE;YAC1CJ,eAAeI,OAAO,GAAG;YACzB;QACF;QAEA,MAAMC,kBAAkB,IAAIC;QAE5B,MAAMC,YAAY;YAChBV,WAAW;YACXF,aAAa;YAEb,IAAI;gBACF,MAAMa,WAAW,MAAMzB,SAAS0B,GAAG,CAAC,CAAC,EAAExB,IAAI,EAAEgB,OAAO,CAAC,EAAE;oBACrDS,SAAS;wBACP,mBAAmBrB,KAAKsB,QAAQ;oBAClC;oBACAC,QAAQP,gBAAgBO,MAAM;gBAChC;gBAEA,IAAIJ,SAASK,MAAM,GAAG,KAAK;oBACzBhB,WAAW;gBACb;gBAEA,MAAMiB,OAAO,MAAMN,SAASM,IAAI;gBAChCvB,QAAQuB;gBACRnB,aAAa;YACf,EAAE,OAAOoB,OAAO;gBACd,IAAI,CAACV,gBAAgBO,MAAM,CAACI,OAAO,EAAE;oBACnCnB,WAAW;oBACXF,aAAa;gBACf;YACF;QACF;QAEA,IAAIV,KAAK;YACP,KAAKsB;QACP,OAAO;YACLV,WAAW;YACXF,aAAa;QACf;QAEA,OAAO;YACLU,gBAAgBY,KAAK;QACvB;IACF,GAAG;QAAChC;QAAKc;QAAQE;QAAQZ,KAAKsB,QAAQ;QAAExB;KAAY;IAEpD,4CAA4C;IAC5CT,UAAU;QACR,IAAIS,eAAea,eAAeI,OAAO,EAAE;YACzCb,QAAQJ;QACV;IACF,GAAG;QAACA;KAAY;IAEhB,OAAO;QAAC;YAAEG;YAAMM;YAASF;QAAU;QAAG;YAAED;QAAU;KAAE;AACtD;AAEA,eAAeT,cAAa"}
1
+ {"version":3,"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport queryString from 'qs'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nconst usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const { code: locale } = useLocale()\n const hasInitialized = useRef(false)\n\n const search = queryString.stringify(\n {\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n abortController.abort()\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n\nexport default usePayloadAPI\n"],"names":["queryString","useEffect","useRef","useState","useLocale","useTranslation","requests","usePayloadAPI","url","options","initialData","initialParams","i18n","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","code","locale","hasInitialized","search","stringify","addQueryPrefix","current","abortController","AbortController","fetchData","response","get","headers","language","signal","status","json","error","aborted","abort"],"mappings":"AAAA;AACA,OAAOA,iBAAiB,KAAI;AAC5B,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAEnD,SAASC,SAAS,QAAQ,+BAA8B;AACxD,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,QAAQ,QAAQ,sBAAqB;AAoB9C,MAAMC,gBAA+B,CAACC,KAAKC,UAAU,CAAC,CAAC;IACrD,MAAM,EAAEC,WAAW,EAAEC,gBAAgB,CAAC,CAAC,EAAE,GAAGF;IAE5C,MAAM,EAAEG,IAAI,EAAE,GAAGP;IACjB,MAAM,CAACQ,MAAMC,QAAQ,GAAGX,SAASO,eAAe,CAAC;IACjD,MAAM,CAACK,QAAQC,UAAU,GAAGb,SAASQ;IACrC,MAAM,CAACM,WAAWC,aAAa,GAAGf,SAAS,CAACO;IAC5C,MAAM,CAACS,SAASC,WAAW,GAAGjB,SAAS;IACvC,MAAM,EAAEkB,MAAMC,MAAM,EAAE,GAAGlB;IACzB,MAAMmB,iBAAiBrB,OAAO;IAE9B,MAAMsB,SAASxB,YAAYyB,SAAS,CAClC;QACEH;QACA,GAAI,OAAOP,WAAW,WAAWA,SAAS,CAAC,CAAC;IAC9C,GACA;QACEW,gBAAgB;IAClB;IAGF,8CAA8C;IAC9CzB,UAAU;QACR,IAAIS,eAAe,CAACa,eAAeI,OAAO,EAAE;YAC1CJ,eAAeI,OAAO,GAAG;YACzB;QACF;QAEA,MAAMC,kBAAkB,IAAIC;QAE5B,MAAMC,YAAY;YAChBV,WAAW;YACXF,aAAa;YAEb,IAAI;gBACF,MAAMa,WAAW,MAAMzB,SAAS0B,GAAG,CAAC,CAAC,EAAExB,IAAI,EAAEgB,OAAO,CAAC,EAAE;oBACrDS,SAAS;wBACP,mBAAmBrB,KAAKsB,QAAQ;oBAClC;oBACAC,QAAQP,gBAAgBO,MAAM;gBAChC;gBAEA,IAAIJ,SAASK,MAAM,GAAG,KAAK;oBACzBhB,WAAW;gBACb;gBAEA,MAAMiB,OAAO,MAAMN,SAASM,IAAI;gBAChCvB,QAAQuB;gBACRnB,aAAa;YACf,EAAE,OAAOoB,OAAO;gBACd,IAAI,CAACV,gBAAgBO,MAAM,CAACI,OAAO,EAAE;oBACnCnB,WAAW;oBACXF,aAAa;gBACf;YACF;QACF;QAEA,IAAIV,KAAK;YACP,KAAKsB;QACP,OAAO;YACLV,WAAW;YACXF,aAAa;QACf;QAEA,OAAO;YACLU,gBAAgBY,KAAK;QACvB;IACF,GAAG;QAAChC;QAAKc;QAAQE;QAAQZ,KAAKsB,QAAQ;QAAExB;KAAY;IAEpD,4CAA4C;IAC5CT,UAAU;QACR,IAAIS,eAAea,eAAeI,OAAO,EAAE;YACzCb,QAAQJ;QACV;IACF,GAAG;QAACA;KAAY;IAEhB,OAAO;QAAC;YAAEG;YAAMM;YAASF;QAAU;QAAG;YAAED;QAAU;KAAE;AACtD;AAEA,eAAeT,cAAa"}
@@ -1,3 +1,4 @@
1
- import type { ClientCollectionConfig, FieldAffectingData } from 'payload/types';
2
- export declare const useUseTitleField: (collection: ClientCollectionConfig) => FieldAffectingData;
1
+ import type { ClientCollectionConfig } from 'payload/types';
2
+ import type { FieldMap, MappedField } from '../utilities/buildComponentMap.js';
3
+ export declare const useUseTitleField: (collection: ClientCollectionConfig, fieldMap: FieldMap) => MappedField;
3
4
  //# sourceMappingURL=useUseAsTitle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUseAsTitle.d.ts","sourceRoot":"","sources":["../../src/hooks/useUseAsTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAK/E,eAAO,MAAM,gBAAgB,eAAgB,sBAAsB,KAAG,kBAUrE,CAAA"}
1
+ {"version":3,"file":"useUseAsTitle.d.ts","sourceRoot":"","sources":["../../src/hooks/useUseAsTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAsB,MAAM,eAAe,CAAA;AAE/E,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAI9E,eAAO,MAAM,gBAAgB,eACf,sBAAsB,yBAEjC,WAOF,CAAA"}
@@ -1,9 +1,8 @@
1
- import { fieldAffectsData } from 'payload/types';
2
- import { flattenTopLevelFields } from 'payload/utilities';
3
- export const useUseTitleField = (collection)=>{
4
- const { admin: { useAsTitle }, fields } = collection;
5
- const topLevelFields = flattenTopLevelFields(fields);
6
- return topLevelFields.find((field)=>fieldAffectsData(field) && field.name === useAsTitle);
1
+ import { flattenFieldMap } from '../utilities/flattenFieldMap.js';
2
+ export const useUseTitleField = (collection, fieldMap)=>{
3
+ const { admin: { useAsTitle } } = collection;
4
+ const topLevelFields = flattenFieldMap(fieldMap);
5
+ return topLevelFields.find((field)=>field.name === useAsTitle);
7
6
  };
8
7
 
9
8
  //# sourceMappingURL=useUseAsTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useUseAsTitle.ts"],"sourcesContent":["import type { ClientCollectionConfig, FieldAffectingData } from 'payload/types'\n\nimport { fieldAffectsData } from 'payload/types'\nimport { flattenTopLevelFields } from 'payload/utilities'\n\nexport const useUseTitleField = (collection: ClientCollectionConfig): FieldAffectingData => {\n const {\n admin: { useAsTitle },\n fields,\n } = collection\n\n const topLevelFields = flattenTopLevelFields(fields)\n return topLevelFields.find(\n (field) => fieldAffectsData(field) && field.name === useAsTitle,\n ) as FieldAffectingData\n}\n"],"names":["fieldAffectsData","flattenTopLevelFields","useUseTitleField","collection","admin","useAsTitle","fields","topLevelFields","find","field","name"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,gBAAe;AAChD,SAASC,qBAAqB,QAAQ,oBAAmB;AAEzD,OAAO,MAAMC,mBAAmB,CAACC;IAC/B,MAAM,EACJC,OAAO,EAAEC,UAAU,EAAE,EACrBC,MAAM,EACP,GAAGH;IAEJ,MAAMI,iBAAiBN,sBAAsBK;IAC7C,OAAOC,eAAeC,IAAI,CACxB,CAACC,QAAUT,iBAAiBS,UAAUA,MAAMC,IAAI,KAAKL;AAEzD,EAAC"}
1
+ {"version":3,"sources":["../../src/hooks/useUseAsTitle.ts"],"sourcesContent":["import type { ClientCollectionConfig, FieldAffectingData } from 'payload/types'\n\nimport type { FieldMap, MappedField } from '../utilities/buildComponentMap.js'\n\nimport { flattenFieldMap } from '../utilities/flattenFieldMap.js'\n\nexport const useUseTitleField = (\n collection: ClientCollectionConfig,\n fieldMap: FieldMap,\n): MappedField => {\n const {\n admin: { useAsTitle },\n } = collection\n\n const topLevelFields = flattenFieldMap(fieldMap)\n return topLevelFields.find((field) => field.name === useAsTitle)\n}\n"],"names":["flattenFieldMap","useUseTitleField","collection","fieldMap","admin","useAsTitle","topLevelFields","find","field","name"],"mappings":"AAIA,SAASA,eAAe,QAAQ,kCAAiC;AAEjE,OAAO,MAAMC,mBAAmB,CAC9BC,YACAC;IAEA,MAAM,EACJC,OAAO,EAAEC,UAAU,EAAE,EACtB,GAAGH;IAEJ,MAAMI,iBAAiBN,gBAAgBG;IACvC,OAAOG,eAAeC,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAKJ;AACvD,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ClientFunction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,KAAK,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAOrD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAkB1E,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAS,MAAM,QAAQ,GAAG,SAS1D,CAAA;AAED,eAAO,MAAM,kBAAkB,kCAE9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ClientFunction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,KAAK,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAUrD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA+B1E,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAS,MAAM,QAAQ,GAAG,SAgB1D,CAAA;AAED,eAAO,MAAM,kBAAkB,kCAE9B,CAAA"}
@@ -1,6 +1,9 @@
1
1
  'use client';
2
2
  import React from 'react';
3
- const AddClientFunctionContext = /*#__PURE__*/ React.createContext(()=>null);
3
+ const ModifyClientFunctionContext = /*#__PURE__*/ React.createContext({
4
+ addClientFunction: ()=>null,
5
+ removeClientFunction: ()=>null
6
+ });
4
7
  const ClientFunctionsContext = /*#__PURE__*/ React.createContext({});
5
8
  export const ClientFunctionProvider = ({ children })=>{
6
9
  const [clientFunctions, setClientFunctions] = React.useState({});
@@ -13,23 +16,42 @@ export const ClientFunctionProvider = ({ children })=>{
13
16
  return newState;
14
17
  });
15
18
  }, []);
16
- return /*#__PURE__*/ React.createElement(AddClientFunctionContext.Provider, {
17
- value: addClientFunction
19
+ const removeClientFunction = React.useCallback((args)=>{
20
+ setClientFunctions((state)=>{
21
+ const newState = {
22
+ ...state
23
+ };
24
+ delete newState[args.key];
25
+ return newState;
26
+ });
27
+ }, []);
28
+ return /*#__PURE__*/ React.createElement(ModifyClientFunctionContext.Provider, {
29
+ value: {
30
+ addClientFunction,
31
+ removeClientFunction
32
+ }
18
33
  }, /*#__PURE__*/ React.createElement(ClientFunctionsContext.Provider, {
19
34
  value: clientFunctions
20
35
  }, children));
21
36
  };
22
37
  export const useAddClientFunction = (key, func)=>{
23
- const addClientFunction = React.useContext(AddClientFunctionContext);
38
+ const { addClientFunction, removeClientFunction } = React.useContext(ModifyClientFunctionContext);
24
39
  React.useEffect(()=>{
25
40
  addClientFunction({
26
41
  func,
27
42
  key
28
43
  });
44
+ return ()=>{
45
+ removeClientFunction({
46
+ func,
47
+ key
48
+ });
49
+ };
29
50
  }, [
30
51
  func,
31
52
  key,
32
- addClientFunction
53
+ addClientFunction,
54
+ removeClientFunction
33
55
  ]);
34
56
  };
35
57
  export const useClientFunctions = ()=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/ClientFunction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\ntype AddClientFunctionContextType = (func: any) => void\ntype ClientFunctionsContextType = Record<string, any>\n\nconst AddClientFunctionContext = React.createContext<AddClientFunctionContextType>(() => null)\nconst ClientFunctionsContext = React.createContext<ClientFunctionsContextType>({})\n\ntype AddFunctionArgs = { func: any; key: string }\n\nexport const ClientFunctionProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [clientFunctions, setClientFunctions] = React.useState({})\n\n const addClientFunction = React.useCallback((args: AddFunctionArgs) => {\n setClientFunctions((state) => {\n const newState = { ...state }\n newState[args.key] = args.func\n return newState\n })\n }, [])\n\n return (\n <AddClientFunctionContext.Provider value={addClientFunction}>\n <ClientFunctionsContext.Provider value={clientFunctions}>\n {children}\n </ClientFunctionsContext.Provider>\n </AddClientFunctionContext.Provider>\n )\n}\n\nexport const useAddClientFunction = (key: string, func: any) => {\n const addClientFunction = React.useContext(AddClientFunctionContext)\n\n React.useEffect(() => {\n addClientFunction({\n func,\n key,\n })\n }, [func, key, addClientFunction])\n}\n\nexport const useClientFunctions = () => {\n return React.useContext(ClientFunctionsContext)\n}\n"],"names":["React","AddClientFunctionContext","createContext","ClientFunctionsContext","ClientFunctionProvider","children","clientFunctions","setClientFunctions","useState","addClientFunction","useCallback","args","state","newState","key","func","Provider","value","useAddClientFunction","useContext","useEffect","useClientFunctions"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AAKzB,MAAMC,yCAA2BD,MAAME,aAAa,CAA+B,IAAM;AACzF,MAAMC,uCAAyBH,MAAME,aAAa,CAA6B,CAAC;AAIhF,OAAO,MAAME,yBAAkE,CAAC,EAAEC,QAAQ,EAAE;IAC1F,MAAM,CAACC,iBAAiBC,mBAAmB,GAAGP,MAAMQ,QAAQ,CAAC,CAAC;IAE9D,MAAMC,oBAAoBT,MAAMU,WAAW,CAAC,CAACC;QAC3CJ,mBAAmB,CAACK;YAClB,MAAMC,WAAW;gBAAE,GAAGD,KAAK;YAAC;YAC5BC,QAAQ,CAACF,KAAKG,GAAG,CAAC,GAAGH,KAAKI,IAAI;YAC9B,OAAOF;QACT;IACF,GAAG,EAAE;IAEL,qBACE,oBAACZ,yBAAyBe,QAAQ;QAACC,OAAOR;qBACxC,oBAACN,uBAAuBa,QAAQ;QAACC,OAAOX;OACrCD;AAIT,EAAC;AAED,OAAO,MAAMa,uBAAuB,CAACJ,KAAaC;IAChD,MAAMN,oBAAoBT,MAAMmB,UAAU,CAAClB;IAE3CD,MAAMoB,SAAS,CAAC;QACdX,kBAAkB;YAChBM;YACAD;QACF;IACF,GAAG;QAACC;QAAMD;QAAKL;KAAkB;AACnC,EAAC;AAED,OAAO,MAAMY,qBAAqB;IAChC,OAAOrB,MAAMmB,UAAU,CAAChB;AAC1B,EAAC"}
1
+ {"version":3,"sources":["../../../src/providers/ClientFunction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\ntype ModifyClientFunctionContextType = {\n addClientFunction: (args: ModifyFunctionArgs) => void\n removeClientFunction: (args: ModifyFunctionArgs) => void\n}\ntype ClientFunctionsContextType = Record<string, any>\n\nconst ModifyClientFunctionContext = React.createContext<ModifyClientFunctionContextType>({\n addClientFunction: () => null,\n removeClientFunction: () => null,\n})\nconst ClientFunctionsContext = React.createContext<ClientFunctionsContextType>({})\n\ntype ModifyFunctionArgs = { func: any; key: string }\n\nexport const ClientFunctionProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [clientFunctions, setClientFunctions] = React.useState({})\n\n const addClientFunction = React.useCallback((args: ModifyFunctionArgs) => {\n setClientFunctions((state) => {\n const newState = { ...state }\n newState[args.key] = args.func\n return newState\n })\n }, [])\n\n const removeClientFunction = React.useCallback((args: ModifyFunctionArgs) => {\n setClientFunctions((state) => {\n const newState = { ...state }\n delete newState[args.key]\n return newState\n })\n }, [])\n\n return (\n <ModifyClientFunctionContext.Provider\n value={{\n addClientFunction,\n removeClientFunction,\n }}\n >\n <ClientFunctionsContext.Provider value={clientFunctions}>\n {children}\n </ClientFunctionsContext.Provider>\n </ModifyClientFunctionContext.Provider>\n )\n}\n\nexport const useAddClientFunction = (key: string, func: any) => {\n const { addClientFunction, removeClientFunction } = React.useContext(ModifyClientFunctionContext)\n\n React.useEffect(() => {\n addClientFunction({\n func,\n key,\n })\n\n return () => {\n removeClientFunction({\n func,\n key,\n })\n }\n }, [func, key, addClientFunction, removeClientFunction])\n}\n\nexport const useClientFunctions = () => {\n return React.useContext(ClientFunctionsContext)\n}\n"],"names":["React","ModifyClientFunctionContext","createContext","addClientFunction","removeClientFunction","ClientFunctionsContext","ClientFunctionProvider","children","clientFunctions","setClientFunctions","useState","useCallback","args","state","newState","key","func","Provider","value","useAddClientFunction","useContext","useEffect","useClientFunctions"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AAQzB,MAAMC,4CAA8BD,MAAME,aAAa,CAAkC;IACvFC,mBAAmB,IAAM;IACzBC,sBAAsB,IAAM;AAC9B;AACA,MAAMC,uCAAyBL,MAAME,aAAa,CAA6B,CAAC;AAIhF,OAAO,MAAMI,yBAAkE,CAAC,EAAEC,QAAQ,EAAE;IAC1F,MAAM,CAACC,iBAAiBC,mBAAmB,GAAGT,MAAMU,QAAQ,CAAC,CAAC;IAE9D,MAAMP,oBAAoBH,MAAMW,WAAW,CAAC,CAACC;QAC3CH,mBAAmB,CAACI;YAClB,MAAMC,WAAW;gBAAE,GAAGD,KAAK;YAAC;YAC5BC,QAAQ,CAACF,KAAKG,GAAG,CAAC,GAAGH,KAAKI,IAAI;YAC9B,OAAOF;QACT;IACF,GAAG,EAAE;IAEL,MAAMV,uBAAuBJ,MAAMW,WAAW,CAAC,CAACC;QAC9CH,mBAAmB,CAACI;YAClB,MAAMC,WAAW;gBAAE,GAAGD,KAAK;YAAC;YAC5B,OAAOC,QAAQ,CAACF,KAAKG,GAAG,CAAC;YACzB,OAAOD;QACT;IACF,GAAG,EAAE;IAEL,qBACE,oBAACb,4BAA4BgB,QAAQ;QACnCC,OAAO;YACLf;YACAC;QACF;qBAEA,oBAACC,uBAAuBY,QAAQ;QAACC,OAAOV;OACrCD;AAIT,EAAC;AAED,OAAO,MAAMY,uBAAuB,CAACJ,KAAaC;IAChD,MAAM,EAAEb,iBAAiB,EAAEC,oBAAoB,EAAE,GAAGJ,MAAMoB,UAAU,CAACnB;IAErED,MAAMqB,SAAS,CAAC;QACdlB,kBAAkB;YAChBa;YACAD;QACF;QAEA,OAAO;YACLX,qBAAqB;gBACnBY;gBACAD;YACF;QACF;IACF,GAAG;QAACC;QAAMD;QAAKZ;QAAmBC;KAAqB;AACzD,EAAC;AAED,OAAO,MAAMkB,qBAAqB;IAChC,OAAOtB,MAAMoB,UAAU,CAACf;AAC1B,EAAC"}
@@ -4,4 +4,4 @@ export declare const mapActions: (args: {
4
4
  collectionConfig?: SanitizedCollectionConfig;
5
5
  globalConfig?: SanitizedGlobalConfig;
6
6
  }) => ActionMap;
7
- //# sourceMappingURL=mapActions.d.ts.map
7
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAIrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,eAAO,MAAM,UAAU,SAAU;IAC/B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;CACrC,KAAG,SAuCH,CAAA"}