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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +2 -43
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +2 -5
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/DeleteDocument/index.js +2 -2
  8. package/dist/elements/DeleteDocument/index.js.map +1 -1
  9. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentControls/index.js +13 -4
  11. package/dist/elements/DocumentControls/index.js.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
  14. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.d.ts +0 -2
  16. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  24. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  25. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
  27. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  28. package/dist/elements/EditMany/index.d.ts.map +1 -1
  29. package/dist/elements/EditMany/index.js +3 -25
  30. package/dist/elements/EditMany/index.js.map +1 -1
  31. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  32. package/dist/elements/FieldSelect/index.js +39 -12
  33. package/dist/elements/FieldSelect/index.js.map +1 -1
  34. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/index.js +2 -1
  36. package/dist/elements/FileDetails/index.js.map +1 -1
  37. package/dist/elements/ListControls/index.d.ts +0 -1
  38. package/dist/elements/ListControls/index.d.ts.map +1 -1
  39. package/dist/elements/ListControls/index.js +7 -6
  40. package/dist/elements/ListControls/index.js.map +1 -1
  41. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  42. package/dist/elements/ListDrawer/DrawerContent.js +5 -9
  43. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  44. package/dist/elements/Nav/index.client.d.ts +3 -0
  45. package/dist/elements/Nav/index.client.d.ts.map +1 -0
  46. package/dist/elements/Nav/index.client.js +77 -0
  47. package/dist/elements/Nav/index.client.js.map +1 -0
  48. package/dist/elements/Nav/index.d.ts +3 -7
  49. package/dist/elements/Nav/index.d.ts.map +1 -1
  50. package/dist/elements/Nav/index.js +4 -66
  51. package/dist/elements/Nav/index.js.map +1 -1
  52. package/dist/elements/PerPage/index.d.ts +1 -0
  53. package/dist/elements/PerPage/index.d.ts.map +1 -1
  54. package/dist/elements/PerPage/index.js +6 -4
  55. package/dist/elements/PerPage/index.js.map +1 -1
  56. package/dist/elements/PreviewButton/index.d.ts +4 -6
  57. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  58. package/dist/elements/PreviewButton/index.js +11 -65
  59. package/dist/elements/PreviewButton/index.js.map +1 -1
  60. package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
  62. package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
  64. package/dist/elements/Publish/index.d.ts +4 -2
  65. package/dist/elements/Publish/index.d.ts.map +1 -1
  66. package/dist/elements/Publish/index.js +15 -25
  67. package/dist/elements/Publish/index.js.map +1 -1
  68. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  69. package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
  70. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  71. package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
  72. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  73. package/dist/elements/ReactSelect/index.js +4 -1
  74. package/dist/elements/ReactSelect/index.js.map +1 -1
  75. package/dist/elements/ReactSelect/types.d.ts +2 -0
  76. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  77. package/dist/elements/ReactSelect/types.js.map +1 -1
  78. package/dist/elements/Save/index.d.ts +4 -2
  79. package/dist/elements/Save/index.d.ts.map +1 -1
  80. package/dist/elements/Save/index.js +7 -14
  81. package/dist/elements/Save/index.js.map +1 -1
  82. package/dist/elements/SaveDraft/index.d.ts +1 -2
  83. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  84. package/dist/elements/SaveDraft/index.js +33 -42
  85. package/dist/elements/SaveDraft/index.js.map +1 -1
  86. package/dist/elements/SortColumn/index.d.ts +3 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js +5 -6
  89. package/dist/elements/SortColumn/index.js.map +1 -1
  90. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
  91. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  92. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  93. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
  94. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  95. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  96. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
  97. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  98. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  99. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
  100. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  101. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  102. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
  103. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  104. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  105. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
  106. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  107. package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
  108. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  109. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
  110. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  111. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  112. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
  113. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
  116. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  117. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
  119. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
  120. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
  122. package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
  123. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  124. package/dist/elements/Table/DefaultCell/index.js +4 -2
  125. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  126. package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
  127. package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
  128. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  129. package/dist/elements/Table/index.d.ts +8 -4
  130. package/dist/elements/Table/index.d.ts.map +1 -1
  131. package/dist/elements/Table/index.js +1 -0
  132. package/dist/elements/Table/index.js.map +1 -1
  133. package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
  134. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  135. package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
  136. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  137. package/dist/elements/TableColumns/filterFields.d.ts +3 -0
  138. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  139. package/dist/elements/TableColumns/filterFields.js +27 -0
  140. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  141. package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
  142. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  143. package/dist/elements/TableColumns/getInitialColumns.js +48 -0
  144. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  145. package/dist/elements/TableColumns/index.d.ts +2 -2
  146. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  147. package/dist/elements/TableColumns/index.js +11 -7
  148. package/dist/elements/TableColumns/index.js.map +1 -1
  149. package/dist/elements/Thumbnail/index.d.ts +6 -0
  150. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  151. package/dist/elements/Thumbnail/index.js +32 -16
  152. package/dist/elements/Thumbnail/index.js.map +1 -1
  153. package/dist/elements/ThumbnailCard/index.d.ts +1 -1
  154. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  155. package/dist/elements/ThumbnailCard/index.js +2 -6
  156. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  157. package/dist/elements/Tooltip/index.scss +4 -4
  158. package/dist/elements/Translation/index.d.ts.map +1 -1
  159. package/dist/elements/Translation/index.js +12 -9
  160. package/dist/elements/Translation/index.js.map +1 -1
  161. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  162. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
  163. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  164. package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
  165. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  166. package/dist/elements/WhereBuilder/Condition/index.js +45 -61
  167. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  168. package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
  169. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  170. package/dist/elements/WhereBuilder/index.js +134 -55
  171. package/dist/elements/WhereBuilder/index.js.map +1 -1
  172. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
  173. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
  174. package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
  175. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
  176. package/dist/elements/withMergedProps/index.js +1 -1
  177. package/dist/elements/withMergedProps/index.js.map +1 -1
  178. package/dist/fields/Array/ArrayRow.d.ts +2 -0
  179. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  180. package/dist/fields/Array/ArrayRow.js +3 -3
  181. package/dist/fields/Array/ArrayRow.js.map +1 -1
  182. package/dist/fields/Array/index.d.ts +1 -1
  183. package/dist/fields/Array/index.d.ts.map +1 -1
  184. package/dist/fields/Array/index.js +23 -8
  185. package/dist/fields/Array/index.js.map +1 -1
  186. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  187. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  188. package/dist/fields/Blocks/BlockRow.js +2 -3
  189. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  190. package/dist/fields/Blocks/index.d.ts +0 -1
  191. package/dist/fields/Blocks/index.d.ts.map +1 -1
  192. package/dist/fields/Blocks/index.js +17 -5
  193. package/dist/fields/Blocks/index.js.map +1 -1
  194. package/dist/fields/Checkbox/Input.d.ts +2 -1
  195. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  196. package/dist/fields/Checkbox/Input.js +3 -1
  197. package/dist/fields/Checkbox/Input.js.map +1 -1
  198. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  199. package/dist/fields/Checkbox/index.js +6 -2
  200. package/dist/fields/Checkbox/index.js.map +1 -1
  201. package/dist/fields/Code/index.d.ts.map +1 -1
  202. package/dist/fields/Code/index.js +8 -3
  203. package/dist/fields/Code/index.js.map +1 -1
  204. package/dist/fields/Collapsible/index.d.ts +2 -1
  205. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  206. package/dist/fields/Collapsible/index.js +4 -3
  207. package/dist/fields/Collapsible/index.js.map +1 -1
  208. package/dist/fields/DateTime/index.d.ts.map +1 -1
  209. package/dist/fields/DateTime/index.js +7 -2
  210. package/dist/fields/DateTime/index.js.map +1 -1
  211. package/dist/fields/Email/index.d.ts.map +1 -1
  212. package/dist/fields/Email/index.js +7 -2
  213. package/dist/fields/Email/index.js.map +1 -1
  214. package/dist/fields/Group/index.d.ts +0 -1
  215. package/dist/fields/Group/index.d.ts.map +1 -1
  216. package/dist/fields/Group/index.js +9 -8
  217. package/dist/fields/Group/index.js.map +1 -1
  218. package/dist/fields/HiddenInput/index.d.ts +1 -0
  219. package/dist/fields/HiddenInput/index.d.ts.map +1 -1
  220. package/dist/fields/HiddenInput/index.js +4 -2
  221. package/dist/fields/HiddenInput/index.js.map +1 -1
  222. package/dist/fields/JSON/index.d.ts.map +1 -1
  223. package/dist/fields/JSON/index.js +8 -4
  224. package/dist/fields/JSON/index.js.map +1 -1
  225. package/dist/fields/Number/index.d.ts.map +1 -1
  226. package/dist/fields/Number/index.js +7 -2
  227. package/dist/fields/Number/index.js.map +1 -1
  228. package/dist/fields/Password/index.d.ts +0 -1
  229. package/dist/fields/Password/index.d.ts.map +1 -1
  230. package/dist/fields/Password/index.js +5 -2
  231. package/dist/fields/Password/index.js.map +1 -1
  232. package/dist/fields/Point/index.d.ts.map +1 -1
  233. package/dist/fields/Point/index.js +15 -10
  234. package/dist/fields/Point/index.js.map +1 -1
  235. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  236. package/dist/fields/RadioGroup/index.js +7 -2
  237. package/dist/fields/RadioGroup/index.js.map +1 -1
  238. package/dist/fields/Relationship/index.d.ts.map +1 -1
  239. package/dist/fields/Relationship/index.js +45 -14
  240. package/dist/fields/Relationship/index.js.map +1 -1
  241. package/dist/fields/Relationship/types.d.ts +3 -1
  242. package/dist/fields/Relationship/types.d.ts.map +1 -1
  243. package/dist/fields/Relationship/types.js.map +1 -1
  244. package/dist/fields/RichText/index.d.ts +2 -0
  245. package/dist/fields/RichText/index.d.ts.map +1 -1
  246. package/dist/fields/RichText/index.js.map +1 -1
  247. package/dist/fields/Row/index.d.ts.map +1 -1
  248. package/dist/fields/Row/index.js +2 -1
  249. package/dist/fields/Row/index.js.map +1 -1
  250. package/dist/fields/Select/index.d.ts +0 -1
  251. package/dist/fields/Select/index.d.ts.map +1 -1
  252. package/dist/fields/Select/index.js +8 -3
  253. package/dist/fields/Select/index.js.map +1 -1
  254. package/dist/fields/Tabs/index.d.ts +0 -1
  255. package/dist/fields/Tabs/index.d.ts.map +1 -1
  256. package/dist/fields/Tabs/index.js +2 -2
  257. package/dist/fields/Tabs/index.js.map +1 -1
  258. package/dist/fields/Text/Input.d.ts.map +1 -1
  259. package/dist/fields/Text/Input.js +4 -1
  260. package/dist/fields/Text/Input.js.map +1 -1
  261. package/dist/fields/Text/index.d.ts.map +1 -1
  262. package/dist/fields/Text/index.js +3 -1
  263. package/dist/fields/Text/index.js.map +1 -1
  264. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  265. package/dist/fields/Textarea/Input.js +4 -1
  266. package/dist/fields/Textarea/Input.js.map +1 -1
  267. package/dist/fields/Textarea/index.d.ts.map +1 -1
  268. package/dist/fields/Textarea/index.js +3 -1
  269. package/dist/fields/Textarea/index.js.map +1 -1
  270. package/dist/fields/Upload/Input.d.ts.map +1 -1
  271. package/dist/fields/Upload/Input.js +10 -8
  272. package/dist/fields/Upload/Input.js.map +1 -1
  273. package/dist/fields/Upload/index.d.ts.map +1 -1
  274. package/dist/fields/Upload/index.js +6 -2
  275. package/dist/fields/Upload/index.js.map +1 -1
  276. package/dist/fields/shared/index.d.ts +1 -2
  277. package/dist/fields/shared/index.d.ts.map +1 -1
  278. package/dist/fields/shared/index.js.map +1 -1
  279. package/dist/forms/FieldDescription/index.d.ts +1 -2
  280. package/dist/forms/FieldDescription/index.d.ts.map +1 -1
  281. package/dist/forms/FieldDescription/index.js.map +1 -1
  282. package/dist/forms/FieldError/index.js +1 -1
  283. package/dist/forms/FieldError/index.js.map +1 -1
  284. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  285. package/dist/forms/FieldLabel/index.js +4 -4
  286. package/dist/forms/FieldLabel/index.js.map +1 -1
  287. package/dist/forms/FieldLabel/index.scss +1 -1
  288. package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
  289. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  290. package/dist/forms/FieldPropsProvider/index.js +5 -1
  291. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  292. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  293. package/dist/forms/Form/fieldReducer.js +6 -8
  294. package/dist/forms/Form/fieldReducer.js.map +1 -1
  295. package/dist/forms/Form/index.d.ts.map +1 -1
  296. package/dist/forms/Form/index.js +37 -20
  297. package/dist/forms/Form/index.js.map +1 -1
  298. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  299. package/dist/forms/Form/initContextState.js +1 -0
  300. package/dist/forms/Form/initContextState.js.map +1 -1
  301. package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
  302. package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
  303. package/dist/forms/Form/mergeErrorPaths.js +29 -0
  304. package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
  305. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  306. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  307. package/dist/forms/Form/mergeServerFormState.js +36 -19
  308. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  309. package/dist/forms/Form/types.d.ts +8 -2
  310. package/dist/forms/Form/types.d.ts.map +1 -1
  311. package/dist/forms/Form/types.js.map +1 -1
  312. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  313. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  314. package/dist/forms/RenderFields/RenderField.js +12 -4
  315. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  316. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  317. package/dist/forms/RenderFields/index.js +3 -3
  318. package/dist/forms/RenderFields/index.js.map +1 -1
  319. package/dist/forms/RenderFields/types.d.ts +1 -0
  320. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  321. package/dist/forms/RenderFields/types.js.map +1 -1
  322. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
  323. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  324. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
  325. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  326. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
  327. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
  328. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
  329. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
  330. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
  331. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
  332. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
  333. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
  334. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
  335. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
  336. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
  337. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
  338. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  339. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  340. package/dist/forms/buildStateFromSchema/index.js +10 -2
  341. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  342. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  343. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  344. package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
  345. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  346. package/dist/forms/useField/index.d.ts.map +1 -1
  347. package/dist/forms/useField/index.js +32 -12
  348. package/dist/forms/useField/index.js.map +1 -1
  349. package/dist/forms/useField/types.d.ts +1 -0
  350. package/dist/forms/useField/types.d.ts.map +1 -1
  351. package/dist/forms/useField/types.js.map +1 -1
  352. package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
  353. package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
  354. package/dist/forms/withCondition/WatchCondition.js +10 -2
  355. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  356. package/dist/forms/withCondition/index.js +4 -2
  357. package/dist/forms/withCondition/index.js.map +1 -1
  358. package/dist/hooks/usePayloadAPI.js +1 -1
  359. package/dist/hooks/usePayloadAPI.js.map +1 -1
  360. package/dist/hooks/useUseAsTitle.d.ts +3 -2
  361. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  362. package/dist/hooks/useUseAsTitle.js +5 -6
  363. package/dist/hooks/useUseAsTitle.js.map +1 -1
  364. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  365. package/dist/providers/ClientFunction/index.js +27 -5
  366. package/dist/providers/ClientFunction/index.js.map +1 -1
  367. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
  368. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
  369. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
  370. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
  371. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
  372. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
  373. package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
  374. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
  375. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
  376. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
  377. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
  378. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
  379. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
  380. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
  381. package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
  382. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
  383. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
  384. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  385. package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
  386. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  387. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
  388. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  389. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  390. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  391. package/dist/providers/DocumentInfo/index.js +120 -96
  392. package/dist/providers/DocumentInfo/index.js.map +1 -1
  393. package/dist/providers/DocumentInfo/types.d.ts +12 -13
  394. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  395. package/dist/providers/DocumentInfo/types.js.map +1 -1
  396. package/dist/providers/EntityVisibility/index.d.ts +16 -0
  397. package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
  398. package/dist/providers/EntityVisibility/index.js +25 -0
  399. package/dist/providers/EntityVisibility/index.js.map +1 -0
  400. package/dist/providers/ListInfo/index.d.ts +0 -1
  401. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  402. package/dist/providers/ListInfo/index.js +2 -7
  403. package/dist/providers/ListInfo/index.js.map +1 -1
  404. package/dist/templates/Default/index.d.ts +2 -7
  405. package/dist/templates/Default/index.d.ts.map +1 -1
  406. package/dist/templates/Default/index.js +10 -12
  407. package/dist/templates/Default/index.js.map +1 -1
  408. package/dist/utilities/buildComponentMap.d.ts +1 -1
  409. package/dist/utilities/buildComponentMap.d.ts.map +1 -1
  410. package/dist/utilities/buildComponentMap.js +1 -1
  411. package/dist/utilities/buildComponentMap.js.map +1 -1
  412. package/dist/utilities/flattenFieldMap.d.ts +10 -0
  413. package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
  414. package/dist/utilities/flattenFieldMap.js +33 -0
  415. package/dist/utilities/flattenFieldMap.js.map +1 -0
  416. package/dist/utilities/getFormState.d.ts +2 -0
  417. package/dist/utilities/getFormState.d.ts.map +1 -1
  418. package/dist/utilities/getFormState.js +8 -3
  419. package/dist/utilities/getFormState.js.map +1 -1
  420. package/package.json +10 -4
  421. package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
  422. package/dist/elements/TableColumns/buildColumns.js.map +0 -1
  423. package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
  424. package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
  425. package/dist/elements/WhereBuilder/reducer.js +0 -78
  426. package/dist/elements/WhereBuilder/reducer.js.map +0 -1
  427. package/dist/forms/FieldDescription/types.d.ts +0 -8
  428. package/dist/forms/FieldDescription/types.d.ts.map +0 -1
  429. package/dist/forms/FieldDescription/types.js +0 -3
  430. package/dist/forms/FieldDescription/types.js.map +0 -1
  431. package/dist/hooks/useAdminThumbnail.d.ts +0 -3
  432. package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
  433. package/dist/hooks/useAdminThumbnail.js +0 -8
  434. package/dist/hooks/useAdminThumbnail.js.map +0 -1
  435. package/dist/hooks/useThumbnail.d.ts +0 -3
  436. package/dist/hooks/useThumbnail.d.ts.map +0 -1
  437. package/dist/hooks/useThumbnail.js +0 -45
  438. package/dist/hooks/useThumbnail.js.map +0 -1
  439. package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
  440. package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
  441. package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
  442. package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/ArrayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AASvF,OAAO,cAAc,CAAA;AAIrB,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmG5C,CAAA"}
