@payloadcms/ui 3.29.0-internal.d2c9ba5 → 3.29.0-internal.e4e913b

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 (356) hide show
  1. package/dist/elements/Autosave/index.js +1 -1
  2. package/dist/elements/Autosave/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +143 -127
  5. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  8. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
  11. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.js +3 -3
  13. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  15. package/dist/elements/BulkUpload/index.js +2 -4
  16. package/dist/elements/BulkUpload/index.js.map +1 -1
  17. package/dist/elements/Collapsible/provider.d.ts.map +1 -1
  18. package/dist/elements/Collapsible/provider.js +3 -5
  19. package/dist/elements/Collapsible/provider.js.map +1 -1
  20. package/dist/elements/DocumentControls/index.js +1 -1
  21. package/dist/elements/DocumentControls/index.js.map +1 -1
  22. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  23. package/dist/elements/DocumentDrawer/Provider.js +3 -3
  24. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  25. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentFields/index.js +1 -5
  27. package/dist/elements/DocumentFields/index.js.map +1 -1
  28. package/dist/elements/Drawer/index.d.ts.map +1 -1
  29. package/dist/elements/Drawer/index.js +3 -5
  30. package/dist/elements/Drawer/index.js.map +1 -1
  31. package/dist/elements/EditMany/DrawerContent.d.ts +3 -1
  32. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  33. package/dist/elements/EditMany/DrawerContent.js +122 -124
  34. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  35. package/dist/elements/EditMany/index.js +7 -7
  36. package/dist/elements/EditMany/index.js.map +1 -1
  37. package/dist/elements/EditMany/index.scss +14 -3
  38. package/dist/elements/FieldSelect/index.d.ts +12 -7
  39. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  40. package/dist/elements/FieldSelect/index.js +34 -131
  41. package/dist/elements/FieldSelect/index.js.map +1 -1
  42. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +19 -0
  43. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -0
  44. package/dist/elements/FieldSelect/reduceFieldOptions.js +57 -0
  45. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -0
  46. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  47. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +2 -1
  48. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  49. package/dist/elements/ListDrawer/Provider.js +3 -3
  50. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  51. package/dist/elements/LoadingOverlay/index.js +3 -3
  52. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  53. package/dist/elements/Nav/context.d.ts.map +1 -1
  54. package/dist/elements/Nav/context.js +2 -4
  55. package/dist/elements/Nav/context.js.map +1 -1
  56. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +2 -1
  57. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  58. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +5 -2
  59. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  60. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  61. package/dist/elements/PublishButton/ScheduleDrawer/index.js +3 -3
  62. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  63. package/dist/elements/StepNav/context.d.ts.map +1 -1
  64. package/dist/elements/StepNav/context.js +3 -5
  65. package/dist/elements/StepNav/context.js.map +1 -1
  66. package/dist/elements/Table/DefaultCell/fields/Date/index.js +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/File/index.js +24 -1
  70. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  71. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
  72. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  73. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  74. package/dist/elements/Table/DefaultCell/index.js +32 -25
  75. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  76. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  77. package/dist/elements/Table/RelationshipProvider/index.js +3 -5
  78. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  79. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  80. package/dist/elements/TableColumns/RenderDefaultCell/index.js +2 -4
  81. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  82. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  83. package/dist/elements/TableColumns/buildColumnState.js +8 -1
  84. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  85. package/dist/elements/TableColumns/context.d.ts.map +1 -1
  86. package/dist/elements/TableColumns/context.js +2 -2
  87. package/dist/elements/TableColumns/context.js.map +1 -1
  88. package/dist/elements/TableColumns/index.js +1 -1
  89. package/dist/elements/TableColumns/index.js.map +1 -1
  90. package/dist/elements/Thumbnail/index.js +25 -23
  91. package/dist/elements/Thumbnail/index.js.map +1 -1
  92. package/dist/elements/ThumbnailCard/index.js +1 -1
  93. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  94. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  95. package/dist/elements/Toasts/fieldErrors.js +2 -2
  96. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  97. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  98. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +3 -0
  99. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  100. package/dist/elements/WhereBuilder/reduceFields.js +2 -2
  101. package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
  102. package/dist/exports/client/{CodeEditor-TQ5ADFPC.js → CodeEditor-J4IKAVAK.js} +2 -2
  103. package/dist/exports/client/{DatePicker-HHQ6TPOW.js → DatePicker-DMHV2M2L.js} +2 -2
  104. package/dist/exports/client/{chunk-IMEQ6NKQ.js → chunk-3AA2TJQ5.js} +2 -2
  105. package/dist/exports/client/{chunk-IMEQ6NKQ.js.map → chunk-3AA2TJQ5.js.map} +3 -3
  106. package/dist/exports/client/{chunk-LMYT7O7U.js → chunk-PKQOCWZD.js} +2 -2
  107. package/dist/exports/client/{chunk-LMYT7O7U.js.map → chunk-PKQOCWZD.js.map} +3 -3
  108. package/dist/exports/client/index.js +11 -11
  109. package/dist/exports/client/index.js.map +4 -4
  110. package/dist/exports/shared/index.d.ts +2 -2
  111. package/dist/exports/shared/index.d.ts.map +1 -1
  112. package/dist/exports/shared/index.js +2 -2
  113. package/dist/exports/shared/index.js.map +4 -4
  114. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  115. package/dist/fields/Array/ArrayRow.js +1 -1
  116. package/dist/fields/Array/ArrayRow.js.map +1 -1
  117. package/dist/fields/Array/index.d.ts.map +1 -1
  118. package/dist/fields/Array/index.js +4 -3
  119. package/dist/fields/Array/index.js.map +1 -1
  120. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  121. package/dist/fields/Blocks/BlockRow.js +26 -20
  122. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  123. package/dist/fields/Blocks/index.d.ts.map +1 -1
  124. package/dist/fields/Blocks/index.js +5 -4
  125. package/dist/fields/Blocks/index.js.map +1 -1
  126. package/dist/fields/Checkbox/index.d.ts +1 -1
  127. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  128. package/dist/fields/Checkbox/index.js +4 -3
  129. package/dist/fields/Checkbox/index.js.map +1 -1
  130. package/dist/fields/Code/index.d.ts.map +1 -1
  131. package/dist/fields/Code/index.js +4 -3
  132. package/dist/fields/Code/index.js.map +1 -1
  133. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  134. package/dist/fields/Collapsible/index.js +3 -2
  135. package/dist/fields/Collapsible/index.js.map +1 -1
  136. package/dist/fields/ConfirmPassword/index.js +13 -11
  137. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  138. package/dist/fields/DateTime/index.d.ts.map +1 -1
  139. package/dist/fields/DateTime/index.js +5 -4
  140. package/dist/fields/DateTime/index.js.map +1 -1
  141. package/dist/fields/Email/index.d.ts.map +1 -1
  142. package/dist/fields/Email/index.js +3 -2
  143. package/dist/fields/Email/index.js.map +1 -1
  144. package/dist/fields/Group/index.d.ts.map +1 -1
  145. package/dist/fields/Group/index.js.map +1 -1
  146. package/dist/fields/Group/index.scss +12 -6
  147. package/dist/fields/Group/provider.d.ts.map +1 -1
  148. package/dist/fields/Group/provider.js +3 -5
  149. package/dist/fields/Group/provider.js.map +1 -1
  150. package/dist/fields/JSON/index.d.ts.map +1 -1
  151. package/dist/fields/JSON/index.js +5 -4
  152. package/dist/fields/JSON/index.js.map +1 -1
  153. package/dist/fields/Number/index.d.ts.map +1 -1
  154. package/dist/fields/Number/index.js +6 -5
  155. package/dist/fields/Number/index.js.map +1 -1
  156. package/dist/fields/Password/index.d.ts.map +1 -1
  157. package/dist/fields/Password/index.js +2 -4
  158. package/dist/fields/Password/index.js.map +1 -1
  159. package/dist/fields/Point/index.d.ts.map +1 -1
  160. package/dist/fields/Point/index.js +4 -3
  161. package/dist/fields/Point/index.js.map +1 -1
  162. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  163. package/dist/fields/RadioGroup/index.js +4 -3
  164. package/dist/fields/RadioGroup/index.js.map +1 -1
  165. package/dist/fields/Relationship/index.d.ts.map +1 -1
  166. package/dist/fields/Relationship/index.js +5 -4
  167. package/dist/fields/Relationship/index.js.map +1 -1
  168. package/dist/fields/Relationship/optionsReducer.js +1 -1
  169. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  170. package/dist/fields/Row/provider.d.ts.map +1 -1
  171. package/dist/fields/Row/provider.js +3 -5
  172. package/dist/fields/Row/provider.js.map +1 -1
  173. package/dist/fields/Select/index.d.ts.map +1 -1
  174. package/dist/fields/Select/index.js +4 -3
  175. package/dist/fields/Select/index.js.map +1 -1
  176. package/dist/fields/Tabs/Tab/index.d.ts +1 -0
  177. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  178. package/dist/fields/Tabs/Tab/index.js +29 -25
  179. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  180. package/dist/fields/Tabs/Tab/index.scss +4 -0
  181. package/dist/fields/Tabs/index.d.ts +1 -1
  182. package/dist/fields/Tabs/index.d.ts.map +1 -1
  183. package/dist/fields/Tabs/index.js +285 -194
  184. package/dist/fields/Tabs/index.js.map +1 -1
  185. package/dist/fields/Tabs/index.scss +8 -0
  186. package/dist/fields/Tabs/provider.d.ts.map +1 -1
  187. package/dist/fields/Tabs/provider.js +3 -5
  188. package/dist/fields/Tabs/provider.js.map +1 -1
  189. package/dist/fields/Text/index.d.ts.map +1 -1
  190. package/dist/fields/Text/index.js +4 -3
  191. package/dist/fields/Text/index.js.map +1 -1
  192. package/dist/fields/Textarea/index.d.ts.map +1 -1
  193. package/dist/fields/Textarea/index.js +2 -1
  194. package/dist/fields/Textarea/index.js.map +1 -1
  195. package/dist/fields/Upload/index.d.ts.map +1 -1
  196. package/dist/fields/Upload/index.js +2 -1
  197. package/dist/fields/Upload/index.js.map +1 -1
  198. package/dist/forms/Form/context.d.ts.map +1 -1
  199. package/dist/forms/Form/context.js +9 -25
  200. package/dist/forms/Form/context.js.map +1 -1
  201. package/dist/forms/Form/fieldReducer.js +1 -1
  202. package/dist/forms/Form/fieldReducer.js.map +1 -1
  203. package/dist/forms/Form/index.d.ts.map +1 -1
  204. package/dist/forms/Form/index.js +8 -8
  205. package/dist/forms/Form/index.js.map +1 -1
  206. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  207. package/dist/forms/RenderFields/index.js +1 -1
  208. package/dist/forms/RenderFields/index.js.map +1 -1
  209. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  210. package/dist/forms/RowLabel/Context/index.js +2 -2
  211. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  212. package/dist/forms/RowLabel/index.d.ts.map +1 -1
  213. package/dist/forms/RowLabel/index.js +2 -2
  214. package/dist/forms/RowLabel/index.js.map +1 -1
  215. package/dist/forms/RowLabel/types.d.ts +1 -1
  216. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  217. package/dist/forms/RowLabel/types.js.map +1 -1
  218. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +3 -1
  219. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  220. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +45 -1
  221. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  222. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +4 -2
  223. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  224. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +4 -0
  225. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  226. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +4 -2
  227. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  228. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +4 -0
  229. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  230. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +4 -2
  231. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  232. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +41 -2
  233. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  234. package/dist/forms/fieldSchemasToFormState/index.d.ts +4 -2
  235. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  236. package/dist/forms/fieldSchemasToFormState/index.js +6 -0
  237. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  238. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +4 -2
  239. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  240. package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
  241. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  242. package/dist/forms/useField/index.d.ts.map +1 -1
  243. package/dist/forms/useField/index.js +70 -67
  244. package/dist/forms/useField/index.js.map +1 -1
  245. package/dist/forms/useField/types.d.ts +1 -0
  246. package/dist/forms/useField/types.d.ts.map +1 -1
  247. package/dist/forms/useField/types.js.map +1 -1
  248. package/dist/hooks/useQueues.js +3 -3
  249. package/dist/hooks/useQueues.js.map +1 -1
  250. package/dist/providers/Actions/index.d.ts.map +1 -1
  251. package/dist/providers/Actions/index.js +3 -5
  252. package/dist/providers/Actions/index.js.map +1 -1
  253. package/dist/providers/Auth/index.d.ts.map +1 -1
  254. package/dist/providers/Auth/index.js +3 -5
  255. package/dist/providers/Auth/index.js.map +1 -1
  256. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  257. package/dist/providers/ClientFunction/index.js +4 -4
  258. package/dist/providers/ClientFunction/index.js.map +1 -1
  259. package/dist/providers/Config/index.d.ts.map +1 -1
  260. package/dist/providers/Config/index.js +3 -5
  261. package/dist/providers/Config/index.js.map +1 -1
  262. package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
  263. package/dist/providers/DocumentEvents/index.js +3 -5
  264. package/dist/providers/DocumentEvents/index.js.map +1 -1
  265. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  266. package/dist/providers/DocumentInfo/index.js +4 -6
  267. package/dist/providers/DocumentInfo/index.js.map +1 -1
  268. package/dist/providers/EditDepth/index.d.ts.map +1 -1
  269. package/dist/providers/EditDepth/index.js +3 -5
  270. package/dist/providers/EditDepth/index.js.map +1 -1
  271. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  272. package/dist/providers/EntityVisibility/index.js +3 -5
  273. package/dist/providers/EntityVisibility/index.js.map +1 -1
  274. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  275. package/dist/providers/ListQuery/context.js +2 -2
  276. package/dist/providers/ListQuery/context.js.map +1 -1
  277. package/dist/providers/ListQuery/index.js +1 -1
  278. package/dist/providers/ListQuery/index.js.map +1 -1
  279. package/dist/providers/Locale/index.d.ts.map +1 -1
  280. package/dist/providers/Locale/index.js +5 -9
  281. package/dist/providers/Locale/index.js.map +1 -1
  282. package/dist/providers/Operation/index.d.ts.map +1 -1
  283. package/dist/providers/Operation/index.js +3 -5
  284. package/dist/providers/Operation/index.js.map +1 -1
  285. package/dist/providers/Params/index.d.ts.map +1 -1
  286. package/dist/providers/Params/index.js +3 -5
  287. package/dist/providers/Params/index.js.map +1 -1
  288. package/dist/providers/Preferences/index.d.ts.map +1 -1
  289. package/dist/providers/Preferences/index.js +3 -5
  290. package/dist/providers/Preferences/index.js.map +1 -1
  291. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  292. package/dist/providers/RouteCache/index.js +3 -5
  293. package/dist/providers/RouteCache/index.js.map +1 -1
  294. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  295. package/dist/providers/RouteTransition/index.js +2 -4
  296. package/dist/providers/RouteTransition/index.js.map +1 -1
  297. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  298. package/dist/providers/SearchParams/index.js +3 -5
  299. package/dist/providers/SearchParams/index.js.map +1 -1
  300. package/dist/providers/Selection/index.d.ts.map +1 -1
  301. package/dist/providers/Selection/index.js +3 -5
  302. package/dist/providers/Selection/index.js.map +1 -1
  303. package/dist/providers/ServerFunctions/index.js +2 -2
  304. package/dist/providers/ServerFunctions/index.js.map +1 -1
  305. package/dist/providers/Theme/index.d.ts.map +1 -1
  306. package/dist/providers/Theme/index.js +3 -5
  307. package/dist/providers/Theme/index.js.map +1 -1
  308. package/dist/providers/Translation/index.d.ts.map +1 -1
  309. package/dist/providers/Translation/index.js +3 -5
  310. package/dist/providers/Translation/index.js.map +1 -1
  311. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  312. package/dist/providers/UploadEdits/index.js +2 -4
  313. package/dist/providers/UploadEdits/index.js.map +1 -1
  314. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  315. package/dist/providers/UploadHandlers/index.js +3 -3
  316. package/dist/providers/UploadHandlers/index.js.map +1 -1
  317. package/dist/styles.css +1 -1
  318. package/dist/utilities/buildFormState.d.ts.map +1 -1
  319. package/dist/utilities/buildFormState.js +5 -1
  320. package/dist/utilities/buildFormState.js.map +1 -1
  321. package/dist/utilities/combineFieldLabel.d.ts +7 -0
  322. package/dist/utilities/combineFieldLabel.d.ts.map +1 -0
  323. package/dist/utilities/combineFieldLabel.js +31 -0
  324. package/dist/utilities/combineFieldLabel.js.map +1 -0
  325. package/dist/utilities/{formatDate.d.ts → formatDocTitle/formatDateTitle.d.ts} +1 -1
  326. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -0
  327. package/dist/utilities/{formatDate.js → formatDocTitle/formatDateTitle.js} +1 -1
  328. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -0
  329. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts +19 -0
  330. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts.map +1 -0
  331. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +19 -0
  332. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -0
  333. package/dist/utilities/{formatDocTitle.d.ts → formatDocTitle/index.d.ts} +2 -2
  334. package/dist/utilities/formatDocTitle/index.d.ts.map +1 -0
  335. package/dist/utilities/{formatDocTitle.js → formatDocTitle/index.js} +11 -3
  336. package/dist/utilities/formatDocTitle/index.js.map +1 -0
  337. package/dist/utilities/getDisplayedFieldValue.d.ts +13 -0
  338. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -0
  339. package/dist/utilities/getDisplayedFieldValue.js +28 -0
  340. package/dist/utilities/getDisplayedFieldValue.js.map +1 -0
  341. package/dist/utilities/hasOptionLabelJSXElement.d.ts +3 -0
  342. package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +1 -0
  343. package/dist/utilities/hasOptionLabelJSXElement.js +15 -0
  344. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -0
  345. package/dist/views/Edit/SetDocumentTitle/index.js +1 -1
  346. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  347. package/dist/views/Edit/index.d.ts.map +1 -1
  348. package/dist/views/Edit/index.js +1 -1
  349. package/dist/views/Edit/index.js.map +1 -1
  350. package/package.json +4 -4
  351. package/dist/utilities/formatDate.d.ts.map +0 -1
  352. package/dist/utilities/formatDate.js.map +0 -1
  353. package/dist/utilities/formatDocTitle.d.ts.map +0 -1
  354. package/dist/utilities/formatDocTitle.js.map +0 -1
  355. /package/dist/exports/client/{CodeEditor-TQ5ADFPC.js.map → CodeEditor-J4IKAVAK.js.map} +0 -0
  356. /package/dist/exports/client/{DatePicker-HHQ6TPOW.js.map → DatePicker-DMHV2M2L.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAG5F,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAqCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAyvBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAqCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA0vBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -623,7 +623,7 @@ export const Form = props => {
623
623
  prevFields.current = fields;
624
624
  isFirstRenderRef.current = false;
625
625
  }, [modified, submitted, fields, queueTask], 250);
