@payloadcms/ui 3.68.0-internal-debug.56c9b68 → 3.68.0-internal-debug.2eb12b9

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 (1195) hide show
  1. package/dist/@types/assets.d.js.map +1 -1
  2. package/dist/assets/index.js +1 -0
  3. package/dist/assets/index.js.map +1 -1
  4. package/dist/elements/AddNewRelation/index.js +161 -272
  5. package/dist/elements/AddNewRelation/index.js.map +1 -1
  6. package/dist/elements/AddNewRelation/types.js +2 -1
  7. package/dist/elements/AddNewRelation/types.js.map +1 -1
  8. package/dist/elements/AnimateHeight/index.js +75 -72
  9. package/dist/elements/AnimateHeight/index.js.map +1 -1
  10. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +71 -69
  11. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  12. package/dist/elements/AppHeader/index.js +96 -97
  13. package/dist/elements/AppHeader/index.js.map +1 -1
  14. package/dist/elements/ArrayAction/index.d.ts +6 -6
  15. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  16. package/dist/elements/ArrayAction/index.js +105 -117
  17. package/dist/elements/ArrayAction/index.js.map +1 -1
  18. package/dist/elements/Autosave/index.js +135 -168
  19. package/dist/elements/Autosave/index.js.map +1 -1
  20. package/dist/elements/Banner/index.js +35 -31
  21. package/dist/elements/Banner/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/ActionsBar/index.js +101 -169
  23. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/AddFilesView/index.js +55 -50
  25. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/AddingFilesView/index.js +51 -92
  27. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  28. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +24 -54
  29. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +9 -25
  31. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/EditForm/index.js +140 -166
  33. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  34. package/dist/elements/BulkUpload/EditForm/types.js +2 -1
  35. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  36. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +159 -170
  37. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  38. package/dist/elements/BulkUpload/EditMany/index.js +34 -55
  39. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/FileSidebar/index.js +248 -313
  41. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  42. package/dist/elements/BulkUpload/FormsManager/createFormData.js +33 -32
  43. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  44. package/dist/elements/BulkUpload/FormsManager/index.js +491 -469
  45. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  46. package/dist/elements/BulkUpload/FormsManager/reducer.js +100 -90
  47. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  48. package/dist/elements/BulkUpload/Header/index.js +14 -14
  49. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  50. package/dist/elements/BulkUpload/index.js +150 -268
  51. package/dist/elements/BulkUpload/index.js.map +1 -1
  52. package/dist/elements/Button/index.js +157 -158
  53. package/dist/elements/Button/index.js.map +1 -1
  54. package/dist/elements/Button/types.js +2 -1
  55. package/dist/elements/Button/types.js.map +1 -1
  56. package/dist/elements/Card/index.js +31 -31
  57. package/dist/elements/Card/index.js.map +1 -1
  58. package/dist/elements/CheckboxPopup/index.js +30 -35
  59. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  60. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +15 -33
  61. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  62. package/dist/elements/ClipboardAction/clipboardUtilities.js +33 -43
  63. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  64. package/dist/elements/ClipboardAction/index.js +80 -81
  65. package/dist/elements/ClipboardAction/index.js.map +1 -1
  66. package/dist/elements/ClipboardAction/isClipboardDataValid.js +64 -71
  67. package/dist/elements/ClipboardAction/isClipboardDataValid.js.map +1 -1
  68. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +75 -93
  69. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  70. package/dist/elements/ClipboardAction/types.js +2 -1
  71. package/dist/elements/ClipboardAction/types.js.map +1 -1
  72. package/dist/elements/CloseModalButton/index.js +16 -19
  73. package/dist/elements/CloseModalButton/index.js.map +1 -1
  74. package/dist/elements/CloseModalOnRouteChange/index.js +17 -43
  75. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  76. package/dist/elements/CodeEditor/CodeEditor.js +73 -96
  77. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  78. package/dist/elements/CodeEditor/constants.js +15 -14
  79. package/dist/elements/CodeEditor/constants.js.map +1 -1
  80. package/dist/elements/CodeEditor/index.js +9 -9
  81. package/dist/elements/CodeEditor/index.js.map +1 -1
  82. package/dist/elements/CodeEditor/types.js +2 -1
  83. package/dist/elements/CodeEditor/types.js.map +1 -1
  84. package/dist/elements/Collapsible/index.js +86 -139
  85. package/dist/elements/Collapsible/index.js.map +1 -1
  86. package/dist/elements/Collapsible/provider.js +27 -29
  87. package/dist/elements/Collapsible/provider.js.map +1 -1
  88. package/dist/elements/ColumnSelector/index.js +45 -53
  89. package/dist/elements/ColumnSelector/index.js.map +1 -1
  90. package/dist/elements/Combobox/index.js +83 -83
  91. package/dist/elements/Combobox/index.js.map +1 -1
  92. package/dist/elements/ConfirmationModal/index.js +82 -127
  93. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  94. package/dist/elements/CopyLocaleData/index.js +165 -273
  95. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  96. package/dist/elements/CopyToClipboard/index.js +34 -69
  97. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  98. package/dist/elements/DatePicker/DatePicker.js +100 -135
  99. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  100. package/dist/elements/DatePicker/getFormattedLocale.js +10 -10
  101. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  102. package/dist/elements/DatePicker/index.js +10 -10
  103. package/dist/elements/DatePicker/index.js.map +1 -1
  104. package/dist/elements/DatePicker/types.js +2 -1
  105. package/dist/elements/DatePicker/types.js.map +1 -1
  106. package/dist/elements/DefaultListViewTabs/index.js +80 -130
  107. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  108. package/dist/elements/DeleteDocument/index.js +134 -137
  109. package/dist/elements/DeleteDocument/index.js.map +1 -1
  110. package/dist/elements/DeleteMany/index.js +295 -328
  111. package/dist/elements/DeleteMany/index.js.map +1 -1
  112. package/dist/elements/DocumentControls/index.js +284 -272
  113. package/dist/elements/DocumentControls/index.js.map +1 -1
  114. package/dist/elements/DocumentDrawer/DrawerContent.js +132 -121
  115. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  116. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +53 -100
  117. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  118. package/dist/elements/DocumentDrawer/Provider.js +15 -17
  119. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  120. package/dist/elements/DocumentDrawer/index.js +111 -209
  121. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  122. package/dist/elements/DocumentDrawer/types.js +2 -1
  123. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  124. package/dist/elements/DocumentFields/index.js +68 -67
  125. package/dist/elements/DocumentFields/index.js.map +1 -1
  126. package/dist/elements/DocumentLocked/index.js +104 -177
  127. package/dist/elements/DocumentLocked/index.js.map +1 -1
  128. package/dist/elements/DocumentTakeOver/index.js +63 -111
  129. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  130. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +21 -59
  131. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  132. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +2 -1
  133. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  134. package/dist/elements/DraggableSortable/index.js +58 -122
  135. package/dist/elements/DraggableSortable/index.js.map +1 -1
  136. package/dist/elements/DraggableSortable/types.js +2 -1
  137. package/dist/elements/DraggableSortable/types.js.map +1 -1
  138. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +24 -85
  139. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  140. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +2 -1
  141. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  142. package/dist/elements/Drawer/index.js +110 -190
  143. package/dist/elements/Drawer/index.js.map +1 -1
  144. package/dist/elements/Drawer/types.js +2 -1
  145. package/dist/elements/Drawer/types.js.map +1 -1
  146. package/dist/elements/Drawer/useDrawerSlug.js +7 -19
  147. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  148. package/dist/elements/DrawerActionHeader/index.js +33 -59
  149. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  150. package/dist/elements/DrawerContentContainer/index.js +9 -8
  151. package/dist/elements/DrawerContentContainer/index.js.map +1 -1
  152. package/dist/elements/Dropzone/index.js +85 -74
  153. package/dist/elements/Dropzone/index.js.map +1 -1
  154. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +104 -86
  155. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  156. package/dist/elements/DuplicateDocument/index.js +135 -141
  157. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  158. package/dist/elements/EditMany/DrawerContent.js +282 -379
  159. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  160. package/dist/elements/EditMany/index.js +50 -128
  161. package/dist/elements/EditMany/index.js.map +1 -1
  162. package/dist/elements/EditUpload/index.js +419 -398
  163. package/dist/elements/EditUpload/index.js.map +1 -1
  164. package/dist/elements/EmailAndUsername/index.js +75 -76
  165. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  166. package/dist/elements/ErrorPill/index.js +25 -23
  167. package/dist/elements/ErrorPill/index.js.map +1 -1
  168. package/dist/elements/FieldDiffContainer/index.js +33 -33
  169. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  170. package/dist/elements/FieldDiffLabel/index.js +5 -6
  171. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  172. package/dist/elements/FieldSelect/index.js +31 -73
  173. package/dist/elements/FieldSelect/index.js.map +1 -1
  174. package/dist/elements/FieldSelect/reduceFieldOptions.js +69 -67
  175. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  176. package/dist/elements/FileDetails/DraggableFileDetails/index.js +63 -103
  177. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  178. package/dist/elements/FileDetails/FileMeta/index.js +43 -32
  179. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  180. package/dist/elements/FileDetails/StaticFileDetails/index.js +47 -57
  181. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  182. package/dist/elements/FileDetails/index.js +10 -12
  183. package/dist/elements/FileDetails/index.js.map +1 -1
  184. package/dist/elements/FolderView/Breadcrumbs/index.js +38 -85
  185. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  186. package/dist/elements/FolderView/BrowseByFolderButton/index.js +21 -29
  187. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  188. package/dist/elements/FolderView/Cell/index.client.js +77 -80
  189. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  190. package/dist/elements/FolderView/Cell/index.server.js +14 -13
  191. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  192. package/dist/elements/FolderView/ColoredFolderIcon/index.js +4 -3
  193. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
  194. package/dist/elements/FolderView/CurrentFolderActions/index.js +127 -135
  195. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  196. package/dist/elements/FolderView/DragOverlaySelection/index.js +48 -49
  197. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  198. package/dist/elements/FolderView/DraggableTableRow/index.js +54 -53
  199. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  200. package/dist/elements/FolderView/DraggableWithClick/index.js +70 -78
  201. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  202. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +26 -32
  203. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  204. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +368 -563
  205. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  206. package/dist/elements/FolderView/FilterFolderTypePill/index.js +47 -87
  207. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
  208. package/dist/elements/FolderView/FolderField/index.server.js +10 -9
  209. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
  210. package/dist/elements/FolderView/FolderFileCard/index.js +143 -186
  211. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  212. package/dist/elements/FolderView/FolderFileTable/index.js +170 -263
  213. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  214. package/dist/elements/FolderView/FolderTypeField/index.js +88 -113
  215. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  216. package/dist/elements/FolderView/ItemCardGrid/index.js +22 -26
  217. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  218. package/dist/elements/FolderView/MoveDocToFolder/index.js +121 -258
  219. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  220. package/dist/elements/FolderView/SimpleTable/index.js +59 -81
  221. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
  222. package/dist/elements/FolderView/SortByPill/index.js +105 -99
  223. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  224. package/dist/elements/FolderView/ToggleViewButtons/index.js +30 -23
  225. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
  226. package/dist/elements/FullscreenModal/index.js +10 -20
  227. package/dist/elements/FullscreenModal/index.js.map +1 -1
  228. package/dist/elements/GenerateConfirmation/index.js +41 -81
  229. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  230. package/dist/elements/GroupByBuilder/index.js +113 -99
  231. package/dist/elements/GroupByBuilder/index.js.map +1 -1
  232. package/dist/elements/Gutter/index.js +17 -18
  233. package/dist/elements/Gutter/index.js.map +1 -1
  234. package/dist/elements/HTMLDiff/diff/index.js +500 -499
  235. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  236. package/dist/elements/HTMLDiff/index.js +22 -25
  237. package/dist/elements/HTMLDiff/index.js.map +1 -1
  238. package/dist/elements/Hamburger/index.js +25 -38
  239. package/dist/elements/Hamburger/index.js.map +1 -1
  240. package/dist/elements/HydrateAuthProvider/index.js +10 -27
  241. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  242. package/dist/elements/IDLabel/index.js +21 -55
  243. package/dist/elements/IDLabel/index.js.map +1 -1
  244. package/dist/elements/LeaveWithoutSaving/index.js +63 -140
  245. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  246. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +111 -129
  247. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  248. package/dist/elements/Link/formatUrl.js +53 -56
  249. package/dist/elements/Link/formatUrl.js.map +1 -1
  250. package/dist/elements/Link/index.js +39 -51
  251. package/dist/elements/Link/index.js.map +1 -1
  252. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +17 -17
  253. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  254. package/dist/elements/ListControls/index.js +162 -165
  255. package/dist/elements/ListControls/index.js.map +1 -1
  256. package/dist/elements/ListControls/types.js +2 -1
  257. package/dist/elements/ListControls/types.js.map +1 -1
  258. package/dist/elements/ListDrawer/DrawerContent.js +169 -167
  259. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  260. package/dist/elements/ListDrawer/Provider.js +16 -18
  261. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  262. package/dist/elements/ListDrawer/index.js +125 -228
  263. package/dist/elements/ListDrawer/index.js.map +1 -1
  264. package/dist/elements/ListDrawer/types.js +2 -1
  265. package/dist/elements/ListDrawer/types.js.map +1 -1
  266. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +29 -82
  267. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  268. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +13 -31
  269. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  270. package/dist/elements/ListHeader/DrawerTitleActions/index.js +1 -0
  271. package/dist/elements/ListHeader/DrawerTitleActions/index.js.map +1 -1
  272. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +39 -71
  273. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  274. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +16 -38
  275. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  276. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +97 -161
  277. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  278. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +138 -141
  279. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  280. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  281. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  282. package/dist/elements/ListHeader/index.js +36 -23
  283. package/dist/elements/ListHeader/index.js.map +1 -1
  284. package/dist/elements/ListSelection/index.js +45 -56
  285. package/dist/elements/ListSelection/index.js.map +1 -1
  286. package/dist/elements/LivePreview/Device/index.js +74 -82
  287. package/dist/elements/LivePreview/Device/index.js.map +1 -1
  288. package/dist/elements/LivePreview/DeviceContainer/index.js +23 -47
  289. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  290. package/dist/elements/LivePreview/IFrame/index.js +14 -42
  291. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  292. package/dist/elements/LivePreview/Toggler/index.js +23 -25
  293. package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
  294. package/dist/elements/LivePreview/Toolbar/Controls/index.js +115 -138
  295. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  296. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +56 -90
  297. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  298. package/dist/elements/LivePreview/Toolbar/index.js +50 -82
  299. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  300. package/dist/elements/LivePreview/ToolbarArea/index.js +10 -32
  301. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  302. package/dist/elements/LivePreview/Window/index.js +102 -164
  303. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  304. package/dist/elements/Loading/index.js +73 -141
  305. package/dist/elements/Loading/index.js.map +1 -1
  306. package/dist/elements/LoadingOverlay/index.js +59 -66
  307. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  308. package/dist/elements/LoadingOverlay/reducer.js +27 -29
  309. package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
  310. package/dist/elements/LoadingOverlay/types.js +2 -1
  311. package/dist/elements/LoadingOverlay/types.js.map +1 -1
  312. package/dist/elements/Localizer/LocalizerLabel/index.js +33 -49
  313. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  314. package/dist/elements/Localizer/index.js +64 -114
  315. package/dist/elements/Localizer/index.js.map +1 -1
  316. package/dist/elements/Locked/index.js +24 -57
  317. package/dist/elements/Locked/index.js.map +1 -1
  318. package/dist/elements/Logout/index.js +16 -49
  319. package/dist/elements/Logout/index.js.map +1 -1
  320. package/dist/elements/Modal/index.js +1 -1
  321. package/dist/elements/Modal/index.js.map +1 -1
  322. package/dist/elements/Nav/NavToggler/index.js +28 -78
  323. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  324. package/dist/elements/Nav/context.js +102 -102
  325. package/dist/elements/Nav/context.js.map +1 -1
  326. package/dist/elements/NavGroup/index.js +64 -120
  327. package/dist/elements/NavGroup/index.js.map +1 -1
  328. package/dist/elements/NoListResults/index.js +14 -13
  329. package/dist/elements/NoListResults/index.js.map +1 -1
  330. package/dist/elements/PageControls/GroupByPageControls.js +34 -69
  331. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  332. package/dist/elements/PageControls/index.js +50 -104
  333. package/dist/elements/PageControls/index.js.map +1 -1
  334. package/dist/elements/Pagination/ClickableArrow/index.js +15 -15
  335. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  336. package/dist/elements/Pagination/Page/index.js +14 -15
  337. package/dist/elements/Pagination/Page/index.js.map +1 -1
  338. package/dist/elements/Pagination/Separator/index.js +5 -5
  339. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  340. package/dist/elements/Pagination/index.js +88 -97
  341. package/dist/elements/Pagination/index.js.map +1 -1
  342. package/dist/elements/PerPage/index.js +51 -78
  343. package/dist/elements/PerPage/index.js.map +1 -1
  344. package/dist/elements/PermanentlyDeleteButton/index.js +121 -124
  345. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  346. package/dist/elements/Pill/index.js +71 -116
  347. package/dist/elements/Pill/index.js.map +1 -1
  348. package/dist/elements/PillSelector/index.js +53 -54
  349. package/dist/elements/PillSelector/index.js.map +1 -1
  350. package/dist/elements/Popup/PopupButtonList/index.js +48 -51
  351. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  352. package/dist/elements/Popup/PopupDivider/index.js +5 -4
  353. package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
  354. package/dist/elements/Popup/PopupGroupLabel/index.js +6 -7
  355. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
  356. package/dist/elements/Popup/PopupTrigger/index.js +41 -106
  357. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  358. package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
  359. package/dist/elements/Popup/index.js +171 -168
  360. package/dist/elements/Popup/index.js.map +1 -1
  361. package/dist/elements/PreviewButton/index.js +14 -29
  362. package/dist/elements/PreviewButton/index.js.map +1 -1
  363. package/dist/elements/PreviewSizes/index.js +138 -127
  364. package/dist/elements/PreviewSizes/index.js.map +1 -1
  365. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +109 -109
  366. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  367. package/dist/elements/PublishButton/ScheduleDrawer/index.js +345 -305
  368. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  369. package/dist/elements/PublishButton/ScheduleDrawer/types.js +2 -1
  370. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  371. package/dist/elements/PublishButton/index.js +190 -182
  372. package/dist/elements/PublishButton/index.js.map +1 -1
  373. package/dist/elements/PublishMany/DrawerContent.js +128 -129
  374. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  375. package/dist/elements/PublishMany/index.js +37 -106
  376. package/dist/elements/PublishMany/index.js.map +1 -1
  377. package/dist/elements/QueryPresets/QueryPresetBar/index.js +266 -259
  378. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  379. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +50 -85
  380. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  381. package/dist/elements/QueryPresets/cells/AccessCell/index.js +30 -20
  382. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
  383. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +17 -18
  384. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  385. package/dist/elements/QueryPresets/cells/GroupByCell/index.js +51 -46
  386. package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
  387. package/dist/elements/QueryPresets/cells/WhereCell/index.js +24 -26
  388. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
  389. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +24 -45
  390. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  391. package/dist/elements/QueryPresets/fields/GroupByField/index.js +74 -72
  392. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  393. package/dist/elements/QueryPresets/fields/WhereField/index.js +96 -97
  394. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  395. package/dist/elements/ReactSelect/ClearIndicator/index.js +20 -26
  396. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  397. package/dist/elements/ReactSelect/Control/index.js +31 -40
  398. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  399. package/dist/elements/ReactSelect/DropdownIndicator/index.js +17 -22
  400. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  401. package/dist/elements/ReactSelect/Input/index.js +11 -12
  402. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  403. package/dist/elements/ReactSelect/MultiValue/index.js +39 -125
  404. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  405. package/dist/elements/ReactSelect/MultiValueLabel/index.js +20 -31
  406. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  407. package/dist/elements/ReactSelect/MultiValueRemove/index.js +35 -84
  408. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  409. package/dist/elements/ReactSelect/SingleValue/index.js +13 -13
  410. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  411. package/dist/elements/ReactSelect/ValueContainer/index.js +25 -28
  412. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  413. package/dist/elements/ReactSelect/index.js +180 -195
  414. package/dist/elements/ReactSelect/index.js.map +1 -1
  415. package/dist/elements/ReactSelect/types.js +2 -1
  416. package/dist/elements/ReactSelect/types.js.map +1 -1
  417. package/dist/elements/RelationshipTable/AddNewButton.js +42 -56
  418. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  419. package/dist/elements/RelationshipTable/Pagination.js +15 -46
  420. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  421. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +21 -32
  422. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  423. package/dist/elements/RelationshipTable/index.js +291 -255
  424. package/dist/elements/RelationshipTable/index.js.map +1 -1
  425. package/dist/elements/RenderComponent/index.js +16 -19
  426. package/dist/elements/RenderComponent/index.js.map +1 -1
  427. package/dist/elements/RenderCustomComponent/index.js +3 -5
  428. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  429. package/dist/elements/RenderIfInViewport/index.js +21 -56
  430. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  431. package/dist/elements/RenderServerComponent/index.js +48 -55
  432. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  433. package/dist/elements/RenderTitle/index.js +25 -56
  434. package/dist/elements/RenderTitle/index.js.map +1 -1
  435. package/dist/elements/RestoreButton/index.js +146 -145
  436. package/dist/elements/RestoreButton/index.js.map +1 -1
  437. package/dist/elements/RestoreMany/index.js +147 -165
  438. package/dist/elements/RestoreMany/index.js.map +1 -1
  439. package/dist/elements/SaveButton/index.js +42 -48
  440. package/dist/elements/SaveButton/index.js.map +1 -1
  441. package/dist/elements/SaveDraftButton/index.js +75 -82
  442. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  443. package/dist/elements/SearchBar/index.js +20 -18
  444. package/dist/elements/SearchBar/index.js.map +1 -1
  445. package/dist/elements/SearchFilter/index.js +51 -53
  446. package/dist/elements/SearchFilter/index.js.map +1 -1
  447. package/dist/elements/SearchFilter/types.js +2 -1
  448. package/dist/elements/SearchFilter/types.js.map +1 -1
  449. package/dist/elements/SelectAll/index.js +15 -44
  450. package/dist/elements/SelectAll/index.js.map +1 -1
  451. package/dist/elements/SelectMany/index.js +22 -24
  452. package/dist/elements/SelectMany/index.js.map +1 -1
  453. package/dist/elements/SelectRow/index.js +16 -76
  454. package/dist/elements/SelectRow/index.js.map +1 -1
  455. package/dist/elements/ShimmerEffect/index.js +36 -71
  456. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  457. package/dist/elements/SortColumn/index.js +64 -104
  458. package/dist/elements/SortColumn/index.js.map +1 -1
  459. package/dist/elements/SortComplex/index.js +103 -160
  460. package/dist/elements/SortComplex/index.js.map +1 -1
  461. package/dist/elements/SortHeader/index.js +35 -84
  462. package/dist/elements/SortHeader/index.js.map +1 -1
  463. package/dist/elements/SortRow/index.js +11 -25
  464. package/dist/elements/SortRow/index.js.map +1 -1
  465. package/dist/elements/Status/index.js +157 -155
  466. package/dist/elements/Status/index.js.map +1 -1
  467. package/dist/elements/StayLoggedIn/index.js +32 -74
  468. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  469. package/dist/elements/StepNav/SetStepNav.js +10 -27
  470. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  471. package/dist/elements/StepNav/context.js +11 -32
  472. package/dist/elements/StepNav/context.js.map +1 -1
  473. package/dist/elements/StepNav/index.js +68 -88
  474. package/dist/elements/StepNav/index.js.map +1 -1
  475. package/dist/elements/StepNav/types.js +2 -1
  476. package/dist/elements/StepNav/types.js.map +1 -1
  477. package/dist/elements/StickyToolbar/index.js +5 -7
  478. package/dist/elements/StickyToolbar/index.js.map +1 -1
  479. package/dist/elements/Table/DefaultCell/fields/Array/index.js +7 -26
  480. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  481. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +28 -58
  482. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  483. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +8 -25
  484. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  485. package/dist/elements/Table/DefaultCell/fields/Code/index.js +13 -16
  486. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  487. package/dist/elements/Table/DefaultCell/fields/Date/index.js +17 -40
  488. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  489. package/dist/elements/Table/DefaultCell/fields/File/index.js +39 -41
  490. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  491. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +9 -11
  492. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  493. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +102 -183
  494. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  495. package/dist/elements/Table/DefaultCell/fields/Select/index.js +16 -42
  496. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  497. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +6 -8
  498. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  499. package/dist/elements/Table/DefaultCell/fields/index.js +14 -14
  500. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  501. package/dist/elements/Table/DefaultCell/index.js +91 -147
  502. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  503. package/dist/elements/Table/OrderableRow.js +23 -31
  504. package/dist/elements/Table/OrderableRow.js.map +1 -1
  505. package/dist/elements/Table/OrderableRowDragPreview.js +11 -14
  506. package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
  507. package/dist/elements/Table/OrderableTable.js +167 -162
  508. package/dist/elements/Table/OrderableTable.js.map +1 -1
  509. package/dist/elements/Table/RelationshipProvider/index.js +95 -159
  510. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  511. package/dist/elements/Table/RelationshipProvider/reducer.js +42 -42
  512. package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
  513. package/dist/elements/Table/index.js +45 -43
  514. package/dist/elements/Table/index.js.map +1 -1
  515. package/dist/elements/Thumbnail/createThumbnail.js +52 -51
  516. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  517. package/dist/elements/Thumbnail/index.js +93 -146
  518. package/dist/elements/Thumbnail/index.js.map +1 -1
  519. package/dist/elements/ThumbnailCard/index.js +33 -66
  520. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  521. package/dist/elements/TimezonePicker/index.js +39 -42
  522. package/dist/elements/TimezonePicker/index.js.map +1 -1
  523. package/dist/elements/TimezonePicker/types.js +2 -1
  524. package/dist/elements/TimezonePicker/types.js.map +1 -1
  525. package/dist/elements/Toasts/fieldErrors.js +51 -75
  526. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  527. package/dist/elements/Tooltip/index.js +75 -64
  528. package/dist/elements/Tooltip/index.js.map +1 -1
  529. package/dist/elements/Translation/index.js +31 -38
  530. package/dist/elements/Translation/index.js.map +1 -1
  531. package/dist/elements/TrashBanner/index.js +20 -25
  532. package/dist/elements/TrashBanner/index.js.map +1 -1
  533. package/dist/elements/UnpublishMany/DrawerContent.js +121 -122
  534. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  535. package/dist/elements/UnpublishMany/index.js +37 -106
  536. package/dist/elements/UnpublishMany/index.js.map +1 -1
  537. package/dist/elements/Upload/index.js +476 -476
  538. package/dist/elements/Upload/index.js.map +1 -1
  539. package/dist/elements/ViewDescription/index.js +10 -25
  540. package/dist/elements/ViewDescription/index.js.map +1 -1
  541. package/dist/elements/ViewDescription/types.js.map +1 -1
  542. package/dist/elements/WhereBuilder/Condition/Date/index.js +14 -28
  543. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  544. package/dist/elements/WhereBuilder/Condition/Date/types.js +2 -1
  545. package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
  546. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +69 -74
  547. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  548. package/dist/elements/WhereBuilder/Condition/Number/index.js +63 -127
  549. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  550. package/dist/elements/WhereBuilder/Condition/Number/types.js +2 -1
  551. package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
  552. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +336 -308
  553. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  554. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +83 -67
  555. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
  556. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +2 -1
  557. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  558. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +10 -9
  559. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -1
  560. package/dist/elements/WhereBuilder/Condition/Select/index.js +63 -152
  561. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  562. package/dist/elements/WhereBuilder/Condition/Select/types.js +2 -1
  563. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  564. package/dist/elements/WhereBuilder/Condition/Text/index.js +61 -121
  565. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  566. package/dist/elements/WhereBuilder/Condition/Text/types.js +2 -1
  567. package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
  568. package/dist/elements/WhereBuilder/Condition/index.js +157 -142
  569. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  570. package/dist/elements/WhereBuilder/Condition/types.js +2 -1
  571. package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
  572. package/dist/elements/WhereBuilder/Condition/validOperators.js +32 -33
  573. package/dist/elements/WhereBuilder/Condition/validOperators.js.map +1 -1
  574. package/dist/elements/WhereBuilder/field-types.js +192 -119
  575. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  576. package/dist/elements/WhereBuilder/index.js +201 -193
  577. package/dist/elements/WhereBuilder/index.js.map +1 -1
  578. package/dist/elements/WhereBuilder/types.js +2 -1
  579. package/dist/elements/WhereBuilder/types.js.map +1 -1
  580. package/dist/elements/WindowInfo/index.js +1 -1
  581. package/dist/elements/WindowInfo/index.js.map +1 -1
  582. package/dist/elements/WithServerSideProps/index.js +15 -18
  583. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  584. package/dist/elements/withMergedProps/index.d.ts +1 -1
  585. package/dist/elements/withMergedProps/index.js +22 -26
  586. package/dist/elements/withMergedProps/index.js.map +1 -1
  587. package/dist/exports/client/index.d.ts +0 -2
  588. package/dist/exports/client/index.d.ts.map +1 -1
  589. package/dist/exports/client/index.js +272 -96
  590. package/dist/exports/client/index.js.map +1 -7
  591. package/dist/exports/rsc/index.js +1 -0
  592. package/dist/exports/rsc/index.js.map +1 -1
  593. package/dist/exports/shared/index.js +31 -6
  594. package/dist/exports/shared/index.js.map +1 -7
  595. package/dist/fields/Array/ArrayRow.d.ts +7 -18
  596. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  597. package/dist/fields/Array/ArrayRow.js +73 -96
  598. package/dist/fields/Array/ArrayRow.js.map +1 -1
  599. package/dist/fields/Array/index.d.ts.map +1 -1
  600. package/dist/fields/Array/index.js +412 -401
  601. package/dist/fields/Array/index.js.map +1 -1
  602. package/dist/fields/Blocks/BlockRow.js +112 -195
  603. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  604. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +16 -36
  605. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  606. package/dist/fields/Blocks/BlockSelector/index.js +105 -99
  607. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  608. package/dist/fields/Blocks/BlocksDrawer/index.js +27 -78
  609. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  610. package/dist/fields/Blocks/RowActions.js +36 -104
  611. package/dist/fields/Blocks/RowActions.js.map +1 -1
  612. package/dist/fields/Blocks/SectionTitle/index.js +27 -77
  613. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  614. package/dist/fields/Blocks/index.js +441 -424
  615. package/dist/fields/Blocks/index.js.map +1 -1
  616. package/dist/fields/Checkbox/Input.js +52 -97
  617. package/dist/fields/Checkbox/Input.js.map +1 -1
  618. package/dist/fields/Checkbox/index.js +82 -98
  619. package/dist/fields/Checkbox/index.js.map +1 -1
  620. package/dist/fields/Code/index.js +109 -113
  621. package/dist/fields/Code/index.js.map +1 -1
  622. package/dist/fields/Collapsible/index.js +131 -133
  623. package/dist/fields/Collapsible/index.js.map +1 -1
  624. package/dist/fields/ConfirmPassword/index.js +46 -82
  625. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  626. package/dist/fields/DateTime/index.js +176 -170
  627. package/dist/fields/DateTime/index.js.map +1 -1
  628. package/dist/fields/Email/index.js +74 -85
  629. package/dist/fields/Email/index.js.map +1 -1
  630. package/dist/fields/FieldDescription/index.js +15 -42
  631. package/dist/fields/FieldDescription/index.js.map +1 -1
  632. package/dist/fields/FieldError/index.js +16 -56
  633. package/dist/fields/FieldError/index.js.map +1 -1
  634. package/dist/fields/FieldLabel/index.js +30 -44
  635. package/dist/fields/FieldLabel/index.js.map +1 -1
  636. package/dist/fields/Group/index.js +96 -100
  637. package/dist/fields/Group/index.js.map +1 -1
  638. package/dist/fields/Group/provider.js +8 -11
  639. package/dist/fields/Group/provider.js.map +1 -1
  640. package/dist/fields/Hidden/index.js +22 -66
  641. package/dist/fields/Hidden/index.js.map +1 -1
  642. package/dist/fields/JSON/index.js +148 -142
  643. package/dist/fields/JSON/index.js.map +1 -1
  644. package/dist/fields/Join/index.js +180 -187
  645. package/dist/fields/Join/index.js.map +1 -1
  646. package/dist/fields/Number/index.js +166 -168
  647. package/dist/fields/Number/index.js.map +1 -1
  648. package/dist/fields/Password/index.js +74 -99
  649. package/dist/fields/Password/index.js.map +1 -1
  650. package/dist/fields/Password/input.js +66 -120
  651. package/dist/fields/Password/input.js.map +1 -1
  652. package/dist/fields/Password/types.js +2 -1
  653. package/dist/fields/Password/types.js.map +1 -1
  654. package/dist/fields/Point/index.js +133 -125
  655. package/dist/fields/Point/index.js.map +1 -1
  656. package/dist/fields/RadioGroup/Radio/index.js +34 -79
  657. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  658. package/dist/fields/RadioGroup/index.js +100 -112
  659. package/dist/fields/RadioGroup/index.js.map +1 -1
  660. package/dist/fields/Relationship/Input.js +747 -725
  661. package/dist/fields/Relationship/Input.js.map +1 -1
  662. package/dist/fields/Relationship/createRelationMap.js +31 -33
  663. package/dist/fields/Relationship/createRelationMap.js.map +1 -1
  664. package/dist/fields/Relationship/findOptionsByValue.js +28 -32
  665. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  666. package/dist/fields/Relationship/index.js +147 -159
  667. package/dist/fields/Relationship/index.js.map +1 -1
  668. package/dist/fields/Relationship/optionsReducer.js +144 -139
  669. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  670. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +60 -81
  671. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  672. package/dist/fields/Relationship/select-components/SingleValue/index.js +56 -114
  673. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  674. package/dist/fields/Relationship/types.js +2 -1
  675. package/dist/fields/Relationship/types.js.map +1 -1
  676. package/dist/fields/RichText/index.js +3 -3
  677. package/dist/fields/RichText/index.js.map +1 -1
  678. package/dist/fields/Row/index.js +24 -34
  679. package/dist/fields/Row/index.js.map +1 -1
  680. package/dist/fields/Row/provider.js +8 -11
  681. package/dist/fields/Row/provider.js.map +1 -1
  682. package/dist/fields/Select/Input.js +76 -163
  683. package/dist/fields/Select/Input.js.map +1 -1
  684. package/dist/fields/Select/index.js +84 -107
  685. package/dist/fields/Select/index.js.map +1 -1
  686. package/dist/fields/Slug/index.js +77 -132
  687. package/dist/fields/Slug/index.js.map +1 -1
  688. package/dist/fields/Tabs/Tab/index.js +36 -58
  689. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  690. package/dist/fields/Tabs/index.js +199 -443
  691. package/dist/fields/Tabs/index.js.map +1 -1
  692. package/dist/fields/Tabs/provider.js +8 -11
  693. package/dist/fields/Tabs/provider.js.map +1 -1
  694. package/dist/fields/Text/Input.js +127 -189
  695. package/dist/fields/Text/Input.js.map +1 -1
  696. package/dist/fields/Text/index.js +101 -125
  697. package/dist/fields/Text/index.js.map +1 -1
  698. package/dist/fields/Text/types.js +2 -1
  699. package/dist/fields/Text/types.js.map +1 -1
  700. package/dist/fields/Textarea/Input.js +62 -113
  701. package/dist/fields/Textarea/Input.js.map +1 -1
  702. package/dist/fields/Textarea/index.js +56 -87
  703. package/dist/fields/Textarea/index.js.map +1 -1
  704. package/dist/fields/Textarea/types.js +2 -1
  705. package/dist/fields/Textarea/types.js.map +1 -1
  706. package/dist/fields/UI/index.js +3 -3
  707. package/dist/fields/UI/index.js.map +1 -1
  708. package/dist/fields/Upload/HasMany/index.js +107 -184
  709. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  710. package/dist/fields/Upload/HasOne/index.js +49 -58
  711. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  712. package/dist/fields/Upload/Input.js +653 -561
  713. package/dist/fields/Upload/Input.js.map +1 -1
  714. package/dist/fields/Upload/RelationshipContent/index.js +91 -142
  715. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  716. package/dist/fields/Upload/UploadCard/index.js +10 -9
  717. package/dist/fields/Upload/UploadCard/index.js.map +1 -1
  718. package/dist/fields/Upload/index.js +70 -95
  719. package/dist/fields/Upload/index.js.map +1 -1
  720. package/dist/fields/Upload/types.js +2 -1
  721. package/dist/fields/Upload/types.js.map +1 -1
  722. package/dist/fields/index.js +31 -31
  723. package/dist/fields/index.js.map +1 -1
  724. package/dist/fields/mergeFieldStyles.js +13 -12
  725. package/dist/fields/mergeFieldStyles.js.map +1 -1
  726. package/dist/fields/shared/index.js +8 -16
  727. package/dist/fields/shared/index.js.map +1 -1
  728. package/dist/forms/Form/context.js +17 -24
  729. package/dist/forms/Form/context.js.map +1 -1
  730. package/dist/forms/Form/createNestedClientFieldPath.js +11 -11
  731. package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
  732. package/dist/forms/Form/errorMessages.js +2 -2
  733. package/dist/forms/Form/errorMessages.js.map +1 -1
  734. package/dist/forms/Form/fieldReducer.js +376 -411
  735. package/dist/forms/Form/fieldReducer.js.map +1 -1
  736. package/dist/forms/Form/index.js +692 -681
  737. package/dist/forms/Form/index.js.map +1 -1
  738. package/dist/forms/Form/initContextState.js +38 -38
  739. package/dist/forms/Form/initContextState.js.map +1 -1
  740. package/dist/forms/Form/mergeServerFormState.js +84 -97
  741. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  742. package/dist/forms/Form/reduceToSerializableFields.js +20 -17
  743. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  744. package/dist/forms/Form/rowHelpers.js +27 -34
  745. package/dist/forms/Form/rowHelpers.js.map +1 -1
  746. package/dist/forms/Form/rows.js +34 -34
  747. package/dist/forms/Form/rows.js.map +1 -1
  748. package/dist/forms/Form/types.js +2 -1
  749. package/dist/forms/Form/types.js.map +1 -1
  750. package/dist/forms/NullifyField/index.js +50 -94
  751. package/dist/forms/NullifyField/index.js.map +1 -1
  752. package/dist/forms/RenderFields/RenderField.js +142 -256
  753. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  754. package/dist/forms/RenderFields/context.js +9 -9
  755. package/dist/forms/RenderFields/context.js.map +1 -1
  756. package/dist/forms/RenderFields/index.js +63 -114
  757. package/dist/forms/RenderFields/index.js.map +1 -1
  758. package/dist/forms/RenderFields/types.js +2 -1
  759. package/dist/forms/RenderFields/types.js.map +1 -1
  760. package/dist/forms/RowLabel/Context/index.js +25 -28
  761. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  762. package/dist/forms/RowLabel/index.js +20 -23
  763. package/dist/forms/RowLabel/index.js.map +1 -1
  764. package/dist/forms/RowLabel/types.js +2 -1
  765. package/dist/forms/RowLabel/types.js.map +1 -1
  766. package/dist/forms/Submit/index.js +23 -34
  767. package/dist/forms/Submit/index.js.map +1 -1
  768. package/dist/forms/WatchChildErrors/buildPathSegments.js +29 -29
  769. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  770. package/dist/forms/WatchChildErrors/index.js +36 -66
  771. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  772. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +634 -683
  773. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  774. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +14 -22
  775. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  776. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +17 -26
  777. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  778. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +186 -198
  779. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  780. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +61 -54
  781. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
  782. package/dist/forms/fieldSchemasToFormState/index.js +58 -79
  783. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  784. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +12 -16
  785. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  786. package/dist/forms/fieldSchemasToFormState/iterateFields.js +79 -116
  787. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  788. package/dist/forms/fieldSchemasToFormState/renderField.js +260 -273
  789. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  790. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +69 -75
  791. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  792. package/dist/forms/fieldSchemasToFormState/types.js +2 -1
  793. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  794. package/dist/forms/useField/index.js +179 -292
  795. package/dist/forms/useField/index.js.map +1 -1
  796. package/dist/forms/useField/types.js +2 -1
  797. package/dist/forms/useField/types.js.map +1 -1
  798. package/dist/forms/withCondition/WatchCondition.js +9 -27
  799. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  800. package/dist/forms/withCondition/index.js +12 -14
  801. package/dist/forms/withCondition/index.js.map +1 -1
  802. package/dist/graphics/Account/Default/index.js +29 -21
  803. package/dist/graphics/Account/Default/index.js.map +1 -1
  804. package/dist/graphics/Account/Gravatar/index.js +19 -32
  805. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  806. package/dist/graphics/Account/index.js +15 -50
  807. package/dist/graphics/Account/index.js.map +1 -1
  808. package/dist/graphics/DefaultBlockImage/index.js +72 -61
  809. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  810. package/dist/graphics/File/index.js +20 -16
  811. package/dist/graphics/File/index.js.map +1 -1
  812. package/dist/graphics/Icon/index.js +20 -18
  813. package/dist/graphics/Icon/index.js.map +1 -1
  814. package/dist/graphics/Logo/index.js +55 -38
  815. package/dist/graphics/Logo/index.js.map +1 -1
  816. package/dist/hooks/useClickOutside.js +19 -15
  817. package/dist/hooks/useClickOutside.js.map +1 -1
  818. package/dist/hooks/useControllableState.js +16 -34
  819. package/dist/hooks/useControllableState.js.map +1 -1
  820. package/dist/hooks/useDebounce.js +15 -26
  821. package/dist/hooks/useDebounce.js.map +1 -1
  822. package/dist/hooks/useDebouncedCallback.js +15 -23
  823. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  824. package/dist/hooks/useDebouncedEffect.js +18 -53
  825. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  826. package/dist/hooks/useDelay.js +27 -52
  827. package/dist/hooks/useDelay.js.map +1 -1
  828. package/dist/hooks/useDelayedRender.js +40 -76
  829. package/dist/hooks/useDelayedRender.js.map +1 -1
  830. package/dist/hooks/useEffectEvent.js +12 -33
  831. package/dist/hooks/useEffectEvent.js.map +1 -1
  832. package/dist/hooks/useHotkey.js +96 -110
  833. package/dist/hooks/useHotkey.js.map +1 -1
  834. package/dist/hooks/useIntersect.js +28 -59
  835. package/dist/hooks/useIntersect.js.map +1 -1
  836. package/dist/hooks/usePayloadAPI.js +79 -172
  837. package/dist/hooks/usePayloadAPI.js.map +1 -1
  838. package/dist/hooks/usePopupWindow.js +91 -133
  839. package/dist/hooks/usePopupWindow.js.map +1 -1
  840. package/dist/hooks/useQueue.js +40 -40
  841. package/dist/hooks/useQueue.js.map +1 -1
  842. package/dist/hooks/useRelatedCollections.js +15 -27
  843. package/dist/hooks/useRelatedCollections.js.map +1 -1
  844. package/dist/hooks/useResize.js +41 -70
  845. package/dist/hooks/useResize.js.map +1 -1
  846. package/dist/hooks/useThrottledEffect.js +17 -51
  847. package/dist/hooks/useThrottledEffect.js.map +1 -1
  848. package/dist/hooks/useThrottledValue.js +16 -13
  849. package/dist/hooks/useThrottledValue.js.map +1 -1
  850. package/dist/hooks/useUseAsTitle.js +7 -27
  851. package/dist/hooks/useUseAsTitle.js.map +1 -1
  852. package/dist/icons/Calendar/index.js +11 -10
  853. package/dist/icons/Calendar/index.js.map +1 -1
  854. package/dist/icons/Check/index.js +11 -10
  855. package/dist/icons/Check/index.js.map +1 -1
  856. package/dist/icons/Chevron/index.js +21 -21
  857. package/dist/icons/Chevron/index.js.map +1 -1
  858. package/dist/icons/CloseMenu/index.js +11 -10
  859. package/dist/icons/CloseMenu/index.js.map +1 -1
  860. package/dist/icons/CodeBlock/index.js +13 -12
  861. package/dist/icons/CodeBlock/index.js.map +1 -1
  862. package/dist/icons/Copy/index.js +15 -16
  863. package/dist/icons/Copy/index.js.map +1 -1
  864. package/dist/icons/Document/index.js +16 -15
  865. package/dist/icons/Document/index.js.map +1 -1
  866. package/dist/icons/Dots/index.js +15 -10
  867. package/dist/icons/Dots/index.js.map +1 -1
  868. package/dist/icons/DragHandle/index.js +41 -32
  869. package/dist/icons/DragHandle/index.js.map +1 -1
  870. package/dist/icons/Edit/index.js +14 -12
  871. package/dist/icons/Edit/index.js.map +1 -1
  872. package/dist/icons/ExternalLink/index.js +16 -14
  873. package/dist/icons/ExternalLink/index.js.map +1 -1
  874. package/dist/icons/Eye/index.js +28 -24
  875. package/dist/icons/Eye/index.js.map +1 -1
  876. package/dist/icons/Folder/index.js +17 -15
  877. package/dist/icons/Folder/index.js.map +1 -1
  878. package/dist/icons/Gear/index.js +21 -20
  879. package/dist/icons/Gear/index.js.map +1 -1
  880. package/dist/icons/GridView/index.js +36 -30
  881. package/dist/icons/GridView/index.js.map +1 -1
  882. package/dist/icons/Line/index.js +14 -13
  883. package/dist/icons/Line/index.js.map +1 -1
  884. package/dist/icons/Link/index.js +16 -15
  885. package/dist/icons/Link/index.js.map +1 -1
  886. package/dist/icons/ListView/index.js +16 -15
  887. package/dist/icons/ListView/index.js.map +1 -1
  888. package/dist/icons/Lock/index.js +28 -23
  889. package/dist/icons/Lock/index.js.map +1 -1
  890. package/dist/icons/LogOut/index.js +14 -13
  891. package/dist/icons/LogOut/index.js.map +1 -1
  892. package/dist/icons/Menu/index.js +14 -13
  893. package/dist/icons/Menu/index.js.map +1 -1
  894. package/dist/icons/MinimizeMaximize/index.js +20 -18
  895. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  896. package/dist/icons/More/index.js +26 -20
  897. package/dist/icons/More/index.js.map +1 -1
  898. package/dist/icons/MoveFolder/index.js +37 -33
  899. package/dist/icons/MoveFolder/index.js.map +1 -1
  900. package/dist/icons/People/index.js +19 -16
  901. package/dist/icons/People/index.js.map +1 -1
  902. package/dist/icons/Plus/index.js +13 -12
  903. package/dist/icons/Plus/index.js.map +1 -1
  904. package/dist/icons/Search/index.js +12 -11
  905. package/dist/icons/Search/index.js.map +1 -1
  906. package/dist/icons/Sort/index.js +31 -34
  907. package/dist/icons/Sort/index.js.map +1 -1
  908. package/dist/icons/Swap/index.js +11 -10
  909. package/dist/icons/Swap/index.js.map +1 -1
  910. package/dist/icons/ThreeDots/index.js +10 -7
  911. package/dist/icons/ThreeDots/index.js.map +1 -1
  912. package/dist/icons/Trash/index.js +19 -17
  913. package/dist/icons/Trash/index.js.map +1 -1
  914. package/dist/icons/X/index.js +16 -14
  915. package/dist/icons/X/index.js.map +1 -1
  916. package/dist/providers/Actions/index.js +15 -31
  917. package/dist/providers/Actions/index.js.map +1 -1
  918. package/dist/providers/Auth/index.js +245 -227
  919. package/dist/providers/Auth/index.js.map +1 -1
  920. package/dist/providers/ClickOutside/index.js +30 -34
  921. package/dist/providers/ClickOutside/index.js.map +1 -1
  922. package/dist/providers/ClientFunction/index.js +54 -103
  923. package/dist/providers/ClientFunction/index.js.map +1 -1
  924. package/dist/providers/Config/index.js +73 -90
  925. package/dist/providers/Config/index.js.map +1 -1
  926. package/dist/providers/DocumentEvents/index.js +13 -28
  927. package/dist/providers/DocumentEvents/index.js.map +1 -1
  928. package/dist/providers/DocumentInfo/index.js +316 -325
  929. package/dist/providers/DocumentInfo/index.js.map +1 -1
  930. package/dist/providers/DocumentInfo/types.js +1 -0
  931. package/dist/providers/DocumentInfo/types.js.map +1 -1
  932. package/dist/providers/DocumentInfo/useGetDocPermissions.js +72 -70
  933. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  934. package/dist/providers/DocumentTitle/context.js.map +1 -1
  935. package/dist/providers/DocumentTitle/index.js +46 -54
  936. package/dist/providers/DocumentTitle/index.js.map +1 -1
  937. package/dist/providers/EditDepth/index.js +9 -23
  938. package/dist/providers/EditDepth/index.js.map +1 -1
  939. package/dist/providers/EntityVisibility/index.js +20 -46
  940. package/dist/providers/EntityVisibility/index.js.map +1 -1
  941. package/dist/providers/Folders/groupItemIDsByRelation.js +8 -7
  942. package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -1
  943. package/dist/providers/Folders/index.js +648 -595
  944. package/dist/providers/Folders/index.js.map +1 -1
  945. package/dist/providers/ListQuery/context.js +3 -2
  946. package/dist/providers/ListQuery/context.js.map +1 -1
  947. package/dist/providers/ListQuery/index.js +145 -137
  948. package/dist/providers/ListQuery/index.js.map +1 -1
  949. package/dist/providers/ListQuery/mergeQuery.js +49 -31
  950. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  951. package/dist/providers/ListQuery/sanitizeQuery.js +24 -23
  952. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  953. package/dist/providers/ListQuery/types.js +2 -1
  954. package/dist/providers/ListQuery/types.js.map +1 -1
  955. package/dist/providers/LivePreview/collisionDetection.js +21 -24
  956. package/dist/providers/LivePreview/collisionDetection.js.map +1 -1
  957. package/dist/providers/LivePreview/context.js +49 -54
  958. package/dist/providers/LivePreview/context.js.map +1 -1
  959. package/dist/providers/LivePreview/index.js +213 -204
  960. package/dist/providers/LivePreview/index.js.map +1 -1
  961. package/dist/providers/LivePreview/sizeReducer.js +19 -18
  962. package/dist/providers/LivePreview/sizeReducer.js.map +1 -1
  963. package/dist/providers/Locale/index.js +76 -144
  964. package/dist/providers/Locale/index.js.map +1 -1
  965. package/dist/providers/Operation/index.js +7 -10
  966. package/dist/providers/Operation/index.js.map +1 -1
  967. package/dist/providers/Params/index.js +8 -24
  968. package/dist/providers/Params/index.js.map +1 -1
  969. package/dist/providers/Preferences/index.js +111 -111
  970. package/dist/providers/Preferences/index.js.map +1 -1
  971. package/dist/providers/Root/index.js +76 -106
  972. package/dist/providers/Root/index.js.map +1 -1
  973. package/dist/providers/RouteCache/index.js +48 -102
  974. package/dist/providers/RouteCache/index.js.map +1 -1
  975. package/dist/providers/RouteTransition/ProgressBar/index.js +52 -79
  976. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  977. package/dist/providers/RouteTransition/index.js +58 -87
  978. package/dist/providers/RouteTransition/index.js.map +1 -1
  979. package/dist/providers/ScrollInfo/index.js +1 -1
  980. package/dist/providers/ScrollInfo/index.js.map +1 -1
  981. package/dist/providers/SearchParams/index.js +30 -33
  982. package/dist/providers/SearchParams/index.js.map +1 -1
  983. package/dist/providers/Selection/index.js +193 -182
  984. package/dist/providers/Selection/index.js.map +1 -1
  985. package/dist/providers/ServerFunctions/index.js +191 -196
  986. package/dist/providers/ServerFunctions/index.js.map +1 -1
  987. package/dist/providers/TableColumns/RenderDefaultCell/index.js +23 -60
  988. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  989. package/dist/providers/TableColumns/buildColumnState/filterFields.js +32 -32
  990. package/dist/providers/TableColumns/buildColumnState/filterFields.js.map +1 -1
  991. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js +50 -52
  992. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js.map +1 -1
  993. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js +3 -2
  994. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js.map +1 -1
  995. package/dist/providers/TableColumns/buildColumnState/index.js +125 -142
  996. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  997. package/dist/providers/TableColumns/buildColumnState/isColumnActive.js +10 -14
  998. package/dist/providers/TableColumns/buildColumnState/isColumnActive.js.map +1 -1
  999. package/dist/providers/TableColumns/buildColumnState/renderCell.js +139 -149
  1000. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  1001. package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js +16 -15
  1002. package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js.map +1 -1
  1003. package/dist/providers/TableColumns/context.js +2 -1
  1004. package/dist/providers/TableColumns/context.js.map +1 -1
  1005. package/dist/providers/TableColumns/getInitialColumns.js +42 -28
  1006. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
  1007. package/dist/providers/TableColumns/index.js +82 -83
  1008. package/dist/providers/TableColumns/index.js.map +1 -1
  1009. package/dist/providers/TableColumns/types.js +2 -1
  1010. package/dist/providers/TableColumns/types.js.map +1 -1
  1011. package/dist/providers/Theme/index.js +63 -102
  1012. package/dist/providers/Theme/index.js.map +1 -1
  1013. package/dist/providers/ToastContainer/icons/Error.js +21 -18
  1014. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  1015. package/dist/providers/ToastContainer/icons/Info.js +21 -18
  1016. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  1017. package/dist/providers/ToastContainer/icons/Success.js +21 -18
  1018. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  1019. package/dist/providers/ToastContainer/icons/Warning.js +21 -18
  1020. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  1021. package/dist/providers/ToastContainer/index.js +35 -46
  1022. package/dist/providers/ToastContainer/index.js.map +1 -1
  1023. package/dist/providers/Translation/index.js +60 -110
  1024. package/dist/providers/Translation/index.js.map +1 -1
  1025. package/dist/providers/UploadControls/index.js +22 -38
  1026. package/dist/providers/UploadControls/index.js.map +1 -1
  1027. package/dist/providers/UploadEdits/index.js +25 -71
  1028. package/dist/providers/UploadEdits/index.js.map +1 -1
  1029. package/dist/providers/UploadHandlers/index.js +24 -63
  1030. package/dist/providers/UploadHandlers/index.js.map +1 -1
  1031. package/dist/providers/WindowInfo/index.js +5 -9
  1032. package/dist/providers/WindowInfo/index.js.map +1 -1
  1033. package/dist/styles.css +0 -1
  1034. package/dist/utilities/abortAndIgnore.js +17 -17
  1035. package/dist/utilities/abortAndIgnore.js.map +1 -1
  1036. package/dist/utilities/api.js +78 -77
  1037. package/dist/utilities/api.js.map +1 -1
  1038. package/dist/utilities/buildClientFieldSchemaMap/index.js +61 -65
  1039. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
  1040. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +142 -154
  1041. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  1042. package/dist/utilities/buildFieldSchemaMap/index.js +59 -61
  1043. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  1044. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +110 -122
  1045. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  1046. package/dist/utilities/buildFormState.js +151 -186
  1047. package/dist/utilities/buildFormState.js.map +1 -1
  1048. package/dist/utilities/buildTableState.js +145 -168
  1049. package/dist/utilities/buildTableState.js.map +1 -1
  1050. package/dist/utilities/canUseDOM.js +1 -0
  1051. package/dist/utilities/canUseDOM.js.map +1 -1
  1052. package/dist/utilities/combineFieldLabel.js +28 -25
  1053. package/dist/utilities/combineFieldLabel.js.map +1 -1
  1054. package/dist/utilities/copyDataFromLocale.js +198 -210
  1055. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  1056. package/dist/utilities/dateLocales.js +28 -27
  1057. package/dist/utilities/dateLocales.js.map +1 -1
  1058. package/dist/utilities/deepMerge.js +14 -13
  1059. package/dist/utilities/deepMerge.js.map +1 -1
  1060. package/dist/utilities/fetchPreferences.js.map +1 -1
  1061. package/dist/utilities/filterOutUploadFields.js +17 -4
  1062. package/dist/utilities/filterOutUploadFields.js.map +1 -1
  1063. package/dist/utilities/findLocaleFromCode.js +6 -5
  1064. package/dist/utilities/findLocaleFromCode.js.map +1 -1
  1065. package/dist/utilities/formatAbsoluteURL.js +8 -8
  1066. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  1067. package/dist/utilities/formatAdminURL.js +2 -1
  1068. package/dist/utilities/formatAdminURL.js.map +1 -1
  1069. package/dist/utilities/formatDocTitle/formatDateTitle.js +20 -27
  1070. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  1071. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +14 -13
  1072. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  1073. package/dist/utilities/formatDocTitle/formatRelationshipTitle.js +14 -13
  1074. package/dist/utilities/formatDocTitle/formatRelationshipTitle.js.map +1 -1
  1075. package/dist/utilities/formatDocTitle/index.js +38 -44
  1076. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  1077. package/dist/utilities/formatFields.js +2 -1
  1078. package/dist/utilities/formatFields.js.map +1 -1
  1079. package/dist/utilities/generateFieldID.js +6 -5
  1080. package/dist/utilities/generateFieldID.js.map +1 -1
  1081. package/dist/utilities/getClientConfig.js +25 -29
  1082. package/dist/utilities/getClientConfig.js.map +1 -1
  1083. package/dist/utilities/getClientSchemaMap.js +24 -32
  1084. package/dist/utilities/getClientSchemaMap.js.map +1 -1
  1085. package/dist/utilities/getColumns.js +29 -35
  1086. package/dist/utilities/getColumns.js.map +1 -1
  1087. package/dist/utilities/getDisplayedFieldValue.js +15 -15
  1088. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  1089. package/dist/utilities/getFolderResultsComponentAndData.js +115 -119
  1090. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  1091. package/dist/utilities/getOffsetTop.js +14 -13
  1092. package/dist/utilities/getOffsetTop.js.map +1 -1
  1093. package/dist/utilities/getRequestLanguage.js +5 -8
  1094. package/dist/utilities/getRequestLanguage.js.map +1 -1
  1095. package/dist/utilities/getSchemaMap.js +22 -28
  1096. package/dist/utilities/getSchemaMap.js.map +1 -1
  1097. package/dist/utilities/getSupportedMonacoLocale.js +14 -13
  1098. package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
  1099. package/dist/utilities/groupNavItems.js +53 -49
  1100. package/dist/utilities/groupNavItems.js.map +1 -1
  1101. package/dist/utilities/handleBackToDashboard.js +7 -9
  1102. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  1103. package/dist/utilities/handleFormStateLocking.js +125 -119
  1104. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  1105. package/dist/utilities/handleGoBack.js +7 -10
  1106. package/dist/utilities/handleGoBack.js.map +1 -1
  1107. package/dist/utilities/handleLivePreview.js +59 -76
  1108. package/dist/utilities/handleLivePreview.js.map +1 -1
  1109. package/dist/utilities/handlePreview.js +41 -52
  1110. package/dist/utilities/handlePreview.js.map +1 -1
  1111. package/dist/utilities/handleTakeOver.js +28 -39
  1112. package/dist/utilities/handleTakeOver.js.map +1 -1
  1113. package/dist/utilities/hasOptionLabelJSXElement.js +9 -11
  1114. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -1
  1115. package/dist/utilities/hasSavePermission.js +10 -14
  1116. package/dist/utilities/hasSavePermission.js.map +1 -1
  1117. package/dist/utilities/isClientUserObject.js +3 -2
  1118. package/dist/utilities/isClientUserObject.js.map +1 -1
  1119. package/dist/utilities/isEditing.js +2 -5
  1120. package/dist/utilities/isEditing.js.map +1 -1
  1121. package/dist/utilities/isURLAllowed.js +30 -29
  1122. package/dist/utilities/isURLAllowed.js.map +1 -1
  1123. package/dist/utilities/isValidReactElement.js +3 -3
  1124. package/dist/utilities/isValidReactElement.js.map +1 -1
  1125. package/dist/utilities/normalizeRelationshipValue.js +29 -28
  1126. package/dist/utilities/normalizeRelationshipValue.js.map +1 -1
  1127. package/dist/utilities/normalizeRelationshipValue.spec.js +407 -368
  1128. package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
  1129. package/dist/utilities/parseSearchParams.js +7 -7
  1130. package/dist/utilities/parseSearchParams.js.map +1 -1
  1131. package/dist/utilities/reduceFieldsToOptions.js +145 -154
  1132. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  1133. package/dist/utilities/reduceFieldsToValuesWithValidation.js +20 -20
  1134. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  1135. package/dist/utilities/removeUndefined.js +2 -1
  1136. package/dist/utilities/removeUndefined.js.map +1 -1
  1137. package/dist/utilities/renderTable.js +180 -193
  1138. package/dist/utilities/renderTable.js.map +1 -1
  1139. package/dist/utilities/resolveFilterOptions.js +27 -26
  1140. package/dist/utilities/resolveFilterOptions.js.map +1 -1
  1141. package/dist/utilities/sanitizeFilterOptionsQuery.js +16 -15
  1142. package/dist/utilities/sanitizeFilterOptionsQuery.js.map +1 -1
  1143. package/dist/utilities/sanitizeID.js +8 -7
  1144. package/dist/utilities/sanitizeID.js.map +1 -1
  1145. package/dist/utilities/schedulePublishHandler.js +45 -57
  1146. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  1147. package/dist/utilities/scrollToID.js +10 -9
  1148. package/dist/utilities/scrollToID.js.map +1 -1
  1149. package/dist/utilities/setsAreEqual.js +3 -2
  1150. package/dist/utilities/setsAreEqual.js.map +1 -1
  1151. package/dist/utilities/traverseForLocalizedFields.js +36 -35
  1152. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  1153. package/dist/utilities/upsertPreferences.js +74 -75
  1154. package/dist/utilities/upsertPreferences.js.map +1 -1
  1155. package/dist/views/BrowseByFolder/index.js +251 -322
  1156. package/dist/views/BrowseByFolder/index.js.map +1 -1
  1157. package/dist/views/CollectionFolder/ListSelection/index.js +116 -157
  1158. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  1159. package/dist/views/CollectionFolder/index.js +257 -280
  1160. package/dist/views/CollectionFolder/index.js.map +1 -1
  1161. package/dist/views/Edit/Auth/APIKey.js +139 -122
  1162. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  1163. package/dist/views/Edit/Auth/index.js +247 -320
  1164. package/dist/views/Edit/Auth/index.js.map +1 -1
  1165. package/dist/views/Edit/Auth/types.js +2 -1
  1166. package/dist/views/Edit/Auth/types.js.map +1 -1
  1167. package/dist/views/Edit/SetDocumentStepNav/index.js +83 -130
  1168. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  1169. package/dist/views/Edit/SetDocumentTitle/index.js +30 -77
  1170. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  1171. package/dist/views/Edit/index.js +494 -493
  1172. package/dist/views/Edit/index.js.map +1 -1
  1173. package/dist/views/Edit/types.js +2 -1
  1174. package/dist/views/Edit/types.js.map +1 -1
  1175. package/dist/views/List/GroupByHeader/index.js +22 -23
  1176. package/dist/views/List/GroupByHeader/index.js.map +1 -1
  1177. package/dist/views/List/ListHeader/index.js +68 -78
  1178. package/dist/views/List/ListHeader/index.js.map +1 -1
  1179. package/dist/views/List/ListSelection/index.js +69 -109
  1180. package/dist/views/List/ListSelection/index.js.map +1 -1
  1181. package/dist/views/List/index.js +209 -209
  1182. package/dist/views/List/index.js.map +1 -1
  1183. package/dist/views/List/types.js +2 -1
  1184. package/dist/views/List/types.js.map +1 -1
  1185. package/package.json +5 -5
  1186. package/dist/exports/client/CodeEditor-QOURTFMT.js +0 -14
  1187. package/dist/exports/client/CodeEditor-QOURTFMT.js.map +0 -7
  1188. package/dist/exports/client/DatePicker-VMLA35FO.js +0 -14
  1189. package/dist/exports/client/DatePicker-VMLA35FO.js.map +0 -7
  1190. package/dist/exports/client/chunk-53XJ3K67.js +0 -27
  1191. package/dist/exports/client/chunk-53XJ3K67.js.map +0 -7
  1192. package/dist/exports/client/chunk-5LKBKI4T.js +0 -14
  1193. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -7
  1194. package/dist/exports/client/chunk-7V3NHDV6.js +0 -29
  1195. package/dist/exports/client/chunk-7V3NHDV6.js.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","hasDraftValidationEnabled","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueue","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","baseClass","Form","props","id","collectionSlug","docConfig","docPermissions","getDocPreferences","globalSlug","validateDrafts","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","setSubmitted","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","_setBackgroundProcessing","backgroundProcessingRef","modifiedWhileProcessingRef","setBackgroundProcessing","current","modified","_setModified","setModified","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","formState","dispatchFields","fields","prevFormState","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","acceptValues","actionArg","context","disableFormWhileProcessing","disableSuccessStatusFromArgs","methodToUse","overrides","overridesFromArgs","skipValidation","disableToast","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","serializableFormState","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","prevStateRef","serverState","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","dataFromArgs","file","upload","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","newState","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","moveFieldRow","moveFromIndex","moveToIndex","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","optimize","sanitize","handleLocaleChange","classes","filter","join","executeOnChange","onChangeFn","DocumentFormContextComponent","Fragment","documentFormContextProps","El","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n hasDraftValidationEnabled,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n Submit,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueue } from '../../hooks/useQueue.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docConfig, docPermissions, getDocPreferences, globalSlug } =\n useDocumentInfo()\n\n const validateDrafts = hasDraftValidationEnabled(docConfig)\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { queueTask } = useQueue()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n\n const [processing, setProcessing] = useState(false)\n\n /**\n * Determines whether the form is processing asynchronously in the background, e.g. autosave is running.\n * Useful to determine whether to disable the form or queue other processes while in flight, e.g. disable manual submits while an autosave is running.\n */\n const [backgroundProcessing, _setBackgroundProcessing] = useState(false)\n\n /**\n * A ref that can be read within the `setModified` interceptor.\n * Dependents of this state can read it immediately without needing to wait for a render cycle.\n */\n const backgroundProcessingRef = useRef(backgroundProcessing)\n\n /**\n * Flag to track if the form was modified _during a submission_, e.g. while autosave is running.\n * Useful in order to avoid resetting `modified` to false wrongfully after a submit.\n * For example, if the user modifies a field while the a background process (autosave) is running,\n * we need to ensure that after the submit completes, the `modified` state remains true.\n */\n const modifiedWhileProcessingRef = useRef(false)\n\n /**\n * Intercept the `setBackgroundProcessing` method to keep the ref in sync.\n * See the `backgroundProcessingRef` for more details.\n */\n const setBackgroundProcessing = useCallback((backgroundProcessing: boolean) => {\n backgroundProcessingRef.current = backgroundProcessing\n _setBackgroundProcessing(backgroundProcessing)\n }, [])\n\n const [modified, _setModified] = useState(false)\n\n /**\n * Intercept the `setModified` method to track whether the event happened during background processing.\n * See the `modifiedWhileProcessingRef` ref for more details.\n */\n const setModified = useCallback((modified: boolean) => {\n if (backgroundProcessingRef.current) {\n modifiedWhileProcessingRef.current = true\n }\n\n _setModified(modified)\n }, [])\n\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [formState, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = formState\n\n const prevFormState = useRef(formState)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback<Submit>(\n async (options, e) => {\n const {\n acceptValues = true,\n action: actionArg = action,\n context,\n disableFormWhileProcessing = true,\n disableSuccessStatus: disableSuccessStatusFromArgs,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options || ({} as SubmitOptions)\n\n const disableToast = disableSuccessStatusFromArgs ?? disableSuccessStatus\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableToast || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n if (disableFormWhileProcessing) {\n setProcessing(true)\n setDisabled(true)\n }\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const serializableFormState = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFormState,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(contextRef.current.fields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n data,\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n if (!modifiedWhileProcessingRef.current) {\n setModified(false)\n } else {\n modifiedWhileProcessingRef.current = false\n }\n\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json, {\n context,\n formState: serializableFormState,\n })\n\n if (newFormState) {\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n acceptValues,\n prevStateRef: prevFormState,\n serverState: newFormState,\n })\n }\n }\n\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableToast) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n // When there was an error submitting a draft,\n // set the form state to unsubmitted, to not trigger visible form validation on changes after the failed submit.\n // Also keep the form as modified so the save button remains enabled for retry.\n if (overridesFromArgs['_status'] === 'draft') {\n setModified(true)\n\n if (!validateDrafts) {\n setSubmitted(false)\n }\n }\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n\n if (json.message) {\n errorToast(json.message)\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={err.message || t('error:unknown')} />)\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n\n return { formState: contextRef.current.fields, res }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n validateDrafts,\n waitForAutocomplete,\n setModified,\n setSubmitted,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { data: dataFromArgs, mergeOverrideData = true }) => {\n let data = dataFromArgs || reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n delete data.file\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize: Record<string, unknown> = {\n _payload: JSON.stringify(data),\n }\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n dataToSerialize.file = file\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, {\n indices: true,\n nullsAsUndefineds: false,\n })\n\n return formData\n },\n [collectionSlug, docConfig, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n setModified,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields, setModified],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n const moveFieldRow: FormContextType['moveFieldRow'] = useCallback(\n ({ moveFromIndex, moveToIndex, path }) => {\n dispatchFields({\n type: 'MOVE_ROW',\n moveFromIndex,\n moveToIndex,\n path,\n })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.moveFieldRow = moveFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [formState],\n )\n\n const handleLocaleChange = useEffectEvent(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n })\n\n useEffect(() => {\n handleLocaleChange()\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent((submitted: boolean) => {\n queueTask(async () => {\n if (Array.isArray(onChange)) {\n let serverState: FormState\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n serverState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(formState),\n submitted,\n })\n }\n\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n prevStateRef: prevFormState,\n serverState,\n })\n }\n })\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(formState, prevFormState.current)) && modified) {\n executeOnChange(submitted)\n }\n\n prevFormState.current = formState\n isFirstRenderRef.current = false\n },\n [modified, submitted, formState],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields: formState,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n hasDraftValidationEnabled,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n Submit,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueue } from '../../hooks/useQueue.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docConfig, docPermissions, getDocPreferences, globalSlug } =\n useDocumentInfo()\n\n const validateDrafts = hasDraftValidationEnabled(docConfig)\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { queueTask } = useQueue()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n\n const [processing, setProcessing] = useState(false)\n\n /**\n * Determines whether the form is processing asynchronously in the background, e.g. autosave is running.\n * Useful to determine whether to disable the form or queue other processes while in flight, e.g. disable manual submits while an autosave is running.\n */\n const [backgroundProcessing, _setBackgroundProcessing] = useState(false)\n\n /**\n * A ref that can be read within the `setModified` interceptor.\n * Dependents of this state can read it immediately without needing to wait for a render cycle.\n */\n const backgroundProcessingRef = useRef(backgroundProcessing)\n\n /**\n * Flag to track if the form was modified _during a submission_, e.g. while autosave is running.\n * Useful in order to avoid resetting `modified` to false wrongfully after a submit.\n * For example, if the user modifies a field while the a background process (autosave) is running,\n * we need to ensure that after the submit completes, the `modified` state remains true.\n */\n const modifiedWhileProcessingRef = useRef(false)\n\n /**\n * Intercept the `setBackgroundProcessing` method to keep the ref in sync.\n * See the `backgroundProcessingRef` for more details.\n */\n const setBackgroundProcessing = useCallback((backgroundProcessing: boolean) => {\n backgroundProcessingRef.current = backgroundProcessing\n _setBackgroundProcessing(backgroundProcessing)\n }, [])\n\n const [modified, _setModified] = useState(false)\n\n /**\n * Intercept the `setModified` method to track whether the event happened during background processing.\n * See the `modifiedWhileProcessingRef` ref for more details.\n */\n const setModified = useCallback((modified: boolean) => {\n if (backgroundProcessingRef.current) {\n modifiedWhileProcessingRef.current = true\n }\n\n _setModified(modified)\n }, [])\n\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [formState, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = formState\n\n const prevFormState = useRef(formState)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback<Submit>(\n async (options, e) => {\n const {\n acceptValues = true,\n action: actionArg = action,\n context,\n disableFormWhileProcessing = true,\n disableSuccessStatus: disableSuccessStatusFromArgs,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options || ({} as SubmitOptions)\n\n const disableToast = disableSuccessStatusFromArgs ?? disableSuccessStatus\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableToast || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n if (disableFormWhileProcessing) {\n setProcessing(true)\n setDisabled(true)\n }\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const serializableFormState = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFormState,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(contextRef.current.fields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n data,\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n if (!modifiedWhileProcessingRef.current) {\n setModified(false)\n } else {\n modifiedWhileProcessingRef.current = false\n }\n\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json, {\n context,\n formState: serializableFormState,\n })\n\n if (newFormState) {\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n acceptValues,\n prevStateRef: prevFormState,\n serverState: newFormState,\n })\n }\n }\n\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableToast) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n // When there was an error submitting a draft,\n // set the form state to unsubmitted, to not trigger visible form validation on changes after the failed submit.\n // Also keep the form as modified so the save button remains enabled for retry.\n if (overridesFromArgs['_status'] === 'draft') {\n setModified(true)\n\n if (!validateDrafts) {\n setSubmitted(false)\n }\n }\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n\n if (json.message) {\n errorToast(json.message)\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={err.message || t('error:unknown')} />)\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n\n return { formState: contextRef.current.fields, res }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n validateDrafts,\n waitForAutocomplete,\n setModified,\n setSubmitted,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { data: dataFromArgs, mergeOverrideData = true }) => {\n let data = dataFromArgs || reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n delete data.file\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize: Record<string, unknown> = {\n _payload: JSON.stringify(data),\n }\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n dataToSerialize.file = file\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, {\n indices: true,\n nullsAsUndefineds: false,\n })\n\n return formData\n },\n [collectionSlug, docConfig, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n setModified,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields, setModified],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n const moveFieldRow: FormContextType['moveFieldRow'] = useCallback(\n ({ moveFromIndex, moveToIndex, path }) => {\n dispatchFields({\n type: 'MOVE_ROW',\n moveFromIndex,\n moveToIndex,\n path,\n })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.moveFieldRow = moveFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [formState],\n )\n\n const handleLocaleChange = useEffectEvent(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n })\n\n useEffect(() => {\n handleLocaleChange()\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent((submitted: boolean) => {\n queueTask(async () => {\n if (Array.isArray(onChange)) {\n let serverState: FormState\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n serverState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(formState),\n submitted,\n })\n }\n\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n prevStateRef: prevFormState,\n serverState,\n })\n }\n })\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(formState, prevFormState.current)) && modified) {\n executeOnChange(submitted)\n }\n\n prevFormState.current = formState\n isFirstRenderRef.current = false\n },\n [modified, submitted, formState],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields: formState,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","hasDraftValidationEnabled","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueue","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","baseClass","Form","props","id","collectionSlug","docConfig","docPermissions","getDocPreferences","globalSlug","validateDrafts","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","setSubmitted","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","_setBackgroundProcessing","backgroundProcessingRef","modifiedWhileProcessingRef","setBackgroundProcessing","current","modified","_setModified","setModified","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","formState","dispatchFields","fields","prevFormState","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","acceptValues","actionArg","context","disableFormWhileProcessing","disableSuccessStatusFromArgs","methodToUse","overrides","overridesFromArgs","skipValidation","disableToast","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","serializableFormState","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","prevStateRef","serverState","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","dataFromArgs","file","upload","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","newState","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","moveFieldRow","moveFromIndex","moveToIndex","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","optimize","sanitize","handleLocaleChange","classes","filter","join","executeOnChange","onChangeFn","DocumentFormContextComponent","Fragment","documentFormContextProps","El","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"mappings":"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"}
