@payloadcms/ui 3.0.0-beta.95 → 3.0.0-beta.97

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 (412) hide show
  1. package/dist/elements/AddNewRelation/index.js +1 -1
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AppHeader/index.js +5 -5
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +6 -2
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/Banner/index.d.ts.map +1 -1
  9. package/dist/elements/Banner/index.js +6 -2
  10. package/dist/elements/Banner/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  12. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  13. package/dist/elements/BulkUpload/ActionsBar/index.scss +4 -4
  14. package/dist/elements/BulkUpload/AddFilesView/index.js +1 -0
  15. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  16. package/dist/elements/BulkUpload/AddFilesView/index.scss +1 -1
  17. package/dist/elements/BulkUpload/AddingFilesView/index.js +1 -1
  18. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/EditForm/index.js +8 -4
  20. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/FileSidebar/index.js +1 -1
  22. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/FileSidebar/index.scss +8 -10
  24. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  25. package/dist/elements/BulkUpload/FormsManager/index.js +3 -1
  26. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  28. package/dist/elements/BulkUpload/index.js +1 -1
  29. package/dist/elements/BulkUpload/index.js.map +1 -1
  30. package/dist/elements/Button/index.d.ts.map +1 -1
  31. package/dist/elements/Button/index.js +39 -31
  32. package/dist/elements/Button/index.js.map +1 -1
  33. package/dist/elements/Button/types.d.ts +2 -2
  34. package/dist/elements/Button/types.d.ts.map +1 -1
  35. package/dist/elements/Button/types.js.map +1 -1
  36. package/dist/elements/Card/index.d.ts +1 -1
  37. package/dist/elements/Card/index.d.ts.map +1 -1
  38. package/dist/elements/Card/index.js +2 -2
  39. package/dist/elements/Card/index.js.map +1 -1
  40. package/dist/elements/CodeEditor/index.js +1 -1
  41. package/dist/elements/CodeEditor/index.js.map +1 -1
  42. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  43. package/dist/elements/Collapsible/index.js.map +1 -1
  44. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  45. package/dist/elements/ColumnSelector/index.js +2 -2
  46. package/dist/elements/ColumnSelector/index.js.map +1 -1
  47. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  48. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  49. package/dist/elements/DatePicker/index.js +1 -1
  50. package/dist/elements/DatePicker/index.js.map +1 -1
  51. package/dist/elements/DeleteMany/index.js +1 -1
  52. package/dist/elements/DeleteMany/index.js.map +1 -1
  53. package/dist/elements/DocumentControls/index.d.ts +1 -1
  54. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  55. package/dist/elements/DocumentControls/index.js.map +1 -1
  56. package/dist/elements/DocumentDrawer/DrawerContent.js +3 -3
  57. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  58. package/dist/elements/DocumentDrawer/index.js +1 -1
  59. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  60. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  61. package/dist/elements/DraggableSortable/index.js +1 -1
  62. package/dist/elements/DraggableSortable/index.js.map +1 -1
  63. package/dist/elements/Drawer/index.d.ts.map +1 -1
  64. package/dist/elements/Drawer/index.js +1 -1
  65. package/dist/elements/Drawer/index.js.map +1 -1
  66. package/dist/elements/Drawer/types.d.ts +1 -1
  67. package/dist/elements/Drawer/types.d.ts.map +1 -1
  68. package/dist/elements/Drawer/types.js.map +1 -1
  69. package/dist/elements/Dropzone/index.scss +1 -1
  70. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  71. package/dist/elements/EditUpload/index.js +23 -11
  72. package/dist/elements/EditUpload/index.js.map +1 -1
  73. package/dist/elements/ErrorPill/index.d.ts.map +1 -1
  74. package/dist/elements/ErrorPill/index.js +3 -1
  75. package/dist/elements/ErrorPill/index.js.map +1 -1
  76. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  77. package/dist/elements/FieldSelect/index.js +3 -1
  78. package/dist/elements/FieldSelect/index.js.map +1 -1
  79. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  80. package/dist/elements/ListDrawer/DrawerContent.js +41 -41
  81. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  82. package/dist/elements/ListDrawer/index.js +1 -1
  83. package/dist/elements/ListDrawer/index.js.map +1 -1
  84. package/dist/elements/ListDrawer/index.scss +1 -1
  85. package/dist/elements/Localizer/index.d.ts.map +1 -1
  86. package/dist/elements/Localizer/index.js +1 -1
  87. package/dist/elements/Localizer/index.js.map +1 -1
  88. package/dist/elements/Logout/index.js +1 -1
  89. package/dist/elements/Logout/index.js.map +1 -1
  90. package/dist/elements/Pagination/index.d.ts.map +1 -1
  91. package/dist/elements/Pagination/index.js +20 -10
  92. package/dist/elements/Pagination/index.js.map +1 -1
  93. package/dist/elements/PerPage/index.d.ts.map +1 -1
  94. package/dist/elements/PerPage/index.js.map +1 -1
  95. package/dist/elements/Pill/index.d.ts.map +1 -1
  96. package/dist/elements/Pill/index.js +11 -5
  97. package/dist/elements/Pill/index.js.map +1 -1
  98. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  99. package/dist/elements/Popup/PopupTrigger/index.js +3 -1
  100. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  101. package/dist/elements/Popup/index.d.ts.map +1 -1
  102. package/dist/elements/Popup/index.js +4 -2
  103. package/dist/elements/Popup/index.js.map +1 -1
  104. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  105. package/dist/elements/PreviewButton/usePreviewURL.js +18 -6
  106. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  107. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  108. package/dist/elements/PreviewSizes/index.js +15 -5
  109. package/dist/elements/PreviewSizes/index.js.map +1 -1
  110. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  111. package/dist/elements/PublishButton/index.js +6 -4
  112. package/dist/elements/PublishButton/index.js.map +1 -1
  113. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  114. package/dist/elements/ReactSelect/DropdownIndicator/index.js +3 -1
  115. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  116. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  117. package/dist/elements/ReactSelect/index.js +5 -3
  118. package/dist/elements/ReactSelect/index.js.map +1 -1
  119. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  120. package/dist/elements/SaveButton/index.js +5 -3
  121. package/dist/elements/SaveButton/index.js.map +1 -1
  122. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  123. package/dist/elements/SaveDraftButton/index.js +12 -6
  124. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  125. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  126. package/dist/elements/SearchFilter/index.js +3 -1
  127. package/dist/elements/SearchFilter/index.js.map +1 -1
  128. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  129. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  130. package/dist/elements/SortColumn/index.d.ts +4 -4
  131. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  132. package/dist/elements/SortColumn/index.js +20 -34
  133. package/dist/elements/SortColumn/index.js.map +1 -1
  134. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  135. package/dist/elements/SortComplex/index.js.map +1 -1
  136. package/dist/elements/StepNav/index.d.ts +1 -1
  137. package/dist/elements/StepNav/index.d.ts.map +1 -1
  138. package/dist/elements/StepNav/index.js +2 -2
  139. package/dist/elements/StepNav/index.js.map +1 -1
  140. package/dist/elements/Table/DefaultCell/fields/File/index.scss +5 -5
  141. package/dist/elements/Table/DefaultCell/fields/index.d.ts +1 -1
  142. package/dist/elements/Table/DefaultCell/fields/index.js +1 -1
  143. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  144. package/dist/elements/Table/RelationshipProvider/index.d.ts +1 -1
  145. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  146. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  147. package/dist/elements/Table/index.d.ts +2 -2
  148. package/dist/elements/Table/index.d.ts.map +1 -1
  149. package/dist/elements/Table/index.js +21 -16
  150. package/dist/elements/Table/index.js.map +1 -1
  151. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  152. package/dist/elements/TableColumns/buildColumnState.js +16 -12
  153. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  154. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  155. package/dist/elements/TableColumns/index.js +11 -33
  156. package/dist/elements/TableColumns/index.js.map +1 -1
  157. package/dist/elements/Thumbnail/index.d.ts +1 -1
  158. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  159. package/dist/elements/Thumbnail/index.js +1 -1
  160. package/dist/elements/Thumbnail/index.js.map +1 -1
  161. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  162. package/dist/elements/Tooltip/index.js.map +1 -1
  163. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  164. package/dist/elements/UnpublishMany/index.js +1 -1
  165. package/dist/elements/UnpublishMany/index.js.map +1 -1
  166. package/dist/elements/Upload/index.d.ts.map +1 -1
  167. package/dist/elements/Upload/index.js +37 -32
  168. package/dist/elements/Upload/index.js.map +1 -1
  169. package/dist/elements/Upload/index.scss +27 -1
  170. package/dist/elements/ViewDescription/index.d.ts +1 -1
  171. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  172. package/dist/elements/ViewDescription/index.js.map +1 -1
  173. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  174. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  175. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  176. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  177. package/dist/elements/WhereBuilder/reduceClientFields.js +3 -1
  178. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  179. package/dist/elements/WhereBuilder/types.d.ts +1 -1
  180. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  181. package/dist/elements/WhereBuilder/types.js.map +1 -1
  182. package/dist/elements/WindowInfo/index.d.ts +2 -2
  183. package/dist/elements/WindowInfo/index.d.ts.map +1 -1
  184. package/dist/elements/WindowInfo/index.js +2 -2
  185. package/dist/elements/WindowInfo/index.js.map +1 -1
  186. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  187. package/dist/exports/client/{CodeEditor-P66JEENA.js → CodeEditor-CHKRX3U2.js} +4 -4
  188. package/dist/exports/client/{CodeEditor-P66JEENA.js.map → CodeEditor-CHKRX3U2.js.map} +4 -4
  189. package/dist/exports/client/{DatePicker-E6IJFDN2.js → DatePicker-OLRZVTAD.js} +2 -2
  190. package/dist/exports/client/{chunk-XKP472RX.js → chunk-BGA6EPOL.js} +1 -1
  191. package/dist/exports/client/{chunk-XKP472RX.js.map → chunk-BGA6EPOL.js.map} +2 -2
  192. package/dist/exports/client/{chunk-OBXEO4WP.js → chunk-JINNHJP7.js} +1 -1
  193. package/dist/exports/client/{chunk-OBXEO4WP.js.map → chunk-JINNHJP7.js.map} +2 -2
  194. package/dist/exports/client/index.d.ts +2 -2
  195. package/dist/exports/client/index.d.ts.map +1 -1
  196. package/dist/exports/client/index.js +19 -19
  197. package/dist/exports/client/index.js.map +4 -4
  198. package/dist/exports/shared/index.d.ts +2 -2
  199. package/dist/exports/shared/index.d.ts.map +1 -1
  200. package/dist/exports/shared/index.js +2 -2
  201. package/dist/exports/shared/index.js.map +4 -4
  202. package/dist/fields/Array/ArrayRow.d.ts +1 -1
  203. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  204. package/dist/fields/Array/ArrayRow.js +6 -6
  205. package/dist/fields/Array/ArrayRow.js.map +1 -1
  206. package/dist/fields/Array/index.d.ts.map +1 -1
  207. package/dist/fields/Array/index.js +2 -2
  208. package/dist/fields/Array/index.js.map +1 -1
  209. package/dist/fields/Blocks/BlockRow.js +4 -4
  210. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  211. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  212. package/dist/fields/Blocks/BlocksDrawer/index.js +3 -1
  213. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  214. package/dist/fields/Blocks/RowActions.d.ts +1 -1
  215. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  216. package/dist/fields/Blocks/RowActions.js +1 -1
  217. package/dist/fields/Blocks/RowActions.js.map +1 -1
  218. package/dist/fields/Blocks/index.js +1 -1
  219. package/dist/fields/Blocks/index.js.map +1 -1
  220. package/dist/fields/Checkbox/Input.d.ts +1 -1
  221. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  222. package/dist/fields/Checkbox/Input.js +2 -2
  223. package/dist/fields/Checkbox/Input.js.map +1 -1
  224. package/dist/fields/Checkbox/index.d.ts +1 -1
  225. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  226. package/dist/fields/Checkbox/index.js +2 -2
  227. package/dist/fields/Checkbox/index.js.map +1 -1
  228. package/dist/fields/Code/index.js +1 -1
  229. package/dist/fields/Code/index.js.map +1 -1
  230. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  231. package/dist/fields/Collapsible/index.js +1 -1
  232. package/dist/fields/Collapsible/index.js.map +1 -1
  233. package/dist/fields/DateTime/index.d.ts.map +1 -1
  234. package/dist/fields/DateTime/index.js +1 -1
  235. package/dist/fields/DateTime/index.js.map +1 -1
  236. package/dist/fields/Email/index.js +1 -1
  237. package/dist/fields/Email/index.js.map +1 -1
  238. package/dist/fields/Group/index.js +1 -1
  239. package/dist/fields/Group/index.js.map +1 -1
  240. package/dist/fields/JSON/index.d.ts.map +1 -1
  241. package/dist/fields/JSON/index.js +17 -9
  242. package/dist/fields/JSON/index.js.map +1 -1
  243. package/dist/fields/Number/index.js +1 -1
  244. package/dist/fields/Number/index.js.map +1 -1
  245. package/dist/fields/Password/index.js +3 -3
  246. package/dist/fields/Password/index.js.map +1 -1
  247. package/dist/fields/Password/input.js +7 -7
  248. package/dist/fields/Password/input.js.map +1 -1
  249. package/dist/fields/Password/types.d.ts +3 -3
  250. package/dist/fields/Password/types.d.ts.map +1 -1
  251. package/dist/fields/Password/types.js.map +1 -1
  252. package/dist/fields/Point/index.js +1 -1
  253. package/dist/fields/Point/index.js.map +1 -1
  254. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  255. package/dist/fields/RadioGroup/index.js +2 -2
  256. package/dist/fields/RadioGroup/index.js.map +1 -1
  257. package/dist/fields/Relationship/createRelationMap.d.ts +1 -1
  258. package/dist/fields/Relationship/createRelationMap.d.ts.map +1 -1
  259. package/dist/fields/Relationship/createRelationMap.js.map +1 -1
  260. package/dist/fields/Relationship/index.d.ts.map +1 -1
  261. package/dist/fields/Relationship/index.js +10 -4
  262. package/dist/fields/Relationship/index.js.map +1 -1
  263. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  264. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  265. package/dist/fields/Relationship/types.d.ts +1 -1
  266. package/dist/fields/Relationship/types.d.ts.map +1 -1
  267. package/dist/fields/Relationship/types.js.map +1 -1
  268. package/dist/fields/Select/Input.d.ts +3 -3
  269. package/dist/fields/Select/Input.d.ts.map +1 -1
  270. package/dist/fields/Select/Input.js +7 -7
  271. package/dist/fields/Select/Input.js.map +1 -1
  272. package/dist/fields/Select/index.d.ts.map +1 -1
  273. package/dist/fields/Select/index.js +11 -9
  274. package/dist/fields/Select/index.js.map +1 -1
  275. package/dist/fields/Tabs/index.d.ts.map +1 -1
  276. package/dist/fields/Tabs/index.js +1 -1
  277. package/dist/fields/Tabs/index.js.map +1 -1
  278. package/dist/fields/Text/Input.js +7 -7
  279. package/dist/fields/Text/Input.js.map +1 -1
  280. package/dist/fields/Text/index.d.ts +1 -1
  281. package/dist/fields/Text/index.d.ts.map +1 -1
  282. package/dist/fields/Text/index.js +4 -4
  283. package/dist/fields/Text/index.js.map +1 -1
  284. package/dist/fields/Text/types.d.ts +3 -3
  285. package/dist/fields/Text/types.d.ts.map +1 -1
  286. package/dist/fields/Text/types.js.map +1 -1
  287. package/dist/fields/Textarea/Input.js +7 -7
  288. package/dist/fields/Textarea/Input.js.map +1 -1
  289. package/dist/fields/Textarea/index.d.ts +2 -2
  290. package/dist/fields/Textarea/index.d.ts.map +1 -1
  291. package/dist/fields/Textarea/index.js +4 -4
  292. package/dist/fields/Textarea/index.js.map +1 -1
  293. package/dist/fields/Textarea/types.d.ts +3 -3
  294. package/dist/fields/Textarea/types.d.ts.map +1 -1
  295. package/dist/fields/Textarea/types.js.map +1 -1
  296. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  297. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  298. package/dist/fields/Upload/HasOne/index.scss +0 -1
  299. package/dist/fields/Upload/Input.d.ts +3 -3
  300. package/dist/fields/Upload/Input.d.ts.map +1 -1
  301. package/dist/fields/Upload/Input.js +578 -271
  302. package/dist/fields/Upload/Input.js.map +1 -1
  303. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  304. package/dist/fields/Upload/RelationshipContent/index.js +13 -8
  305. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  306. package/dist/fields/Upload/RelationshipContent/index.scss +6 -3
  307. package/dist/fields/Upload/UploadCard/index.scss +3 -3
  308. package/dist/fields/Upload/index.d.ts.map +1 -1
  309. package/dist/fields/Upload/index.js +35 -31
  310. package/dist/fields/Upload/index.js.map +1 -1
  311. package/dist/fields/Upload/index.scss +8 -6
  312. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  313. package/dist/forms/Form/fieldReducer.js +6 -2
  314. package/dist/forms/Form/fieldReducer.js.map +1 -1
  315. package/dist/forms/Form/index.d.ts.map +1 -1
  316. package/dist/forms/Form/index.js +20 -8
  317. package/dist/forms/Form/index.js.map +1 -1
  318. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  319. package/dist/forms/Form/mergeServerFormState.js +3 -1
  320. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  321. package/dist/forms/Form/rowHelpers.d.ts.map +1 -1
  322. package/dist/forms/Form/rowHelpers.js +9 -3
  323. package/dist/forms/Form/rowHelpers.js.map +1 -1
  324. package/dist/forms/Form/rows.d.ts.map +1 -1
  325. package/dist/forms/Form/rows.js +3 -1
  326. package/dist/forms/Form/rows.js.map +1 -1
  327. package/dist/forms/Form/types.d.ts +1 -1
  328. package/dist/forms/Form/types.d.ts.map +1 -1
  329. package/dist/forms/Form/types.js.map +1 -1
  330. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  331. package/dist/forms/NullifyField/index.js.map +1 -1
  332. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  333. package/dist/forms/RenderFields/RenderField.js +4 -2
  334. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  335. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  336. package/dist/forms/RenderFields/index.js +1 -1
  337. package/dist/forms/RenderFields/index.js.map +1 -1
  338. package/dist/forms/RowLabel/index.js +1 -1
  339. package/dist/forms/RowLabel/index.js.map +1 -1
  340. package/dist/forms/RowLabel/types.d.ts +1 -1
  341. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  342. package/dist/forms/RowLabel/types.js.map +1 -1
  343. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  344. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +6 -2
  345. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  346. package/dist/graphics/Account/index.d.ts.map +1 -1
  347. package/dist/graphics/Account/index.js +1 -1
  348. package/dist/graphics/Account/index.js.map +1 -1
  349. package/dist/hooks/useHotkey.d.ts.map +1 -1
  350. package/dist/hooks/useHotkey.js.map +1 -1
  351. package/dist/hooks/useIntersect.d.ts.map +1 -1
  352. package/dist/hooks/useIntersect.js.map +1 -1
  353. package/dist/providers/Auth/index.d.ts +1 -1
  354. package/dist/providers/Auth/index.d.ts.map +1 -1
  355. package/dist/providers/Auth/index.js +6 -2
  356. package/dist/providers/Auth/index.js.map +1 -1
  357. package/dist/providers/Config/RenderComponent.d.ts +1 -1
  358. package/dist/providers/Config/RenderComponent.d.ts.map +1 -1
  359. package/dist/providers/Config/RenderComponent.js +2 -2
  360. package/dist/providers/Config/RenderComponent.js.map +1 -1
  361. package/dist/providers/Config/createClientConfig/collections.d.ts +6 -6
  362. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  363. package/dist/providers/Config/createClientConfig/collections.js +9 -7
  364. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  365. package/dist/providers/Config/createClientConfig/getComponent.d.ts +1 -1
  366. package/dist/providers/Config/createClientConfig/getComponent.d.ts.map +1 -1
  367. package/dist/providers/Config/createClientConfig/getComponent.js +2 -2
  368. package/dist/providers/Config/createClientConfig/getComponent.js.map +1 -1
  369. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.d.ts.map +1 -1
  370. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js +3 -1
  371. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js.map +1 -1
  372. package/dist/providers/Config/createClientConfig/globals.d.ts +4 -4
  373. package/dist/providers/Config/createClientConfig/globals.d.ts.map +1 -1
  374. package/dist/providers/Config/createClientConfig/globals.js +3 -3
  375. package/dist/providers/Config/createClientConfig/globals.js.map +1 -1
  376. package/dist/providers/Config/createClientConfig/index.d.ts +3 -3
  377. package/dist/providers/Config/createClientConfig/index.d.ts.map +1 -1
  378. package/dist/providers/Config/createClientConfig/index.js +5 -5
  379. package/dist/providers/Config/createClientConfig/index.js.map +1 -1
  380. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  381. package/dist/providers/DocumentInfo/index.js +12 -4
  382. package/dist/providers/DocumentInfo/index.js.map +1 -1
  383. package/dist/providers/DocumentInfo/types.d.ts +2 -2
  384. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  385. package/dist/providers/DocumentInfo/types.js.map +1 -1
  386. package/dist/providers/ListInfo/index.d.ts +2 -2
  387. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  388. package/dist/providers/ListInfo/index.js.map +1 -1
  389. package/dist/providers/ListQuery/index.d.ts +6 -6
  390. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  391. package/dist/providers/ListQuery/index.js +6 -2
  392. package/dist/providers/ListQuery/index.js.map +1 -1
  393. package/dist/providers/Locale/index.d.ts.map +1 -1
  394. package/dist/providers/Locale/index.js.map +1 -1
  395. package/dist/providers/Preferences/index.d.ts.map +1 -1
  396. package/dist/providers/Preferences/index.js +3 -1
  397. package/dist/providers/Preferences/index.js.map +1 -1
  398. package/dist/providers/Root/index.d.ts +1 -1
  399. package/dist/providers/Root/index.js.map +1 -1
  400. package/dist/providers/WindowInfo/index.d.ts +1 -1
  401. package/dist/providers/WindowInfo/index.d.ts.map +1 -1
  402. package/dist/providers/WindowInfo/index.js +1 -1
  403. package/dist/providers/WindowInfo/index.js.map +1 -1
  404. package/dist/styles.css +1 -1
  405. package/dist/utilities/buildFormState.d.ts.map +1 -1
  406. package/dist/utilities/buildFormState.js +6 -2
  407. package/dist/utilities/buildFormState.js.map +1 -1
  408. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  409. package/dist/utilities/reduceFieldsToValuesWithValidation.js +6 -2
  410. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  411. package/package.json +8 -8
  412. /package/dist/exports/client/{DatePicker-E6IJFDN2.js.map → DatePicker-OLRZVTAD.js.map} +0 -0