626
- const DocumentFormContextComponent = isDocumentForm ? DocumentFormContext.Provider : React.Fragment;
626
+ const DocumentFormContextComponent = isDocumentForm ? DocumentFormContext : React.Fragment;
627
627
  const documentFormContextProps = isDocumentForm ? {
628
628
  value: contextRef.current
629
629
  } : {};
@@ -637,22 +637,22 @@ export const Form = props => {
637
637
  ref: formRef,
638
638
  children: /*#__PURE__*/_jsx(DocumentFormContextComponent, {
639
639
  ...documentFormContextProps,
640
- children: /*#__PURE__*/_jsx(FormContext.Provider, {
640
+ children: /*#__PURE__*/_jsx(FormContext, {
641
641
  value: contextRef.current,
642
- children: /*#__PURE__*/_jsx(FormWatchContext.Provider, {
642
+ children: /*#__PURE__*/_jsx(FormWatchContext, {
643
643
  value: {
644
644
  fields,
645
645
  ...contextRef.current
646
646
  },
647
- children: /*#__PURE__*/_jsx(SubmittedContext.Provider, {
647
+ children: /*#__PURE__*/_jsx(SubmittedContext, {
648
648
  value: submitted,
649
- children: /*#__PURE__*/_jsx(InitializingContext.Provider, {
649
+ children: /*#__PURE__*/_jsx(InitializingContext, {
650
650
  value: !isMounted || isMounted && initializing,
651
- children: /*#__PURE__*/_jsx(ProcessingContext.Provider, {
651
+ children: /*#__PURE__*/_jsx(ProcessingContext, {
652
652
  value: processing,
653
- children: /*#__PURE__*/_jsx(BackgroundProcessingContext.Provider, {
653
+ children: /*#__PURE__*/_jsx(BackgroundProcessingContext, {
654
654
  value: backgroundProcessing,
655
- children: /*#__PURE__*/_jsx(ModifiedContext.Provider, {
655
+ children: /*#__PURE__*/_jsx(ModifiedContext, {
656
656
  value: modified,
657
657
  children: /*#__PURE__*/_jsx(FormFieldsContext.Provider, {
658
658
  value: fieldsReducer,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueues","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","fields","dispatchFields","current","prevFields","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","aborted","changed","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","El","noValidate","ref","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.js'\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 { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { queueTask } = useQueues()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const prevFields = useRef(fields)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={err.message || t('error:unknown')} />)\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n },\n [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean, signal: AbortSignal) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n if (signal.aborted) {\n return\n }\n\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed && !signal.aborted) {\n prevFields.current = newState\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(fields, prevFields.current)) && modified) {\n queueTask(async (signal) => executeOnChange(submitted, signal))\n }\n\n prevFields.current = fields\n isFirstRenderRef.current = false\n },\n [modified, submitted, fields, queueTask],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <BackgroundProcessingContext.Provider value={backgroundProcessing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </BackgroundProcessingContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueues","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","fields","dispatchFields","current","prevFields","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","aborted","changed","DocumentFormContextComponent","Fragment","documentFormContextProps","El","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.js'\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 { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { queueTask } = useQueues()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const prevFields = useRef(fields)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={err.message || t('error:unknown')} />)\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n },\n [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean, signal: AbortSignal) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n if (signal.aborted) {\n return\n }\n\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed && !signal.aborted) {\n prevFields.current = newState\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(fields, prevFields.current)) && modified) {\n queueTask(async (signal) => executeOnChange(submitted, signal))\n }\n\n prevFields.current = fields\n isFirstRenderRef.current = false\n },\n [modified, submitted, fields, queueTask],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/RenderFields/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,cAAc,CAAA;AAKrB,OAAO,EAAE,iBAAiB,IAAI,KAAK,EAAE,CAAA;AAErC,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgHpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/RenderFields/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,iBAAiB,IAAI,KAAK,EAAE,CAAA;AAErC,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgHpD,CAAA"}
@@ -6,8 +6,8 @@ import { fieldIsHiddenOrDisabled, getFieldPaths } from 'payload/shared';
6
6
  import React from 'react';
7
7
  import { RenderIfInViewport } from '../../elements/RenderIfInViewport/index.js';
8
8
  import { useOperation } from '../../providers/Operation/index.js';
9
- import './index.scss';
10
9
  import { RenderField } from './RenderField.js';
10
+ import './index.scss';
11
11
  const baseClass = 'render-fields';
12
12
  export const RenderFields = props => {
13
13
  const $ = _c(22);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","fieldIsHiddenOrDisabled","getFieldPaths","React","RenderIfInViewport","useOperation","RenderField","baseClass","RenderFields","props","$","className","fields","forceRender","margins","parentIndexPath","parentPath","parentSchemaPath","permissions","readOnly","readOnlyFromParent","operation","length","t0","t1","t2","filter","Boolean","t3","join","t4","t5","field","i","parentName","includes","split","hasReadPermission","read","name","isReadOnly","admin","hasOperationPermission","indexPath","path","schemaPath","index","_jsx","clientFieldConfig","undefined","children","map"],"sources":["../../../src/forms/RenderFields/index.tsx"],"sourcesContent":["'use client'\n\nimport { fieldIsHiddenOrDisabled, getFieldPaths } from 'payload/shared'\nimport React from 'react'\n\nimport type { RenderFieldsProps } from './types.js'\n\nimport { RenderIfInViewport } from '../../elements/RenderIfInViewport/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport './index.scss'\nimport { RenderField } from './RenderField.js'\n\nconst baseClass = 'render-fields'\n\nexport { RenderFieldsProps as Props }\n\nexport const RenderFields: React.FC<RenderFieldsProps> = (props) => {\n const {\n className,\n fields,\n forceRender,\n margins,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n permissions,\n readOnly: readOnlyFromParent,\n } = props\n\n const operation = useOperation()\n\n if (fields && fields.length > 0) {\n return (\n <RenderIfInViewport\n className={[\n baseClass,\n className,\n margins && `${baseClass}--margins-${margins}`,\n margins === false && `${baseClass}--margins-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n forceRender={forceRender}\n >\n {fields.map((field, i) => {\n // For sidebar fields in the main fields array, `field` will be `null`, and visa versa\n // This is to keep the order of the fields consistent and maintain the correct index paths for the main fields (i)\n if (!field || fieldIsHiddenOrDisabled(field)) {\n return null\n }\n\n const parentName = parentPath?.includes('.')\n ? parentPath.split('.')[parentPath.split('.').length - 1]\n : parentPath\n\n // If the user cannot read the field, then filter it out\n // This is different from `admin.readOnly` which is executed based on `operation`\n const hasReadPermission =\n permissions === true ||\n permissions?.read === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n ('read' in permissions[field.name] && permissions[field.name].read)))\n\n if ('name' in field && !hasReadPermission) {\n return null\n }\n\n // `admin.readOnly` displays the value but prevents the field from being edited\n let isReadOnly = readOnlyFromParent || field?.admin?.readOnly\n\n // If parent field is `readOnly: true`, but this field is `readOnly: false`, the field should still be editable\n if (isReadOnly && field.admin?.readOnly === false) {\n isReadOnly = false\n }\n\n // If the user does not have access control to begin with, force it to be read-only\n const hasOperationPermission =\n permissions === true ||\n permissions?.[operation] === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n (operation in permissions[field.name] && permissions[field.name][operation])))\n\n if ('name' in field && !hasOperationPermission) {\n isReadOnly = true\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: i,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n return (\n <RenderField\n clientFieldConfig={field}\n forceRender={forceRender}\n indexPath={indexPath}\n key={`${path}-${i}`}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n path={path}\n permissions={\n permissions === undefined || permissions === null || permissions === true\n ? true\n : 'name' in field\n ? permissions?.[field.name]\n : permissions\n }\n readOnly={isReadOnly}\n schemaPath={schemaPath}\n />\n )\n })}\n </RenderIfInViewport>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,uBAAuB,EAAEC,aAAa,QAAQ;AACvD,OAAOC,KAAA,MAAW;AAIlB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AACP,SAASC,WAAW,QAAQ;AAE5B,MAAMC,SAAA,GAAY;AAIlB,OAAO,MAAMC,YAAA,GAA4CC,KAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EACvD;IAAAW,SAAA;IAAAC,MAAA;IAAAC,WAAA;IAAAC,OAAA;IAAAC,eAAA;IAAAC,UAAA;IAAAC,gBAAA;IAAAC,WAAA;IAAAC,QAAA,EAAAC;EAAA,IAUIX,KAAA;EAEJ,MAAAY,SAAA,GAAkBhB,YAAA;EAAA,IAEdO,MAAA,IAAUA,MAAA,CAAAU,MAAA,IAAgB;IAMtB,MAAAC,EAAA,GAAAT,OAAA,IAAW,GAAAP,SAAA,aAAyBO,OAAA,EAAS;IAC7C,MAAAU,EAAA,GAAAV,OAAA,UAAY,IAAS,GAAAP,SAAA,gBAA4B;IAAA,IAAAkB,EAAA;IAAA,IAAAf,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAa,EAAA,IAAAb,CAAA,QAAAc,EAAA;MAJxCC,EAAA,IAAAlB,SAAA,EAETI,SAAA,EACAY,EAA6C,EAC7CC,EAAiD,EAAAE,MAAA,CAAAC,OAEzC;MAAAjB,CAAA,MAAAC,SAAA;MAAAD,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IANC,MAAAkB,EAAA,GAAAH,EAMD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAG,WAAA,IAAAH,CAAA,QAAAW,SAAA,IAAAX,CAAA,QAAAK,eAAA,IAAAL,CAAA,QAAAM,UAAA,IAAAN,CAAA,QAAAO,gBAAA,IAAAP,CAAA,SAAAQ,WAAA,IAAAR,CAAA,SAAAU,kBAAA,IAAAV,CAAA,SAAAkB,EAAA;MAAA,IAAAG,EAAA;MAAA,IAAArB,CAAA,SAAAG,WAAA,IAAAH,CAAA,SAAAW,SAAA,IAAAX,CAAA,SAAAK,eAAA,IAAAL,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAAO,gBAAA,IAAAP,CAAA,SAAAQ,WAAA,IAAAR,CAAA,SAAAU,kBAAA;QAGIW,EAAA,GAAAA,CAAAC,KAAA,EAAAC,CAAA;UAAA,IAGN,CAACD,KAAA,IAAS/B,uBAAA,CAAwB+B,KAAA;YAAA;UAAA;UAItC,MAAAE,UAAA,GAAmBlB,UAAA,EAAAmB,QAAA,CAAqB,OACpCnB,UAAA,CAAAoB,KAAA,CAAiB,IAAI,CAACpB,UAAA,CAAAoB,KAAA,CAAiB,KAAAd,MAAA,IAAc,IACrDN,UAAA;UAIJ,MAAAqB,iBAAA,GACEnB,WAAA,SAAgB,IAChBA,WAAA,EAAAoB,IAAA,SAAsB,IACtBpB,WAAA,GAAcgB,UAAA,UAAgB,IAC7B,UAAUF,KAAA,IACT,OAAOd,WAAA,KAAgB,YACvBA,WAAA,GAAcc,KAAA,CAAAO,IAAA,CAAW,KACxBrB,WAAW,CAACc,KAAA,CAAAO,IAAA,UAAgB,IAC1B,UAAUrB,WAAW,CAACc,KAAA,CAAAO,IAAA,CAAW,IAAIrB,WAAW,CAACc,KAAA,CAAAO,IAAA,EAAAD,IAAgB;UAAA,IAEpE,UAAUN,KAAA,KAAUK,iBAAA;YAAA;UAAA;UAKxB,IAAAG,UAAA,GAAiBpB,kBAAA,IAAsBY,KAAA,EAAAS,KAAA,EAAAtB,QAAc;UAAA,IAGjDqB,UAAA,IAAcR,KAAA,CAAAS,KAAA,EAAAtB,QAAA,UAA0B;YAC1CqB,UAAA,CAAAA,CAAA,CAAAA,KAAA;UAAA;UAIF,MAAAE,sBAAA,GACExB,WAAA,SAAgB,IAChBA,WAAA,GAAcG,SAAA,UAAe,IAC7BH,WAAA,GAAcgB,UAAA,UAAgB,IAC7B,UAAUF,KAAA,IACT,OAAOd,WAAA,KAAgB,YACvBA,WAAA,GAAcc,KAAA,CAAAO,IAAA,CAAW,KACxBrB,WAAW,CAACc,KAAA,CAAAO,IAAA,UAAgB,IAC1BlB,SAAA,IAAaH,WAAW,CAACc,KAAA,CAAAO,IAAA,CAAW,IAAIrB,WAAW,CAACc,KAAA,CAAAO,IAAA,EAAYlB,SAAA,CAAU;UAAA,IAE7E,UAAUW,KAAA,KAAUU,sBAAA;YACtBF,UAAA,CAAAA,CAAA,CAAAA,IAAA;UAAA;UAGF;YAAAG,SAAA;YAAAC,IAAA;YAAAC;UAAA,IAAwC3C,aAAA;YAAA8B,KAAA;YAAAc,KAAA,EAE/Bb,CAAA;YAAAlB,eAAA;YAAAC,UAAA;YAAAC;UAAA,CAIT;UAAA,OAGE8B,IAAA,CAAAzC,WAAA;YAAA0C,iBAAA,EACqBhB,KAAA;YAAAnB,WAAA;YAAA8B,SAAA;YAAA3B,UAAA;YAAAC,gBAAA;YAAA2B,IAAA;YAAA1B,WAAA,EAQjBA,WAAA,KAAA+B,SAAgB,IAAa/B,WAAA,SAAgB,IAAQA,WAAA,SAAgB,UAEjE,UAAUc,KAAA,GACRd,WAAA,GAAcc,KAAA,CAAAO,IAAA,IACdrB,WAAA;YAAAC,QAAA,EAEEqB,UAAA;YAAAK;UAAA,GAXL,GAAGD,IAAA,IAAQX,CAAA,EAAG;QAAA;QAezBvB,CAAA,OAAAG,WAAA;QAAAH,CAAA,OAAAW,SAAA;QAAAX,CAAA,OAAAK,eAAA;QAAAL,CAAA,OAAAM,UAAA;QAAAN,CAAA,OAAAO,gBAAA;QAAAP,CAAA,OAAAQ,WAAA;QAAAR,CAAA,OAAAU,kBAAA;QAAAV,CAAA,OAAAqB,EAAA;MAAA;QAAAA,EAAA,GAAArB,CAAA;MAAA;MAzFFoB,EAAA,GAAAiB,IAAA,CAAA3C,kBAAA;QAAAO,SAAA,EACaiB,EAOH;QAAAf,WAAA;QAAAqC,QAAA,EAGPtC,MAAA,CAAAuC,GAAA,CAAWpB,EA8EZ;MAAA,C;;;;;;;;;;;;;;WAzFFD,E;;;CA+FN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","fieldIsHiddenOrDisabled","getFieldPaths","React","RenderIfInViewport","useOperation","RenderField","baseClass","RenderFields","props","$","className","fields","forceRender","margins","parentIndexPath","parentPath","parentSchemaPath","permissions","readOnly","readOnlyFromParent","operation","length","t0","t1","t2","filter","Boolean","t3","join","t4","t5","field","i","parentName","includes","split","hasReadPermission","read","name","isReadOnly","admin","hasOperationPermission","indexPath","path","schemaPath","index","_jsx","clientFieldConfig","undefined","children","map"],"sources":["../../../src/forms/RenderFields/index.tsx"],"sourcesContent":["'use client'\n\nimport { fieldIsHiddenOrDisabled, getFieldPaths } from 'payload/shared'\nimport React from 'react'\n\nimport type { RenderFieldsProps } from './types.js'\n\nimport { RenderIfInViewport } from '../../elements/RenderIfInViewport/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { RenderField } from './RenderField.js'\nimport './index.scss'\n\nconst baseClass = 'render-fields'\n\nexport { RenderFieldsProps as Props }\n\nexport const RenderFields: React.FC<RenderFieldsProps> = (props) => {\n const {\n className,\n fields,\n forceRender,\n margins,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n permissions,\n readOnly: readOnlyFromParent,\n } = props\n\n const operation = useOperation()\n\n if (fields && fields.length > 0) {\n return (\n <RenderIfInViewport\n className={[\n baseClass,\n className,\n margins && `${baseClass}--margins-${margins}`,\n margins === false && `${baseClass}--margins-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n forceRender={forceRender}\n >\n {fields.map((field, i) => {\n // For sidebar fields in the main fields array, `field` will be `null`, and visa versa\n // This is to keep the order of the fields consistent and maintain the correct index paths for the main fields (i)\n if (!field || fieldIsHiddenOrDisabled(field)) {\n return null\n }\n\n const parentName = parentPath?.includes('.')\n ? parentPath.split('.')[parentPath.split('.').length - 1]\n : parentPath\n\n // If the user cannot read the field, then filter it out\n // This is different from `admin.readOnly` which is executed based on `operation`\n const hasReadPermission =\n permissions === true ||\n permissions?.read === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n ('read' in permissions[field.name] && permissions[field.name].read)))\n\n if ('name' in field && !hasReadPermission) {\n return null\n }\n\n // `admin.readOnly` displays the value but prevents the field from being edited\n let isReadOnly = readOnlyFromParent || field?.admin?.readOnly\n\n // If parent field is `readOnly: true`, but this field is `readOnly: false`, the field should still be editable\n if (isReadOnly && field.admin?.readOnly === false) {\n isReadOnly = false\n }\n\n // If the user does not have access control to begin with, force it to be read-only\n const hasOperationPermission =\n permissions === true ||\n permissions?.[operation] === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n (operation in permissions[field.name] && permissions[field.name][operation])))\n\n if ('name' in field && !hasOperationPermission) {\n isReadOnly = true\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: i,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n return (\n <RenderField\n clientFieldConfig={field}\n forceRender={forceRender}\n indexPath={indexPath}\n key={`${path}-${i}`}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n path={path}\n permissions={\n permissions === undefined || permissions === null || permissions === true\n ? true\n : 'name' in field\n ? permissions?.[field.name]\n : permissions\n }\n readOnly={isReadOnly}\n schemaPath={schemaPath}\n />\n )\n })}\n </RenderIfInViewport>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,uBAAuB,EAAEC,aAAa,QAAQ;AACvD,OAAOC,KAAA,MAAW;AAIlB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,YAAY,QAAQ;AAC7B,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAIlB,OAAO,MAAMC,YAAA,GAA4CC,KAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EACvD;IAAAW,SAAA;IAAAC,MAAA;IAAAC,WAAA;IAAAC,OAAA;IAAAC,eAAA;IAAAC,UAAA;IAAAC,gBAAA;IAAAC,WAAA;IAAAC,QAAA,EAAAC;EAAA,IAUIX,KAAA;EAEJ,MAAAY,SAAA,GAAkBhB,YAAA;EAAA,IAEdO,MAAA,IAAUA,MAAA,CAAAU,MAAA,IAAgB;IAMtB,MAAAC,EAAA,GAAAT,OAAA,IAAW,GAAAP,SAAA,aAAyBO,OAAA,EAAS;IAC7C,MAAAU,EAAA,GAAAV,OAAA,UAAY,IAAS,GAAAP,SAAA,gBAA4B;IAAA,IAAAkB,EAAA;IAAA,IAAAf,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAa,EAAA,IAAAb,CAAA,QAAAc,EAAA;MAJxCC,EAAA,IAAAlB,SAAA,EAETI,SAAA,EACAY,EAA6C,EAC7CC,EAAiD,EAAAE,MAAA,CAAAC,OAEzC;MAAAjB,CAAA,MAAAC,SAAA;MAAAD,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IANC,MAAAkB,EAAA,GAAAH,EAMD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAG,WAAA,IAAAH,CAAA,QAAAW,SAAA,IAAAX,CAAA,QAAAK,eAAA,IAAAL,CAAA,QAAAM,UAAA,IAAAN,CAAA,QAAAO,gBAAA,IAAAP,CAAA,SAAAQ,WAAA,IAAAR,CAAA,SAAAU,kBAAA,IAAAV,CAAA,SAAAkB,EAAA;MAAA,IAAAG,EAAA;MAAA,IAAArB,CAAA,SAAAG,WAAA,IAAAH,CAAA,SAAAW,SAAA,IAAAX,CAAA,SAAAK,eAAA,IAAAL,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAAO,gBAAA,IAAAP,CAAA,SAAAQ,WAAA,IAAAR,CAAA,SAAAU,kBAAA;QAGIW,EAAA,GAAAA,CAAAC,KAAA,EAAAC,CAAA;UAAA,IAGN,CAACD,KAAA,IAAS/B,uBAAA,CAAwB+B,KAAA;YAAA;UAAA;UAItC,MAAAE,UAAA,GAAmBlB,UAAA,EAAAmB,QAAA,CAAqB,OACpCnB,UAAA,CAAAoB,KAAA,CAAiB,IAAI,CAACpB,UAAA,CAAAoB,KAAA,CAAiB,KAAAd,MAAA,IAAc,IACrDN,UAAA;UAIJ,MAAAqB,iBAAA,GACEnB,WAAA,SAAgB,IAChBA,WAAA,EAAAoB,IAAA,SAAsB,IACtBpB,WAAA,GAAcgB,UAAA,UAAgB,IAC7B,UAAUF,KAAA,IACT,OAAOd,WAAA,KAAgB,YACvBA,WAAA,GAAcc,KAAA,CAAAO,IAAA,CAAW,KACxBrB,WAAW,CAACc,KAAA,CAAAO,IAAA,UAAgB,IAC1B,UAAUrB,WAAW,CAACc,KAAA,CAAAO,IAAA,CAAW,IAAIrB,WAAW,CAACc,KAAA,CAAAO,IAAA,EAAAD,IAAgB;UAAA,IAEpE,UAAUN,KAAA,KAAUK,iBAAA;YAAA;UAAA;UAKxB,IAAAG,UAAA,GAAiBpB,kBAAA,IAAsBY,KAAA,EAAAS,KAAA,EAAAtB,QAAc;UAAA,IAGjDqB,UAAA,IAAcR,KAAA,CAAAS,KAAA,EAAAtB,QAAA,UAA0B;YAC1CqB,UAAA,CAAAA,CAAA,CAAAA,KAAA;UAAA;UAIF,MAAAE,sBAAA,GACExB,WAAA,SAAgB,IAChBA,WAAA,GAAcG,SAAA,UAAe,IAC7BH,WAAA,GAAcgB,UAAA,UAAgB,IAC7B,UAAUF,KAAA,IACT,OAAOd,WAAA,KAAgB,YACvBA,WAAA,GAAcc,KAAA,CAAAO,IAAA,CAAW,KACxBrB,WAAW,CAACc,KAAA,CAAAO,IAAA,UAAgB,IAC1BlB,SAAA,IAAaH,WAAW,CAACc,KAAA,CAAAO,IAAA,CAAW,IAAIrB,WAAW,CAACc,KAAA,CAAAO,IAAA,EAAYlB,SAAA,CAAU;UAAA,IAE7E,UAAUW,KAAA,KAAUU,sBAAA;YACtBF,UAAA,CAAAA,CAAA,CAAAA,IAAA;UAAA;UAGF;YAAAG,SAAA;YAAAC,IAAA;YAAAC;UAAA,IAAwC3C,aAAA;YAAA8B,KAAA;YAAAc,KAAA,EAE/Bb,CAAA;YAAAlB,eAAA;YAAAC,UAAA;YAAAC;UAAA,CAIT;UAAA,OAGE8B,IAAA,CAAAzC,WAAA;YAAA0C,iBAAA,EACqBhB,KAAA;YAAAnB,WAAA;YAAA8B,SAAA;YAAA3B,UAAA;YAAAC,gBAAA;YAAA2B,IAAA;YAAA1B,WAAA,EAQjBA,WAAA,KAAA+B,SAAgB,IAAa/B,WAAA,SAAgB,IAAQA,WAAA,SAAgB,UAEjE,UAAUc,KAAA,GACRd,WAAA,GAAcc,KAAA,CAAAO,IAAA,IACdrB,WAAA;YAAAC,QAAA,EAEEqB,UAAA;YAAAK;UAAA,GAXL,GAAGD,IAAA,IAAQX,CAAA,EAAG;QAAA;QAezBvB,CAAA,OAAAG,WAAA;QAAAH,CAAA,OAAAW,SAAA;QAAAX,CAAA,OAAAK,eAAA;QAAAL,CAAA,OAAAM,UAAA;QAAAN,CAAA,OAAAO,gBAAA;QAAAP,CAAA,OAAAQ,WAAA;QAAAR,CAAA,OAAAU,kBAAA;QAAAV,CAAA,OAAAqB,EAAA;MAAA;QAAAA,EAAA,GAAArB,CAAA;MAAA;MAzFFoB,EAAA,GAAAiB,IAAA,CAAA3C,kBAAA;QAAAO,SAAA,EACaiB,EAOH;QAAAf,WAAA;QAAAqC,QAAA,EAGPtC,MAAA,CAAAuC,GAAA,CAAWpB,EA8EZ;MAAA,C;;;;;;;;;;;;;;WAzFFD,E;;;CA+FN","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAQD,KAAK,KAAK,CAAC,CAAC,IAAI;IACd,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CASrD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,OACU,YAAY,CAAC,CAAC,CACpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAQD,KAAK,KAAK,CAAC,CAAC,IAAI;IACd,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CASrD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,OACG,YAAY,CAAC,CAAC,CAC7C,CAAA"}
@@ -22,7 +22,7 @@ export const RowLabelProvider = ({
22
22
  const collapsibleData = getSiblingData(path);
23
23
  const arrayData = getDataByPath(path);
24
24
  const data = arrayData || collapsibleData;
25
- return /*#__PURE__*/_jsx(RowLabel.Provider, {
25
+ return /*#__PURE__*/_jsx(RowLabel, {
26
26
  value: {
27
27
  data,
28
28
  path,
@@ -32,6 +32,6 @@ export const RowLabelProvider = ({
32
32
  });
33
33
  };
34
34
  export const useRowLabel = () => {
35
- return React.useContext(RowLabel);
35
+ return React.use(RowLabel);
36
36
  };
37
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useWatchForm","RowLabel","createContext","data","path","rowNumber","undefined","RowLabelProvider","children","getDataByPath","getSiblingData","collapsibleData","arrayData","_jsx","Provider","value","useRowLabel","useContext"],"sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useWatchForm } from '../../Form/context.js'\n\ntype RowLabelType<T = unknown> = {\n readonly data: T\n readonly path: string\n readonly rowNumber?: number\n}\n\nconst RowLabel = React.createContext<RowLabelType>({\n data: {},\n path: '',\n rowNumber: undefined,\n})\n\ntype Props<T> = {\n readonly children: React.ReactNode\n} & Omit<RowLabelType<T>, 'data'>\n\nexport const RowLabelProvider: React.FC<Props<unknown>> = ({ children, path, rowNumber }) => {\n 'use no memo'\n const { getDataByPath, getSiblingData } = useWatchForm()\n const collapsibleData = getSiblingData(path)\n const arrayData = getDataByPath(path)\n\n const data = arrayData || collapsibleData\n\n return <RowLabel.Provider value={{ data, path, rowNumber }}>{children}</RowLabel.Provider>\n}\n\nexport const useRowLabel = <T,>() => {\n return React.useContext(RowLabel) as RowLabelType<T>\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAQ7B,MAAMC,QAAA,gBAAWF,KAAA,CAAMG,aAAa,CAAe;EACjDC,IAAA,EAAM,CAAC;EACPC,IAAA,EAAM;EACNC,SAAA,EAAWC;AACb;AAMA,OAAO,MAAMC,gBAAA,GAA6CA,CAAC;EAAEC,QAAQ;EAAEJ,IAAI;EAAEC;AAAS,CAAE;EACtF;;EACA,MAAM;IAAEI,aAAa;IAAEC;EAAc,CAAE,GAAGV,YAAA;EAC1C,MAAMW,eAAA,GAAkBD,cAAA,CAAeN,IAAA;EACvC,MAAMQ,SAAA,GAAYH,aAAA,CAAcL,IAAA;EAEhC,MAAMD,IAAA,GAAOS,SAAA,IAAaD,eAAA;EAE1B,oBAAOE,IAAA,CAACZ,QAAA,CAASa,QAAQ;IAACC,KAAA,EAAO;MAAEZ,IAAA;MAAMC,IAAA;MAAMC;IAAU;cAAIG;;AAC/D;AAEA,OAAO,MAAMQ,WAAA,GAAcA,CAAA;EAAA,OAClBjB,KAAA,CAAAkB,UAAA,CAAAhB,QAAiB;AAAA,CAC1B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useWatchForm","RowLabel","createContext","data","path","rowNumber","undefined","RowLabelProvider","children","getDataByPath","getSiblingData","collapsibleData","arrayData","_jsx","value","useRowLabel","use"],"sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useWatchForm } from '../../Form/context.js'\n\ntype RowLabelType<T = unknown> = {\n readonly data: T\n readonly path: string\n readonly rowNumber?: number\n}\n\nconst RowLabel = React.createContext<RowLabelType>({\n data: {},\n path: '',\n rowNumber: undefined,\n})\n\ntype Props<T> = {\n readonly children: React.ReactNode\n} & Omit<RowLabelType<T>, 'data'>\n\nexport const RowLabelProvider: React.FC<Props<unknown>> = ({ children, path, rowNumber }) => {\n 'use no memo'\n const { getDataByPath, getSiblingData } = useWatchForm()\n const collapsibleData = getSiblingData(path)\n const arrayData = getDataByPath(path)\n\n const data = arrayData || collapsibleData\n\n return <RowLabel value={{ data, path, rowNumber }}>{children}</RowLabel>\n}\n\nexport const useRowLabel = <T,>() => {\n return React.use(RowLabel) as RowLabelType<T>\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAQ7B,MAAMC,QAAA,gBAAWF,KAAA,CAAMG,aAAa,CAAe;EACjDC,IAAA,EAAM,CAAC;EACPC,IAAA,EAAM;EACNC,SAAA,EAAWC;AACb;AAMA,OAAO,MAAMC,gBAAA,GAA6CA,CAAC;EAAEC,QAAQ;EAAEJ,IAAI;EAAEC;AAAS,CAAE;EACtF;;EACA,MAAM;IAAEI,aAAa;IAAEC;EAAc,CAAE,GAAGV,YAAA;EAC1C,MAAMW,eAAA,GAAkBD,cAAA,CAAeN,IAAA;EACvC,MAAMQ,SAAA,GAAYH,aAAA,CAAcL,IAAA;EAEhC,MAAMD,IAAA,GAAOS,SAAA,IAAaD,eAAA;EAE1B,oBAAOE,IAAA,CAACZ,QAAA;IAASa,KAAA,EAAO;MAAEX,IAAA;MAAMC,IAAA;MAAMC;IAAU;cAAIG;;AACtD;AAEA,OAAO,MAAMO,WAAA,GAAcA,CAAA;EACzB,OAAOhB,KAAA,CAAMiB,GAAG,CAACf,QAAA;AACnB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/RowLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C,YAAY,EAAE,aAAa,EAAE,CAAA;AAI7B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoB5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/RowLabel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C,YAAY,EAAE,aAAa,EAAE,CAAA;AAI7B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwB5C,CAAA"}
@@ -18,13 +18,13 @@ export const RowLabel = props => {
18
18
  rowNumber: rowNumber,
19
19
  children: /*#__PURE__*/_jsx(RenderCustomComponent, {
20
20
  CustomComponent: CustomComponent,
21
- Fallback: /*#__PURE__*/_jsx("span", {
21
+ Fallback: typeof label === 'string' ? /*#__PURE__*/_jsx("span", {
22
22
  className: [baseClass, className].filter(Boolean).join(' '),
23
23
  style: {
24
24
  pointerEvents: 'none'
25
25
  },
26
26
  children: label
27
- })
27
+ }) : label
28
28
  })
29
29
  });
30
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","RenderCustomComponent","RowLabelProvider","baseClass","RowLabel","props","className","CustomComponent","label","path","rowNumber","_jsx","Fallback","filter","Boolean","join","style","pointerEvents"],"sources":["../../../src/forms/RowLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { RowLabelProps } from './types.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { RowLabelProvider } from './Context/index.js'\nexport type { RowLabelProps }\n\nconst baseClass = 'row-label'\n\nexport const RowLabel: React.FC<RowLabelProps> = (props) => {\n const { className, CustomComponent, label, path, rowNumber } = props\n\n return (\n <RowLabelProvider path={path} rowNumber={rowNumber}>\n <RenderCustomComponent\n CustomComponent={CustomComponent}\n Fallback={\n <span\n className={[baseClass, className].filter(Boolean).join(' ')}\n style={{\n pointerEvents: 'none',\n }}\n >\n {label}\n </span>\n }\n />\n </RowLabelProvider>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAIlB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AAGjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAAqCC,KAAA;EAChD,MAAM;IAAEC,SAAS;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGL,KAAA;EAE/D,oBACEM,IAAA,CAACT,gBAAA;IAAiBO,IAAA,EAAMA,IAAA;IAAMC,SAAA,EAAWA,SAAA;cACvC,aAAAC,IAAA,CAACV,qBAAA;MACCM,eAAA,EAAiBA,eAAA;MACjBK,QAAA,eACED,IAAA,CAAC;QACCL,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACO,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;QACvDC,KAAA,EAAO;UACLC,aAAA,EAAe;QACjB;kBAECT;;;;AAMb","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","RenderCustomComponent","RowLabelProvider","baseClass","RowLabel","props","className","CustomComponent","label","path","rowNumber","_jsx","Fallback","filter","Boolean","join","style","pointerEvents"],"sources":["../../../src/forms/RowLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { RowLabelProps } from './types.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { RowLabelProvider } from './Context/index.js'\nexport type { RowLabelProps }\n\nconst baseClass = 'row-label'\n\nexport const RowLabel: React.FC<RowLabelProps> = (props) => {\n const { className, CustomComponent, label, path, rowNumber } = props\n\n return (\n <RowLabelProvider path={path} rowNumber={rowNumber}>\n <RenderCustomComponent\n CustomComponent={CustomComponent}\n Fallback={\n typeof label === 'string' ? (\n <span\n className={[baseClass, className].filter(Boolean).join(' ')}\n style={{\n pointerEvents: 'none',\n }}\n >\n {label}\n </span>\n ) : (\n label\n )\n }\n />\n </RowLabelProvider>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAIlB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AAGjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAAqCC,KAAA;EAChD,MAAM;IAAEC,SAAS;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGL,KAAA;EAE/D,oBACEM,IAAA,CAACT,gBAAA;IAAiBO,IAAA,EAAMA,IAAA;IAAMC,SAAA,EAAWA,SAAA;cACvC,aAAAC,IAAA,CAACV,qBAAA;MACCM,eAAA,EAAiBA,eAAA;MACjBK,QAAA,EACE,OAAOJ,KAAA,KAAU,wBACfG,IAAA,CAAC;QACCL,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACO,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;QACvDC,KAAA,EAAO;UACLC,aAAA,EAAe;QACjB;kBAECT;WAGHA;;;AAMZ","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  export type RowLabelProps = {
2
2
  readonly className?: string;
3
3
  readonly CustomComponent?: React.ReactNode;
4
- readonly label?: string;
4
+ readonly label?: React.ReactNode | string;
5
5
  readonly path: string;
6
6
  readonly rowNumber?: number;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/RowLabel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/RowLabel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/RowLabel/types.ts"],"sourcesContent":["export type RowLabelProps = {\n readonly className?: string\n readonly CustomComponent?: React.ReactNode\n readonly label?: string\n readonly path: string\n readonly rowNumber?: number\n}\n"],"mappings":"AAAA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/RowLabel/types.ts"],"sourcesContent":["export type RowLabelProps = {\n readonly className?: string\n readonly CustomComponent?: React.ReactNode\n readonly label?: React.ReactNode | string\n readonly path: string\n readonly rowNumber?: number\n}\n"],"mappings":"AAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FormState, FormStateWithoutComponents, PayloadRequest, SanitizedFieldsPermissions } from 'payload';
1
+ import type { ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FormState, FormStateWithoutComponents, PayloadRequest, SanitizedFieldsPermissions, SelectMode, SelectType } from 'payload';
2
2
  import type { RenderFieldMethod } from './types.js';
3
3
  export type AddFieldStatePromiseArgs = {
4
4
  addErrorPathToParent: (fieldPath: string) => void;
@@ -52,6 +52,8 @@ export type AddFieldStatePromiseArgs = {
52
52
  */
53
53
  req: PayloadRequest;
54
54
  schemaPath: string;
55
+ select?: SelectType;
56
+ selectMode?: SelectMode;
55
57
  /**
56
58
  * Whether to skip checking the field's condition. @default false
57
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAE3B,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,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,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CA0tBvF,CAAA"}
1
+ {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,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,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CA2wBvF,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import ObjectIdImport from 'bson-objectid';
2
+ import { getBlockSelect } from 'payload';
2
3
  import { deepCopyObjectSimple, fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled, fieldIsID, fieldIsLocalized, getFieldPaths, tabHasName } from 'payload/shared';
3
4
  import { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js';
4
5
  import { iterateFields } from './iterateFields.js';
@@ -36,6 +37,8 @@ export const addFieldStatePromise = async args => {
36
37
  renderFieldFn,
37
38
  req,
38
39
  schemaPath,
40
+ select,
41
+ selectMode,
39
42
  skipConditionChecks = false,
40
43
  skipValidation = false,
41
44
  state
@@ -126,6 +129,7 @@ export const addFieldStatePromise = async args => {
126
129
  case 'array':
127
130
  {
128
131
  const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : [];
132
+ const arraySelect = select?.[field.name];
129
133
  const {
130
134
  promises,
131
135
  rows
@@ -168,6 +172,8 @@ export const addFieldStatePromise = async args => {
168
172
  renderAllFields: requiresRender,
169
173
  renderFieldFn,
170
174
  req,
175
+ select: typeof arraySelect === 'object' ? arraySelect : undefined,
176
+ selectMode,
171
177
  skipConditionChecks,
172
178
  skipValidation,
173
179
  state
@@ -236,6 +242,14 @@ export const addFieldStatePromise = async args => {
236
242
  if (!block) {
237
243
  throw new Error(`Block with type "${row.blockType}" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`);
238
244
  }
245
+ const {
246
+ blockSelect,
247
+ blockSelectMode
248
+ } = getBlockSelect({
249
+ block,
250
+ select: select?.[field.name],
251
+ selectMode
252
+ });
239
253
  const parentPath = path + '.' + i;
240
254
  if (block) {
241
255
  row.id = row?.id || new ObjectId().toHexString();
@@ -295,6 +309,8 @@ export const addFieldStatePromise = async args => {
295
309
  renderAllFields: requiresRender,
296
310
  renderFieldFn,
297
311
  req,
312
+ select: typeof blockSelect === 'object' ? blockSelect : undefined,
313
+ selectMode: blockSelectMode,
298
314
  skipConditionChecks,
299
315
  skipValidation,
300
316
  state
@@ -342,6 +358,7 @@ export const addFieldStatePromise = async args => {
342
358
  fieldState.disableFormData = true;
343
359
  state[path] = fieldState;
344
360
  }
361
+ const groupSelect = select?.[field.name];
345
362
  await iterateFields({
346
363
  id,
347
364
  addErrorPathToParent,
@@ -368,6 +385,8 @@ export const addFieldStatePromise = async args => {
368
385
  renderAllFields,
369
386
  renderFieldFn,
370
387
  req,
388
+ select: typeof groupSelect === 'object' ? groupSelect : undefined,
389
+ selectMode,
371
390
  skipConditionChecks,
372
391
  skipValidation,
373
392
  state
@@ -463,6 +482,8 @@ export const addFieldStatePromise = async args => {
463
482
  }
464
483
  await iterateFields({
465
484
  id,
485
+ select,
486
+ selectMode,
466
487
  // passthrough parent functionality
467
488
  addErrorPathToParent: addErrorPathToParentArg,
468
489
  anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,
@@ -495,6 +516,7 @@ export const addFieldStatePromise = async args => {
495
516
  } else if (field.type === 'tabs') {
496
517
  const promises = field.tabs.map((tab, tabIndex) => {
497
518
  const isNamedTab = tabHasName(tab);
519
+ let tabSelect;
498
520
  const {
499
521
  indexPath: tabIndexPath,
500
522
  path: tabPath,
@@ -521,8 +543,28 @@ export const addFieldStatePromise = async args => {
521
543
  childPermissions = tabPermissions?.fields;
522
544
  }
523
545
  }
546
+ if (typeof select?.[tab.name] === 'object') {
547
+ tabSelect = select?.[tab.name];
548
+ }
524
549
  } else {
525
550
  childPermissions = parentPermissions;
551
+ tabSelect = select;
552
+ }
553
+ const pathSegments = path ? path.split('.') : [];
554
+ // If passesCondition is false then this should always result to false
555
+ // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result
556
+ let tabPassesCondition = passesCondition;
557
+ if (passesCondition && typeof tab.admin?.condition === 'function') {
558
+ tabPassesCondition = tab.admin.condition(fullData, data, {
559
+ blockData,
560
+ path: pathSegments,
561
+ user: req.user
562
+ });
563
+ }
564
+ if (tab?.id) {
565
+ state[tab.id] = {
566
+ passesCondition: tabPassesCondition
567
+ };
526
568
  }
527
569
  return iterateFields({
528
570
  id,
@@ -541,7 +583,7 @@ export const addFieldStatePromise = async args => {
541
583
  omitParents,
542
584
  operation,
543
585
  parentIndexPath: isNamedTab ? '' : tabIndexPath,
544
- parentPassesCondition: passesCondition,
586
+ parentPassesCondition: tabPassesCondition,
545
587
  parentPath: isNamedTab ? tabPath : parentPath,
546
588
  parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,
547
589
  permissions: childPermissions,
@@ -550,6 +592,8 @@ export const addFieldStatePromise = async args => {
550
592
  renderAllFields,
551
593
  renderFieldFn,
552
594
  req,
595
+ select: tabSelect,
596
+ selectMode,
553
597
  skipConditionChecks,
554
598
  skipValidation,
555
599
  state