1
+ {"version":3,"file":"ArrayRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/ArrayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AASvF,OAAO,cAAc,CAAA;AAIrB,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsG5C,CAAA"}
@@ -8,12 +8,11 @@ import { RenderFields } from '../../forms/RenderFields/index.js';
8
8
  import { RowLabel } from '../../forms/RowLabel/index.js';
9
9
  import { useTranslation } from '../../providers/Translation/index.js';
10
10
  const baseClass = 'array-field';
11
- export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, fieldMap, forceRender = false, hasMaxRows, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, setCollapse, setNodeRef, transform })=>{
11
+ export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, errorCount, fieldMap, forceRender = false, hasMaxRows, indexPath, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
12
12
  const path = `${parentPath}.${rowIndex}`;
13
13
  const { i18n } = useTranslation();
14
14
  const hasSubmitted = useFormSubmitted();
15
15
  const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(2, '0')}`;
16
- const errorCount = row.errorPaths?.size;
17
16
  const fieldHasErrors = errorCount > 0 && hasSubmitted;
18
17
  const classNames = [
19
18
  `${baseClass}__row`,
@@ -62,11 +61,12 @@ export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, fie
62
61
  className: `${baseClass}__fields`,
63
62
  fieldMap: fieldMap,
64
63
  forceRender: forceRender,
64
+ indexPath: indexPath,
65
65
  margins: "small",
66
66
  path: path,
67
67
  permissions: permissions?.fields,
68
68
  readOnly: readOnly,
69
- schemaPath: parentPath
69
+ schemaPath: schemaPath
70
70
  })));
71
71
  };
72
72
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const errorCount = row.errorPaths?.size\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsed={row.collapsed}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={parentPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","fieldMap","forceRender","hasMaxRows","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","errorCount","errorPaths","size","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsed","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","onToggle","margins","fields","schemaPath"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAsBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMV,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEI,IAAI,EAAE,GAAGxB;IACjB,MAAMyB,eAAe5B;IAErB,MAAM6B,gBAAgB,CAAC,EAAElC,eAAekB,OAAOiB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOR,WAAW,GAAGS,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,aAAaZ,IAAIa,UAAU,EAAEC;IACnC,MAAMC,iBAAiBH,aAAa,KAAKL;IAEzC,MAAMS,aAAa;QACjB,CAAC,EAAEjC,UAAU,KAAK,CAAC;QACnBgC,iBAAiB,CAAC,EAAEhC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEkC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEzB,WAAW0B,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEjB,SAAS,CAAC;QACxDqB,KAAK,CAAC,EAAE3B,WAAW,KAAK,EAAEI,IAAIqB,EAAE,CAAC,CAAC;QAClCG,KAAKpB;QACLqB,OAAO;YACLpB;QACF;qBAEA,oBAAC5B;QACCiD,SACE,CAAC5B,yBACC,oBAACtB;YACCU,QAAQA;YACRE,cAAcA;YACdG,YAAYA;YACZoC,OAAOzB;YACPR,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEV2B;QAENC,WAAWb;QACXc,WAAW9B,IAAI8B,SAAS;QACxBC,kBAAkBhB,iBAAiB,UAAU;QAC7CiB,iBAAiB;YACfX,IAAIrB,IAAIqB,EAAE;YACVlC;YACAM;QACF;QACAwC,sBACE,oBAACb;YAAIS,WAAW,CAAC,EAAE9C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCqD,mBAAmBjD;YACnBqB,MAAMA;YACNX,MAAMA;YACNwC,UAAU3B;YACV4B,WAAWlC,WAAW;YAEvBa,gCAAkB,oBAACrC;YAAU2D,OAAOzB;YAAYN,MAAMA;YAAMgC,aAAAA;;QAGjEC,UAAU,CAACT,YAAc3B,YAAYH,IAAIqB,EAAE,EAAES;qBAE7C,oBAAClD;QACCiD,WAAW,CAAC,EAAE9C,UAAU,QAAQ,CAAC;QACjCM,UAAUA;QACVC,aAAaA;QACbkD,SAAQ;QACR7C,MAAMA;QACNE,aAAaA,aAAa4C;QAC1B3C,UAAUA;QACV4C,YAAY9C;;AAKtB,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsed={row.collapsed}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","errorCount","fieldMap","forceRender","hasMaxRows","indexPath","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsed","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","onToggle","margins","fields"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAwBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMX,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEK,IAAI,EAAE,GAAG3B;IACjB,MAAM4B,eAAe/B;IAErB,MAAMgC,gBAAgB,CAAC,EAAErC,eAAeoB,OAAOkB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOT,WAAW,GAAGU,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,iBAAiB1B,aAAa,KAAKqB;IAEzC,MAAMM,aAAa;QACjB,CAAC,EAAEjC,UAAU,KAAK,CAAC;QACnBgC,iBAAiB,CAAC,EAAEhC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEkC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEvB,WAAWwB,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEf,SAAS,CAAC;QACxDmB,KAAK,CAAC,EAAEzB,WAAW,KAAK,EAAEI,IAAImB,EAAE,CAAC,CAAC;QAClCG,KAAKjB;QACLkB,OAAO;YACLjB;QACF;qBAEA,oBAAC/B;QACCiD,SACE,CAAC1B,yBACC,oBAACxB;YACCU,QAAQA;YACRE,cAAcA;YACdI,YAAYA;YACZmC,OAAOvB;YACPR,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEVyB;QAENC,WAAWb;QACXc,WAAW5B,IAAI4B,SAAS;QACxBC,kBAAkBhB,iBAAiB,UAAU;QAC7CiB,iBAAiB;YACfX,IAAInB,IAAImB,EAAE;YACVlC;YACAQ;QACF;QACAsC,sBACE,oBAACb;YAAIS,WAAW,CAAC,EAAE9C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCqD,mBAAmBjD;YACnBwB,MAAMA;YACNZ,MAAMA;YACNsC,UAAUxB;YACVyB,WAAWhC,WAAW;YAEvBW,gCAAkB,oBAACrC;YAAU2D,OAAOhD;YAAYoB,MAAMA;YAAM6B,aAAAA;;QAGjEC,UAAU,CAACT,YAAcxB,YAAYJ,IAAImB,EAAE,EAAES;qBAE7C,oBAAClD;QACCiD,WAAW,CAAC,EAAE9C,UAAU,QAAQ,CAAC;QACjCO,UAAUA;QACVC,aAAaA;QACbE,WAAWA;QACX+C,SAAQ;QACR3C,MAAMA;QACNE,aAAaA,aAAa0C;QAC1BzC,UAAUA;QACVK,YAAYA;;AAKtB,EAAC"}
@@ -9,7 +9,6 @@ export type ArrayFieldProps = FormFieldBase & {
9
9
  CustomRowLabel?: React.ReactNode;
10
10
  fieldMap: FieldMap;
11
11
  forceRender?: boolean;
12
- indexPath: string;
13
12
  label?: FieldBase['label'];
14
13
  labels?: ArrayFieldType['labels'];
15
14
  maxRows?: ArrayFieldType['maxRows'];
@@ -18,5 +17,6 @@ export type ArrayFieldProps = FormFieldBase & {
18
17
  permissions: FieldPermissions;
19
18
  width?: string;
20
19
  };
20
+ export declare const _ArrayField: React.FC<ArrayFieldProps>;
21
21
  export declare const ArrayField: React.FC<ArrayFieldProps>;
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAMjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBvD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmQhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAQjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBvD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoRjD,CAAA;AAED,eAAO,MAAM,UAAU,2BAA6B,CAAA"}
@@ -3,6 +3,8 @@ import { getTranslation } from '@payloadcms/translations';
3
3
  import { FieldDescription } from '@payloadcms/ui/forms/FieldDescription';
4
4
  import { FieldError } from '@payloadcms/ui/forms/FieldError';
5
5
  import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel';
6
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
7
+ import { withCondition } from '@payloadcms/ui/forms/withCondition';
6
8
  import React, { useCallback } from 'react';
7
9
  import { Banner } from '../../elements/Banner/index.js';
8
10
  import { Button } from '../../elements/Button/index.js';
@@ -20,8 +22,9 @@ import { scrollToID } from '../../utilities/scrollToID.js';
20
22
  import { fieldBaseClass } from '../shared/index.js';
21
23
  import { ArrayRow } from './ArrayRow.js';
22
24
  const baseClass = 'array-field';
23
- export const ArrayField = (props)=>{
24
- const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, indexPath, labelProps, localized, maxRows, minRows, path: pathFromProps, permissions, readOnly, required, validate } = props;
25
+ export const _ArrayField = (props)=>{
26
+ const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, label, labelProps, localized, maxRows, minRows, path: pathFromProps, permissions, readOnly, required, validate } = props;
27
+ const { indexPath } = useFieldProps();
25
28
  const { setDocFieldPreferences } = useDocumentInfo();
26
29
  const { addFieldRow, dispatchFields, setModified } = useForm();
27
30
  const submitted = useFormSubmitted();
@@ -68,9 +71,10 @@ export const ArrayField = (props)=>{
68
71
  validate,
69
72
  editingDefaultLocale
70
73
  ]);
71
- const { path, rows = [], schemaPath, showError, valid, value } = useField({
74
+ const { path: pathFromContext } = useFieldProps();
75
+ const { errorPaths, path, rows = [], schemaPath, showError, valid, value } = useField({
72
76
  hasRows: true,
73
- path: pathFromProps || name,
77
+ path: pathFromContext || pathFromProps || name,
74
78
  validate: memoizedValidate
75
79
  });
76
80
  const addRow = useCallback(async (rowIndex)=>{
@@ -155,8 +159,8 @@ export const ArrayField = (props)=>{
155
159
  setDocFieldPreferences
156
160
  ]);
157
161
  const hasMaxRows = maxRows && rows.length >= maxRows;
158
- const fieldErrorCount = rows.reduce((total, row)=>total + (row?.errorPaths?.size || 0), 0) + (valid ? 0 : 1);
159
- const fieldHasErrors = submitted && fieldErrorCount > 0;
162
+ const fieldErrorCount = errorPaths.length;
163
+ const fieldHasErrors = submitted && errorPaths.length > 0;
160
164
  const showRequired = readOnly && rows.length === 0;
161
165
  const showMinRows = rows.length < minRows || required && rows.length === 0;
162
166
  return /*#__PURE__*/ React.createElement("div", {
@@ -171,6 +175,7 @@ export const ArrayField = (props)=>{
171
175
  className: `${baseClass}__error-wrap`
172
176
  }, /*#__PURE__*/ React.createElement(FieldError, {
173
177
  CustomError: CustomError,
178
+ path: path,
174
179
  ...errorProps || {}
175
180
  })), /*#__PURE__*/ React.createElement("header", {
176
181
  className: `${baseClass}__header`
@@ -182,6 +187,10 @@ export const ArrayField = (props)=>{
182
187
  className: `${baseClass}__title`
183
188
  }, /*#__PURE__*/ React.createElement(FieldLabel, {
184
189
  CustomLabel: CustomLabel,
190
+ as: "span",
191
+ label: label,
192
+ required: required,
193
+ unstyled: true,
185
194
  ...labelProps || {}
186
195
  })), fieldHasErrors && fieldErrorCount > 0 && /*#__PURE__*/ React.createElement(ErrorPill, {
187
196
  count: fieldErrorCount,
@@ -208,7 +217,9 @@ export const ArrayField = (props)=>{
208
217
  className: `${baseClass}__draggable-rows`,
209
218
  ids: rows.map((row)=>row.id),
210
219
  onDragEnd: ({ moveFromIndex, moveToIndex })=>moveRow(moveFromIndex, moveToIndex)
211
- }, rows.map((row, i)=>/*#__PURE__*/ React.createElement(DraggableSortableItem, {
220
+ }, rows.map((row, i)=>{
221
+ const rowErrorCount = errorPaths?.filter((errorPath)=>errorPath.startsWith(`${path}.${i}.`)).length;
222
+ return /*#__PURE__*/ React.createElement(DraggableSortableItem, {
212
223
  disabled: readOnly,
213
224
  id: row.id,
214
225
  key: row.id
@@ -217,6 +228,7 @@ export const ArrayField = (props)=>{
217
228
  CustomRowLabel: CustomRowLabel,
218
229
  addRow: addRow,
219
230
  duplicateRow: duplicateRow,
231
+ errorCount: rowErrorCount,
220
232
  fieldMap: fieldMap,
221
233
  forceRender: forceRender,
222
234
  hasMaxRows: hasMaxRows,
@@ -230,8 +242,10 @@ export const ArrayField = (props)=>{
230
242
  row: row,
231
243
  rowCount: rows.length,
232
244
  rowIndex: i,
245
+ schemaPath: schemaPath,
233
246
  setCollapse: setCollapse
234
- }))), !valid && /*#__PURE__*/ React.createElement(React.Fragment, null, showRequired && /*#__PURE__*/ React.createElement(Banner, null, t('validation:fieldHasNo', {
247
+ }));
248
+ }), !valid && /*#__PURE__*/ React.createElement(React.Fragment, null, showRequired && /*#__PURE__*/ React.createElement(Banner, null, t('validation:fieldHasNo', {
235
249
  label: getTranslation(labels.plural, i18n)
236
250
  })), showMinRows && /*#__PURE__*/ React.createElement(Banner, {
237
251
  type: "error"
@@ -249,5 +263,6 @@ export const ArrayField = (props)=>{
249
263
  label: getTranslation(labels.singular, i18n)
250
264
  })));
251
265
  };
266
+ export const ArrayField = withCondition(_ArrayField);
252
267
 
253
268
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n indexPath: string\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n indexPath,\n labelProps,\n localized,\n maxRows,\n minRows,\n path: pathFromProps,\n permissions,\n readOnly,\n required,\n validate,\n } = props\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount =\n rows.reduce((total, row) => total + (row?.errorPaths?.size || 0), 0) + (valid ? 0 : 1)\n\n const fieldHasErrors = submitted && fieldErrorCount > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel CustomLabel={CustomLabel} {...(labelProps || {})} />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n ))}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","indexPath","labelProps","localized","maxRows","minRows","path","pathFromProps","permissions","readOnly","required","validate","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","label","plural","undefined","singular","memoizedValidate","value","options","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","reduce","total","row","errorPaths","size","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","onDragEnd","i","disabled","key","draggableSortableItemProps","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n label,\n labelProps,\n localized,\n maxRows,\n minRows,\n path: pathFromProps,\n permissions,\n readOnly,\n required,\n validate,\n } = props\n\n const { indexPath } = useFieldProps()\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","label","labelProps","localized","maxRows","minRows","path","pathFromProps","permissions","readOnly","required","validate","indexPath","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"mappings":"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"}
@@ -8,6 +8,7 @@ type BlockFieldProps = UseDraggableSortableReturn & {
8
8
  block: ReducedBlock;
9
9
  blocks: ReducedBlock[];
10
10
  duplicateRow: (rowIndex: number) => void;
11
+ errorCount: number;
11
12
  forceRender?: boolean;
12
13
  hasMaxRows?: boolean;
13
14
  indexPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAa3F,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuG9C,CAAA"}
1
+ {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAa3F,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuG9C,CAAA"}
@@ -10,12 +10,11 @@ import { useTranslation } from '../../providers/Translation/index.js';
10
10
  import { RowActions } from './RowActions.js';
11
11
  import { SectionTitle } from './SectionTitle/index.js';
12
12
  const baseClass = 'blocks-field';
13
- export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, forceRender, hasMaxRows, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
13
+ export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, errorCount, forceRender, hasMaxRows, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
14
14
  const path = `${parentPath}.${rowIndex}`;
15
15
  const { i18n } = useTranslation();
16
16
  const hasSubmitted = useFormSubmitted();
17
- const errorCount = row.errorPaths?.size;
18
- const fieldHasErrors = errorCount > 0 && hasSubmitted;
17
+ const fieldHasErrors = hasSubmitted && errorCount > 0;
19
18
  const classNames = [
20
19
  `${baseClass}__row`,
21
20
  fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n forceRender,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const errorCount = row.errorPaths?.size\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsed={row.collapsed}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__block-header`}>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","forceRender","hasMaxRows","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","errorCount","errorPaths","size","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsed","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","onToggle","margins","slug","fields"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsed={row.collapsed}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__block-header`}>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","errorCount","forceRender","hasMaxRows","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsed","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","onToggle","margins","slug","fields"],"mappings":"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"}