@@ -1,42 +1,42 @@
1
1
  'use client';
2
-
3
- const submit = () => undefined;
4
- const getSiblingData = () => undefined;
5
- const dispatchFields = () => undefined;
6
- const validateForm = () => undefined;
7
- const createFormData = () => undefined;
8
- const setModified = () => undefined;
9
- const setProcessing = () => undefined;
10
- const setBackgroundProcessing = () => undefined;
11
- const setSubmitted = () => undefined;
12
- const reset = () => undefined;
2
+ const submit = ()=>undefined;
3
+ const getSiblingData = ()=>undefined;
4
+ const dispatchFields = ()=>undefined;
5
+ const validateForm = ()=>undefined;
6
+ const createFormData = ()=>undefined;
7
+ const setModified = ()=>undefined;
8
+ const setProcessing = ()=>undefined;
9
+ const setBackgroundProcessing = ()=>undefined;
10
+ const setSubmitted = ()=>undefined;
11
+ const reset = ()=>undefined;
13
12
  export const initContextState = {
14
- addFieldRow: () => undefined,
15
- buildRowErrors: () => undefined,
16
- createFormData,
17
- disabled: false,
18
- dispatchFields,
19
- fields: {},
20
- formRef: null,
21
- getData: () => undefined,
22
- getDataByPath: () => undefined,
23
- getField: () => undefined,
24
- getFields: () => ({}),
25
- getSiblingData,
26
- initializing: undefined,
27
- isValid: true,
28
- moveFieldRow: () => undefined,
29
- removeFieldRow: () => undefined,
30
- replaceFieldRow: () => undefined,
31
- replaceState: () => undefined,
32
- reset,
33
- setBackgroundProcessing,
34
- setDisabled: () => undefined,
35
- setIsValid: () => undefined,
36
- setModified,
37
- setProcessing,
38
- setSubmitted,
39
- submit,
40
- validateForm
13
+ addFieldRow: ()=>undefined,
14
+ buildRowErrors: ()=>undefined,
15
+ createFormData,
16
+ disabled: false,
17
+ dispatchFields,
18
+ fields: {},
19
+ formRef: null,
20
+ getData: ()=>undefined,
21
+ getDataByPath: ()=>undefined,
22
+ getField: ()=>undefined,
23
+ getFields: ()=>({}),
24
+ getSiblingData,
25
+ initializing: undefined,
26
+ isValid: true,
27
+ moveFieldRow: ()=>undefined,
28
+ removeFieldRow: ()=>undefined,
29
+ replaceFieldRow: ()=>undefined,
30
+ replaceState: ()=>undefined,
31
+ reset,
32
+ setBackgroundProcessing,
33
+ setDisabled: ()=>undefined,
34
+ setIsValid: ()=>undefined,
35
+ setModified,
36
+ setProcessing,
37
+ setSubmitted,
38
+ submit,
39
+ validateForm
41
40
  };