@@ -9,8 +9,8 @@ import { useAuth } from '../../providers/Auth/index.js';
9
9
  import { useTranslation } from '../../providers/Translation/index.js';
10
10
  import { Button } from '../Button/index.js';
11
11
  import { useDocumentDrawer } from '../DocumentDrawer/index.js';
12
- import * as PopupList from '../Popup/PopupButtonList/index.js';
13
12
  import { Popup } from '../Popup/index.js';
13
+ import * as PopupList from '../Popup/PopupButtonList/index.js';
14
14
  import { Tooltip } from '../Tooltip/index.js';
15
15
  import './index.scss';
16
16
  import { useRelatedCollections } from './useRelatedCollections.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useEffect","useState","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","PopupList","Popup","Tooltip","useRelatedCollections","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","path","relationTo","setValue","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","newValue","Array","isArray","id","isNewValue","some","v","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","permission","collection","t9","t10","find","collection_0","t11","t12","t13","t14","t15","t16","labels","singular","t17","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t18","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { Value } from '../../fields/Relationship/types.js'\nimport type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js'\nimport type { Props } from './types.js'\n\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport { Popup } from '../Popup/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\nimport { useRelatedCollections } from './useRelatedCollections.js'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n path,\n relationTo,\n setValue,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n const relatedToMany = relatedCollections.length > 1\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentInfoContext['onSave'] = useCallback(\n ({ doc, operation }) => {\n if (operation === 'create') {\n const newValue: Value = Array.isArray(relationTo)\n ? {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n }\n : doc.id\n\n // ensure the value is not already in the array\n const isNewValue =\n Array.isArray(relationTo) && Array.isArray(value)\n ? !value.some((v) => v && typeof v === 'object' && v.value === doc.id)\n : value !== doc.id\n\n if (isNewValue) {\n // dispatchOptions({\n // collection: collectionConfig,\n // // TODO: fix this\n // // @ts-expect-error-next-line\n // type: 'ADD',\n // config,\n // docs: [doc],\n // i18n,\n // sort: true,\n // })\n\n if (hasMany) {\n setValue([...(Array.isArray(value) ? value : []), newValue])\n } else {\n setValue(newValue)\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [relationTo, collectionConfig, hasMany, setValue, value],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create?.permission)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create?.permission,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0].labels.singular, i18n),\n })\n\n if (show) {\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => setShowTooltip(false)}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create.permission) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig &&\n permissions.collections[collectionConfig?.slug]?.create?.permission && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useEffect","useState","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","useRelatedCollections","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","path","relationTo","setValue","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","newValue","Array","isArray","id","isNewValue","some","v","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","permission","collection","t9","t10","find","collection_0","t11","t12","t13","t14","t15","t16","labels","singular","t17","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t18","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { Value } from '../../fields/Relationship/types.js'\nimport type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js'\nimport type { Props } from './types.js'\n\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\nimport { useRelatedCollections } from './useRelatedCollections.js'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n path,\n relationTo,\n setValue,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n const relatedToMany = relatedCollections.length > 1\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentInfoContext['onSave'] = useCallback(\n ({ doc, operation }) => {\n if (operation === 'create') {\n const newValue: Value = Array.isArray(relationTo)\n ? {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n }\n : doc.id\n\n // ensure the value is not already in the array\n const isNewValue =\n Array.isArray(relationTo) && Array.isArray(value)\n ? !value.some((v) => v && typeof v === 'object' && v.value === doc.id)\n : value !== doc.id\n\n if (isNewValue) {\n // dispatchOptions({\n // collection: collectionConfig,\n // // TODO: fix this\n // // @ts-expect-error-next-line\n // type: 'ADD',\n // config,\n // docs: [doc],\n // i18n,\n // sort: true,\n // })\n\n if (hasMany) {\n setValue([...(Array.isArray(value) ? value : []), newValue])\n } else {\n setValue(newValue)\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [relationTo, collectionConfig, hasMany, setValue, value],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create?.permission)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create?.permission,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0].labels.singular, i18n),\n })\n\n if (show) {\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => setShowTooltip(false)}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create.permission) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig &&\n permissions.collections[collectionConfig?.slug]?.create?.permission && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,15 +5,15 @@ import LinkWithDefault from 'next/link.js';
5
5
  import React, { useEffect, useRef, useState } from 'react';
6
6
  import { Account } from '../../graphics/Account/index.js';
7
7
  import { useActions } from '../../providers/Actions/index.js';
8
- import { RenderComponent } from '../../providers/Config/RenderComponent.js';
9
8
  import { useConfig } from '../../providers/Config/index.js';
9
+ import { RenderComponent } from '../../providers/Config/RenderComponent.js';
10
10
  import { useTranslation } from '../../providers/Translation/index.js';
11
11
  import { formatAdminURL } from '../../utilities/formatAdminURL.js';
12
12
  import { Hamburger } from '../Hamburger/index.js';
13
- import { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js';
14
13
  import { Localizer } from '../Localizer/index.js';
15
- import { NavToggler } from '../Nav/NavToggler/index.js';
14
+ import { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js';
16
15
  import { useNav } from '../Nav/context.js';
16
+ import { NavToggler } from '../Nav/NavToggler/index.js';
17
17
  import { StepNav } from '../StepNav/index.js';
18
18
  import './index.scss';
19
19
  const baseClass = 'app-header';
@@ -75,8 +75,8 @@ export const AppHeader = () => {
75
75
  children: [/*#__PURE__*/_jsx("div", {
76
76
  className: `${baseClass}__step-nav-wrapper`,
77
77
  children: /*#__PURE__*/_jsx(StepNav, {
78
- Link: Link,
79
- className: `${baseClass}__step-nav`
78
+ className: `${baseClass}__step-nav`,
79
+ Link: Link
80
80
  })
81
81
  }), /*#__PURE__*/_jsxs("div", {
82
82
  className: `${baseClass}__actions-wrapper`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","RenderComponent","useConfig","useTranslation","formatAdminURL","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","config","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","_jsxs","className","filter","Boolean","join","_jsx","tabIndex","ref","Array","isArray","map","Action","i","length","mappedComponent","ariaLabel","href","path"],"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport LinkWithDefault from 'next/link.js'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\nexport const AppHeader: React.FC = () => {\n const { t } = useTranslation()\n\n const {\n config: {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { actions } = useActions()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [actions])\n\n const Link = LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav Link={Link} className={`${baseClass}__step-nav`} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {Array.isArray(actions) &&\n actions.map((Action, i) => (\n <div\n className={\n isScrollable && i === actions.length - 1 ? `${baseClass}__last-action` : ''\n }\n key={i}\n >\n <RenderComponent mappedComponent={Action} />\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <LinkElement\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={formatAdminURL({ adminRoute, path: accountRoute })}\n tabIndex={0}\n >\n <Account />\n </LinkElement>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","RenderComponent","useTranslation","formatAdminURL","Hamburger","Localizer","LocalizerLabel","useNav","NavToggler","StepNav","baseClass","AppHeader","t","config","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","_jsxs","className","filter","Boolean","join","_jsx","tabIndex","ref","Array","isArray","map","Action","i","length","mappedComponent","ariaLabel","href","path"],"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport LinkWithDefault from 'next/link.js'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { RenderComponent } from '../../providers/Config/RenderComponent.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\nexport const AppHeader: React.FC = () => {\n const { t } = useTranslation()\n\n const {\n config: {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { actions } = useActions()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [actions])\n\n const Link = LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav className={`${baseClass}__step-nav`} Link={Link} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {Array.isArray(actions) &&\n actions.map((Action, i) => (\n <div\n className={\n isScrollable && i === actions.length - 1 ? `${baseClass}__last-action` : ''\n }\n key={i}\n >\n <RenderComponent mappedComponent={Action} />\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <LinkElement\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={formatAdminURL({ adminRoute, path: accountRoute })}\n tabIndex={0}\n >\n <Account />\n </LinkElement>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGzE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAiB1D,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6OpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGzE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAiB1D,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgPpC,CAAA"}
@@ -56,7 +56,9 @@ export const Autosave = ({
56
56
  t
57
57
  } = useTranslation();
58
58
  let interval = versionDefaults.autosaveInterval;
59
- if (versionsConfig.drafts && versionsConfig.drafts.autosave) interval = versionsConfig.drafts.autosave.interval;
59
+ if (versionsConfig.drafts && versionsConfig.drafts.autosave) {
60
+ interval = versionsConfig.drafts.autosave.interval;
61
+ }
60
62
  const [saving, setSaving] = useState(false);
61
63
  const [lastSaved, setLastSaved] = useState();
62
64
  const debouncedFields = useDebounce(fields, interval);
@@ -186,7 +188,9 @@ export const Autosave = ({
186
188
  };
187
189
  void autosave();
188
190
  return () => {
189
- if (autosaveTimeout) clearTimeout(autosaveTimeout);
191
+ if (autosaveTimeout) {
192
+ clearTimeout(autosaveTimeout);
193
+ }
190
194
  if (abortController.signal) {
191
195
  try {
192
196
  abortController.abort('Autosave closed early.');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","config","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","setModified","setSubmitted","submitted","versionsConfig","fields","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","modified","fieldRef","modifiedRef","localeRef","debouncedRef","current","abortController","AbortController","autosaveTimeout","undefined","startTimestamp","endTimestamp","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","validate","fetch","body","JSON","stringify","credentials","headers","language","signal","then","res","newDate","status","updatedAt","toISOString","json","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","setTimeout","clearTimeout","abort","docs","_jsxs","className","Boolean","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { versionDefaults } from 'payload/shared'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setModified, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const formModified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const modified = useDebounce(formModified, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n // When debounced fields change, autosave\n useEffect(() => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const autosave = () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n void fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n .then((res) => {\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n if (res.status === 200) {\n setLastSaved(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n setModified(false)\n void getVersions()\n } else {\n return res.json()\n }\n })\n .then((json) => {\n if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json?.errors) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\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 dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n })\n .then(() => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeout = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n setSaving(false)\n }\n })\n }\n }\n }\n }\n }\n\n void autosave()\n\n return () => {\n if (autosaveTimeout) clearTimeout(autosaveTimeout)\n if (abortController.signal) {\n try {\n abortController.abort('Autosave closed early.')\n } catch (error) {\n // swallow error\n }\n }\n setSaving(false)\n }\n }, [\n api,\n collection,\n dispatchFields,\n getVersions,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n setModified,\n versionsConfig?.drafts,\n debouncedFields,\n submitted,\n ])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && Boolean(lastSaved) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","config","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","setModified","setSubmitted","submitted","versionsConfig","fields","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","modified","fieldRef","modifiedRef","localeRef","debouncedRef","current","abortController","AbortController","autosaveTimeout","undefined","startTimestamp","endTimestamp","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","validate","fetch","body","JSON","stringify","credentials","headers","language","signal","then","res","newDate","status","updatedAt","toISOString","json","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","setTimeout","clearTimeout","abort","docs","_jsxs","className","Boolean","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { versionDefaults } from 'payload/shared'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setModified, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const formModified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const modified = useDebounce(formModified, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n // When debounced fields change, autosave\n useEffect(() => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const autosave = () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n void fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n .then((res) => {\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n if (res.status === 200) {\n setLastSaved(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n setModified(false)\n void getVersions()\n } else {\n return res.json()\n }\n })\n .then((json) => {\n if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json?.errors) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\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 dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n })\n .then(() => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeout = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n setSaving(false)\n }\n })\n }\n }\n }\n }\n }\n\n void autosave()\n\n return () => {\n if (autosaveTimeout) {\n clearTimeout(autosaveTimeout)\n }\n if (abortController.signal) {\n try {\n abortController.abort('Autosave closed early.')\n } catch (error) {\n // swallow error\n }\n }\n setSaving(false)\n }\n }, [\n api,\n collection,\n dispatchFields,\n getVersions,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n setModified,\n versionsConfig?.drafts,\n debouncedFields,\n submitted,\n ])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && Boolean(lastSaved) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Banner/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAMrB,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAChD,CAAC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiClC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Banner/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAMrB,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAChD,CAAC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqClC,CAAA"}
@@ -17,8 +17,12 @@ export const Banner = ({
17
17
  }) => {
18
18
  const classes = [baseClass, `${baseClass}--type-${type}`, className && className, to && `${baseClass}--has-link`, (to || onClick) && `${baseClass}--has-action`, icon && `${baseClass}--has-icon`, icon && `${baseClass}--align-icon-${alignIcon}`].filter(Boolean).join(' ');
19
19
  let RenderedType = 'div';
20
- if (onClick && !to) RenderedType = 'button';
21
- if (to) RenderedType = Link;
20
+ if (onClick && !to) {
21
+ RenderedType = 'button';
22
+ }
23
+ if (to) {
24
+ RenderedType = Link;
25
+ }
22
26
  return /*#__PURE__*/_jsxs(RenderedType, {
23
27
  className: classes,
24
28
  href: to || null,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LinkImport","React","Link","default","baseClass","Banner","type","alignIcon","children","className","icon","onClick","to","classes","filter","Boolean","join","RenderedType","_jsxs","href","_jsx","Fragment"],"sources":["../../../src/elements/Banner/index.tsx"],"sourcesContent":["'use client'\nimport LinkImport from 'next/link.js' // TODO: abstract this out to support all routers\nimport type { MouseEvent } from 'react'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nconst baseClass = 'banner'\n\ntype onClick = (event: MouseEvent) => void\n\nexport type Props = Readonly<{\n alignIcon?: 'left' | 'right'\n children?: React.ReactNode\n className?: string\n icon?: React.ReactNode\n onClick?: onClick\n to?: string\n type?: 'default' | 'error' | 'info' | 'success'\n}>\n\nexport type RenderedTypeProps = {\n children?: React.ReactNode\n className?: string\n onClick?: onClick\n to: string\n}\n\nexport const Banner: React.FC<Props> = ({\n type = 'default',\n alignIcon = 'right',\n children,\n className,\n icon,\n onClick,\n to,\n}) => {\n const classes = [\n baseClass,\n `${baseClass}--type-${type}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let RenderedType: React.ComponentType<RenderedTypeProps> | React.ElementType = 'div'\n\n if (onClick && !to) RenderedType = 'button'\n if (to) RenderedType = Link\n\n return (\n <RenderedType className={classes} href={to || null} onClick={onClick}>\n {icon && alignIcon === 'left' && <React.Fragment>{icon}</React.Fragment>}\n <span className={`${baseClass}__content`}>{children}</span>\n {icon && alignIcon === 'right' && <React.Fragment>{icon}</React.Fragment>}\n </RenderedType>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,UAAA,MAAgB,eAAc,CAAC;AAGtC,OAAOC,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,IAAA,GAAQF,UAAA,CAAWG,OAAO,IAAIH,UAAA;AAEpC,MAAMI,SAAA,GAAY;AAqBlB,OAAO,MAAMC,MAAA,GAA0BA,CAAC;EACtCC,IAAA,GAAO,SAAS;EAChBC,SAAA,GAAY,OAAO;EACnBC,QAAQ;EACRC,SAAS;EACTC,IAAI;EACJC,OAAO;EACPC;AAAE,CACH;EACC,MAAMC,OAAA,GAAU,CACdT,SAAA,EACA,GAAGA,SAAA,UAAmBE,IAAA,EAAM,EAC5BG,SAAA,IAAaA,SAAA,EACbG,EAAA,IAAM,GAAGR,SAAA,YAAqB,EAC7B,CAAAQ,EAAA,IAAMD,OAAM,KAAM,GAAGP,SAAA,cAAuB,EAC7CM,IAAA,IAAQ,GAAGN,SAAA,YAAqB,EAChCM,IAAA,IAAQ,GAAGN,SAAA,gBAAyBG,SAAA,EAAW,CAChD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,IAAIC,YAAA,GAA2E;EAE/E,IAAIN,OAAA,IAAW,CAACC,EAAA,EAAIK,YAAA,GAAe;EACnC,IAAIL,EAAA,EAAIK,YAAA,GAAef,IAAA;EAEvB,oBACEgB,KAAA,CAACD,YAAA;IAAaR,SAAA,EAAWI,OAAA;IAASM,IAAA,EAAMP,EAAA,IAAM;IAAMD,OAAA,EAASA,OAAA;eAC1DD,IAAA,IAAQH,SAAA,KAAc,uBAAUa,IAAA,CAACnB,KAAA,CAAMoB,QAAQ;gBAAEX;qBAClDU,IAAA,CAAC;MAAKX,SAAA,EAAW,GAAGL,SAAA,WAAoB;gBAAGI;QAC1CE,IAAA,IAAQH,SAAA,KAAc,wBAAWa,IAAA,CAACnB,KAAA,CAAMoB,QAAQ;gBAAEX;;;AAGzD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["LinkImport","React","Link","default","baseClass","Banner","type","alignIcon","children","className","icon","onClick","to","classes","filter","Boolean","join","RenderedType","_jsxs","href","_jsx","Fragment"],"sources":["../../../src/elements/Banner/index.tsx"],"sourcesContent":["'use client'\nimport LinkImport from 'next/link.js' // TODO: abstract this out to support all routers\nimport type { MouseEvent } from 'react'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nconst baseClass = 'banner'\n\ntype onClick = (event: MouseEvent) => void\n\nexport type Props = Readonly<{\n alignIcon?: 'left' | 'right'\n children?: React.ReactNode\n className?: string\n icon?: React.ReactNode\n onClick?: onClick\n to?: string\n type?: 'default' | 'error' | 'info' | 'success'\n}>\n\nexport type RenderedTypeProps = {\n children?: React.ReactNode\n className?: string\n onClick?: onClick\n to: string\n}\n\nexport const Banner: React.FC<Props> = ({\n type = 'default',\n alignIcon = 'right',\n children,\n className,\n icon,\n onClick,\n to,\n}) => {\n const classes = [\n baseClass,\n `${baseClass}--type-${type}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let RenderedType: React.ComponentType<RenderedTypeProps> | React.ElementType = 'div'\n\n if (onClick && !to) {\n RenderedType = 'button'\n }\n if (to) {\n RenderedType = Link\n }\n\n return (\n <RenderedType className={classes} href={to || null} onClick={onClick}>\n {icon && alignIcon === 'left' && <React.Fragment>{icon}</React.Fragment>}\n <span className={`${baseClass}__content`}>{children}</span>\n {icon && alignIcon === 'right' && <React.Fragment>{icon}</React.Fragment>}\n </RenderedType>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,UAAA,MAAgB,eAAc,CAAC;AAGtC,OAAOC,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,IAAA,GAAQF,UAAA,CAAWG,OAAO,IAAIH,UAAA;AAEpC,MAAMI,SAAA,GAAY;AAqBlB,OAAO,MAAMC,MAAA,GAA0BA,CAAC;EACtCC,IAAA,GAAO,SAAS;EAChBC,SAAA,GAAY,OAAO;EACnBC,QAAQ;EACRC,SAAS;EACTC,IAAI;EACJC,OAAO;EACPC;AAAE,CACH;EACC,MAAMC,OAAA,GAAU,CACdT,SAAA,EACA,GAAGA,SAAA,UAAmBE,IAAA,EAAM,EAC5BG,SAAA,IAAaA,SAAA,EACbG,EAAA,IAAM,GAAGR,SAAA,YAAqB,EAC7B,CAAAQ,EAAA,IAAMD,OAAM,KAAM,GAAGP,SAAA,cAAuB,EAC7CM,IAAA,IAAQ,GAAGN,SAAA,YAAqB,EAChCM,IAAA,IAAQ,GAAGN,SAAA,gBAAyBG,SAAA,EAAW,CAChD,CACEO,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,IAAIC,YAAA,GAA2E;EAE/E,IAAIN,OAAA,IAAW,CAACC,EAAA,EAAI;IAClBK,YAAA,GAAe;EACjB;EACA,IAAIL,EAAA,EAAI;IACNK,YAAA,GAAef,IAAA;EACjB;EAEA,oBACEgB,KAAA,CAACD,YAAA;IAAaR,SAAA,EAAWI,OAAA;IAASM,IAAA,EAAMP,EAAA,IAAM;IAAMD,OAAA,EAASA,OAAA;eAC1DD,IAAA,IAAQH,SAAA,KAAc,uBAAUa,IAAA,CAACnB,KAAA,CAAMoB,QAAQ;gBAAEX;qBAClDU,IAAA,CAAC;MAAKX,SAAA,EAAW,GAAGL,SAAA,WAAoB;gBAAGI;QAC1CE,IAAA,IAAQH,SAAA,KAAc,wBAAWa,IAAA,CAACnB,KAAA,CAAMoB,QAAQ;gBAAEX;;;AAGzD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/ActionsBar/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,UAAU,sBA4CzB;AAED,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AACD,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,qBA4BlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/ActionsBar/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,UAAU,sBAkDzB;AAED,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AACD,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,qBA4BlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useConfig","useTranslation","Button","useFormsManager","baseClass","ActionsBar","$","activeIndex","forms","setActiveIndex","t","t0","t1","length","t2","nextIndex","t3","nextIndex_0","_jsxs","className","children","_jsx","buttonStyle","onClick","type","direction","Actions","config","collectionSlug","hasPublishPermission","hasSavePermission","saveAllDocs","collections","slug","find","collectionConfig","filter","Boolean","join","t4","versions","drafts","overrides","_status"],"sources":["../../../../src/elements/BulkUpload/ActionsBar/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--actions-bar'\n\nexport function ActionsBar() {\n const { activeIndex, forms, setActiveIndex } = useFormsManager()\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__navigation`}>\n <p className={`${baseClass}__locationText`}>\n <strong>{activeIndex + 1}</strong>\n {' of '}\n <strong>{forms.length}</strong>\n </p>\n\n <div className={`${baseClass}__controls`}>\n <Button\n aria-label={t('general:previous')}\n buttonStyle=\"none\"\n onClick={() => {\n const nextIndex = activeIndex - 1\n if (nextIndex < 0) setActiveIndex(forms.length - 1)\n else setActiveIndex(nextIndex)\n }}\n type=\"button\"\n >\n <ChevronIcon direction=\"left\" />\n </Button>\n <Button\n aria-label={t('general:next')}\n buttonStyle=\"none\"\n onClick={() => {\n const nextIndex = activeIndex + 1\n if (nextIndex === forms.length) setActiveIndex(0)\n else setActiveIndex(nextIndex)\n }}\n type=\"button\"\n >\n <ChevronIcon direction=\"right\" />\n </Button>\n </div>\n </div>\n\n <Actions className={`${baseClass}__saveButtons`} />\n </div>\n )\n}\n\ntype ActionsProps = {\n readonly className?: string\n}\nexport function Actions({ className }: ActionsProps) {\n const { config } = useConfig()\n const { t } = useTranslation()\n const { collectionSlug, hasPublishPermission, hasSavePermission, saveAllDocs } = useFormsManager()\n\n const collectionConfig = config.collections.find((c) => c.slug === collectionSlug)\n\n return (\n <div className={[`${baseClass}__buttons`, className].filter(Boolean).join(' ')}>\n {collectionConfig?.versions?.drafts && hasSavePermission ? (\n <Button\n buttonStyle=\"secondary\"\n onClick={() => void saveAllDocs({ overrides: { _status: 'draft' } })}\n >\n {t('version:saveDraft')}\n </Button>\n ) : null}\n {collectionConfig?.versions?.drafts && hasPublishPermission ? (\n <Button onClick={() => void saveAllDocs({ overrides: { _status: 'published' } })}>\n {t('version:publish')}\n </Button>\n ) : null}\n\n {!collectionConfig?.versions?.drafts && hasSavePermission ? (\n <Button onClick={() => void saveAllDocs()}>{t('general:save')}</Button>\n ) : null}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useConfig","useTranslation","Button","useFormsManager","baseClass","ActionsBar","$","activeIndex","forms","setActiveIndex","t","t0","t1","length","t2","nextIndex","t3","nextIndex_0","_jsxs","className","children","_jsx","buttonStyle","onClick","type","direction","Actions","config","collectionSlug","hasPublishPermission","hasSavePermission","saveAllDocs","collections","slug","find","collectionConfig","filter","Boolean","join","t4","versions","drafts","overrides","_status"],"sources":["../../../../src/elements/BulkUpload/ActionsBar/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--actions-bar'\n\nexport function ActionsBar() {\n const { activeIndex, forms, setActiveIndex } = useFormsManager()\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__navigation`}>\n <p className={`${baseClass}__locationText`}>\n <strong>{activeIndex + 1}</strong>\n {' of '}\n <strong>{forms.length}</strong>\n </p>\n\n <div className={`${baseClass}__controls`}>\n <Button\n aria-label={t('general:previous')}\n buttonStyle=\"none\"\n onClick={() => {\n const nextIndex = activeIndex - 1\n if (nextIndex < 0) {\n setActiveIndex(forms.length - 1)\n } else {\n setActiveIndex(nextIndex)\n }\n }}\n type=\"button\"\n >\n <ChevronIcon direction=\"left\" />\n </Button>\n <Button\n aria-label={t('general:next')}\n buttonStyle=\"none\"\n onClick={() => {\n const nextIndex = activeIndex + 1\n if (nextIndex === forms.length) {\n setActiveIndex(0)\n } else {\n setActiveIndex(nextIndex)\n }\n }}\n type=\"button\"\n >\n <ChevronIcon direction=\"right\" />\n </Button>\n </div>\n </div>\n\n <Actions className={`${baseClass}__saveButtons`} />\n </div>\n )\n}\n\ntype ActionsProps = {\n readonly className?: string\n}\nexport function Actions({ className }: ActionsProps) {\n const { config } = useConfig()\n const { t } = useTranslation()\n const { collectionSlug, hasPublishPermission, hasSavePermission, saveAllDocs } = useFormsManager()\n\n const collectionConfig = config.collections.find((c) => c.slug === collectionSlug)\n\n return (\n <div className={[`${baseClass}__buttons`, className].filter(Boolean).join(' ')}>\n {collectionConfig?.versions?.drafts && hasSavePermission ? (\n <Button\n buttonStyle=\"secondary\"\n onClick={() => void saveAllDocs({ overrides: { _status: 'draft' } })}\n >\n {t('version:saveDraft')}\n </Button>\n ) : null}\n {collectionConfig?.versions?.drafts && hasPublishPermission ? (\n <Button onClick={() => void saveAllDocs({ overrides: { _status: 'published' } })}>\n {t('version:publish')}\n </Button>\n ) : null}\n\n {!collectionConfig?.versions?.drafts && hasSavePermission ? (\n <Button onClick={() => void saveAllDocs()}>{t('general:save')}</Button>\n ) : null}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,21 +17,21 @@
17
17
  align-items: center;
18
18
  width: 100%;
19
19
  }
20
-
20
+
21
21
  &__locationText {
22
22
  font-variant-numeric: tabular-nums;
23
23
  margin: 0;
24
24
  }
25
-
25
+
26
26
  &__controls {
27
27
  display: flex;
28
28
  gap: calc(var(--base) / 2);
29
-
29
+
30
30
  .btn {
31
31
  background-color: var(--theme-elevation-100);
32
32
  width: calc(var(--base) * 1.2);
33
33
  height: calc(var(--base) * 1.2);
34
-
34
+
35
35
  &:hover {
36
36
  background-color: var(--theme-elevation-200);
37
37
  }
@@ -40,6 +40,7 @@ export function AddFilesView({
40
40
  "aria-hidden": "true",
41
41
  className: `${baseClass}__hidden-input`,
42
42
  hidden: true,
43
+ multiple: true,
43
44
  onChange: e => {
44
45
  if (e.target.files && e.target.files.length > 0) {
45
46
  onDrop(e.target.files);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useTranslation","Button","Dropzone","DrawerHeader","baseClass","AddFilesView","onCancel","onDrop","t","inputRef","useRef","_jsxs","className","_jsx","onClose","title","multipleFiles","onChange","buttonStyle","iconPosition","onClick","current","click","size","hidden","e","target","files","length","ref","type"],"sources":["../../../../src/elements/BulkUpload/AddFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Dropzone } from '../../Dropzone/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--add-files'\n\ntype Props = {\n readonly onCancel: () => void\n readonly onDrop: (acceptedFiles: FileList) => void\n}\nexport function AddFilesView({ onCancel, onDrop }: Props) {\n const { t } = useTranslation()\n\n const inputRef = React.useRef(null)\n\n return (\n <div className={baseClass}>\n <DrawerHeader onClose={onCancel} title={t('upload:addFiles')} />\n <div className={`${baseClass}__dropArea`}>\n <Dropzone multipleFiles onChange={onDrop}>\n <Button\n buttonStyle=\"pill\"\n iconPosition=\"left\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n onDrop(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </Dropzone>\n {/* <Dropzone multipleFiles onChange={onDrop} /> */}\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,SAASC,aAAa;EAAEC,QAAQ;EAAEC;AAAM,CAAS;EACtD,MAAM;IAAEC;EAAC,CAAE,GAAGR,cAAA;EAEd,MAAMS,QAAA,GAAWV,KAAA,CAAMW,MAAM,CAAC;EAE9B,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWR,SAAA;4BACdS,IAAA,CAACV,YAAA;MAAaW,OAAA,EAASR,QAAA;MAAUS,KAAA,EAAOP,CAAA,CAAE;qBAC1CK,IAAA,CAAC;MAAID,SAAA,EAAW,GAAGR,SAAA,YAAqB;gBACtC,aAAAO,KAAA,CAACT,QAAA;QAASc,aAAa;QAACC,QAAA,EAAUV,MAAA;gCAChCM,IAAA,CAACZ,MAAA;UACCiB,WAAA,EAAY;UACZC,YAAA,EAAa;UACbC,OAAA,EAASA,CAAA;YACP,IAAIX,QAAA,CAASY,OAAO,EAAE;cACpBZ,QAAA,CAASY,OAAO,CAACC,KAAK;YACxB;UACF;UACAC,IAAA,EAAK;oBAEJf,CAAA,CAAE;yBAELK,IAAA,CAAC;UACC,eAAY;UACZD,SAAA,EAAW,GAAGR,SAAA,gBAAyB;UACvCoB,MAAM;UACNP,QAAA,EAAWQ,CAAA;YACT,IAAIA,CAAA,CAAEC,MAAM,CAACC,KAAK,IAAIF,CAAA,CAAEC,MAAM,CAACC,KAAK,CAACC,MAAM,GAAG,GAAG;cAC/CrB,MAAA,CAAOkB,CAAA,CAAEC,MAAM,CAACC,KAAK;YACvB;UACF;UACAE,GAAA,EAAKpB,QAAA;UACLqB,IAAA,EAAK;yBAGPnB,KAAA,CAAC;UAAEC,SAAA,EAAW,GAAGR,SAAA,mBAA4B;qBAC1CI,CAAA,CAAE,eAAc,KAAEA,CAAA,CAAE;;;;;AAOjC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useTranslation","Button","Dropzone","DrawerHeader","baseClass","AddFilesView","onCancel","onDrop","t","inputRef","useRef","_jsxs","className","_jsx","onClose","title","multipleFiles","onChange","buttonStyle","iconPosition","onClick","current","click","size","hidden","multiple","e","target","files","length","ref","type"],"sources":["../../../../src/elements/BulkUpload/AddFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Dropzone } from '../../Dropzone/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--add-files'\n\ntype Props = {\n readonly onCancel: () => void\n readonly onDrop: (acceptedFiles: FileList) => void\n}\nexport function AddFilesView({ onCancel, onDrop }: Props) {\n const { t } = useTranslation()\n\n const inputRef = React.useRef(null)\n\n return (\n <div className={baseClass}>\n <DrawerHeader onClose={onCancel} title={t('upload:addFiles')} />\n <div className={`${baseClass}__dropArea`}>\n <Dropzone multipleFiles onChange={onDrop}>\n <Button\n buttonStyle=\"pill\"\n iconPosition=\"left\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n multiple\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n onDrop(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </Dropzone>\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,SAASC,aAAa;EAAEC,QAAQ;EAAEC;AAAM,CAAS;EACtD,MAAM;IAAEC;EAAC,CAAE,GAAGR,cAAA;EAEd,MAAMS,QAAA,GAAWV,KAAA,CAAMW,MAAM,CAAC;EAE9B,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWR,SAAA;4BACdS,IAAA,CAACV,YAAA;MAAaW,OAAA,EAASR,QAAA;MAAUS,KAAA,EAAOP,CAAA,CAAE;qBAC1CK,IAAA,CAAC;MAAID,SAAA,EAAW,GAAGR,SAAA,YAAqB;gBACtC,aAAAO,KAAA,CAACT,QAAA;QAASc,aAAa;QAACC,QAAA,EAAUV,MAAA;gCAChCM,IAAA,CAACZ,MAAA;UACCiB,WAAA,EAAY;UACZC,YAAA,EAAa;UACbC,OAAA,EAASA,CAAA;YACP,IAAIX,QAAA,CAASY,OAAO,EAAE;cACpBZ,QAAA,CAASY,OAAO,CAACC,KAAK;YACxB;UACF;UACAC,IAAA,EAAK;oBAEJf,CAAA,CAAE;yBAELK,IAAA,CAAC;UACC,eAAY;UACZD,SAAA,EAAW,GAAGR,SAAA,gBAAyB;UACvCoB,MAAM;UACNC,QAAQ;UACRR,QAAA,EAAWS,CAAA;YACT,IAAIA,CAAA,CAAEC,MAAM,CAACC,KAAK,IAAIF,CAAA,CAAEC,MAAM,CAACC,KAAK,CAACC,MAAM,GAAG,GAAG;cAC/CtB,MAAA,CAAOmB,CAAA,CAAEC,MAAM,CAACC,KAAK;YACvB;UACF;UACAE,GAAA,EAAKrB,QAAA;UACLsB,IAAA,EAAK;yBAGPpB,KAAA,CAAC;UAAEC,SAAA,EAAW,GAAGR,SAAA,mBAA4B;qBAC1CI,CAAA,CAAE,eAAc,KAAEA,CAAA,CAAE;;;;;AAMjC","ignoreList":[]}
@@ -7,7 +7,7 @@
7
7
  height: 100%;
8
8
  padding: calc(var(--base) * 2) var(--gutter-h);
9
9
  }
10
-
10
+
11
11
  .dropzone {
12
12
  flex-direction: column;
13
13
  justify-content: center;
@@ -10,7 +10,7 @@ import { useConfig } from '../../../providers/Config/index.js';
10
10
  import { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js';
11
11
  import { useTranslation } from '../../../providers/Translation/index.js';
12
12
  import { ActionsBar } from '../ActionsBar/index.js';
13
- import { DiscardWithoutSaving, discardBulkUploadModalSlug } from '../DiscardWithoutSaving/index.js';
13
+ import { discardBulkUploadModalSlug, DiscardWithoutSaving } from '../DiscardWithoutSaving/index.js';
14
14
  import { EditForm } from '../EditForm/index.js';
15
15
  import { FileSidebar } from '../FileSidebar/index.js';
16
16
  import { useFormsManager } from '../FormsManager/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","reduceFieldsToValues","React","useConfig","DocumentInfoProvider","useTranslation","ActionsBar","DiscardWithoutSaving","discardBulkUploadModalSlug","EditForm","FileSidebar","useFormsManager","DrawerHeader","baseClass","AddingFilesView","$","activeIndex","collectionSlug","docPermissions","forms","hasPublishPermission","hasSavePermission","hasSubmitted","activeForm","config","i18n","openModal","t0","collections","t1","slug","collection","find","t2","_jsxs","className","children","_jsx","onClose","title","labels","singular","id","initialData","formState","initialState","submitted","length"],"sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ActionsBar } from '../ActionsBar/index.js'\nimport { DiscardWithoutSaving, discardBulkUploadModalSlug } from '../DiscardWithoutSaving/index.js'\nimport { EditForm } from '../EditForm/index.js'\nimport { FileSidebar } from '../FileSidebar/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--file-manager'\n\nexport function AddingFilesView() {\n const {\n activeIndex,\n collectionSlug,\n docPermissions,\n forms,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n } = useFormsManager()\n const activeForm = forms[activeIndex]\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const collection = config.collections.find((c) => c.slug === collectionSlug)\n\n return (\n <div className={baseClass}>\n <FileSidebar />\n\n <div className={`${baseClass}__editView`}>\n <DrawerHeader\n onClose={() => openModal(discardBulkUploadModalSlug)}\n title={getTranslation(collection.labels.singular, i18n)}\n />\n {activeForm ? (\n <DocumentInfoProvider\n collectionSlug={collectionSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={null}\n initialData={reduceFieldsToValues(activeForm.formState, true)}\n initialState={activeForm.formState}\n key={`${activeIndex}-${forms.length}`}\n >\n <ActionsBar />\n <EditForm submitted={hasSubmitted} />\n </DocumentInfoProvider>\n ) : null}\n </div>\n\n <DiscardWithoutSaving />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","reduceFieldsToValues","React","useConfig","DocumentInfoProvider","useTranslation","ActionsBar","discardBulkUploadModalSlug","DiscardWithoutSaving","EditForm","FileSidebar","useFormsManager","DrawerHeader","baseClass","AddingFilesView","$","activeIndex","collectionSlug","docPermissions","forms","hasPublishPermission","hasSavePermission","hasSubmitted","activeForm","config","i18n","openModal","t0","collections","t1","slug","collection","find","t2","_jsxs","className","children","_jsx","onClose","title","labels","singular","id","initialData","formState","initialState","submitted","length"],"sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ActionsBar } from '../ActionsBar/index.js'\nimport { discardBulkUploadModalSlug, DiscardWithoutSaving } from '../DiscardWithoutSaving/index.js'\nimport { EditForm } from '../EditForm/index.js'\nimport { FileSidebar } from '../FileSidebar/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--file-manager'\n\nexport function AddingFilesView() {\n const {\n activeIndex,\n collectionSlug,\n docPermissions,\n forms,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n } = useFormsManager()\n const activeForm = forms[activeIndex]\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const collection = config.collections.find((c) => c.slug === collectionSlug)\n\n return (\n <div className={baseClass}>\n <FileSidebar />\n\n <div className={`${baseClass}__editView`}>\n <DrawerHeader\n onClose={() => openModal(discardBulkUploadModalSlug)}\n title={getTranslation(collection.labels.singular, i18n)}\n />\n {activeForm ? (\n <DocumentInfoProvider\n collectionSlug={collectionSlug}\n docPermissions={docPermissions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={null}\n initialData={reduceFieldsToValues(activeForm.formState, true)}\n initialState={activeForm.formState}\n key={`${activeIndex}-${forms.length}`}\n >\n <ActionsBar />\n <EditForm submitted={hasSubmitted} />\n </DocumentInfoProvider>\n ) : null}\n </div>\n\n <DiscardWithoutSaving />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AACrC,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,0BAA0B,EAAEC,oBAAoB,QAAQ;AACjE,SAASC,QAAQ,QAAQ;AACzB,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,gBAAA;EAAA,MAAAC,CAAA,GAAAjB,EAAA;EACL;IAAAkB,WAAA;IAAAC,cAAA;IAAAC,cAAA;IAAAC,KAAA;IAAAC,oBAAA;IAAAC,iBAAA;IAAAC;EAAA,IAQIX,eAAA;EACJ,MAAAY,UAAA,GAAmBJ,KAAK,CAACH,WAAA;EACzB;IAAAQ;EAAA,IAAmBrB,SAAA;EACnB;IAAAsB;EAAA,IAAiBpB,cAAA;EACjB;IAAAqB;EAAA,IAAsB3B,QAAA;EAAA,IAAA4B,EAAA;EAAA,IAAAZ,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAS,MAAA,CAAAI,WAAA,IAAAb,CAAA,QAAAW,SAAA,IAAAX,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAQ,UAAA,IAAAR,CAAA,QAAAO,YAAA,IAAAP,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAK,oBAAA,IAAAL,CAAA,QAAAM,iBAAA,IAAAN,CAAA,QAAAC,WAAA,IAAAD,CAAA,SAAAI,KAAA;IAAA,IAAAU,EAAA;IAAA,IAAAd,CAAA,SAAAE,cAAA;MAEqBY,EAAA,GAAAhC,CAAA,IAAOA,CAAA,CAAAiC,IAAA,KAAWb,cAAA;MAAAF,CAAA,OAAAE,cAAA;MAAAF,CAAA,OAAAc,EAAA;IAAA;MAAAA,EAAA,GAAAd,CAAA;IAAA;IAA7D,MAAAgB,UAAA,GAAmBP,MAAA,CAAAI,WAAA,CAAAI,IAAA,CAAwBH,EAAkB;IAAA,IAAAI,EAAA;IAAA,IAAAlB,CAAA,SAAAW,SAAA;MAQ5CO,EAAA,GAAAA,CAAA,KAAMP,SAAA,CAAAnB,0BAAU;MAAAQ,CAAA,OAAAW,SAAA;MAAAX,CAAA,OAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAL/BY,EAAA,GAAAO,KAAA,CAAC;MAAAC,SAAA,EAAAtB,SAAA;MAAAuB,QAAA,GACCC,IAAA,CAAA3B,WAAA,IAAC,GAEDwB,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAAtB,SAAA,YAAwB;QAAAuB,QAAA,GACtCC,IAAA,CAAAzB,YAAA;UAAA0B,OAAA,EACWL,EAAgB;UAAAM,KAAA,EAClBvC,cAAA,CAAe+B,UAAA,CAAAS,MAAA,CAAAC,QAAA,EAA4BhB,IAAA;QAAA,C,GAEnDF,UAAA,GACCW,KAAA,CAAA9B,oBAAA;UAAAa,cAAA;UAAAC,cAAA;UAAAE,oBAAA;UAAAC,iBAAA;UAAAqB,EAAA;UAAAC,WAAA,EAMe1C,oBAAA,CAAqBsB,UAAA,CAAAqB,SAAA,MAAsB;UAAAC,YAAA,EAC1CtB,UAAA,CAAAqB,SAAA;UAAAR,QAAA,GAGdC,IAAA,CAAA/B,UAAA,IAAC,GACD+B,IAAA,CAAA5B,QAAA;YAAAqC,SAAA,EAAqBxB;UAAA,C;WAHhB,GAAGN,WAAA,IAAeG,KAAA,CAAA4B,MAAA,EAAc,QAKrC;MAAA,C,GAGNV,IAAA,CAAA7B,oBAAA,IAAC;IAAA,C;;;;;;;;;;;;;;;;SAzBHmB,E","ignoreList":[]}
@@ -5,8 +5,8 @@ import { useRouter, useSearchParams } from 'next/navigation.js';
5
5
  import React, { useCallback } from 'react';
6
6
  import { Form, useForm } from '../../../forms/Form/index.js';
7
7
  import { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js';
8
- import { RenderComponent } from '../../../providers/Config/RenderComponent.js';
9
8
  import { useConfig } from '../../../providers/Config/index.js';
9
+ import { RenderComponent } from '../../../providers/Config/RenderComponent.js';
10
10
  import { useDocumentEvents } from '../../../providers/DocumentEvents/index.js';
11
11
  import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
12
12
  import { useEditDepth } from '../../../providers/EditDepth/index.js';
@@ -27,11 +27,11 @@ export function EditForm({
27
27
  submitted
28
28
  }) {
29
29
  const {
30
+ action,
30
31
  AfterDocument,
31
32
  AfterFields,
32
33
  BeforeDocument,
33
34
  BeforeFields,
34
- action,
35
35
  collectionSlug: docSlug,
36
36
  docPermissions,
37
37
  getDocPreferences,
@@ -162,14 +162,18 @@ function ReportAllErrors() {
162
162
  } = useFormsManager();
163
163
  const errorCountRef = React.useRef(0);
164
164
  const reportFormErrorCount = React.useCallback(errorCount => {
165
- if (errorCount === errorCountRef.current) return;
165
+ if (errorCount === errorCountRef.current) {
166
+ return;
167
+ }
166
168
  setFormTotalErrorCount({
167
169
  errorCount,
168
170
  index: activeIndex
169
171
  });
170
172
  errorCountRef.current = errorCount;
171
173
  }, [activeIndex, setFormTotalErrorCount]);
172
- if (!docConfig) return null;
174
+ if (!docConfig) {
175
+ return null;
176
+ }
173
177
  return /*#__PURE__*/_jsx(WatchChildErrors, {
174
178
  fields: docConfig.fields,
175
179
  path: "",