@@ -7,7 +7,6 @@ import type { FormFieldBase } from '../shared/index.js';
7
7
  export type BlocksFieldProps = FormFieldBase & {
8
8
  blocks?: ReducedBlock[];
9
9
  forceRender?: boolean;
10
- indexPath: string;
11
10
  label?: FieldBase['label'];
12
11
  labels?: BlockField['labels'];
13
12
  maxRows?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAM1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiSlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAQ1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqTD,eAAO,MAAM,WAAW,4BAA8B,CAAA"}
@@ -23,9 +23,12 @@ const baseClass = 'blocks-field';
23
23
  import { FieldDescription } from '@payloadcms/ui/forms/FieldDescription';
24
24
  import { FieldError } from '@payloadcms/ui/forms/FieldError';
25
25
  import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel';
26
- export const BlocksField = (props)=>{
26
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
27
+ import { withCondition } from '@payloadcms/ui/forms/withCondition';
28
+ const _BlocksField = (props)=>{
27
29
  const { i18n, t } = useTranslation();
28
- const { name, CustomDescription, CustomError, CustomLabel, blocks, className, descriptionProps, errorProps, forceRender = false, indexPath, labelProps, labels: labelsFromProps, localized, maxRows, minRows, path: pathFromProps, readOnly, required, validate } = props;
30
+ const { name, CustomDescription, CustomError, CustomLabel, blocks, className, descriptionProps, errorProps, forceRender = false, label, labelProps, labels: labelsFromProps, localized, maxRows, minRows, path: pathFromProps, readOnly, required, validate } = props;
31
+ const { indexPath } = useFieldProps();
29
32
  const { setDocFieldPreferences } = useDocumentInfo();
30
33
  const { addFieldRow, dispatchFields, setModified } = useForm();
31
34
  const { code: locale } = useLocale();
@@ -64,9 +67,10 @@ export const BlocksField = (props)=>{
64
67
  validate,
65
68
  editingDefaultLocale
66
69
  ]);
67
- const { path, permissions, rows = [], schemaPath, showError, valid, value } = useField({
70
+ const { path: pathFromContext } = useFieldProps();
71
+ const { errorPaths, path, permissions, rows = [], schemaPath, showError, valid, value } = useField({
68
72
  hasRows: true,
69
- path: pathFromProps || name,
73
+ path: pathFromContext || pathFromProps || name,
70
74
  validate: memoizedValidate
71
75
  });
72
76
  const addRow = useCallback(async (rowIndex, blockType)=>{
@@ -154,7 +158,7 @@ export const BlocksField = (props)=>{
154
158
  setDocFieldPreferences
155
159
  ]);
156
160
  const hasMaxRows = maxRows && rows.length >= maxRows;
157
- const fieldErrorCount = rows.reduce((total, row)=>total + (row?.errorPaths?.size || 0), 0);
161
+ const fieldErrorCount = errorPaths.length;
158
162
  const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0;
159
163
  const showMinRows = rows.length < minRows || required && rows.length === 0;
160
164
  const showRequired = readOnly && rows.length === 0;
@@ -170,6 +174,7 @@ export const BlocksField = (props)=>{
170
174
  className: `${baseClass}__error-wrap`
171
175
  }, /*#__PURE__*/ React.createElement(FieldError, {
172
176
  CustomError: CustomError,
177
+ path: path,
173
178
  ...errorProps || {}
174
179
  })), /*#__PURE__*/ React.createElement("header", {
175
180
  className: `${baseClass}__header`
@@ -179,6 +184,10 @@ export const BlocksField = (props)=>{
179
184
  className: `${baseClass}__heading-with-error`
180
185
  }, /*#__PURE__*/ React.createElement("h3", null, /*#__PURE__*/ React.createElement(FieldLabel, {
181
186
  CustomLabel: CustomLabel,
187
+ as: "span",
188
+ label: label,
189
+ required: required,
190
+ unstyled: true,
182
191
  ...labelProps || {}
183
192
  })), fieldHasErrors && fieldErrorCount > 0 && /*#__PURE__*/ React.createElement(ErrorPill, {
184
193
  count: fieldErrorCount,
@@ -209,6 +218,7 @@ export const BlocksField = (props)=>{
209
218
  const { blockType } = row;
210
219
  const blockToRender = blocks.find((block)=>block.slug === blockType);
211
220
  if (blockToRender) {
221
+ const rowErrorCount = errorPaths.filter((errorPath)=>errorPath.startsWith(`${path}.${i}`)).length;
212
222
  return /*#__PURE__*/ React.createElement(DraggableSortableItem, {
213
223
  disabled: readOnly,
214
224
  id: row.id,
@@ -219,6 +229,7 @@ export const BlocksField = (props)=>{
219
229
  block: blockToRender,
220
230
  blocks: blocks,
221
231
  duplicateRow: duplicateRow,
232
+ errorCount: rowErrorCount,
222
233
  forceRender: forceRender,
223
234
  hasMaxRows: hasMaxRows,
224
235
  indexPath: indexPath,
@@ -262,5 +273,6 @@ export const BlocksField = (props)=>{
262
273
  labels: labels
263
274
  })));
264
275
  };
276
+ export const BlocksField = withCondition(_BlocksField);
265
277
 
266
278
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'blocks-field'\n\nimport type { FieldPermissions } from 'payload/auth'\nimport type { BlockField, FieldBase } from 'payload/types'\n\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\n\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nexport type BlocksFieldProps = FormFieldBase & {\n blocks?: ReducedBlock[]\n forceRender?: boolean\n indexPath: string\n label?: FieldBase['label']\n labels?: BlockField['labels']\n maxRows?: number\n minRows?: number\n name?: string\n permissions: FieldPermissions\n slug?: string\n width?: string\n}\n\nexport const BlocksField: React.FC<BlocksFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n blocks,\n className,\n descriptionProps,\n errorProps,\n forceRender = false,\n indexPath,\n labelProps,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows,\n path: pathFromProps,\n readOnly,\n required,\n validate,\n } = props\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const { code: locale } = useLocale()\n const { localization } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n path,\n permissions,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number, blockType: string) => {\n await addFieldRow({\n data: { blockType },\n path,\n rowIndex,\n schemaPath: `${schemaPath}.${blockType}`,\n })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({\n type: 'REMOVE_ROW',\n path,\n rowIndex,\n })\n\n setModified(true)\n },\n [path, dispatchFields, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = rows.reduce((total, row) => total + (row?.errorPaths?.size || 0), 0)\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel CustomLabel={CustomLabel} {...(labelProps || {})} />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const { blockType } = row\n const blockToRender = blocks.find((block) => block.slug === blockType)\n\n if (blockToRender) {\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockToRender}\n blocks={blocks}\n duplicateRow={duplicateRow}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label: getTranslation(\n minRows === 1 || typeof minRows === 'undefined'\n ? labels.singular\n : labels.plural,\n i18n,\n ),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Fragment>\n <DrawerToggler className={`${baseClass}__drawer-toggler`} slug={drawerSlug}>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n </div>\n )\n}\n"],"names":["getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","FieldDescription","FieldError","FieldLabel","BlocksField","props","i18n","t","name","CustomDescription","CustomError","CustomLabel","blocks","className","descriptionProps","errorProps","forceRender","indexPath","labelProps","labels","labelsFromProps","localized","maxRows","minRows","path","pathFromProps","readOnly","required","validate","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","permissions","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","blockType","data","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","reduce","total","row","errorPaths","size","fieldHasErrors","showMinRows","showRequired","div","filter","Boolean","join","id","replace","header","h3","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","onDragEnd","i","blockToRender","find","block","slug","disabled","key","draggableSortableItemProps","rowCount","label","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'blocks-field'\n\nimport type { FieldPermissions } from 'payload/auth'\nimport type { BlockField, FieldBase } from 'payload/types'\n\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\n\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nexport type BlocksFieldProps = FormFieldBase & {\n blocks?: ReducedBlock[]\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: BlockField['labels']\n maxRows?: number\n minRows?: number\n name?: string\n permissions: FieldPermissions\n slug?: string\n width?: string\n}\n\nconst _BlocksField: React.FC<BlocksFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n blocks,\n className,\n descriptionProps,\n errorProps,\n forceRender = false,\n label,\n labelProps,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows,\n path: pathFromProps,\n readOnly,\n required,\n validate,\n } = props\n\n const { indexPath } = useFieldProps()\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const { code: locale } = useLocale()\n const { localization } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n permissions,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number, blockType: string) => {\n await addFieldRow({\n data: { blockType },\n path,\n rowIndex,\n schemaPath: `${schemaPath}.${blockType}`,\n })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({\n type: 'REMOVE_ROW',\n path,\n rowIndex,\n })\n\n setModified(true)\n },\n [path, dispatchFields, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const { blockType } = row\n const blockToRender = blocks.find((block) => block.slug === blockType)\n\n if (blockToRender) {\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockToRender}\n blocks={blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label: getTranslation(\n minRows === 1 || typeof minRows === 'undefined'\n ? labels.singular\n : labels.plural,\n i18n,\n ),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Fragment>\n <DrawerToggler className={`${baseClass}__drawer-toggler`} slug={drawerSlug}>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(_BlocksField)\n"],"names":["getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","_BlocksField","props","i18n","t","name","CustomDescription","CustomError","CustomLabel","blocks","className","descriptionProps","errorProps","forceRender","label","labelProps","labels","labelsFromProps","localized","maxRows","minRows","path","pathFromProps","readOnly","required","validate","indexPath","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","pathFromContext","errorPaths","permissions","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","blockType","data","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { LabelProps } from 'payload/types';
1
+ import type { FieldBase, LabelProps } from 'payload/types';
2
2
  import React from 'react';
3
3
  type Props = {
4
4
  AfterInput?: React.ReactNode;
@@ -8,6 +8,7 @@ type Props = {
8
8
  className?: string;
9
9
  id?: string;
10
10
  inputRef?: React.RefObject<HTMLInputElement>;
11
+ label?: FieldBase['label'];
11
12
  labelProps?: LabelProps;
12
13
  name?: string;
13
14
  onToggle: (event: React.ChangeEvent<HTMLInputElement>) => void;