41
+
42
42
  //# sourceMappingURL=initContextState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initContextState.js","names":["submit","undefined","getSiblingData","dispatchFields","validateForm","createFormData","setModified","setProcessing","setBackgroundProcessing","setSubmitted","reset","initContextState","addFieldRow","buildRowErrors","disabled","fields","formRef","getData","getDataByPath","getField","getFields","initializing","isValid","moveFieldRow","removeFieldRow","replaceFieldRow","replaceState","setDisabled","setIsValid"],"sources":["../../../src/forms/Form/initContextState.ts"],"sourcesContent":["'use client'\nimport type { Data, FormField, FormState } from 'payload'\n\nimport type {\n Context,\n CreateFormData,\n DispatchFields,\n GetSiblingData,\n Reset,\n SetModified,\n SetProcessing,\n SetSubmitted,\n Submit,\n ValidateForm,\n} from './types.js'\n\nconst submit: Submit = () => undefined\nconst getSiblingData: GetSiblingData = () => undefined\nconst dispatchFields: DispatchFields = () => undefined\nconst validateForm: ValidateForm = () => undefined\nconst createFormData: CreateFormData = () => undefined\n\nconst setModified: SetModified = () => undefined\nconst setProcessing: SetProcessing = () => undefined\nconst setBackgroundProcessing: SetProcessing = () => undefined\nconst setSubmitted: SetSubmitted = () => undefined\nconst reset: Reset = () => undefined\n\nexport const initContextState: Context = {\n addFieldRow: () => undefined,\n buildRowErrors: () => undefined,\n createFormData,\n disabled: false,\n dispatchFields,\n fields: {},\n formRef: null,\n getData: (): Data => undefined,\n getDataByPath: () => undefined,\n getField: (): FormField => undefined,\n getFields: (): FormState => ({}),\n getSiblingData,\n initializing: undefined,\n isValid: true,\n moveFieldRow: () => undefined,\n removeFieldRow: () => undefined,\n replaceFieldRow: () => undefined,\n replaceState: () => undefined,\n reset,\n setBackgroundProcessing,\n setDisabled: () => undefined,\n setIsValid: () => undefined,\n setModified,\n setProcessing,\n setSubmitted,\n submit,\n\n validateForm,\n}\n"],"mappings":"AAAA;;AAgBA,MAAMA,MAAA,GAAiBA,CAAA,KAAMC,SAAA;AAC7B,MAAMC,cAAA,GAAiCA,CAAA,KAAMD,SAAA;AAC7C,MAAME,cAAA,GAAiCA,CAAA,KAAMF,SAAA;AAC7C,MAAMG,YAAA,GAA6BA,CAAA,KAAMH,SAAA;AACzC,MAAMI,cAAA,GAAiCA,CAAA,KAAMJ,SAAA;AAE7C,MAAMK,WAAA,GAA2BA,CAAA,KAAML,SAAA;AACvC,MAAMM,aAAA,GAA+BA,CAAA,KAAMN,SAAA;AAC3C,MAAMO,uBAAA,GAAyCA,CAAA,KAAMP,SAAA;AACrD,MAAMQ,YAAA,GAA6BA,CAAA,KAAMR,SAAA;AACzC,MAAMS,KAAA,GAAeA,CAAA,KAAMT,SAAA;AAE3B,OAAO,MAAMU,gBAAA,GAA4B;EACvCC,WAAA,EAAaA,CAAA,KAAMX,SAAA;EACnBY,cAAA,EAAgBA,CAAA,KAAMZ,SAAA;EACtBI,cAAA;EACAS,QAAA,EAAU;EACVX,cAAA;EACAY,MAAA,EAAQ,CAAC;EACTC,OAAA,EAAS;EACTC,OAAA,EAASA,CAAA,KAAYhB,SAAA;EACrBiB,aAAA,EAAeA,CAAA,KAAMjB,SAAA;EACrBkB,QAAA,EAAUA,CAAA,KAAiBlB,SAAA;EAC3BmB,SAAA,EAAWA,CAAA,MAAkB,CAAC;EAC9BlB,cAAA;EACAmB,YAAA,EAAcpB,SAAA;EACdqB,OAAA,EAAS;EACTC,YAAA,EAAcA,CAAA,KAAMtB,SAAA;EACpBuB,cAAA,EAAgBA,CAAA,KAAMvB,SAAA;EACtBwB,eAAA,EAAiBA,CAAA,KAAMxB,SAAA;EACvByB,YAAA,EAAcA,CAAA,KAAMzB,SAAA;EACpBS,KAAA;EACAF,uBAAA;EACAmB,WAAA,EAAaA,CAAA,KAAM1B,SAAA;EACnB2B,UAAA,EAAYA,CAAA,KAAM3B,SAAA;EAClBK,WAAA;EACAC,aAAA;EACAE,YAAA;EACAT,MAAA;EAEAI;AACF","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/forms/Form/initContextState.ts"],"sourcesContent":["'use client'\nimport type { Data, FormField, FormState } from 'payload'\n\nimport type {\n Context,\n CreateFormData,\n DispatchFields,\n GetSiblingData,\n Reset,\n SetModified,\n SetProcessing,\n SetSubmitted,\n Submit,\n ValidateForm,\n} from './types.js'\n\nconst submit: Submit = () => undefined\nconst getSiblingData: GetSiblingData = () => undefined\nconst dispatchFields: DispatchFields = () => undefined\nconst validateForm: ValidateForm = () => undefined\nconst createFormData: CreateFormData = () => undefined\n\nconst setModified: SetModified = () => undefined\nconst setProcessing: SetProcessing = () => undefined\nconst setBackgroundProcessing: SetProcessing = () => undefined\nconst setSubmitted: SetSubmitted = () => undefined\nconst reset: Reset = () => undefined\n\nexport const initContextState: Context = {\n addFieldRow: () => undefined,\n buildRowErrors: () => undefined,\n createFormData,\n disabled: false,\n dispatchFields,\n fields: {},\n formRef: null,\n getData: (): Data => undefined,\n getDataByPath: () => undefined,\n getField: (): FormField => undefined,\n getFields: (): FormState => ({}),\n getSiblingData,\n initializing: undefined,\n isValid: true,\n moveFieldRow: () => undefined,\n removeFieldRow: () => undefined,\n replaceFieldRow: () => undefined,\n replaceState: () => undefined,\n reset,\n setBackgroundProcessing,\n setDisabled: () => undefined,\n setIsValid: () => undefined,\n setModified,\n setProcessing,\n setSubmitted,\n submit,\n\n validateForm,\n}\n"],"names":["submit","undefined","getSiblingData","dispatchFields","validateForm","createFormData","setModified","setProcessing","setBackgroundProcessing","setSubmitted","reset","initContextState","addFieldRow","buildRowErrors","disabled","fields","formRef","getData","getDataByPath","getField","getFields","initializing","isValid","moveFieldRow","removeFieldRow","replaceFieldRow","replaceState","setDisabled","setIsValid"],"mappings":"AAAA;AAgBA,MAAMA,SAAiB,IAAMC;AAC7B,MAAMC,iBAAiC,IAAMD;AAC7C,MAAME,iBAAiC,IAAMF;AAC7C,MAAMG,eAA6B,IAAMH;AACzC,MAAMI,iBAAiC,IAAMJ;AAE7C,MAAMK,cAA2B,IAAML;AACvC,MAAMM,gBAA+B,IAAMN;AAC3C,MAAMO,0BAAyC,IAAMP;AACrD,MAAMQ,eAA6B,IAAMR;AACzC,MAAMS,QAAe,IAAMT;AAE3B,OAAO,MAAMU,mBAA4B;IACvCC,aAAa,IAAMX;IACnBY,gBAAgB,IAAMZ;IACtBI;IACAS,UAAU;IACVX;IACAY,QAAQ,CAAC;IACTC,SAAS;IACTC,SAAS,IAAYhB;IACrBiB,eAAe,IAAMjB;IACrBkB,UAAU,IAAiBlB;IAC3BmB,WAAW,IAAkB,CAAA,CAAC,CAAA;IAC9BlB;IACAmB,cAAcpB;IACdqB,SAAS;IACTC,cAAc,IAAMtB;IACpBuB,gBAAgB,IAAMvB;IACtBwB,iBAAiB,IAAMxB;IACvByB,cAAc,IAAMzB;IACpBS;IACAF;IACAmB,aAAa,IAAM1B;IACnB2B,YAAY,IAAM3B;IAClBK;IACAC;IACAE;IACAT;IAEAI;AACF,EAAC"}
