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

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 (871) hide show
  1. package/dist/elements/AddNewRelation/index.js +83 -27
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AnimateHeight/index.js +13 -5
  4. package/dist/elements/AnimateHeight/index.js.map +1 -1
  5. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +2 -2
  6. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  7. package/dist/elements/AppHeader/index.js +107 -35
  8. package/dist/elements/AppHeader/index.js.map +1 -1
  9. package/dist/elements/ArrayAction/index.js +116 -36
  10. package/dist/elements/ArrayAction/index.js.map +1 -1
  11. package/dist/elements/Autosave/index.js +19 -6
  12. package/dist/elements/Autosave/index.js.map +1 -1
  13. package/dist/elements/Banner/index.js +25 -9
  14. package/dist/elements/Banner/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/ActionsBar/index.js +97 -33
  16. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.js +43 -15
  18. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/AddingFilesView/index.js +47 -15
  20. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +7 -3
  22. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +12 -4
  24. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  25. package/dist/elements/BulkUpload/EditForm/index.js +53 -17
  26. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +90 -30
  28. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  29. package/dist/elements/BulkUpload/EditMany/index.js +33 -13
  30. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  31. package/dist/elements/BulkUpload/FileSidebar/index.js +214 -70
  32. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  33. package/dist/elements/BulkUpload/FormsManager/index.js +21 -13
  34. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  35. package/dist/elements/BulkUpload/Header/index.js +19 -7
  36. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  37. package/dist/elements/BulkUpload/index.js +70 -19
  38. package/dist/elements/BulkUpload/index.js.map +1 -1
  39. package/dist/elements/Button/index.js +103 -35
  40. package/dist/elements/Button/index.js.map +1 -1
  41. package/dist/elements/Button/types.js +13 -1
  42. package/dist/elements/Button/types.js.map +1 -1
  43. package/dist/elements/Card/index.js +30 -10
  44. package/dist/elements/Card/index.js.map +1 -1
  45. package/dist/elements/CheckboxPopup/index.js +19 -7
  46. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  47. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +16 -4
  48. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  49. package/dist/elements/ClipboardAction/index.js +42 -14
  50. package/dist/elements/ClipboardAction/index.js.map +1 -1
  51. package/dist/elements/CloseModalButton/index.js +12 -4
  52. package/dist/elements/CloseModalButton/index.js.map +1 -1
  53. package/dist/elements/CodeEditor/CodeEditor.js +15 -7
  54. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  55. package/dist/elements/CodeEditor/index.js +18 -6
  56. package/dist/elements/CodeEditor/index.js.map +1 -1
  57. package/dist/elements/CodeEditor/types.js +3 -1
  58. package/dist/elements/CodeEditor/types.js.map +1 -1
  59. package/dist/elements/Collapsible/index.js +92 -29
  60. package/dist/elements/Collapsible/index.js.map +1 -1
  61. package/dist/elements/Collapsible/provider.js +7 -3
  62. package/dist/elements/Collapsible/provider.js.map +1 -1
  63. package/dist/elements/ColumnSelector/index.js +13 -5
  64. package/dist/elements/ColumnSelector/index.js.map +1 -1
  65. package/dist/elements/Combobox/index.js +43 -13
  66. package/dist/elements/Combobox/index.js.map +1 -1
  67. package/dist/elements/ConfirmationModal/index.js +49 -17
  68. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  69. package/dist/elements/CopyLocaleData/index.js +73 -25
  70. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  71. package/dist/elements/CopyToClipboard/index.js +18 -6
  72. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +42 -13
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/getFormattedLocale.js +1 -0
  76. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  77. package/dist/elements/DatePicker/index.js +19 -7
  78. package/dist/elements/DatePicker/index.js.map +1 -1
  79. package/dist/elements/DefaultListViewTabs/index.js +25 -9
  80. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  81. package/dist/elements/DeleteDocument/index.js +49 -17
  82. package/dist/elements/DeleteDocument/index.js.map +1 -1
  83. package/dist/elements/DeleteMany/index.js +98 -26
  84. package/dist/elements/DeleteMany/index.js.map +1 -1
  85. package/dist/elements/DocumentControls/index.js +304 -96
  86. package/dist/elements/DocumentControls/index.js.map +1 -1
  87. package/dist/elements/DocumentDrawer/DrawerContent.js +12 -4
  88. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  89. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +59 -19
  90. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  91. package/dist/elements/DocumentDrawer/Provider.js +12 -4
  92. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  93. package/dist/elements/DocumentDrawer/index.js +32 -10
  94. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  95. package/dist/elements/DocumentDrawer/types.js +11 -1
  96. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  97. package/dist/elements/DocumentFields/index.js +54 -18
  98. package/dist/elements/DocumentFields/index.js.map +1 -1
  99. package/dist/elements/DocumentLocked/index.js +73 -25
  100. package/dist/elements/DocumentLocked/index.js.map +1 -1
  101. package/dist/elements/DocumentTakeOver/index.js +49 -17
  102. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  103. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -3
  104. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  105. package/dist/elements/DraggableSortable/index.js +19 -7
  106. package/dist/elements/DraggableSortable/index.js.map +1 -1
  107. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +1 -0
  108. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  109. package/dist/elements/Drawer/index.js +80 -26
  110. package/dist/elements/Drawer/index.js.map +1 -1
  111. package/dist/elements/DrawerActionHeader/index.js +37 -13
  112. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  113. package/dist/elements/DrawerContentContainer/index.js +7 -3
  114. package/dist/elements/DrawerContentContainer/index.js.map +1 -1
  115. package/dist/elements/Dropzone/index.js +7 -3
  116. package/dist/elements/Dropzone/index.js.map +1 -1
  117. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +61 -21
  118. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  119. package/dist/elements/DuplicateDocument/index.js +25 -9
  120. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  121. package/dist/elements/EditMany/DrawerContent.js +146 -44
  122. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  123. package/dist/elements/EditMany/index.js +40 -14
  124. package/dist/elements/EditMany/index.js.map +1 -1
  125. package/dist/elements/EditUpload/index.js +232 -76
  126. package/dist/elements/EditUpload/index.js.map +1 -1
  127. package/dist/elements/EmailAndUsername/index.js +31 -11
  128. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  129. package/dist/elements/ErrorPill/index.js +19 -7
  130. package/dist/elements/ErrorPill/index.js.map +1 -1
  131. package/dist/elements/FieldDiffContainer/index.js +25 -9
  132. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  133. package/dist/elements/FieldDiffLabel/index.js +7 -3
  134. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  135. package/dist/elements/FieldSelect/index.js +19 -7
  136. package/dist/elements/FieldSelect/index.js.map +1 -1
  137. package/dist/elements/FileDetails/DraggableFileDetails/index.js +70 -22
  138. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  139. package/dist/elements/FileDetails/FileMeta/index.js +43 -15
  140. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  141. package/dist/elements/FileDetails/StaticFileDetails/index.js +43 -15
  142. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  143. package/dist/elements/FileDetails/index.js +13 -5
  144. package/dist/elements/FileDetails/index.js.map +1 -1
  145. package/dist/elements/FolderView/Breadcrumbs/index.js +31 -11
  146. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  147. package/dist/elements/FolderView/BrowseByFolderButton/index.js +12 -4
  148. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  149. package/dist/elements/FolderView/Cell/index.client.js +7 -3
  150. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  151. package/dist/elements/FolderView/Cell/index.server.js +7 -3
  152. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  153. package/dist/elements/FolderView/ColoredFolderIcon/index.js +7 -3
  154. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
  155. package/dist/elements/FolderView/CurrentFolderActions/index.js +68 -24
  156. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  157. package/dist/elements/FolderView/DragOverlaySelection/index.js +31 -11
  158. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  159. package/dist/elements/FolderView/DraggableTableRow/index.js +25 -9
  160. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  161. package/dist/elements/FolderView/DraggableWithClick/index.js +7 -3
  162. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  163. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +15 -7
  164. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  165. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +189 -62
  166. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  167. package/dist/elements/FolderView/FilterFolderTypePill/index.js +19 -7
  168. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
  169. package/dist/elements/FolderView/FolderField/index.server.js +7 -3
  170. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
  171. package/dist/elements/FolderView/FolderFileCard/index.js +104 -31
  172. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  173. package/dist/elements/FolderView/FolderFileTable/index.js +49 -17
  174. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  175. package/dist/elements/FolderView/FolderTypeField/index.js +7 -3
  176. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  177. package/dist/elements/FolderView/ItemCardGrid/index.js +21 -9
  178. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  179. package/dist/elements/FolderView/MoveDocToFolder/index.js +28 -13
  180. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  181. package/dist/elements/FolderView/SimpleTable/index.js +67 -23
  182. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
  183. package/dist/elements/FolderView/SortByPill/index.js +86 -30
  184. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  185. package/dist/elements/FolderView/ToggleViewButtons/index.js +25 -9
  186. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
  187. package/dist/elements/FullscreenModal/index.js +7 -3
  188. package/dist/elements/FullscreenModal/index.js.map +1 -1
  189. package/dist/elements/GenerateConfirmation/index.js +31 -11
  190. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  191. package/dist/elements/GroupByBuilder/index.js +43 -15
  192. package/dist/elements/GroupByBuilder/index.js.map +1 -1
  193. package/dist/elements/Gutter/index.js +7 -3
  194. package/dist/elements/Gutter/index.js.map +1 -1
  195. package/dist/elements/HTMLDiff/diff/index.js +24 -3
  196. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  197. package/dist/elements/HTMLDiff/index.js +13 -5
  198. package/dist/elements/HTMLDiff/index.js.map +1 -1
  199. package/dist/elements/Hamburger/index.js +35 -11
  200. package/dist/elements/Hamburger/index.js.map +1 -1
  201. package/dist/elements/HydrateAuthProvider/index.js +6 -1
  202. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  203. package/dist/elements/IDLabel/index.js +13 -5
  204. package/dist/elements/IDLabel/index.js.map +1 -1
  205. package/dist/elements/LeaveWithoutSaving/index.js +13 -5
  206. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  207. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +3 -1
  208. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  209. package/dist/elements/Link/index.js +12 -4
  210. package/dist/elements/Link/index.js.map +1 -1
  211. package/dist/elements/ListControls/index.js +126 -42
  212. package/dist/elements/ListControls/index.js.map +1 -1
  213. package/dist/elements/ListControls/types.js +7 -1
  214. package/dist/elements/ListControls/types.js.map +1 -1
  215. package/dist/elements/ListDrawer/DrawerContent.js +20 -8
  216. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  217. package/dist/elements/ListDrawer/Provider.js +15 -4
  218. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  219. package/dist/elements/ListDrawer/index.js +34 -11
  220. package/dist/elements/ListDrawer/index.js.map +1 -1
  221. package/dist/elements/ListDrawer/types.js +5 -1
  222. package/dist/elements/ListDrawer/types.js.map +1 -1
  223. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +19 -7
  224. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  225. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +13 -5
  226. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  227. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +12 -4
  228. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  229. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +7 -3
  230. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  231. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +48 -16
  232. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  233. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +37 -13
  234. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  235. package/dist/elements/ListHeader/index.js +43 -15
  236. package/dist/elements/ListHeader/index.js.map +1 -1
  237. package/dist/elements/ListSelection/index.js +66 -20
  238. package/dist/elements/ListSelection/index.js.map +1 -1
  239. package/dist/elements/LivePreview/Device/index.js +13 -5
  240. package/dist/elements/LivePreview/Device/index.js.map +1 -1
  241. package/dist/elements/LivePreview/DeviceContainer/index.js +7 -3
  242. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  243. package/dist/elements/LivePreview/IFrame/index.js +7 -3
  244. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  245. package/dist/elements/LivePreview/Toggler/index.js +13 -5
  246. package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
  247. package/dist/elements/LivePreview/Toolbar/Controls/index.js +137 -45
  248. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  249. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +7 -3
  250. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  251. package/dist/elements/LivePreview/Toolbar/index.js +48 -16
  252. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  253. package/dist/elements/LivePreview/ToolbarArea/index.js +7 -3
  254. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  255. package/dist/elements/LivePreview/Window/index.js +41 -13
  256. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  257. package/dist/elements/Loading/index.js +55 -19
  258. package/dist/elements/Loading/index.js.map +1 -1
  259. package/dist/elements/LoadingOverlay/index.js +13 -5
  260. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  261. package/dist/elements/Localizer/LocalizerLabel/index.js +31 -11
  262. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  263. package/dist/elements/Localizer/index.js +47 -15
  264. package/dist/elements/Localizer/index.js.map +1 -1
  265. package/dist/elements/Locked/index.js +18 -6
  266. package/dist/elements/Locked/index.js.map +1 -1
  267. package/dist/elements/Logout/index.js +17 -5
  268. package/dist/elements/Logout/index.js.map +1 -1
  269. package/dist/elements/Nav/NavToggler/index.js +7 -3
  270. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  271. package/dist/elements/Nav/context.js +7 -3
  272. package/dist/elements/Nav/context.js.map +1 -1
  273. package/dist/elements/NavGroup/index.js +49 -17
  274. package/dist/elements/NavGroup/index.js.map +1 -1
  275. package/dist/elements/NoListResults/index.js +19 -7
  276. package/dist/elements/NoListResults/index.js.map +1 -1
  277. package/dist/elements/PageControls/GroupByPageControls.js +7 -3
  278. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  279. package/dist/elements/PageControls/index.js +37 -13
  280. package/dist/elements/PageControls/index.js.map +1 -1
  281. package/dist/elements/Pagination/ClickableArrow/index.js +12 -4
  282. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  283. package/dist/elements/Pagination/Page/index.js +7 -3
  284. package/dist/elements/Pagination/Page/index.js.map +1 -1
  285. package/dist/elements/Pagination/Separator/index.js +7 -3
  286. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  287. package/dist/elements/Pagination/index.js +19 -7
  288. package/dist/elements/Pagination/index.js.map +1 -1
  289. package/dist/elements/PerPage/index.js +61 -21
  290. package/dist/elements/PerPage/index.js.map +1 -1
  291. package/dist/elements/PermanentlyDeleteButton/index.js +31 -11
  292. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  293. package/dist/elements/Pill/index.js +42 -15
  294. package/dist/elements/Pill/index.js.map +1 -1
  295. package/dist/elements/PillSelector/index.js +34 -10
  296. package/dist/elements/PillSelector/index.js.map +1 -1
  297. package/dist/elements/Popup/PopupButtonList/index.js +25 -9
  298. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  299. package/dist/elements/Popup/PopupDivider/index.js +7 -3
  300. package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
  301. package/dist/elements/Popup/PopupGroupLabel/index.js +7 -3
  302. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
  303. package/dist/elements/Popup/PopupTrigger/index.js +13 -5
  304. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  305. package/dist/elements/Popup/index.js +60 -20
  306. package/dist/elements/Popup/index.js.map +1 -1
  307. package/dist/elements/PreviewButton/index.js +12 -4
  308. package/dist/elements/PreviewButton/index.js.map +1 -1
  309. package/dist/elements/PreviewSizes/index.js +97 -33
  310. package/dist/elements/PreviewSizes/index.js.map +1 -1
  311. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +67 -23
  312. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  313. package/dist/elements/PublishButton/ScheduleDrawer/index.js +165 -53
  314. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  315. package/dist/elements/PublishButton/index.js +49 -17
  316. package/dist/elements/PublishButton/index.js.map +1 -1
  317. package/dist/elements/PublishMany/DrawerContent.js +7 -3
  318. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  319. package/dist/elements/PublishMany/index.js +28 -10
  320. package/dist/elements/PublishMany/index.js.map +1 -1
  321. package/dist/elements/QueryPresets/QueryPresetBar/index.js +109 -38
  322. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  323. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +42 -14
  324. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  325. package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -9
  326. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
  327. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +13 -5
  328. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  329. package/dist/elements/QueryPresets/cells/GroupByCell/index.js +13 -5
  330. package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
  331. package/dist/elements/QueryPresets/cells/WhereCell/index.js +7 -3
  332. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
  333. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +25 -9
  334. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  335. package/dist/elements/QueryPresets/fields/GroupByField/index.js +31 -11
  336. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  337. package/dist/elements/QueryPresets/fields/WhereField/index.js +79 -27
  338. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  339. package/dist/elements/ReactSelect/ClearIndicator/index.js +13 -5
  340. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  341. package/dist/elements/ReactSelect/Control/index.js +13 -5
  342. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  343. package/dist/elements/ReactSelect/DropdownIndicator/index.js +13 -5
  344. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  345. package/dist/elements/ReactSelect/Input/index.js +13 -5
  346. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  347. package/dist/elements/ReactSelect/MultiValue/index.js +13 -5
  348. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  349. package/dist/elements/ReactSelect/MultiValueLabel/index.js +13 -5
  350. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  351. package/dist/elements/ReactSelect/MultiValueRemove/index.js +19 -7
  352. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  353. package/dist/elements/ReactSelect/SingleValue/index.js +13 -5
  354. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  355. package/dist/elements/ReactSelect/ValueContainer/index.js +19 -7
  356. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  357. package/dist/elements/ReactSelect/index.js +45 -17
  358. package/dist/elements/ReactSelect/index.js.map +1 -1
  359. package/dist/elements/ReactSelect/types.js +8 -1
  360. package/dist/elements/ReactSelect/types.js.map +1 -1
  361. package/dist/elements/RelationshipTable/AddNewButton.js +37 -13
  362. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  363. package/dist/elements/RelationshipTable/Pagination.js +7 -3
  364. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  365. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +24 -8
  366. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  367. package/dist/elements/RelationshipTable/index.js +121 -41
  368. package/dist/elements/RelationshipTable/index.js.map +1 -1
  369. package/dist/elements/RenderComponent/index.js +19 -7
  370. package/dist/elements/RenderComponent/index.js.map +1 -1
  371. package/dist/elements/RenderIfInViewport/index.js +7 -3
  372. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  373. package/dist/elements/RenderServerComponent/index.js +13 -5
  374. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  375. package/dist/elements/RenderTitle/index.js +25 -9
  376. package/dist/elements/RenderTitle/index.js.map +1 -1
  377. package/dist/elements/RestoreButton/index.js +49 -17
  378. package/dist/elements/RestoreButton/index.js.map +1 -1
  379. package/dist/elements/RestoreMany/index.js +38 -13
  380. package/dist/elements/RestoreMany/index.js.map +1 -1
  381. package/dist/elements/SaveButton/index.js +8 -5
  382. package/dist/elements/SaveButton/index.js.map +1 -1
  383. package/dist/elements/SaveDraftButton/index.js +8 -5
  384. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  385. package/dist/elements/SearchBar/index.js +24 -8
  386. package/dist/elements/SearchBar/index.js.map +1 -1
  387. package/dist/elements/SearchFilter/index.js +13 -5
  388. package/dist/elements/SearchFilter/index.js.map +1 -1
  389. package/dist/elements/SearchFilter/types.js +19 -1
  390. package/dist/elements/SearchFilter/types.js.map +1 -1
  391. package/dist/elements/SelectAll/index.js +7 -3
  392. package/dist/elements/SelectAll/index.js.map +1 -1
  393. package/dist/elements/SelectMany/index.js +7 -3
  394. package/dist/elements/SelectMany/index.js.map +1 -1
  395. package/dist/elements/SelectRow/index.js +13 -5
  396. package/dist/elements/SelectRow/index.js.map +1 -1
  397. package/dist/elements/ShimmerEffect/index.js +31 -11
  398. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  399. package/dist/elements/SortColumn/index.js +48 -16
  400. package/dist/elements/SortColumn/index.js.map +1 -1
  401. package/dist/elements/SortComplex/index.js +55 -19
  402. package/dist/elements/SortComplex/index.js.map +1 -1
  403. package/dist/elements/SortHeader/index.js +24 -8
  404. package/dist/elements/SortHeader/index.js.map +1 -1
  405. package/dist/elements/SortRow/index.js +13 -5
  406. package/dist/elements/SortRow/index.js.map +1 -1
  407. package/dist/elements/Status/index.js +63 -23
  408. package/dist/elements/Status/index.js.map +1 -1
  409. package/dist/elements/StayLoggedIn/index.js +7 -3
  410. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  411. package/dist/elements/StepNav/context.js +7 -3
  412. package/dist/elements/StepNav/context.js.map +1 -1
  413. package/dist/elements/StepNav/index.js +109 -33
  414. package/dist/elements/StepNav/index.js.map +1 -1
  415. package/dist/elements/StickyToolbar/index.js +7 -3
  416. package/dist/elements/StickyToolbar/index.js.map +1 -1
  417. package/dist/elements/Table/DefaultCell/fields/Array/index.js +7 -3
  418. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  419. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +7 -3
  420. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  421. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +13 -5
  422. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  423. package/dist/elements/Table/DefaultCell/fields/Code/index.js +13 -5
  424. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  425. package/dist/elements/Table/DefaultCell/fields/Date/index.js +7 -3
  426. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  427. package/dist/elements/Table/DefaultCell/fields/File/index.js +21 -9
  428. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  429. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +13 -5
  430. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  431. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -7
  432. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  433. package/dist/elements/Table/DefaultCell/fields/Select/index.js +11 -7
  434. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  435. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +7 -3
  436. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  437. package/dist/elements/Table/DefaultCell/index.js +45 -16
  438. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  439. package/dist/elements/Table/OrderableRow.js +25 -9
  440. package/dist/elements/Table/OrderableRow.js.map +1 -1
  441. package/dist/elements/Table/OrderableRowDragPreview.js +19 -7
  442. package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
  443. package/dist/elements/Table/OrderableTable.js +79 -27
  444. package/dist/elements/Table/OrderableTable.js.map +1 -1
  445. package/dist/elements/Table/RelationshipProvider/index.js +10 -3
  446. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  447. package/dist/elements/Table/index.js +55 -19
  448. package/dist/elements/Table/index.js.map +1 -1
  449. package/dist/elements/Thumbnail/createThumbnail.js +12 -12
  450. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  451. package/dist/elements/Thumbnail/index.js +47 -15
  452. package/dist/elements/Thumbnail/index.js.map +1 -1
  453. package/dist/elements/ThumbnailCard/index.js +19 -7
  454. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  455. package/dist/elements/TimezonePicker/index.js +19 -7
  456. package/dist/elements/TimezonePicker/index.js.map +1 -1
  457. package/dist/elements/Toasts/fieldErrors.js +24 -8
  458. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  459. package/dist/elements/Tooltip/index.js +34 -12
  460. package/dist/elements/Tooltip/index.js.map +1 -1
  461. package/dist/elements/Translation/index.js +25 -9
  462. package/dist/elements/Translation/index.js.map +1 -1
  463. package/dist/elements/TrashBanner/index.js +18 -6
  464. package/dist/elements/TrashBanner/index.js.map +1 -1
  465. package/dist/elements/UnpublishMany/DrawerContent.js +7 -3
  466. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  467. package/dist/elements/UnpublishMany/index.js +28 -10
  468. package/dist/elements/UnpublishMany/index.js.map +1 -1
  469. package/dist/elements/Upload/index.js +235 -83
  470. package/dist/elements/Upload/index.js.map +1 -1
  471. package/dist/elements/ViewDescription/index.js +7 -3
  472. package/dist/elements/ViewDescription/index.js.map +1 -1
  473. package/dist/elements/WhereBuilder/Condition/Date/index.js +13 -5
  474. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  475. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +37 -13
  476. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  477. package/dist/elements/WhereBuilder/Condition/Number/index.js +13 -4
  478. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  479. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +23 -12
  480. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  481. package/dist/elements/WhereBuilder/Condition/Select/index.js +7 -3
  482. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  483. package/dist/elements/WhereBuilder/Condition/Text/index.js +13 -4
  484. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  485. package/dist/elements/WhereBuilder/Condition/index.js +73 -25
  486. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  487. package/dist/elements/WhereBuilder/index.js +87 -31
  488. package/dist/elements/WhereBuilder/index.js.map +1 -1
  489. package/dist/elements/WithServerSideProps/index.js +7 -3
  490. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  491. package/dist/elements/withMergedProps/index.js +7 -3
  492. package/dist/elements/withMergedProps/index.js.map +1 -1
  493. package/dist/exports/client/index.js +26 -2
  494. package/dist/exports/client/index.js.map +1 -1
  495. package/dist/exports/shared/index.js +2 -1
  496. package/dist/exports/shared/index.js.map +1 -1
  497. package/dist/fields/Array/ArrayRow.js +52 -16
  498. package/dist/fields/Array/ArrayRow.js.map +1 -1
  499. package/dist/fields/Array/index.js +169 -57
  500. package/dist/fields/Array/index.js.map +1 -1
  501. package/dist/fields/Blocks/BlockRow.js +72 -24
  502. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  503. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +18 -6
  504. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  505. package/dist/fields/Blocks/BlockSelector/index.js +74 -24
  506. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  507. package/dist/fields/Blocks/BlocksDrawer/index.js +13 -5
  508. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  509. package/dist/fields/Blocks/RowActions.js +19 -7
  510. package/dist/fields/Blocks/RowActions.js.map +1 -1
  511. package/dist/fields/Blocks/SectionTitle/index.js +13 -5
  512. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  513. package/dist/fields/Blocks/index.js +187 -63
  514. package/dist/fields/Blocks/index.js.map +1 -1
  515. package/dist/fields/Checkbox/Input.js +47 -15
  516. package/dist/fields/Checkbox/Input.js.map +1 -1
  517. package/dist/fields/Checkbox/index.js +37 -13
  518. package/dist/fields/Checkbox/index.js.map +1 -1
  519. package/dist/fields/Code/index.js +55 -19
  520. package/dist/fields/Code/index.js.map +1 -1
  521. package/dist/fields/Collapsible/index.js +61 -21
  522. package/dist/fields/Collapsible/index.js.map +1 -1
  523. package/dist/fields/ConfirmPassword/index.js +31 -11
  524. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  525. package/dist/fields/DateTime/index.js +61 -21
  526. package/dist/fields/DateTime/index.js.map +1 -1
  527. package/dist/fields/Email/index.js +55 -19
  528. package/dist/fields/Email/index.js.map +1 -1
  529. package/dist/fields/FieldDescription/index.js +7 -3
  530. package/dist/fields/FieldDescription/index.js.map +1 -1
  531. package/dist/fields/FieldError/index.js +7 -3
  532. package/dist/fields/FieldError/index.js.map +1 -1
  533. package/dist/fields/FieldLabel/index.js +19 -7
  534. package/dist/fields/FieldLabel/index.js.map +1 -1
  535. package/dist/fields/Group/index.js +78 -26
  536. package/dist/fields/Group/index.js.map +1 -1
  537. package/dist/fields/Group/provider.js +7 -3
  538. package/dist/fields/Group/provider.js.map +1 -1
  539. package/dist/fields/Hidden/index.js +7 -3
  540. package/dist/fields/Hidden/index.js.map +1 -1
  541. package/dist/fields/JSON/index.js +55 -19
  542. package/dist/fields/JSON/index.js.map +1 -1
  543. package/dist/fields/Join/index.js +49 -17
  544. package/dist/fields/Join/index.js.map +1 -1
  545. package/dist/fields/Number/index.js +71 -25
  546. package/dist/fields/Number/index.js.map +1 -1
  547. package/dist/fields/Password/index.js +7 -3
  548. package/dist/fields/Password/index.js.map +1 -1
  549. package/dist/fields/Password/input.js +61 -21
  550. package/dist/fields/Password/input.js.map +1 -1
  551. package/dist/fields/Password/types.js +11 -1
  552. package/dist/fields/Password/types.js.map +1 -1
  553. package/dist/fields/Point/index.js +97 -33
  554. package/dist/fields/Point/index.js.map +1 -1
  555. package/dist/fields/RadioGroup/Radio/index.js +31 -11
  556. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  557. package/dist/fields/RadioGroup/index.js +67 -23
  558. package/dist/fields/RadioGroup/index.js.map +1 -1
  559. package/dist/fields/Relationship/Input.js +84 -28
  560. package/dist/fields/Relationship/Input.js.map +1 -1
  561. package/dist/fields/Relationship/index.js +7 -3
  562. package/dist/fields/Relationship/index.js.map +1 -1
  563. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +47 -16
  564. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  565. package/dist/fields/Relationship/select-components/SingleValue/index.js +52 -17
  566. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  567. package/dist/fields/Row/index.js +19 -7
  568. package/dist/fields/Row/index.js.map +1 -1
  569. package/dist/fields/Row/provider.js +7 -3
  570. package/dist/fields/Row/provider.js.map +1 -1
  571. package/dist/fields/Select/Input.js +55 -19
  572. package/dist/fields/Select/Input.js.map +1 -1
  573. package/dist/fields/Select/index.js +7 -3
  574. package/dist/fields/Select/index.js.map +1 -1
  575. package/dist/fields/Slug/index.js +37 -13
  576. package/dist/fields/Slug/index.js.map +1 -1
  577. package/dist/fields/Tabs/Tab/index.js +25 -9
  578. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  579. package/dist/fields/Tabs/index.js +67 -23
  580. package/dist/fields/Tabs/index.js.map +1 -1
  581. package/dist/fields/Tabs/provider.js +7 -3
  582. package/dist/fields/Tabs/provider.js.map +1 -1
  583. package/dist/fields/Text/Input.js +60 -20
  584. package/dist/fields/Text/Input.js.map +1 -1
  585. package/dist/fields/Text/index.js +10 -5
  586. package/dist/fields/Text/index.js.map +1 -1
  587. package/dist/fields/Textarea/Input.js +61 -21
  588. package/dist/fields/Textarea/Input.js.map +1 -1
  589. package/dist/fields/Textarea/index.js +7 -3
  590. package/dist/fields/Textarea/index.js.map +1 -1
  591. package/dist/fields/Upload/HasMany/index.js +48 -16
  592. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  593. package/dist/fields/Upload/HasOne/index.js +13 -5
  594. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  595. package/dist/fields/Upload/Input.js +154 -56
  596. package/dist/fields/Upload/Input.js.map +1 -1
  597. package/dist/fields/Upload/RelationshipContent/index.js +73 -25
  598. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  599. package/dist/fields/Upload/UploadCard/index.js +7 -3
  600. package/dist/fields/Upload/UploadCard/index.js.map +1 -1
  601. package/dist/fields/Upload/index.js +13 -5
  602. package/dist/fields/Upload/index.js.map +1 -1
  603. package/dist/fields/Upload/types.js +1 -0
  604. package/dist/fields/Upload/types.js.map +1 -1
  605. package/dist/fields/shared/index.js +2 -3
  606. package/dist/fields/shared/index.js.map +1 -1
  607. package/dist/forms/Form/fieldReducer.js +2 -1
  608. package/dist/forms/Form/fieldReducer.js.map +1 -1
  609. package/dist/forms/Form/index.js +78 -31
  610. package/dist/forms/Form/index.js.map +1 -1
  611. package/dist/forms/Form/mergeServerFormState.js +11 -3
  612. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  613. package/dist/forms/Form/reduceToSerializableFields.js +2 -2
  614. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  615. package/dist/forms/Form/types.js +52 -1
  616. package/dist/forms/Form/types.js.map +1 -1
  617. package/dist/forms/NullifyField/index.js +15 -6
  618. package/dist/forms/NullifyField/index.js.map +1 -1
  619. package/dist/forms/RenderFields/RenderField.js +138 -46
  620. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  621. package/dist/forms/RenderFields/index.js +19 -7
  622. package/dist/forms/RenderFields/index.js.map +1 -1
  623. package/dist/forms/RowLabel/Context/index.js +7 -3
  624. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  625. package/dist/forms/RowLabel/index.js +19 -7
  626. package/dist/forms/RowLabel/index.js.map +1 -1
  627. package/dist/forms/Submit/index.js +13 -5
  628. package/dist/forms/Submit/index.js.map +1 -1
  629. package/dist/forms/WatchChildErrors/index.js +6 -1
  630. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  631. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +20 -0
  632. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  633. package/dist/forms/fieldSchemasToFormState/index.js +33 -1
  634. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  635. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +2 -2
  636. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  637. package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
  638. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  639. package/dist/forms/fieldSchemasToFormState/renderField.js +21 -9
  640. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  641. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -1
  642. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  643. package/dist/forms/fieldSchemasToFormState/types.js +5 -1
  644. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  645. package/dist/forms/useField/index.js +1 -0
  646. package/dist/forms/useField/index.js.map +1 -1
  647. package/dist/forms/useField/types.js +19 -1
  648. package/dist/forms/useField/types.js.map +1 -1
  649. package/dist/forms/withCondition/index.js +13 -5
  650. package/dist/forms/withCondition/index.js.map +1 -1
  651. package/dist/graphics/Account/Default/index.js +25 -9
  652. package/dist/graphics/Account/Default/index.js.map +1 -1
  653. package/dist/graphics/Account/Gravatar/index.js +7 -3
  654. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  655. package/dist/graphics/Account/index.js +12 -4
  656. package/dist/graphics/Account/index.js.map +1 -1
  657. package/dist/graphics/DefaultBlockImage/index.js +67 -23
  658. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  659. package/dist/graphics/File/index.js +19 -7
  660. package/dist/graphics/File/index.js.map +1 -1
  661. package/dist/graphics/Icon/index.js +19 -7
  662. package/dist/graphics/Icon/index.js.map +1 -1
  663. package/dist/graphics/Logo/index.js +85 -29
  664. package/dist/graphics/Logo/index.js.map +1 -1
  665. package/dist/hooks/useControllableState.js +9 -1
  666. package/dist/hooks/useControllableState.js.map +1 -1
  667. package/dist/hooks/useDelayedRender.js +3 -1
  668. package/dist/hooks/useDelayedRender.js.map +1 -1
  669. package/dist/hooks/useHotkey.js +2 -2
  670. package/dist/hooks/useHotkey.js.map +1 -1
  671. package/dist/hooks/usePayloadAPI.js +3 -4
  672. package/dist/hooks/usePayloadAPI.js.map +1 -1
  673. package/dist/hooks/usePopupWindow.js +2 -2
  674. package/dist/hooks/usePopupWindow.js.map +1 -1
  675. package/dist/hooks/useQueue.js +15 -7
  676. package/dist/hooks/useQueue.js.map +1 -1
  677. package/dist/hooks/useResize.js +4 -3
  678. package/dist/hooks/useResize.js.map +1 -1
  679. package/dist/icons/Calendar/index.js +13 -5
  680. package/dist/icons/Calendar/index.js.map +1 -1
  681. package/dist/icons/Check/index.js +13 -5
  682. package/dist/icons/Check/index.js.map +1 -1
  683. package/dist/icons/Chevron/index.js +13 -5
  684. package/dist/icons/Chevron/index.js.map +1 -1
  685. package/dist/icons/CloseMenu/index.js +13 -5
  686. package/dist/icons/CloseMenu/index.js.map +1 -1
  687. package/dist/icons/CodeBlock/index.js +13 -5
  688. package/dist/icons/CodeBlock/index.js.map +1 -1
  689. package/dist/icons/Copy/index.js +13 -5
  690. package/dist/icons/Copy/index.js.map +1 -1
  691. package/dist/icons/Document/index.js +13 -5
  692. package/dist/icons/Document/index.js.map +1 -1
  693. package/dist/icons/Dots/index.js +22 -6
  694. package/dist/icons/Dots/index.js.map +1 -1
  695. package/dist/icons/DragHandle/index.js +43 -15
  696. package/dist/icons/DragHandle/index.js.map +1 -1
  697. package/dist/icons/Edit/index.js +13 -5
  698. package/dist/icons/Edit/index.js.map +1 -1
  699. package/dist/icons/ExternalLink/index.js +13 -5
  700. package/dist/icons/ExternalLink/index.js.map +1 -1
  701. package/dist/icons/Eye/index.js +36 -12
  702. package/dist/icons/Eye/index.js.map +1 -1
  703. package/dist/icons/Folder/index.js +13 -5
  704. package/dist/icons/Folder/index.js.map +1 -1
  705. package/dist/icons/Gear/index.js +19 -7
  706. package/dist/icons/Gear/index.js.map +1 -1
  707. package/dist/icons/GridView/index.js +31 -11
  708. package/dist/icons/GridView/index.js.map +1 -1
  709. package/dist/icons/Line/index.js +13 -5
  710. package/dist/icons/Line/index.js.map +1 -1
  711. package/dist/icons/Link/index.js +13 -5
  712. package/dist/icons/Link/index.js.map +1 -1
  713. package/dist/icons/ListView/index.js +13 -5
  714. package/dist/icons/ListView/index.js.map +1 -1
  715. package/dist/icons/Lock/index.js +19 -7
  716. package/dist/icons/Lock/index.js.map +1 -1
  717. package/dist/icons/LogOut/index.js +13 -5
  718. package/dist/icons/LogOut/index.js.map +1 -1
  719. package/dist/icons/Menu/index.js +13 -5
  720. package/dist/icons/Menu/index.js.map +1 -1
  721. package/dist/icons/MinimizeMaximize/index.js +18 -6
  722. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  723. package/dist/icons/More/index.js +25 -9
  724. package/dist/icons/More/index.js.map +1 -1
  725. package/dist/icons/MoveFolder/index.js +37 -13
  726. package/dist/icons/MoveFolder/index.js.map +1 -1
  727. package/dist/icons/People/index.js +13 -5
  728. package/dist/icons/People/index.js.map +1 -1
  729. package/dist/icons/Plus/index.js +13 -5
  730. package/dist/icons/Plus/index.js.map +1 -1
  731. package/dist/icons/Search/index.js +13 -5
  732. package/dist/icons/Search/index.js.map +1 -1
  733. package/dist/icons/Sort/index.js +25 -9
  734. package/dist/icons/Sort/index.js.map +1 -1
  735. package/dist/icons/Swap/index.js +13 -5
  736. package/dist/icons/Swap/index.js.map +1 -1
  737. package/dist/icons/ThreeDots/index.js +22 -6
  738. package/dist/icons/ThreeDots/index.js.map +1 -1
  739. package/dist/icons/Trash/index.js +13 -5
  740. package/dist/icons/Trash/index.js.map +1 -1
  741. package/dist/icons/X/index.js +13 -5
  742. package/dist/icons/X/index.js.map +1 -1
  743. package/dist/providers/Actions/index.js +7 -3
  744. package/dist/providers/Actions/index.js.map +1 -1
  745. package/dist/providers/Auth/index.js +42 -6
  746. package/dist/providers/Auth/index.js.map +1 -1
  747. package/dist/providers/ClickOutside/index.js +7 -3
  748. package/dist/providers/ClickOutside/index.js.map +1 -1
  749. package/dist/providers/ClientFunction/index.js +13 -5
  750. package/dist/providers/ClientFunction/index.js.map +1 -1
  751. package/dist/providers/Config/index.js +23 -6
  752. package/dist/providers/Config/index.js.map +1 -1
  753. package/dist/providers/DocumentEvents/index.js +7 -3
  754. package/dist/providers/DocumentEvents/index.js.map +1 -1
  755. package/dist/providers/DocumentInfo/index.js +31 -16
  756. package/dist/providers/DocumentInfo/index.js.map +1 -1
  757. package/dist/providers/DocumentInfo/types.js +25 -1
  758. package/dist/providers/DocumentInfo/types.js.map +1 -1
  759. package/dist/providers/DocumentTitle/index.js +7 -3
  760. package/dist/providers/DocumentTitle/index.js.map +1 -1
  761. package/dist/providers/EditDepth/index.js +7 -3
  762. package/dist/providers/EditDepth/index.js.map +1 -1
  763. package/dist/providers/EntityVisibility/index.js +7 -3
  764. package/dist/providers/EntityVisibility/index.js.map +1 -1
  765. package/dist/providers/Folders/index.js +51 -5
  766. package/dist/providers/Folders/index.js.map +1 -1
  767. package/dist/providers/ListQuery/index.js +13 -5
  768. package/dist/providers/ListQuery/index.js.map +1 -1
  769. package/dist/providers/ListQuery/types.js +5 -1
  770. package/dist/providers/ListQuery/types.js.map +1 -1
  771. package/dist/providers/LivePreview/context.js +11 -1
  772. package/dist/providers/LivePreview/context.js.map +1 -1
  773. package/dist/providers/LivePreview/index.js +20 -9
  774. package/dist/providers/LivePreview/index.js.map +1 -1
  775. package/dist/providers/Locale/index.js +13 -5
  776. package/dist/providers/Locale/index.js.map +1 -1
  777. package/dist/providers/Operation/index.js +7 -3
  778. package/dist/providers/Operation/index.js.map +1 -1
  779. package/dist/providers/Params/index.js +7 -3
  780. package/dist/providers/Params/index.js.map +1 -1
  781. package/dist/providers/Preferences/index.js +14 -5
  782. package/dist/providers/Preferences/index.js.map +1 -1
  783. package/dist/providers/Root/index.js +154 -50
  784. package/dist/providers/Root/index.js.map +1 -1
  785. package/dist/providers/RouteCache/index.js +7 -3
  786. package/dist/providers/RouteCache/index.js.map +1 -1
  787. package/dist/providers/RouteTransition/ProgressBar/index.js +13 -5
  788. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  789. package/dist/providers/RouteTransition/index.js +16 -12
  790. package/dist/providers/RouteTransition/index.js.map +1 -1
  791. package/dist/providers/SearchParams/index.js +7 -3
  792. package/dist/providers/SearchParams/index.js.map +1 -1
  793. package/dist/providers/Selection/index.js +14 -5
  794. package/dist/providers/Selection/index.js.map +1 -1
  795. package/dist/providers/ServerFunctions/index.js +32 -25
  796. package/dist/providers/ServerFunctions/index.js.map +1 -1
  797. package/dist/providers/TableColumns/RenderDefaultCell/index.js +13 -5
  798. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  799. package/dist/providers/TableColumns/buildColumnState/index.js +17 -12
  800. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  801. package/dist/providers/TableColumns/buildColumnState/renderCell.js +17 -8
  802. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  803. package/dist/providers/TableColumns/index.js +7 -3
  804. package/dist/providers/TableColumns/index.js.map +1 -1
  805. package/dist/providers/TableColumns/types.js +17 -1
  806. package/dist/providers/TableColumns/types.js.map +1 -1
  807. package/dist/providers/Theme/index.js +7 -3
  808. package/dist/providers/Theme/index.js.map +1 -1
  809. package/dist/providers/ToastContainer/icons/Error.js +19 -7
  810. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  811. package/dist/providers/ToastContainer/icons/Info.js +19 -7
  812. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  813. package/dist/providers/ToastContainer/icons/Success.js +19 -7
  814. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  815. package/dist/providers/ToastContainer/icons/Warning.js +19 -7
  816. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  817. package/dist/providers/ToastContainer/index.js +27 -7
  818. package/dist/providers/ToastContainer/index.js.map +1 -1
  819. package/dist/providers/Translation/index.js +7 -3
  820. package/dist/providers/Translation/index.js.map +1 -1
  821. package/dist/providers/UploadControls/index.js +7 -3
  822. package/dist/providers/UploadControls/index.js.map +1 -1
  823. package/dist/providers/UploadEdits/index.js +7 -3
  824. package/dist/providers/UploadEdits/index.js.map +1 -1
  825. package/dist/providers/UploadHandlers/index.js +7 -3
  826. package/dist/providers/UploadHandlers/index.js.map +1 -1
  827. package/dist/utilities/abortAndIgnore.js +4 -6
  828. package/dist/utilities/abortAndIgnore.js.map +1 -1
  829. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +2 -2
  830. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  831. package/dist/utilities/combineFieldLabel.js +37 -13
  832. package/dist/utilities/combineFieldLabel.js.map +1 -1
  833. package/dist/utilities/copyDataFromLocale.js +6 -2
  834. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  835. package/dist/utilities/getDisplayedFieldValue.js +8 -8
  836. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  837. package/dist/utilities/getFolderResultsComponentAndData.js +31 -14
  838. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  839. package/dist/utilities/handleFormStateLocking.js +2 -2
  840. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  841. package/dist/utilities/hasSavePermission.js +5 -1
  842. package/dist/utilities/hasSavePermission.js.map +1 -1
  843. package/dist/utilities/isURLAllowed.js +6 -6
  844. package/dist/utilities/isURLAllowed.js.map +1 -1
  845. package/dist/utilities/renderTable.js +84 -27
  846. package/dist/utilities/renderTable.js.map +1 -1
  847. package/dist/utilities/schedulePublishHandler.js +3 -1
  848. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  849. package/dist/utilities/upsertPreferences.js +1 -0
  850. package/dist/utilities/upsertPreferences.js.map +1 -1
  851. package/dist/views/BrowseByFolder/index.js +168 -56
  852. package/dist/views/BrowseByFolder/index.js.map +1 -1
  853. package/dist/views/CollectionFolder/ListSelection/index.js +67 -23
  854. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  855. package/dist/views/CollectionFolder/index.js +147 -47
  856. package/dist/views/CollectionFolder/index.js.map +1 -1
  857. package/dist/views/Edit/Auth/APIKey.js +67 -23
  858. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  859. package/dist/views/Edit/Auth/index.js +91 -31
  860. package/dist/views/Edit/Auth/index.js.map +1 -1
  861. package/dist/views/Edit/index.js +124 -48
  862. package/dist/views/Edit/index.js.map +1 -1
  863. package/dist/views/List/GroupByHeader/index.js +19 -7
  864. package/dist/views/List/GroupByHeader/index.js.map +1 -1
  865. package/dist/views/List/ListHeader/index.js +68 -23
  866. package/dist/views/List/ListHeader/index.js.map +1 -1
  867. package/dist/views/List/ListSelection/index.js +49 -17
  868. package/dist/views/List/ListSelection/index.js.map +1 -1
  869. package/dist/views/List/index.js +162 -54
  870. package/dist/views/List/index.js.map +1 -1
  871. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n CollectionSlug,\n Data,\n DocumentSlots,\n FormState,\n JsonObject,\n SanitizedDocumentPermissions,\n UploadEdits,\n} from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly resetUploadEdits?: () => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly totalErrorCount?: number\n readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n totalErrorCount: 0,\n updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\nexport type InitialForms = Array<{\n file: File\n formID?: string\n initialState?: FormState | null\n}>\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const {\n collectionSlug,\n drawerSlug,\n initialFiles,\n initialForms,\n onSuccess,\n setInitialFiles,\n setInitialForms,\n setSuccessfullyUploaded,\n } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${serverURL}${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formID: form.formID,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n if (forms.length) {\n // save the state of the current form before adding new files\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: getFormDataRef.current(),\n index: activeIndex,\n })\n }\n\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({\n type: 'ADD_FORMS',\n forms: Array.from(files).map((file) => ({\n file,\n initialState: initialStateRef.current,\n })),\n })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay, activeIndex, forms],\n )\n\n const addFilesEffectEvent = useEffectEvent(addFiles)\n\n const addInitialForms = useEffectEvent(async (initialForms: InitialForms) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n\n dispatch({\n type: 'ADD_FORMS',\n forms: initialForms.map((form) => ({\n ...form,\n initialState: form?.initialState || initialStateRef.current,\n })),\n })\n\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n })\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formID: currentForms[activeIndex].formID,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }> = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n const fileValue = form.formState?.file?.value\n\n // Skip upload if file is missing a filename\n if (\n fileValue &&\n typeof fileValue === 'object' &&\n 'name' in fileValue &&\n (!fileValue.name || fileValue.name === '')\n ) {\n currentForms[i] = {\n ...currentForms[i],\n errorCount: 1,\n }\n continue\n }\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n locale: code,\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\n credentials: 'include',\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push({\n collectionSlug,\n doc: json.doc,\n formID: form.formID,\n })\n }\n\n // should expose some sort of helper for this\n const [fieldErrors, nonFieldErrors] = (json?.errors || []).reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\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 currentForms[i] = {\n errorCount: fieldErrors.length,\n formID: currentForms[i].formID,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n }\n })\n\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n setSuccessfullyUploaded(true)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n\n if (remainingForms.length === 0) {\n setInitialFiles(undefined)\n setInitialForms(undefined)\n }\n },\n [\n forms,\n activeIndex,\n t,\n actionURL,\n code,\n collectionSlug,\n getUploadHandler,\n onSuccess,\n closeModal,\n setSuccessfullyUploaded,\n drawerSlug,\n setInitialFiles,\n setInitialForms,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles || initialForms) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (\n hasInitializedState &&\n (initialForms?.length || initialFiles?.length) &&\n !hasInitializedWithFiles.current\n ) {\n if (initialForms?.length) {\n void addInitialForms(initialForms)\n }\n if (initialFiles?.length) {\n void addFilesEffectEvent(initialFiles)\n }\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n initialForms,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"names":["useModal","qs","React","toast","fieldReducer","useEffectEvent","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","initialForms","onSuccess","setInitialFiles","setInitialForms","setSuccessfullyUploaded","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","type","map","form","i","errorCount","formID","formState","uploadEdits","files","length","isLoading","key","Array","from","file","addFilesEffectEvent","addInitialForms","count","overrides","currentForms","newDocs","fileValue","value","name","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","isArray","data","forEach","dataError","path","error","_","remainingForms","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","newFormErrorCount","values","valid","resetUploadEdits","useEffect","animationDuration","overlayType","show","useFormsManager","use"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n CollectionSlug,\n Data,\n DocumentSlots,\n FormState,\n JsonObject,\n SanitizedDocumentPermissions,\n UploadEdits,\n} from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly resetUploadEdits?: () => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly totalErrorCount?: number\n readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n totalErrorCount: 0,\n updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\nexport type InitialForms = Array<{\n file: File\n formID?: string\n initialState?: FormState | null\n}>\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const {\n collectionSlug,\n drawerSlug,\n initialFiles,\n initialForms,\n onSuccess,\n setInitialFiles,\n setInitialForms,\n setSuccessfullyUploaded,\n } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${serverURL}${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formID: form.formID,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n if (forms.length) {\n // save the state of the current form before adding new files\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: getFormDataRef.current(),\n index: activeIndex,\n })\n }\n\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({\n type: 'ADD_FORMS',\n forms: Array.from(files).map((file) => ({\n file,\n initialState: initialStateRef.current,\n })),\n })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay, activeIndex, forms],\n )\n\n const addFilesEffectEvent = useEffectEvent(addFiles)\n\n const addInitialForms = useEffectEvent(async (initialForms: InitialForms) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n\n dispatch({\n type: 'ADD_FORMS',\n forms: initialForms.map((form) => ({\n ...form,\n initialState: form?.initialState || initialStateRef.current,\n })),\n })\n\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n })\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formID: currentForms[activeIndex].formID,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }> = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n const fileValue = form.formState?.file?.value\n\n // Skip upload if file is missing a filename\n if (\n fileValue &&\n typeof fileValue === 'object' &&\n 'name' in fileValue &&\n (!fileValue.name || fileValue.name === '')\n ) {\n currentForms[i] = {\n ...currentForms[i],\n errorCount: 1,\n }\n continue\n }\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n locale: code,\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\n credentials: 'include',\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push({\n collectionSlug,\n doc: json.doc,\n formID: form.formID,\n })\n }\n\n // should expose some sort of helper for this\n const [fieldErrors, nonFieldErrors] = (json?.errors || []).reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\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 currentForms[i] = {\n errorCount: fieldErrors.length,\n formID: currentForms[i].formID,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n }\n })\n\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n setSuccessfullyUploaded(true)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n\n if (remainingForms.length === 0) {\n setInitialFiles(undefined)\n setInitialForms(undefined)\n }\n },\n [\n forms,\n activeIndex,\n t,\n actionURL,\n code,\n collectionSlug,\n getUploadHandler,\n onSuccess,\n closeModal,\n setSuccessfullyUploaded,\n drawerSlug,\n setInitialFiles,\n setInitialForms,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles || initialForms) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (\n hasInitializedState &&\n (initialForms?.length || initialFiles?.length) &&\n !hasInitializedWithFiles.current\n ) {\n if (initialForms?.length) {\n void addInitialForms(initialForms)\n }\n if (initialFiles?.length) {\n void addFilesEffectEvent(initialFiles)\n }\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n initialForms,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"names":["useModal","qs","React","toast","fieldReducer","useEffectEvent","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","initialForms","onSuccess","setInitialFiles","setInitialForms","setSuccessfullyUploaded","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","type","map","form","i","errorCount","formID","formState","uploadEdits","files","length","isLoading","key","Array","from","file","addFilesEffectEvent","addInitialForms","count","overrides","currentForms","newDocs","fileValue","value","name","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","isArray","data","forEach","dataError","path","error","_","remainingForms","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","newFormErrorCount","values","valid","resetUploadEdits","useEffect","animationDuration","overlayType","show","useFormsManager","use"],"mappings":"AAAA;;AAYA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,YAAYC,QAAQ,SAAQ;AAC5B,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAI9B,SAASC,YAAY,QAAQ,sCAAqC;AAClE,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,SAAS,QAAQ,qCAAoC;AAC9D,SAASC,SAAS,QAAQ,qCAAoC;AAC9D,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,iBAAiB,QAAQ,6CAA4C;AAC9E,SAASC,qBAAqBC,oBAAoB,QAAQ,0CAAyC;AACnG,SAASC,cAAc,QAAQ,yBAAwB;AACvD,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,aAAa,QAAQ,cAAa;AAC3C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,sBAAsB,QAAQ,eAAc;AAiCrD,MAAMC,wBAAUhB,MAAMiB,aAAa,CAAsB;IACvDC,aAAa;IACbC,UAAU,IAAMC,QAAQC,OAAO;IAC/BC,gBAAgB,IAAM;IACtBC,gBAAgB;IAChBC,gBAAgBC;IAChBC,eAAe,CAAC;IAChBC,OAAO,EAAE;IACTC,gBAAgB;QAAEC,SAAS,IAAO,CAAA,CAAC,CAAA;IAAG;IACtCC,sBAAsB;IACtBrB,mBAAmB;IACnBsB,cAAc;IACdC,gBAAgB;IAChBC,YAAY,KAAO;IACnBC,aAAa,IAAMd,QAAQC,OAAO;IAClCc,gBAAgB,IAAM;IACtBC,wBAAwB,KAAO;IAC/BC,iBAAiB;IACjBC,mBAAmB,KAAO;AAC5B;AAEA,MAAMC,eAAsB;IAC1BrB,aAAa;IACbS,OAAO,EAAE;IACTU,iBAAiB;AACnB;AAYA,OAAO,SAASG,qBAAqB,EAAEC,QAAQ,EAAqB;IAClE,MAAM,EAAEC,MAAM,EAAE,GAAGtC;IACnB,MAAM,EACJuC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGH;IACJ,MAAM,EAAEI,IAAI,EAAE,GAAGzC;IACjB,MAAM,EAAE0C,IAAI,EAAEC,CAAC,EAAE,GAAGzC;IAEpB,MAAM,EAAE0C,gBAAgB,EAAEC,YAAY,EAAE,GAAG5C;IAC3C,MAAM,EAAE6C,gBAAgB,EAAE,GAAG3C;IAE7B,MAAM,CAACkB,eAAe0B,iBAAiB,GAAGpD,MAAMqD,QAAQ,CAAgB,CAAC;IACzE,MAAM,CAACtB,cAAcuB,gBAAgB,GAAGtD,MAAMqD,QAAQ,CAAC;IACvD,MAAM,CAAC7B,gBAAgB+B,kBAAkB,GAAGvD,MAAMqD,QAAQ;IAC1D,MAAM,CAAC5C,mBAAmB+C,qBAAqB,GAAGxD,MAAMqD,QAAQ,CAAC;IACjE,MAAM,CAACvB,sBAAsB2B,wBAAwB,GAAGzD,MAAMqD,QAAQ,CAAC;IACvE,MAAM,CAACK,qBAAqBC,uBAAuB,GAAG3D,MAAMqD,QAAQ,CAAC;IACrE,MAAM,CAACO,8BAA8BC,gCAAgC,GAAG7D,MAAMqD,QAAQ,CAAC;IACvF,MAAM,CAACrB,gBAAgB8B,kBAAkB,GAAG9D,MAAMqD,QAAQ,CAAC;IAC3D,MAAM,CAACU,OAAOC,SAAS,GAAGhE,MAAMiE,UAAU,CAAClD,wBAAwBwB;IACnE,MAAM,EAAErB,WAAW,EAAES,KAAK,EAAEU,eAAe,EAAE,GAAG0B;IAEhD,MAAMG,WAAWlE,MAAMmE,MAAM,CAACxC;IAC9BuC,SAASrC,OAAO,GAAGF;IAEnB,MAAM,EAAEyC,oBAAoB,EAAE,GAAGxD;IACjC,MAAM,EAAEyD,UAAU,EAAE,GAAGvE;IACvB,MAAM,EACJyB,cAAc,EACd+C,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,SAAS,EACTC,eAAe,EACfC,eAAe,EACfC,uBAAuB,EACxB,GAAG/D;IAEJ,MAAM,CAACgE,aAAaC,eAAe,GAAG9E,MAAMqD,QAAQ,CAAC;IACrD,MAAM,CAAC0B,aAAaC,eAAe,GAAGhF,MAAMqD,QAAQ,CAAC;IAErD,MAAM4B,0BAA0BjF,MAAMmE,MAAM,CAAC;IAC7C,MAAMe,kBAAkBlF,MAAMmE,MAAM,CAAY;IAChD,MAAMvC,iBAAiB5B,MAAMmE,MAAM,CAAa,IAAO,CAAA,CAAC,CAAA;IAExD,MAAMgB,YAAY,GAAGtC,YAAYD,IAAI,CAAC,EAAErB,gBAAgB;IAExD,MAAM6D,iCAAiCpF,MAAMqF,WAAW,CAAC;QACvD,MAAMC,SAAS;YACbC,QAAQzC,QAAQrB;QAClB;QAEA,MAAM+D,eAAe,CAAC,CAAC,EAAEjE,eAAe,OAAO,CAAC;QAChD,MAAMkE,MAAM,MAAMC,MAAM,GAAG7C,YAAYD,MAAM4C,aAAa,CAAC,EAAEzF,GAAG4F,SAAS,CAACL,SAAS,EAAE;YACnFM,aAAa;YACbC,SAAS;gBACP,mBAAmB9C,KAAK+C,QAAQ;gBAChC,gBAAgB;YAClB;YACAC,QAAQ;QACV;QAEA,MAAMC,OAAqC,MAAMP,IAAIO,IAAI;QACzD,MAAMC,sBAAsB,MAAMP,MAChC,GAAG7C,YAAYD,MAAM4C,aAAa,CAAC,EAAEzF,GAAG4F,SAAS,CAACL,SAAS,EAC3D;YACEY,MAAMC,KAAKR,SAAS,CAAC;gBACnBS,SAAS;YACX;YACAR,aAAa;YACbC,SAAS;gBACP,mBAAmB9C,KAAK+C,QAAQ;gBAChC,gBAAgB;YAClB;YACAC,QAAQ;QACV,GACAM,IAAI,CAAC,CAACZ,MAAQA,IAAIO,IAAI;QAExBzC,kBAAkByC;QAElBxC,qBACE9C,qBAAqB;YACnBa;YACAC,gBAAgBwE;YAChBM,WAAW;QACb;QAGF7C,wBAAwBwC,qBAAqBM;QAC7C1C,gCAAgC;IAClC,GAAG;QAACjB;QAAKE;QAAMvB;QAAgBwB,KAAK+C,QAAQ;QAAEjD;KAAU;IAExD,MAAM2D,4BAA4BxG,MAAMqF,WAAW,CACjD,OAAOoB;QACL,IAAIA,iBAAiBC,QAAQ;YAC3BD,gBAAgBE,KAAK,CAAC;QACxB;QAEA,yCAAyC;QACzC,MAAMjF,gBAAgB,MAAMuB,iBAAiB;YAAE1B;QAAe;QAC9D6B,iBAAiB1B;QAEjB,IAAI;YACF,MAAM,EAAEqC,OAAO6C,qBAAqB,EAAE,GAAG,MAAM1D,aAAa;gBAC1D3B;gBACAC;gBACAqF,gBAAgB;oBAAEC,QAAQ,CAAC;gBAAE;gBAC7BvB,QAAQzC;gBACRiE,WAAW;gBACXC,iBAAiB;gBACjBC,YAAY1F;gBACZ2F,gBAAgB;YAClB;YACAhC,gBAAgBrD,OAAO,GAAG+E;YAC1BjD,uBAAuB;QACzB,EAAE,OAAOwD,MAAM,CAEf;IACF,GAFI,gBAAgB;IAGpB;QAAClE;QAAkB1B;QAAgB2B;QAAc1B;QAAgBsB;KAAK;IAGxE,MAAMX,iBAAwDnC,MAAMqF,WAAW,CAC7E,CAAC+B;QACC,MAAMC,mBAAmBzF,eAAeC,OAAO;QAC/CmC,SAAS;YACPsD,MAAM;YACNvD,OAAO;gBACL7C,aAAakG;gBACbzF,OAAOA,MAAM4F,GAAG,CAAC,CAACC,MAAMC;oBACtB,IAAIA,MAAMvG,aAAa;wBACrB,OAAO;4BACLwG,YAAYF,KAAKE,UAAU;4BAC3BC,QAAQH,KAAKG,MAAM;4BACnBC,WAAWP;4BACXQ,aAAaL,KAAKK,WAAW;wBAC/B;oBACF;oBACA,OAAOL;gBACT;YACF;QACF;IACF,GACA;QAAC7F;QAAOT;KAAY;IAGtB,MAAMC,WAAWnB,MAAMqF,WAAW,CAChC,OAAOyC;QACL,IAAInG,MAAMoG,MAAM,EAAE;YAChB,6DAA6D;YAC7D/D,SAAS;gBACPsD,MAAM;gBACNI,YAAY/F,KAAK,CAACT,YAAY,CAACwG,UAAU;gBACzCE,WAAWhG,eAAeC,OAAO;gBACjCuF,OAAOlG;YACT;QACF;QAEAkD,qBAAqB;YAAE4D,WAAW;YAAMC,KAAK;QAAa;QAC1D,IAAI,CAACvE,qBAAqB;YACxB,MAAM8C;QACR;QACAxC,SAAS;YACPsD,MAAM;YACN3F,OAAOuG,MAAMC,IAAI,CAACL,OAAOP,GAAG,CAAC,CAACa,OAAU,CAAA;oBACtCA;oBACA7F,cAAc2C,gBAAgBrD,OAAO;gBACvC,CAAA;QACF;QACAuC,qBAAqB;YAAE4D,WAAW;YAAOC,KAAK;QAAa;IAC7D,GACA;QAACzB;QAA2B9C;QAAqBU;QAAsBlD;QAAaS;KAAM;IAG5F,MAAM0G,sBAAsBlI,eAAegB;IAE3C,MAAMmH,kBAAkBnI,eAAe,OAAOqE;QAC5CJ,qBAAqB;YAAE4D,WAAW;YAAMC,KAAK;QAAa;QAE1D,IAAI,CAACvE,qBAAqB;YACxB,MAAM8C;QACR;QAEAxC,SAAS;YACPsD,MAAM;YACN3F,OAAO6C,aAAa+C,GAAG,CAAC,CAACC,OAAU,CAAA;oBACjC,GAAGA,IAAI;oBACPjF,cAAciF,MAAMjF,gBAAgB2C,gBAAgBrD,OAAO;gBAC7D,CAAA;QACF;QAEAuC,qBAAqB;YAAE4D,WAAW;YAAOC,KAAK;QAAa;IAC7D;IAEA,MAAMhG,aAAgDjC,MAAMqF,WAAW,CAAC,CAAC+B;QACvEpD,SAAS;YAAEsD,MAAM;YAAeF;QAAM;IACxC,GAAG,EAAE;IAEL,MAAMhF,yBAAwEpC,MAAMqF,WAAW,CAC7F,CAAC,EAAEqC,UAAU,EAAEN,KAAK,EAAE;QACpBpD,SAAS;YACPsD,MAAM;YACNiB,OAAOb;YACPN;QACF;IACF,GACA,EAAE;IAGJ,MAAMlF,cAAkDlC,MAAMqF,WAAW,CACvE,OAAO,EAAEmD,SAAS,EAAE,GAAG,CAAC,CAAC;QACvB,MAAMnB,mBAAmBzF,eAAeC,OAAO;QAC/C,MAAM4G,eAAe;eAAI9G;SAAM;QAC/B8G,YAAY,CAACvH,YAAY,GAAG;YAC1BwG,YAAYe,YAAY,CAACvH,YAAY,CAACwG,UAAU;YAChDC,QAAQc,YAAY,CAACvH,YAAY,CAACyG,MAAM;YACxCC,WAAWP;YACXQ,aAAaY,YAAY,CAACvH,YAAY,CAAC2G,WAAW;QACpD;QACA,MAAMa,UAGJ;;SAEC,GAEE,EAAE;QAEP5D,eAAe;QAEf,IAAK,IAAI2C,IAAI,GAAGA,IAAIgB,aAAaV,MAAM,EAAEN,IAAK;YAC5C,IAAI;gBACF,MAAMD,OAAOiB,YAAY,CAAChB,EAAE;gBAC5B,MAAMkB,YAAYnB,KAAKI,SAAS,EAAEQ,MAAMQ;gBAExC,4CAA4C;gBAC5C,IACED,aACA,OAAOA,cAAc,YACrB,UAAUA,aACT,CAAA,CAACA,UAAUE,IAAI,IAAIF,UAAUE,IAAI,KAAK,EAAC,GACxC;oBACAJ,YAAY,CAAChB,EAAE,GAAG;wBAChB,GAAGgB,YAAY,CAAChB,EAAE;wBAClBC,YAAY;oBACd;oBACA;gBACF;gBAEA1C,eAAehC,EAAE,yBAAyB;oBAAEnB,SAAS4F,IAAI;oBAAGqB,OAAOL,aAAaV,MAAM;gBAAC;gBAEvF,MAAMgB,sBAAsB,GAAG5D,YAAYpF,GAAG4F,SAAS,CACrD;oBACEJ,QAAQzC;oBACR+E,aAAaL,MAAMK,eAAepG;gBACpC,GACA;oBACEuH,gBAAgB;gBAClB,IACC;gBAEH,MAAMC,MAAM,MAAMvD,MAAMqD,qBAAqB;oBAC3C7C,MAAM,MAAMpF,eACV0G,KAAKI,SAAS,EACdY,WACAjH,gBACA4B,iBAAiB;wBAAE5B;oBAAe;oBAEpCqE,aAAa;oBACbG,QAAQ;gBACV;gBAEA,MAAMC,OAAO,MAAMiD,IAAIjD,IAAI;gBAE3B,IAAIiD,IAAIC,MAAM,KAAK,OAAOlD,MAAMmD,KAAK;oBACnCT,QAAQU,IAAI,CAAC;wBACX7H;wBACA4H,KAAKnD,KAAKmD,GAAG;wBACbxB,QAAQH,KAAKG,MAAM;oBACrB;gBACF;gBAEA,6CAA6C;gBAC7C,MAAM,CAAC0B,aAAaC,eAAe,GAAG,AAACtD,CAAAA,MAAMuD,UAAU,EAAE,AAAD,EAAGC,MAAM,CAC/D,CAAC,CAACC,WAAWC,aAAa,EAAEC;oBAC1B,MAAMC,eAAsB,EAAE;oBAC9B,MAAMC,kBAAyB,EAAE;oBAEjC,IAAIF,KAAKG,SAAS;wBAChBD,gBAAgBT,IAAI,CAACO;oBACvB;oBAEA,IAAIzB,MAAM6B,OAAO,CAACJ,KAAKK,MAAMT,SAAS;wBACpCI,IAAIK,IAAI,EAAET,OAAOU,QAAQ,CAACC;4BACxB,IAAIA,WAAWC,MAAM;gCACnBP,aAAaR,IAAI,CAACc;4BACpB,OAAO;gCACLL,gBAAgBT,IAAI,CAACc;4BACvB;wBACF;oBACF;oBAEA,OAAO;wBACL;+BAAIT;+BAAcG;yBAAa;wBAC/B;+BAAIF;+BAAiBG;yBAAgB;qBACtC;gBACH,GACA;oBAAC,EAAE;oBAAE,EAAE;iBAAC;gBAGVpB,YAAY,CAAChB,EAAE,GAAG;oBAChBC,YAAY2B,YAAYtB,MAAM;oBAC9BJ,QAAQc,YAAY,CAAChB,EAAE,CAACE,MAAM;oBAC9BC,WAAW1H,aAAauI,YAAY,CAAChB,EAAE,CAACG,SAAS,EAAE;wBACjDN,MAAM;wBACNiC,QAAQF;oBACV;gBACF;gBAEA,IAAIJ,IAAIC,MAAM,KAAK,OAAOD,IAAIC,MAAM,KAAK,KAAK;oBAC5C,iBAAiB;oBACjBT,YAAY,CAAChB,EAAE,GAAG;wBAChB,GAAGgB,YAAY,CAAChB,EAAE;wBAClBC,YAAYe,YAAY,CAAChB,EAAE,CAACC,UAAU,GAAG;oBAC3C;oBAEAzH,MAAMmK,KAAK,CAACd,cAAc,CAAC,EAAE,EAAEQ;gBACjC;YACF,EAAE,OAAOO,GAAG,CAEZ;QACF;QAFI,UAAU;QAId/G,gBAAgB;QAChB0B,eAAe;QACfF,eAAe;QAEf,MAAMwF,iBAAiB,EAAE;QAEzB7B,aAAawB,OAAO,CAAC,CAAC,EAAEvC,UAAU,EAAE,EAAED;YACpC,IAAIC,YAAY;gBACd4C,eAAelB,IAAI,CAACX,YAAY,CAAChB,EAAE;YACrC;QACF;QAEA,MAAM8C,eAAeC,KAAKC,GAAG,CAAC,GAAGhC,aAAaV,MAAM,GAAGuC,eAAevC,MAAM;QAC5E,MAAML,aAAae,aAAaV,MAAM,GAAGwC;QAEzC,IAAIA,cAAc;YAChBtK,MAAMyK,OAAO,CAAC,CAAC,mBAAmB,EAAEH,aAAa,MAAM,CAAC;YACxD3F,wBAAwB;YAExB,IAAI,OAAOH,cAAc,YAAY;gBACnCA,UAAUiE,SAAShB;YACrB;QACF;QAEA,IAAIA,YAAY;YACdzH,MAAMmK,KAAK,CAAC,CAAC,eAAe,EAAE1C,WAAW,MAAM,CAAC;QAClD,OAAO;YACLrD,WAAWC;QACb;QAEAN,SAAS;YACPsD,MAAM;YACNvD,OAAO;gBACL7C,aAAa;gBACbS,OAAO2I;gBACPjI,iBAAiBiI,eAAed,MAAM,CAAC,CAACmB,KAAK,EAAEjD,UAAU,EAAE,GAAKiD,MAAMjD,YAAY;YACpF;QACF;QAEA,IAAI4C,eAAevC,MAAM,KAAK,GAAG;YAC/BrD,gBAAgBjD;YAChBkD,gBAAgBlD;QAClB;IACF,GACA;QACEE;QACAT;QACA8B;QACAmC;QACArC;QACAvB;QACA4B;QACAsB;QACAJ;QACAO;QACAN;QACAI;QACAC;KACD;IAGH,MAAMrD,iBAAiBtB,MAAMqF,WAAW,CACtC,OAAOuF,eAAwCC;QAC7C,IAAK,IAAIpD,IAAI,GAAGA,IAAI9F,MAAMoG,MAAM,EAAEN,IAAK;YACrCqD,OAAOC,OAAO,CAACH,eAAeX,OAAO,CAAC,CAAC,CAACE,MAAMvB,MAAM;gBAClD,IAAIjH,KAAK,CAAC8F,EAAE,CAACG,SAAS,CAACuC,KAAK,EAAE;oBAC5BxI,KAAK,CAAC8F,EAAE,CAACG,SAAS,CAACuC,KAAK,CAACvB,KAAK,GAAGA;oBAEjC5E,SAAS;wBACPsD,MAAM;wBACNI,YAAY/F,KAAK,CAAC8F,EAAE,CAACC,UAAU;wBAC/BE,WAAWjG,KAAK,CAAC8F,EAAE,CAACG,SAAS;wBAC7BR,OAAOK;oBACT;gBACF;YACF;YAEA,IAAI,OAAOoD,qBAAqB,YAAY;gBAC1CA;YACF;YAEA,IAAI9I,cAAc;gBAChB,MAAM,EAAEgC,KAAK,EAAE,GAAG,MAAMb,aAAa;oBACnC3B;oBACAC;oBACAqF,gBAAgB;oBAChBe,WAAWjG,KAAK,CAAC8F,EAAE,CAACG,SAAS;oBAC7Bb,WAAW;oBACXE,YAAY1F;gBACd;gBAEA,MAAMyJ,oBAAoBF,OAAOG,MAAM,CAAClH,OAAOyF,MAAM,CACnD,CAACmB,KAAK/B,QAAWA,OAAOsC,UAAU,QAAQP,MAAM,IAAIA,KACpD;gBAGF3G,SAAS;oBACPsD,MAAM;oBACNI,YAAYsD;oBACZpD,WAAW7D;oBACXqD,OAAOK;gBACT;YACF;QACF;IACF,GACA;QAAClG;QAAgBC;QAAgBG;QAAOuB;QAAcnB;KAAa;IAGrE,MAAMO,oBAAoBtC,MAAMqF,WAAW,CACzC,CAACwC;QACC7D,SAAS;YACPsD,MAAM;YACNI,YAAY/F,KAAK,CAACT,YAAY,CAACwG,UAAU;YACzCE,WAAWjG,KAAK,CAACT,YAAY,CAAC0G,SAAS;YACvCR,OAAOlG;YACP2G;QACF;IACF,GACA;QAAC3G;QAAaS;KAAM;IAGtB,MAAMwJ,mBAAmBnL,MAAMqF,WAAW,CAA0C;QAClFrB,SAAS;YACPsD,MAAM;YACNvD,OAAO;gBACLpC,OAAOA,MAAM4F,GAAG,CAAC,CAACC,OAAU,CAAA;wBAC1B,GAAGA,IAAI;wBACPK,aAAa,CAAC;oBAChB,CAAA;YACF;QACF;IACF,GAAG;QAAClG;KAAM;IAEV3B,MAAMoL,SAAS,CAAC;QACd,IAAI,CAAC7J,gBAAgB;YACnB;QACF;QACA,IAAI,CAACmC,qBAAqB;YACxB,KAAK8C;QACP;QAEA,IAAI,CAAC5C,8BAA8B;YACjC,KAAKwB;QACP;QAEA,IAAIb,gBAAgBC,cAAc;YAChC,IAAI,CAACd,uBAAuB,CAACE,8BAA8B;gBACzDE,kBAAkB;YACpB,OAAO;gBACLA,kBAAkB;YACpB;QACF;QAEA,IACEJ,uBACCc,CAAAA,cAAcuD,UAAUxD,cAAcwD,MAAK,KAC5C,CAAC9C,wBAAwBpD,OAAO,EAChC;YACA,IAAI2C,cAAcuD,QAAQ;gBACxB,KAAKO,gBAAgB9D;YACvB;YACA,IAAID,cAAcwD,QAAQ;gBACxB,KAAKM,oBAAoB9D;YAC3B;YACAU,wBAAwBpD,OAAO,GAAG;QACpC;QACA;IACF,GAAG;QACD0C;QACAiC;QACApB;QACA7D;QACAmC;QACAE;QACAY;KACD;IAED,qBACE,QAACxD;QACC4H,OAAO;YACL1H,aAAa6C,MAAM7C,WAAW;YAC9BC;YACAG;YACAC;YACAC;YACAE;YACAC;YACAC;YACAE;YACArB;YACAsB;YACAC;YACAC;YACAkJ;YACAjJ;YACAC;YACAC;YACAC;YACAC;QACF;;YAECuC,6BACC,QAAClE;gBACC0K,mBAAkB;gBAClBtG,aAAaA;gBACbuG,aAAY;gBACZC,IAAI;;;;;;YAGP9I;;;;;;;AAGP;AAEA,OAAO,SAAS+I;IACd,OAAOxL,MAAMyL,GAAG,CAACzK;AACnB"}
@@ -1,22 +1,34 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import React from 'react';
4
4
  import { DrawerCloseButton } from '../DrawerCloseButton/index.js';
5
5
  import './index.scss';
6
6
  const baseClass = 'bulk-upload--drawer-header';
7
7
  export function DrawerHeader({ onClose, title }) {
8
- return /*#__PURE__*/ _jsxs("div", {
8
+ return /*#__PURE__*/ _jsxDEV("div", {
9
9
  className: baseClass,
10
10
  children: [
11
- /*#__PURE__*/ _jsx("h2", {
11
+ /*#__PURE__*/ _jsxDEV("h2", {
12
12
  title: title,
13
13
  children: title
14
- }),
15
- /*#__PURE__*/ _jsx(DrawerCloseButton, {
14
+ }, void 0, false, {
15
+ fileName: "src/elements/BulkUpload/Header/index.tsx",
16
+ lineNumber: 17,
17
+ columnNumber: 7
18
+ }, this),
19
+ /*#__PURE__*/ _jsxDEV(DrawerCloseButton, {
16
20
  onClick: onClose
17
- })
21
+ }, void 0, false, {
22
+ fileName: "src/elements/BulkUpload/Header/index.tsx",
23
+ lineNumber: 18,
24
+ columnNumber: 7
25
+ }, this)
18
26
  ]
19
- });
27
+ }, void 0, true, {
28
+ fileName: "src/elements/BulkUpload/Header/index.tsx",
29
+ lineNumber: 16,
30
+ columnNumber: 5
31
+ }, this);
20
32
  }
21
33
 
22
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { DrawerCloseButton } from '../DrawerCloseButton/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--drawer-header'\n\ntype Props = {\n readonly onClose: () => void\n readonly title: string\n}\nexport function DrawerHeader({ onClose, title }: Props) {\n return (\n <div className={baseClass}>\n <h2 title={title}>{title}</h2>\n <DrawerCloseButton onClick={onClose} />\n </div>\n )\n}\n"],"names":["React","DrawerCloseButton","baseClass","DrawerHeader","onClose","title","div","className","h2","onClick"],"mappings":"AAAA;;AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAMlB,OAAO,SAASC,aAAa,EAAEC,OAAO,EAAEC,KAAK,EAAS;IACpD,qBACE,MAACC;QAAIC,WAAWL;;0BACd,KAACM;gBAAGH,OAAOA;0BAAQA;;0BACnB,KAACJ;gBAAkBQ,SAASL;;;;AAGlC"}
1
+ {"version":3,"sources":["../../../../src/elements/BulkUpload/Header/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { DrawerCloseButton } from '../DrawerCloseButton/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--drawer-header'\n\ntype Props = {\n readonly onClose: () => void\n readonly title: string\n}\nexport function DrawerHeader({ onClose, title }: Props) {\n return (\n <div className={baseClass}>\n <h2 title={title}>{title}</h2>\n <DrawerCloseButton onClick={onClose} />\n </div>\n )\n}\n"],"names":["React","DrawerCloseButton","baseClass","DrawerHeader","onClose","title","div","className","h2","onClick"],"mappings":"AAAA;;AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAMlB,OAAO,SAASC,aAAa,EAAEC,OAAO,EAAEC,KAAK,EAAS;IACpD,qBACE,QAACC;QAAIC,WAAWL;;0BACd,QAACM;gBAAGH,OAAOA;0BAAQA;;;;;;0BACnB,QAACJ;gBAAkBQ,SAASL;;;;;;;;;;;;AAGlC"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import { useModal } from '@faceless-ui/modal';
4
4
  import { validateMimeType } from 'payload/shared';
5
5
  import React, { useEffect } from 'react';
@@ -46,13 +46,21 @@ function DrawerContent() {
46
46
  return null;
47
47
  }
48
48
  if (!forms.length && !isInitializing) {
49
- return /*#__PURE__*/ _jsx(AddFilesView, {
49
+ return /*#__PURE__*/ _jsxDEV(AddFilesView, {
50
50
  acceptMimeTypes: uploadMimeTypes?.join(', '),
51
51
  onCancel: ()=>closeModal(drawerSlug),
52
52
  onDrop: onDrop
53
- });
53
+ }, void 0, false, {
54
+ fileName: "src/elements/BulkUpload/index.tsx",
55
+ lineNumber: 60,
56
+ columnNumber: 7
57
+ }, this);
54
58
  } else {
55
- return /*#__PURE__*/ _jsx(AddingFilesView, {});
59
+ return /*#__PURE__*/ _jsxDEV(AddingFilesView, {}, void 0, false, {
60
+ fileName: "src/elements/BulkUpload/index.tsx",
61
+ lineNumber: 67,
62
+ columnNumber: 12
63
+ }, this);
56
64
  }
57
65
  }
58
66
  export function BulkUploadDrawer() {
@@ -92,20 +100,51 @@ export function BulkUploadDrawer() {
92
100
  }, [
93
101
  modalState
94
102
  ]);
95
- return /*#__PURE__*/ _jsx(Drawer, {
103
+ return /*#__PURE__*/ _jsxDEV(Drawer, {
96
104
  gutter: false,
97
105
  Header: null,
98
106
  slug: drawerSlug,
99
- children: /*#__PURE__*/ _jsx(FormsManagerProvider, {
100
- children: /*#__PURE__*/ _jsx(UploadControlsProvider, {
101
- children: /*#__PURE__*/ _jsx(EditDepthProvider, {
102
- children: /*#__PURE__*/ _jsx(DrawerContent, {})
103
- })
104
- })
105
- })
106
- });
107
+ children: /*#__PURE__*/ _jsxDEV(FormsManagerProvider, {
108
+ children: /*#__PURE__*/ _jsxDEV(UploadControlsProvider, {
109
+ children: /*#__PURE__*/ _jsxDEV(EditDepthProvider, {
110
+ children: /*#__PURE__*/ _jsxDEV(DrawerContent, {}, void 0, false, {
111
+ fileName: "src/elements/BulkUpload/index.tsx",
112
+ lineNumber: 132,
113
+ columnNumber: 13
114
+ }, this)
115
+ }, void 0, false, {
116
+ fileName: "src/elements/BulkUpload/index.tsx",
117
+ lineNumber: 131,
118
+ columnNumber: 11
119
+ }, this)
120
+ }, void 0, false, {
121
+ fileName: "src/elements/BulkUpload/index.tsx",
122
+ lineNumber: 130,
123
+ columnNumber: 9
124
+ }, this)
125
+ }, void 0, false, {
126
+ fileName: "src/elements/BulkUpload/index.tsx",
127
+ lineNumber: 129,
128
+ columnNumber: 7
129
+ }, this)
130
+ }, void 0, false, {
131
+ fileName: "src/elements/BulkUpload/index.tsx",
132
+ lineNumber: 128,
133
+ columnNumber: 5
134
+ }, this);
107
135
  }
108
- const Context = /*#__PURE__*/ React.createContext({
136
+ /**
137
+ * Like initialFiles, but allows manually providing initial form state or the form ID for each file
138
+ */ /**
139
+ * ID of the form that created this document
140
+ */ /**
141
+ * An array of collection slugs that can be selected in the collection dropdown (if applicable)
142
+ * @default null - collection cannot be selected
143
+ */ /**
144
+ * Set the collections that can be selected in the collection dropdown (if applicable)
145
+ *
146
+ * @default null - collection cannot be selected
147
+ */ const Context = /*#__PURE__*/ React.createContext({
109
148
  collectionSlug: '',
110
149
  drawerSlug: '',
111
150
  initialFiles: undefined,
@@ -140,7 +179,7 @@ export function BulkUploadProvider({ children, drawerSlugPrefix }) {
140
179
  const setOnCancel = (onCancel)=>{
141
180
  setOnCancelFunction(()=>onCancel);
142
181
  };
143
- return /*#__PURE__*/ _jsx(Context, {
182
+ return /*#__PURE__*/ _jsxDEV(Context, {
144
183
  value: {
145
184
  collectionSlug: collection,
146
185
  drawerSlug,
@@ -168,13 +207,25 @@ export function BulkUploadProvider({ children, drawerSlugPrefix }) {
168
207
  setSuccessfullyUploaded,
169
208
  successfullyUploaded
170
209
  },
171
- children: /*#__PURE__*/ _jsxs(React.Fragment, {
210
+ children: /*#__PURE__*/ _jsxDEV(React.Fragment, {
172
211
  children: [
173
212
  children,
174
- /*#__PURE__*/ _jsx(BulkUploadDrawer, {})
213
+ /*#__PURE__*/ _jsxDEV(BulkUploadDrawer, {}, void 0, false, {
214
+ fileName: "src/elements/BulkUpload/index.tsx",
215
+ lineNumber: 260,
216
+ columnNumber: 9
217
+ }, this)
175
218
  ]
176
- })
177
- });
219
+ }, void 0, true, {
220
+ fileName: "src/elements/BulkUpload/index.tsx",
221
+ lineNumber: 258,
222
+ columnNumber: 7
223
+ }, this)
224
+ }, void 0, false, {
225
+ fileName: "src/elements/BulkUpload/index.tsx",
226
+ lineNumber: 229,
227
+ columnNumber: 5
228
+ }, this);
178
229
  }
179
230
  export const useBulkUpload = ()=>React.use(Context);
180
231
  export function useBulkUploadDrawerSlug() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, type InitialForms, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const {\n drawerSlug,\n onCancel,\n setInitialFiles,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n } = useBulkUpload()\n const { modalState } = useModal()\n const previousModalStateRef = React.useRef(modalState)\n\n /**\n * This is used to trigger onCancel when the drawer is closed (=> forms reset, as FormsManager is unmounted)\n */\n const onModalStateChanged = useEffectEvent((modalState) => {\n const previousModalState = previousModalStateRef.current[drawerSlug]\n const currentModalState = modalState[drawerSlug]\n\n if (typeof currentModalState === 'undefined' && typeof previousModalState === 'undefined') {\n return\n }\n\n if (previousModalState?.isOpen !== currentModalState?.isOpen) {\n if (!currentModalState?.isOpen) {\n if (!successfullyUploaded) {\n // It's only cancelled if successfullyUploaded is not set. Otherwise, this would simply be a modal close after success\n // => do not call cancel, just reset everything\n if (typeof onCancel === 'function') {\n onCancel()\n }\n }\n\n // Reset everything to defaults\n setInitialFiles(undefined)\n setInitialForms(undefined)\n setOnCancel(() => () => null)\n setOnSuccess(() => () => null)\n setSelectableCollections(null)\n setSuccessfullyUploaded(false)\n }\n }\n previousModalStateRef.current = modalState\n })\n\n useEffect(() => {\n onModalStateChanged(modalState)\n }, [modalState])\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\nexport type BulkUploadContext = {\n collectionSlug: CollectionSlug\n drawerSlug: string\n initialFiles: FileList\n /**\n * Like initialFiles, but allows manually providing initial form state or the form ID for each file\n */\n initialForms: InitialForms\n maxFiles: number\n onCancel: () => void\n onSuccess: (\n uploadedForms: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }>,\n errorCount: number,\n ) => void\n /**\n * An array of collection slugs that can be selected in the collection dropdown (if applicable)\n * @default null - collection cannot be selected\n */\n selectableCollections?: null | string[]\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setInitialForms: (\n forms: ((forms: InitialForms | undefined) => InitialForms | undefined) | InitialForms,\n ) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n /**\n * Set the collections that can be selected in the collection dropdown (if applicable)\n *\n * @default null - collection cannot be selected\n */\n setSelectableCollections: (collections: null | string[]) => void\n setSuccessfullyUploaded: (successfullyUploaded: boolean) => void\n successfullyUploaded: boolean\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n initialForms: [],\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n selectableCollections: null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setInitialForms: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n setSelectableCollections: () => null,\n setSuccessfullyUploaded: () => false,\n successfullyUploaded: false,\n})\nexport function BulkUploadProvider({\n children,\n drawerSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly drawerSlugPrefix?: string\n}) {\n const [selectableCollections, setSelectableCollections] = React.useState<null | string[]>(null)\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [initialForms, setInitialForms] = React.useState<InitialForms>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [successfullyUploaded, setSuccessfullyUploaded] = React.useState<boolean>(false)\n\n const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ''}${useBulkUploadDrawerSlug()}`\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n const setOnCancel: BulkUploadContext['setOnCancel'] = (onCancel) => {\n setOnCancelFunction(() => onCancel)\n }\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n initialForms,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (newDocs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(newDocs, errorCount)\n }\n },\n selectableCollections,\n setCollectionSlug: setCollection,\n setInitialFiles,\n setInitialForms,\n setMaxFiles,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"names":["useModal","validateMimeType","React","useEffect","toast","useEffectEvent","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","acceptMimeTypes","join","onCancel","BulkUploadDrawer","setInitialFiles","setInitialForms","setOnCancel","setOnSuccess","setSelectableCollections","setSuccessfullyUploaded","successfullyUploaded","modalState","previousModalStateRef","useRef","onModalStateChanged","previousModalState","current","currentModalState","isOpen","gutter","Header","slug","Context","createContext","initialFiles","initialForms","maxFiles","onSuccess","selectableCollections","setCollectionSlug","setMaxFiles","BulkUploadProvider","children","drawerSlugPrefix","useState","collection","setCollection","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","value","newDocs","errorCount","Fragment","use","depth"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, type InitialForms, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const {\n drawerSlug,\n onCancel,\n setInitialFiles,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n } = useBulkUpload()\n const { modalState } = useModal()\n const previousModalStateRef = React.useRef(modalState)\n\n /**\n * This is used to trigger onCancel when the drawer is closed (=> forms reset, as FormsManager is unmounted)\n */\n const onModalStateChanged = useEffectEvent((modalState) => {\n const previousModalState = previousModalStateRef.current[drawerSlug]\n const currentModalState = modalState[drawerSlug]\n\n if (typeof currentModalState === 'undefined' && typeof previousModalState === 'undefined') {\n return\n }\n\n if (previousModalState?.isOpen !== currentModalState?.isOpen) {\n if (!currentModalState?.isOpen) {\n if (!successfullyUploaded) {\n // It's only cancelled if successfullyUploaded is not set. Otherwise, this would simply be a modal close after success\n // => do not call cancel, just reset everything\n if (typeof onCancel === 'function') {\n onCancel()\n }\n }\n\n // Reset everything to defaults\n setInitialFiles(undefined)\n setInitialForms(undefined)\n setOnCancel(() => () => null)\n setOnSuccess(() => () => null)\n setSelectableCollections(null)\n setSuccessfullyUploaded(false)\n }\n }\n previousModalStateRef.current = modalState\n })\n\n useEffect(() => {\n onModalStateChanged(modalState)\n }, [modalState])\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\nexport type BulkUploadContext = {\n collectionSlug: CollectionSlug\n drawerSlug: string\n initialFiles: FileList\n /**\n * Like initialFiles, but allows manually providing initial form state or the form ID for each file\n */\n initialForms: InitialForms\n maxFiles: number\n onCancel: () => void\n onSuccess: (\n uploadedForms: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }>,\n errorCount: number,\n ) => void\n /**\n * An array of collection slugs that can be selected in the collection dropdown (if applicable)\n * @default null - collection cannot be selected\n */\n selectableCollections?: null | string[]\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setInitialForms: (\n forms: ((forms: InitialForms | undefined) => InitialForms | undefined) | InitialForms,\n ) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n /**\n * Set the collections that can be selected in the collection dropdown (if applicable)\n *\n * @default null - collection cannot be selected\n */\n setSelectableCollections: (collections: null | string[]) => void\n setSuccessfullyUploaded: (successfullyUploaded: boolean) => void\n successfullyUploaded: boolean\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n initialForms: [],\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n selectableCollections: null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setInitialForms: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n setSelectableCollections: () => null,\n setSuccessfullyUploaded: () => false,\n successfullyUploaded: false,\n})\nexport function BulkUploadProvider({\n children,\n drawerSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly drawerSlugPrefix?: string\n}) {\n const [selectableCollections, setSelectableCollections] = React.useState<null | string[]>(null)\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [initialForms, setInitialForms] = React.useState<InitialForms>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [successfullyUploaded, setSuccessfullyUploaded] = React.useState<boolean>(false)\n\n const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ''}${useBulkUploadDrawerSlug()}`\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n const setOnCancel: BulkUploadContext['setOnCancel'] = (onCancel) => {\n setOnCancelFunction(() => onCancel)\n }\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n initialForms,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (newDocs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(newDocs, errorCount)\n }\n },\n selectableCollections,\n setCollectionSlug: setCollection,\n setInitialFiles,\n setInitialForms,\n setMaxFiles,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"names":["useModal","validateMimeType","React","useEffect","toast","useEffectEvent","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","acceptMimeTypes","join","onCancel","BulkUploadDrawer","setInitialFiles","setInitialForms","setOnCancel","setOnSuccess","setSelectableCollections","setSuccessfullyUploaded","successfullyUploaded","modalState","previousModalStateRef","useRef","onModalStateChanged","previousModalState","current","currentModalState","isOpen","gutter","Header","slug","Context","createContext","initialFiles","initialForms","maxFiles","onSuccess","selectableCollections","setCollectionSlug","setMaxFiles","BulkUploadProvider","children","drawerSlugPrefix","useState","collection","setCollection","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","value","newDocs","errorCount","Fragment","use","depth"],"mappings":"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"}