@@ -1,5 +1,4 @@
1
1
  'use client';
2
-
3
2
  import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
4
3
  /**
5
4
  * This function receives form state from the server and intelligently merges it into the client state.
@@ -12,104 +11,92 @@ import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
12
11
  *
13
12
  * This function applies some defaults, as well as cleans up the server response in preparation for the client.
14
13
  * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.
15
- */
16
- export const mergeServerFormState = ({
17
- acceptValues,
18
- currentState = {},
19
- incomingState
20
- }) => {
21
- const newState = {
22
- ...currentState
23
- };
24
- for (const [path, incomingField] of Object.entries(incomingState || {})) {
25
- if (!(path in currentState) && !incomingField.addedByServer) {
26
- continue;
27
- }
28
- /**
29
- * If it's a new field added by the server, always accept the value.
30
- * Otherwise:
31
- * a. accept all values when explicitly requested, e.g. on submit
32
- * b. only accept values for unmodified fields, e.g. on autosave
33
- */
34
- const shouldAcceptValue = incomingField.addedByServer || acceptValues === true || typeof acceptValues === 'object' && acceptValues !== null &&
35
- // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true
36
- acceptValues.overrideLocalChanges === false && !currentState[path]?.isModified;
37
- let sanitizedIncomingField = incomingField;
38
- if (!shouldAcceptValue) {
39
- /**
40
- * Note: do not delete properties off `incomingField` as this will mutate the original object
41
- * Instead, omit them from the destructured object by excluding specific keys
42
- * This will also ensure we don't set `undefined` into the result unnecessarily
43
- */
44
- const {
45
- initialValue,
46
- value,
47
- ...rest
48
- } = incomingField;
49
- sanitizedIncomingField = rest;
50
- }
51
- newState[path] = {
52
- ...currentState[path],
53
- ...sanitizedIncomingField
14
+ */ export const mergeServerFormState = ({ acceptValues, currentState = {}, incomingState })=>{
15
+ const newState = {
16
+ ...currentState
54
17
  };
55
- if (currentState[path] && 'errorPaths' in currentState[path] && !('errorPaths' in incomingField)) {
56
- newState[path].errorPaths = [];
57
- }
58
- /**
59
- * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending
60
- * For example, the server response could come back with a row which has been deleted on the client
61
- * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server
62
- * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above
63
- */
64
- if (Array.isArray(incomingField.rows) && path in currentState) {
65
- newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array
66
- ;
67
- incomingField.rows.forEach(row => {
68
- const indexInCurrentState = currentState[path].rows?.findIndex(existingRow => existingRow.id === row.id);
69
- if (indexInCurrentState > -1) {
70
- newState[path].rows[indexInCurrentState] = {
71
- ...currentState[path].rows[indexInCurrentState],
72
- ...row
73
- };
74
- } else if (row.addedByServer) {
75
- /**
76
- * Note: This is a known limitation of computed array and block rows
77
- * If a new row was added by the server, we append it to the _end_ of this array
78
- * This is because the client is the source of truth, and it has arrays ordered in a certain position
79
- * For example, the user may have re-ordered rows client-side while a long running request is processing
80
- * This means that we _cannot_ slice a new row into the second position on the server, for example
81
- * By the time it gets back to the client, its index is stale
82
- */
83
- const newRow = {
84
- ...row
85
- };
86
- delete newRow.addedByServer;
87
- newState[path].rows.push(newRow);
18
+ for (const [path, incomingField] of Object.entries(incomingState || {})){
19
+ if (!(path in currentState) && !incomingField.addedByServer) {
20
+ continue;
88
21
  }
89
- });
90
- }
91
- // If `valid` is `undefined`, mark it as `true`
92
- if (incomingField.valid !== false) {
93
- newState[path].valid = true;
94
- }
95
- // If `passesCondition` is `undefined`, mark it as `true`
96
- if (incomingField.passesCondition !== false) {
97
- newState[path].passesCondition = true;
98
- }
99
- /**
100
- * Undefined values for blocksFilterOptions coming back should be treated as "all blocks allowed" and
101
- * should always be merged in.
102
- * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.
103
- */
104
- if (!incomingField.blocksFilterOptions) {
105
- delete newState[path].blocksFilterOptions;
22
+ /**
23
+ * If it's a new field added by the server, always accept the value.
24
+ * Otherwise:
25
+ * a. accept all values when explicitly requested, e.g. on submit
26
+ * b. only accept values for unmodified fields, e.g. on autosave
27
+ */ const shouldAcceptValue = incomingField.addedByServer || acceptValues === true || typeof acceptValues === 'object' && acceptValues !== null && // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true
28
+ acceptValues.overrideLocalChanges === false && !currentState[path]?.isModified;
29
+ let sanitizedIncomingField = incomingField;
30
+ if (!shouldAcceptValue) {
31
+ /**
32
+ * Note: do not delete properties off `incomingField` as this will mutate the original object
33
+ * Instead, omit them from the destructured object by excluding specific keys
34
+ * This will also ensure we don't set `undefined` into the result unnecessarily
35
+ */ const { initialValue, value, ...rest } = incomingField;
36
+ sanitizedIncomingField = rest;
37
+ }
38
+ newState[path] = {
39
+ ...currentState[path],
40
+ ...sanitizedIncomingField
41
+ };
42
+ if (currentState[path] && 'errorPaths' in currentState[path] && !('errorPaths' in incomingField)) {
43
+ newState[path].errorPaths = [];
44
+ }
45
+ /**
46
+ * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending
47
+ * For example, the server response could come back with a row which has been deleted on the client
48
+ * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server
49
+ * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above
50
+ */ if (Array.isArray(incomingField.rows) && path in currentState) {
51
+ newState[path].rows = [
52
+ ...currentState[path]?.rows || []
53
+ ] // shallow copy to avoid mutating the original array
54
+ ;
55
+ incomingField.rows.forEach((row)=>{
56
+ const indexInCurrentState = currentState[path].rows?.findIndex((existingRow)=>existingRow.id === row.id);
57
+ if (indexInCurrentState > -1) {
58
+ newState[path].rows[indexInCurrentState] = {
59
+ ...currentState[path].rows[indexInCurrentState],
60
+ ...row
61
+ };
62
+ } else if (row.addedByServer) {
63
+ /**
64
+ * Note: This is a known limitation of computed array and block rows
65
+ * If a new row was added by the server, we append it to the _end_ of this array
66
+ * This is because the client is the source of truth, and it has arrays ordered in a certain position
67
+ * For example, the user may have re-ordered rows client-side while a long running request is processing
68
+ * This means that we _cannot_ slice a new row into the second position on the server, for example
69
+ * By the time it gets back to the client, its index is stale
70
+ */ const newRow = {
71
+ ...row
72
+ };
73
+ delete newRow.addedByServer;
74
+ newState[path].rows.push(newRow);
75
+ }
76
+ });
77
+ }
78
+ // If `valid` is `undefined`, mark it as `true`
79
+ if (incomingField.valid !== false) {
80
+ newState[path].valid = true;
81
+ }
82
+ // If `passesCondition` is `undefined`, mark it as `true`
83
+ if (incomingField.passesCondition !== false) {
84
+ newState[path].passesCondition = true;
85
+ }
86
+ /**
87
+ * Undefined values for blocksFilterOptions coming back should be treated as "all blocks allowed" and
88
+ * should always be merged in.
89
+ * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.
90
+ */ if (!incomingField.blocksFilterOptions) {
91
+ delete newState[path].blocksFilterOptions;
92
+ }
93
+ // Strip away the `addedByServer` property from the client
94
+ // This will prevent it from being passed back to the server
95
+ delete newState[path].addedByServer;
106
96
  }
107
- // Strip away the `addedByServer` property from the client
108
- // This will prevent it from being passed back to the server
109
- delete newState[path].addedByServer;
110
- }
111
- // Return the original object reference if the state is unchanged
112
- // This will avoid unnecessary re-renders and dependency updates
113
- return dequal(newState, currentState) ? currentState : newState;
97
+ // Return the original object reference if the state is unchanged
98
+ // This will avoid unnecessary re-renders and dependency updates
99
+ return dequal(newState, currentState) ? currentState : newState;
114
100
  };
101
+
115
102
  //# sourceMappingURL=mergeServerFormState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeServerFormState.js","names":["dequal","mergeServerFormState","acceptValues","currentState","incomingState","newState","path","incomingField","Object","entries","addedByServer","shouldAcceptValue","overrideLocalChanges","isModified","sanitizedIncomingField","initialValue","value","rest","errorPaths","Array","isArray","rows","forEach","row","indexInCurrentState","findIndex","existingRow","id","newRow","push","valid","passesCondition","blocksFilterOptions"],"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\n\n/**\n * If true, will accept all values from the server, overriding any current values in local state.\n * Can also provide an options object for more granular control.\n */\nexport type AcceptValues =\n | {\n /**\n * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.\n * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.\n * @default undefined\n */\n overrideLocalChanges?: boolean\n }\n | boolean\n\ntype Args = {\n acceptValues?: AcceptValues\n currentState?: FormState\n incomingState: FormState\n}\n\n/**\n * This function receives form state from the server and intelligently merges it into the client state.\n * The server contains extra properties that the client may not have, e.g. custom components and error states.\n * We typically do not want to merge properties that rely on user input, however, such as values, unless explicitly requested.\n * Doing this would cause the client to lose any local changes to those fields.\n *\n * Note: Local state is the source of truth, not the new server state that is getting merged in. This is critical for array row\n * manipulation specifically, where the user may have added, removed, or reordered rows while a request was pending and is now stale.\n *\n * This function applies some defaults, as well as cleans up the server response in preparation for the client.\n * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.\n */\nexport const mergeServerFormState = ({\n acceptValues,\n currentState = {},\n incomingState,\n}: Args): FormState => {\n const newState = { ...currentState }\n\n for (const [path, incomingField] of Object.entries(incomingState || {})) {\n if (!(path in currentState) && !incomingField.addedByServer) {\n continue\n }\n\n /**\n * If it's a new field added by the server, always accept the value.\n * Otherwise:\n * a. accept all values when explicitly requested, e.g. on submit\n * b. only accept values for unmodified fields, e.g. on autosave\n */\n const shouldAcceptValue =\n incomingField.addedByServer ||\n acceptValues === true ||\n (typeof acceptValues === 'object' &&\n acceptValues !== null &&\n // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true\n acceptValues.overrideLocalChanges === false &&\n !currentState[path]?.isModified)\n\n let sanitizedIncomingField = incomingField\n\n if (!shouldAcceptValue) {\n /**\n * Note: do not delete properties off `incomingField` as this will mutate the original object\n * Instead, omit them from the destructured object by excluding specific keys\n * This will also ensure we don't set `undefined` into the result unnecessarily\n */\n const { initialValue, value, ...rest } = incomingField\n sanitizedIncomingField = rest\n }\n\n newState[path] = {\n ...currentState[path],\n ...sanitizedIncomingField,\n }\n\n if (\n currentState[path] &&\n 'errorPaths' in currentState[path] &&\n !('errorPaths' in incomingField)\n ) {\n newState[path].errorPaths = []\n }\n\n /**\n * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending\n * For example, the server response could come back with a row which has been deleted on the client\n * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server\n * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above\n */\n if (Array.isArray(incomingField.rows) && path in currentState) {\n newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array\n\n incomingField.rows.forEach((row) => {\n const indexInCurrentState = currentState[path].rows?.findIndex(\n (existingRow) => existingRow.id === row.id,\n )\n\n if (indexInCurrentState > -1) {\n newState[path].rows[indexInCurrentState] = {\n ...currentState[path].rows[indexInCurrentState],\n ...row,\n }\n } else if (row.addedByServer) {\n /**\n * Note: This is a known limitation of computed array and block rows\n * If a new row was added by the server, we append it to the _end_ of this array\n * This is because the client is the source of truth, and it has arrays ordered in a certain position\n * For example, the user may have re-ordered rows client-side while a long running request is processing\n * This means that we _cannot_ slice a new row into the second position on the server, for example\n * By the time it gets back to the client, its index is stale\n */\n const newRow = { ...row }\n delete newRow.addedByServer\n newState[path].rows.push(newRow)\n }\n })\n }\n\n // If `valid` is `undefined`, mark it as `true`\n if (incomingField.valid !== false) {\n newState[path].valid = true\n }\n\n // If `passesCondition` is `undefined`, mark it as `true`\n if (incomingField.passesCondition !== false) {\n newState[path].passesCondition = true\n }\n\n /**\n * Undefined values for blocksFilterOptions coming back should be treated as \"all blocks allowed\" and\n * should always be merged in.\n * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.\n */\n if (!incomingField.blocksFilterOptions) {\n delete newState[path].blocksFilterOptions\n }\n\n // Strip away the `addedByServer` property from the client\n // This will prevent it from being passed back to the server\n delete newState[path].addedByServer\n }\n\n // Return the original object reference if the state is unchanged\n // This will avoid unnecessary re-renders and dependency updates\n return dequal(newState, currentState) ? currentState : newState\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\n\n/**\n * If true, will accept all values from the server, overriding any current values in local state.\n * Can also provide an options object for more granular control.\n */\nexport type AcceptValues =\n | {\n /**\n * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.\n * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.\n * @default undefined\n */\n overrideLocalChanges?: boolean\n }\n | boolean\n\ntype Args = {\n acceptValues?: AcceptValues\n currentState?: FormState\n incomingState: FormState\n}\n\n/**\n * This function receives form state from the server and intelligently merges it into the client state.\n * The server contains extra properties that the client may not have, e.g. custom components and error states.\n * We typically do not want to merge properties that rely on user input, however, such as values, unless explicitly requested.\n * Doing this would cause the client to lose any local changes to those fields.\n *\n * Note: Local state is the source of truth, not the new server state that is getting merged in. This is critical for array row\n * manipulation specifically, where the user may have added, removed, or reordered rows while a request was pending and is now stale.\n *\n * This function applies some defaults, as well as cleans up the server response in preparation for the client.\n * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.\n */\nexport const mergeServerFormState = ({\n acceptValues,\n currentState = {},\n incomingState,\n}: Args): FormState => {\n const newState = { ...currentState }\n\n for (const [path, incomingField] of Object.entries(incomingState || {})) {\n if (!(path in currentState) && !incomingField.addedByServer) {\n continue\n }\n\n /**\n * If it's a new field added by the server, always accept the value.\n * Otherwise:\n * a. accept all values when explicitly requested, e.g. on submit\n * b. only accept values for unmodified fields, e.g. on autosave\n */\n const shouldAcceptValue =\n incomingField.addedByServer ||\n acceptValues === true ||\n (typeof acceptValues === 'object' &&\n acceptValues !== null &&\n // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true\n acceptValues.overrideLocalChanges === false &&\n !currentState[path]?.isModified)\n\n let sanitizedIncomingField = incomingField\n\n if (!shouldAcceptValue) {\n /**\n * Note: do not delete properties off `incomingField` as this will mutate the original object\n * Instead, omit them from the destructured object by excluding specific keys\n * This will also ensure we don't set `undefined` into the result unnecessarily\n */\n const { initialValue, value, ...rest } = incomingField\n sanitizedIncomingField = rest\n }\n\n newState[path] = {\n ...currentState[path],\n ...sanitizedIncomingField,\n }\n\n if (\n currentState[path] &&\n 'errorPaths' in currentState[path] &&\n !('errorPaths' in incomingField)\n ) {\n newState[path].errorPaths = []\n }\n\n /**\n * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending\n * For example, the server response could come back with a row which has been deleted on the client\n * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server\n * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above\n */\n if (Array.isArray(incomingField.rows) && path in currentState) {\n newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array\n\n incomingField.rows.forEach((row) => {\n const indexInCurrentState = currentState[path].rows?.findIndex(\n (existingRow) => existingRow.id === row.id,\n )\n\n if (indexInCurrentState > -1) {\n newState[path].rows[indexInCurrentState] = {\n ...currentState[path].rows[indexInCurrentState],\n ...row,\n }\n } else if (row.addedByServer) {\n /**\n * Note: This is a known limitation of computed array and block rows\n * If a new row was added by the server, we append it to the _end_ of this array\n * This is because the client is the source of truth, and it has arrays ordered in a certain position\n * For example, the user may have re-ordered rows client-side while a long running request is processing\n * This means that we _cannot_ slice a new row into the second position on the server, for example\n * By the time it gets back to the client, its index is stale\n */\n const newRow = { ...row }\n delete newRow.addedByServer\n newState[path].rows.push(newRow)\n }\n })\n }\n\n // If `valid` is `undefined`, mark it as `true`\n if (incomingField.valid !== false) {\n newState[path].valid = true\n }\n\n // If `passesCondition` is `undefined`, mark it as `true`\n if (incomingField.passesCondition !== false) {\n newState[path].passesCondition = true\n }\n\n /**\n * Undefined values for blocksFilterOptions coming back should be treated as \"all blocks allowed\" and\n * should always be merged in.\n * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.\n */\n if (!incomingField.blocksFilterOptions) {\n delete newState[path].blocksFilterOptions\n }\n\n // Strip away the `addedByServer` property from the client\n // This will prevent it from being passed back to the server\n delete newState[path].addedByServer\n }\n\n // Return the original object reference if the state is unchanged\n // This will avoid unnecessary re-renders and dependency updates\n return dequal(newState, currentState) ? currentState : newState\n}\n"],"names":["dequal","mergeServerFormState","acceptValues","currentState","incomingState","newState","path","incomingField","Object","entries","addedByServer","shouldAcceptValue","overrideLocalChanges","isModified","sanitizedIncomingField","initialValue","value","rest","errorPaths","Array","isArray","rows","forEach","row","indexInCurrentState","findIndex","existingRow","id","newRow","push","valid","passesCondition","blocksFilterOptions"],"mappings":"AAAA;AAGA,SAASA,MAAM,QAAQ,cAAa,CAAC,wCAAwC;AAuB7E;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,YAAY,EACZC,eAAe,CAAC,CAAC,EACjBC,aAAa,EACR;IACL,MAAMC,WAAW;QAAE,GAAGF,YAAY;IAAC;IAEnC,KAAK,MAAM,CAACG,MAAMC,cAAc,IAAIC,OAAOC,OAAO,CAACL,iBAAiB,CAAC,GAAI;QACvE,IAAI,CAAEE,CAAAA,QAAQH,YAAW,KAAM,CAACI,cAAcG,aAAa,EAAE;YAC3D;QACF;QAEA;;;;;KAKC,GACD,MAAMC,oBACJJ,cAAcG,aAAa,IAC3BR,iBAAiB,QAChB,OAAOA,iBAAiB,YACvBA,iBAAiB,QACjB,6EAA6E;QAC7EA,aAAaU,oBAAoB,KAAK,SACtC,CAACT,YAAY,CAACG,KAAK,EAAEO;QAEzB,IAAIC,yBAAyBP;QAE7B,IAAI,CAACI,mBAAmB;YACtB;;;;OAIC,GACD,MAAM,EAAEI,YAAY,EAAEC,KAAK,EAAE,GAAGC,MAAM,GAAGV;YACzCO,yBAAyBG;QAC3B;QAEAZ,QAAQ,CAACC,KAAK,GAAG;YACf,GAAGH,YAAY,CAACG,KAAK;YACrB,GAAGQ,sBAAsB;QAC3B;QAEA,IACEX,YAAY,CAACG,KAAK,IAClB,gBAAgBH,YAAY,CAACG,KAAK,IAClC,CAAE,CAAA,gBAAgBC,aAAY,GAC9B;YACAF,QAAQ,CAACC,KAAK,CAACY,UAAU,GAAG,EAAE;QAChC;QAEA;;;;;KAKC,GACD,IAAIC,MAAMC,OAAO,CAACb,cAAcc,IAAI,KAAKf,QAAQH,cAAc;YAC7DE,QAAQ,CAACC,KAAK,CAACe,IAAI,GAAG;mBAAKlB,YAAY,CAACG,KAAK,EAAEe,QAAQ,EAAE;aAAE,CAAC,oDAAoD;;YAEhHd,cAAcc,IAAI,CAACC,OAAO,CAAC,CAACC;gBAC1B,MAAMC,sBAAsBrB,YAAY,CAACG,KAAK,CAACe,IAAI,EAAEI,UACnD,CAACC,cAAgBA,YAAYC,EAAE,KAAKJ,IAAII,EAAE;gBAG5C,IAAIH,sBAAsB,CAAC,GAAG;oBAC5BnB,QAAQ,CAACC,KAAK,CAACe,IAAI,CAACG,oBAAoB,GAAG;wBACzC,GAAGrB,YAAY,CAACG,KAAK,CAACe,IAAI,CAACG,oBAAoB;wBAC/C,GAAGD,GAAG;oBACR;gBACF,OAAO,IAAIA,IAAIb,aAAa,EAAE;oBAC5B;;;;;;;WAOC,GACD,MAAMkB,SAAS;wBAAE,GAAGL,GAAG;oBAAC;oBACxB,OAAOK,OAAOlB,aAAa;oBAC3BL,QAAQ,CAACC,KAAK,CAACe,IAAI,CAACQ,IAAI,CAACD;gBAC3B;YACF;QACF;QAEA,+CAA+C;QAC/C,IAAIrB,cAAcuB,KAAK,KAAK,OAAO;YACjCzB,QAAQ,CAACC,KAAK,CAACwB,KAAK,GAAG;QACzB;QAEA,yDAAyD;QACzD,IAAIvB,cAAcwB,eAAe,KAAK,OAAO;YAC3C1B,QAAQ,CAACC,KAAK,CAACyB,eAAe,GAAG;QACnC;QAEA;;;;KAIC,GACD,IAAI,CAACxB,cAAcyB,mBAAmB,EAAE;YACtC,OAAO3B,QAAQ,CAACC,KAAK,CAAC0B,mBAAmB;QAC3C;QAEA,0DAA0D;QAC1D,4DAA4D;QAC5D,OAAO3B,QAAQ,CAACC,KAAK,CAACI,aAAa;IACrC;IAEA,iEAAiE;IACjE,gEAAgE;IAChE,OAAOV,OAAOK,UAAUF,gBAAgBA,eAAeE;AACzD,EAAC"}