@payloadcms/ui 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f1f97ff

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +5 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -1
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +1 -1
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +53 -28
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/Collapsible/index.d.ts +1 -1
  12. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  13. package/dist/elements/Collapsible/index.js +1 -1
  14. package/dist/elements/Collapsible/index.js.map +1 -1
  15. package/dist/elements/DatePicker/index.scss +3 -1
  16. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  17. package/dist/elements/DeleteDocument/index.js +7 -3
  18. package/dist/elements/DeleteDocument/index.js.map +1 -1
  19. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  20. package/dist/elements/DeleteMany/index.js +4 -2
  21. package/dist/elements/DeleteMany/index.js.map +1 -1
  22. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentControls/index.js +5 -1
  24. package/dist/elements/DocumentControls/index.js.map +1 -1
  25. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  26. package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
  27. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  28. package/dist/elements/DocumentFields/index.d.ts +1 -2
  29. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  30. package/dist/elements/DocumentFields/index.js +46 -48
  31. package/dist/elements/DocumentFields/index.js.map +1 -1
  32. package/dist/elements/Drawer/index.d.ts.map +1 -1
  33. package/dist/elements/Drawer/index.js +3 -0
  34. package/dist/elements/Drawer/index.js.map +1 -1
  35. package/dist/elements/Drawer/index.scss +2 -1
  36. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  37. package/dist/elements/DuplicateDocument/index.js +10 -6
  38. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  39. package/dist/elements/EditMany/index.d.ts +1 -2
  40. package/dist/elements/EditMany/index.d.ts.map +1 -1
  41. package/dist/elements/EditMany/index.js.map +1 -1
  42. package/dist/elements/EditUpload/index.d.ts +3 -6
  43. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  44. package/dist/elements/EditUpload/index.js +20 -25
  45. package/dist/elements/EditUpload/index.js.map +1 -1
  46. package/dist/elements/FieldSelect/index.d.ts +1 -2
  47. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  48. package/dist/elements/FieldSelect/index.js.map +1 -1
  49. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  50. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  51. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  52. package/dist/elements/ListControls/index.d.ts +1 -2
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +38 -3
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/Localizer/index.d.ts.map +1 -1
  57. package/dist/elements/Localizer/index.js +6 -13
  58. package/dist/elements/Localizer/index.js.map +1 -1
  59. package/dist/elements/Logout/index.d.ts.map +1 -1
  60. package/dist/elements/Logout/index.js +6 -3
  61. package/dist/elements/Logout/index.js.map +1 -1
  62. package/dist/elements/SearchFilter/index.d.ts +5 -3
  63. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  64. package/dist/elements/SearchFilter/index.js +14 -53
  65. package/dist/elements/SearchFilter/index.js.map +1 -1
  66. package/dist/elements/SortColumn/index.d.ts +2 -2
  67. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  68. package/dist/elements/SortColumn/index.js +4 -4
  69. package/dist/elements/SortColumn/index.js.map +1 -1
  70. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  71. package/dist/elements/StayLoggedIn/index.js +6 -2
  72. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  73. package/dist/elements/StepNav/types.d.ts +2 -2
  74. package/dist/elements/StepNav/types.d.ts.map +1 -1
  75. package/dist/elements/StepNav/types.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  77. package/dist/elements/Table/DefaultCell/index.js +5 -1
  78. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  79. package/dist/elements/Table/index.d.ts +1 -2
  80. package/dist/elements/Table/index.d.ts.map +1 -1
  81. package/dist/elements/Table/index.js.map +1 -1
  82. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  83. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  84. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  85. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  86. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  87. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  88. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  89. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  90. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  91. package/dist/elements/Upload/index.d.ts.map +1 -1
  92. package/dist/elements/Upload/index.js +13 -28
  93. package/dist/elements/Upload/index.js.map +1 -1
  94. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  95. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -5
  96. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  97. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  98. package/dist/elements/WhereBuilder/Condition/index.js +4 -2
  99. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  100. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  101. package/dist/elements/WhereBuilder/index.js +7 -4
  102. package/dist/elements/WhereBuilder/index.js.map +1 -1
  103. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
  104. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  105. package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
  106. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  107. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  108. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  109. package/dist/elements/WhereBuilder/types.js.map +1 -1
  110. package/dist/elements/withMergedProps/index.js +8 -2
  111. package/dist/elements/withMergedProps/index.js.map +1 -1
  112. package/dist/exports/client/index.d.ts +6 -7
  113. package/dist/exports/client/index.d.ts.map +1 -1
  114. package/dist/exports/client/index.js +19 -18
  115. package/dist/exports/client/index.js.map +4 -4
  116. package/dist/exports/shared/index.d.ts +1 -0
  117. package/dist/exports/shared/index.d.ts.map +1 -1
  118. package/dist/exports/shared/index.js +2 -2
  119. package/dist/exports/shared/index.js.map +4 -4
  120. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  121. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  122. package/dist/fields/Array/ArrayRow.js.map +1 -1
  123. package/dist/fields/Array/index.d.ts +2 -15
  124. package/dist/fields/Array/index.d.ts.map +1 -1
  125. package/dist/fields/Array/index.js +25 -8
  126. package/dist/fields/Array/index.js.map +1 -1
  127. package/dist/fields/Blocks/BlockRow.d.ts +2 -3
  128. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  129. package/dist/fields/Blocks/BlockRow.js +5 -1
  130. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  131. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  132. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  133. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  134. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  135. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  136. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  137. package/dist/fields/Blocks/RowActions.js +1 -1
  138. package/dist/fields/Blocks/RowActions.js.map +1 -1
  139. package/dist/fields/Blocks/index.d.ts +1 -14
  140. package/dist/fields/Blocks/index.d.ts.map +1 -1
  141. package/dist/fields/Blocks/index.js +22 -9
  142. package/dist/fields/Blocks/index.js.map +1 -1
  143. package/dist/fields/Checkbox/Input.d.ts +1 -1
  144. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  145. package/dist/fields/Checkbox/Input.js.map +1 -1
  146. package/dist/fields/Checkbox/index.d.ts +1 -1
  147. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  148. package/dist/fields/Checkbox/index.js +2 -2
  149. package/dist/fields/Checkbox/index.js.map +1 -1
  150. package/dist/fields/Code/index.d.ts +1 -9
  151. package/dist/fields/Code/index.d.ts.map +1 -1
  152. package/dist/fields/Code/index.js +2 -2
  153. package/dist/fields/Code/index.js.map +1 -1
  154. package/dist/fields/Collapsible/index.d.ts +1 -7
  155. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  156. package/dist/fields/Collapsible/index.js +2 -2
  157. package/dist/fields/Collapsible/index.js.map +1 -1
  158. package/dist/fields/DateTime/index.d.ts +1 -9
  159. package/dist/fields/DateTime/index.d.ts.map +1 -1
  160. package/dist/fields/DateTime/index.js +2 -2
  161. package/dist/fields/DateTime/index.js.map +1 -1
  162. package/dist/fields/Email/index.d.ts +1 -9
  163. package/dist/fields/Email/index.d.ts.map +1 -1
  164. package/dist/fields/Email/index.js +2 -2
  165. package/dist/fields/Email/index.js.map +1 -1
  166. package/dist/fields/FieldDescription/index.d.ts +2 -2
  167. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  168. package/dist/fields/FieldDescription/index.js.map +1 -1
  169. package/dist/fields/FieldError/index.d.ts +2 -2
  170. package/dist/fields/FieldError/index.d.ts.map +1 -1
  171. package/dist/fields/FieldError/index.js.map +1 -1
  172. package/dist/fields/FieldLabel/index.d.ts +2 -2
  173. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  174. package/dist/fields/FieldLabel/index.js.map +1 -1
  175. package/dist/fields/Group/index.d.ts +2 -10
  176. package/dist/fields/Group/index.d.ts.map +1 -1
  177. package/dist/fields/Group/index.js +2 -2
  178. package/dist/fields/Group/index.js.map +1 -1
  179. package/dist/fields/Hidden/index.d.ts +2 -9
  180. package/dist/fields/Hidden/index.d.ts.map +1 -1
  181. package/dist/fields/Hidden/index.js +2 -2
  182. package/dist/fields/Hidden/index.js.map +1 -1
  183. package/dist/fields/JSON/index.d.ts +1 -9
  184. package/dist/fields/JSON/index.d.ts.map +1 -1
  185. package/dist/fields/JSON/index.js +2 -2
  186. package/dist/fields/JSON/index.js.map +1 -1
  187. package/dist/fields/Number/index.d.ts +1 -14
  188. package/dist/fields/Number/index.d.ts.map +1 -1
  189. package/dist/fields/Number/index.js +2 -2
  190. package/dist/fields/Number/index.js.map +1 -1
  191. package/dist/fields/Password/index.d.ts +1 -2
  192. package/dist/fields/Password/index.d.ts.map +1 -1
  193. package/dist/fields/Password/index.js +2 -2
  194. package/dist/fields/Password/index.js.map +1 -1
  195. package/dist/fields/Point/index.d.ts +2 -9
  196. package/dist/fields/Point/index.d.ts.map +1 -1
  197. package/dist/fields/Point/index.js +2 -2
  198. package/dist/fields/Point/index.js.map +1 -1
  199. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  200. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  201. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  202. package/dist/fields/RadioGroup/index.d.ts +1 -12
  203. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  204. package/dist/fields/RadioGroup/index.js +2 -2
  205. package/dist/fields/RadioGroup/index.js.map +1 -1
  206. package/dist/fields/Relationship/index.d.ts +1 -2
  207. package/dist/fields/Relationship/index.d.ts.map +1 -1
  208. package/dist/fields/Relationship/index.js +2 -2
  209. package/dist/fields/Relationship/index.js.map +1 -1
  210. package/dist/fields/Relationship/types.d.ts +1 -11
  211. package/dist/fields/Relationship/types.d.ts.map +1 -1
  212. package/dist/fields/Relationship/types.js.map +1 -1
  213. package/dist/fields/RichText/index.d.ts +2 -8
  214. package/dist/fields/RichText/index.d.ts.map +1 -1
  215. package/dist/fields/RichText/index.js.map +1 -1
  216. package/dist/fields/Row/index.d.ts +1 -2
  217. package/dist/fields/Row/index.d.ts.map +1 -1
  218. package/dist/fields/Row/index.js +2 -2
  219. package/dist/fields/Row/index.js.map +1 -1
  220. package/dist/fields/Row/index.scss +1 -5
  221. package/dist/fields/Select/Input.d.ts +1 -2
  222. package/dist/fields/Select/Input.d.ts.map +1 -1
  223. package/dist/fields/Select/Input.js.map +1 -1
  224. package/dist/fields/Select/index.d.ts +1 -13
  225. package/dist/fields/Select/index.d.ts.map +1 -1
  226. package/dist/fields/Select/index.js +2 -2
  227. package/dist/fields/Select/index.js.map +1 -1
  228. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  229. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  230. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  231. package/dist/fields/Tabs/index.d.ts +1 -9
  232. package/dist/fields/Tabs/index.d.ts.map +1 -1
  233. package/dist/fields/Tabs/index.js +24 -24
  234. package/dist/fields/Tabs/index.js.map +1 -1
  235. package/dist/fields/Text/index.d.ts +3 -2
  236. package/dist/fields/Text/index.d.ts.map +1 -1
  237. package/dist/fields/Text/index.js +2 -2
  238. package/dist/fields/Text/index.js.map +1 -1
  239. package/dist/fields/Text/types.d.ts +1 -15
  240. package/dist/fields/Text/types.d.ts.map +1 -1
  241. package/dist/fields/Text/types.js.map +1 -1
  242. package/dist/fields/Textarea/index.d.ts +3 -2
  243. package/dist/fields/Textarea/index.d.ts.map +1 -1
  244. package/dist/fields/Textarea/index.js +2 -2
  245. package/dist/fields/Textarea/index.js.map +1 -1
  246. package/dist/fields/Textarea/types.d.ts +1 -11
  247. package/dist/fields/Textarea/types.d.ts.map +1 -1
  248. package/dist/fields/Textarea/types.js.map +1 -1
  249. package/dist/fields/Upload/Input.d.ts +5 -2
  250. package/dist/fields/Upload/Input.d.ts.map +1 -1
  251. package/dist/fields/Upload/Input.js +2 -2
  252. package/dist/fields/Upload/Input.js.map +1 -1
  253. package/dist/fields/Upload/index.d.ts +1 -1
  254. package/dist/fields/Upload/index.d.ts.map +1 -1
  255. package/dist/fields/Upload/index.js +20 -5
  256. package/dist/fields/Upload/index.js.map +1 -1
  257. package/dist/fields/shared/index.d.ts +1 -25
  258. package/dist/fields/shared/index.d.ts.map +1 -1
  259. package/dist/fields/shared/index.js.map +1 -1
  260. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  261. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  262. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  263. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  264. package/dist/forms/Form/fieldReducer.js +11 -38
  265. package/dist/forms/Form/fieldReducer.js.map +1 -1
  266. package/dist/forms/Form/index.d.ts.map +1 -1
  267. package/dist/forms/Form/index.js +5 -15
  268. package/dist/forms/Form/index.js.map +1 -1
  269. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  270. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  271. package/dist/forms/Form/rowHelpers.js +24 -0
  272. package/dist/forms/Form/rowHelpers.js.map +1 -0
  273. package/dist/forms/Form/types.d.ts +3 -10
  274. package/dist/forms/Form/types.d.ts.map +1 -1
  275. package/dist/forms/Form/types.js.map +1 -1
  276. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  277. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  278. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  279. package/dist/forms/RenderFields/types.d.ts +1 -2
  280. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  281. package/dist/forms/RenderFields/types.js.map +1 -1
  282. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  283. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  284. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  285. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  286. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  287. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  288. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  289. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +39 -18
  290. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  291. package/dist/graphics/Account/index.d.ts.map +1 -1
  292. package/dist/graphics/Account/index.js +5 -1
  293. package/dist/graphics/Account/index.js.map +1 -1
  294. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  295. package/dist/hooks/usePayloadAPI.js +5 -1
  296. package/dist/hooks/usePayloadAPI.js.map +1 -1
  297. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  298. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  299. package/dist/hooks/useUseAsTitle.js.map +1 -1
  300. package/dist/providers/Auth/index.d.ts +1 -1
  301. package/dist/providers/Auth/index.d.ts.map +1 -1
  302. package/dist/providers/Auth/index.js +47 -76
  303. package/dist/providers/Auth/index.js.map +1 -1
  304. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +1 -2
  305. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  306. package/dist/providers/ComponentMap/buildComponentMap/fields.js +128 -95
  307. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  308. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -55
  309. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  310. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  311. package/dist/providers/ComponentMap/index.d.ts +2 -1
  312. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  313. package/dist/providers/ComponentMap/index.js.map +1 -1
  314. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  315. package/dist/providers/DocumentInfo/index.js +58 -16
  316. package/dist/providers/DocumentInfo/index.js.map +1 -1
  317. package/dist/providers/ListQuery/index.d.ts +16 -9
  318. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  319. package/dist/providers/ListQuery/index.js +8 -6
  320. package/dist/providers/ListQuery/index.js.map +1 -1
  321. package/dist/providers/UploadEdits/index.d.ts +12 -0
  322. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  323. package/dist/providers/UploadEdits/index.js +30 -0
  324. package/dist/providers/UploadEdits/index.js.map +1 -0
  325. package/dist/styles.css +1 -1
  326. package/dist/utilities/buildFormState.d.ts.map +1 -1
  327. package/dist/utilities/buildFormState.js +3 -2
  328. package/dist/utilities/buildFormState.js.map +1 -1
  329. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  330. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  331. package/dist/utilities/flattenFieldMap.js.map +1 -1
  332. package/dist/utilities/formatAdminURL.d.ts +8 -0
  333. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  334. package/dist/utilities/formatAdminURL.js +15 -0
  335. package/dist/utilities/formatAdminURL.js.map +1 -0
  336. package/package.json +4 -4
  337. package/dist/fields/Checkbox/types.d.ts +0 -12
  338. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  339. package/dist/fields/Checkbox/types.js +0 -3
  340. package/dist/fields/Checkbox/types.js.map +0 -1
  341. package/dist/fields/Row/types.d.ts +0 -12
  342. package/dist/fields/Row/types.d.ts.map +0 -1
  343. package/dist/fields/Row/types.js +0 -3
  344. package/dist/fields/Row/types.js.map +0 -1
  345. package/dist/fields/Upload/types.d.ts +0 -10
  346. package/dist/fields/Upload/types.d.ts.map +0 -1
  347. package/dist/fields/Upload/types.js +0 -3
  348. package/dist/fields/Upload/types.js.map +0 -1
  349. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  350. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  351. package/dist/providers/FormQueryParams/index.js +0 -53
  352. package/dist/providers/FormQueryParams/index.js.map +0 -1
  353. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  354. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  355. package/dist/providers/FormQueryParams/types.js +0 -3
  356. package/dist/providers/FormQueryParams/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAY1D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAoF7B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAa1D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAoF7B,CAAA"}
@@ -6,6 +6,7 @@ import { Account } from '../../graphics/Account/index.js';
6
6
  import { useActions } from '../../providers/Actions/index.js';
7
7
  import { useConfig } from '../../providers/Config/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
9
10
  import { Hamburger } from '../Hamburger/index.js';
10
11
  import { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js';
11
12
  import { Localizer } from '../Localizer/index.js';
@@ -91,7 +92,10 @@ export const AppHeader = ()=>{
91
92
  /*#__PURE__*/ _jsx(LinkElement, {
92
93
  "aria-label": t('authentication:account'),
93
94
  className: `${baseClass}__account`,
94
- href: `${adminRoute}${accountRoute}`,
95
+ href: formatAdminURL({
96
+ adminRoute,
97
+ path: accountRoute
98
+ }),
95
99
  tabIndex: 0,
96
100
  children: /*#__PURE__*/ _jsx(Account, {})
97
101
  })
@@ -1 +1 @@
1
- {"version":3,"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 { useTranslation } from '../../providers/Translation/index.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 admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\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 {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={`${adminRoute}${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"],"names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","header","className","filter","Boolean","join","div","tabIndex","ref","Array","isArray","map","Action","i","length","ariaLabel","aria-label","href"],"mappings":"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"}
1
+ {"version":3,"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 { 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 admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\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 {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"],"names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","formatAdminURL","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","header","className","filter","Boolean","join","div","tabIndex","ref","Array","isArray","map","Action","i","length","ariaLabel","aria-label","href","path"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
3
  export type Props = {
4
- addRow: (current: number, blockType?: string) => void;
4
+ addRow: (current: number, blockType?: string) => Promise<void> | void;
5
5
  duplicateRow: (current: number) => void;
6
6
  hasMaxRows: boolean;
7
7
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
@@ -56,7 +56,7 @@ export const ArrayAction = ({ addRow, duplicateRow, hasMaxRows, index, isSortabl
56
56
  /*#__PURE__*/ _jsxs(PopupList.Button, {
57
57
  className: `${baseClass}__action ${baseClass}__add`,
58
58
  onClick: ()=>{
59
- addRow(index + 1);
59
+ void addRow(index + 1);
60
60
  close();
61
61
  },
62
62
  children: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonClassName={`${baseClass}__button`}\n className={baseClass}\n horizontalAlign=\"center\"\n render={({ close }) => {\n return (\n <PopupList.ButtonGroup buttonSize=\"small\">\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon direction=\"up\" />\n </div>\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon />\n </div>\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n onClick={() => {\n addRow(index + 1)\n close()\n }}\n >\n <PlusIcon />\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n <CopyIcon />\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n <XIcon />\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }}\n size=\"medium\"\n />\n )\n}\n"],"names":["React","ChevronIcon","CopyIcon","MoreIcon","PlusIcon","XIcon","useTranslation","Popup","PopupList","baseClass","ArrayAction","addRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","removeRow","rowCount","t","button","buttonClassName","className","horizontalAlign","render","close","ButtonGroup","buttonSize","Button","onClick","div","direction","Fragment","size"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,SAAS,QAAQ,oBAAmB;AACpD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAalB,OAAO,MAAMC,cAA+B,CAAC,EAC3CC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACT;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGb;IAEd,qBACE,KAACC;QACCa,sBAAQ,KAACjB;QACTkB,iBAAiB,CAAC,EAAEZ,UAAU,QAAQ,CAAC;QACvCa,WAAWb;QACXc,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE;YAChB,qBACE,MAACjB,UAAUkB,WAAW;gBAACC,YAAW;;oBAC/BZ,cAAcD,UAAU,mBACvB,MAACN,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,SAAS,CAAC;wBACvDoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;oCAAY8B,WAAU;;;4BAExBZ,EAAE;;;oBAGNJ,cAAcD,QAAQI,WAAW,mBAChC,MAACV,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,QAAQ,CAAC;wBACjCoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;;4BAEFkB,EAAE;;;oBAGN,CAACN,4BACA,MAACb,MAAMgC,QAAQ;;0CACb,MAACxB,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,KAAK,CAAC;gCACnDoB,SAAS;oCACPlB,OAAOG,QAAQ;oCACfW;gCACF;;kDAEA,KAACrB;oCACAe,EAAE;;;0CAEL,MAACX,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,WAAW,CAAC;gCACzDoB,SAAS;oCACPjB,aAAaE;oCACbW;gCACF;;kDAEA,KAACvB;oCACAiB,EAAE;;;;;kCAIT,MAACX,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,QAAQ,CAAC;wBACtDoB,SAAS;4BACPZ,UAAUH;4BACVW;wBACF;;0CAEA,KAACpB;4BACAc,EAAE;;;;;QAIX;QACAc,MAAK;;AAGX,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => Promise<void> | void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonClassName={`${baseClass}__button`}\n className={baseClass}\n horizontalAlign=\"center\"\n render={({ close }) => {\n return (\n <PopupList.ButtonGroup buttonSize=\"small\">\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon direction=\"up\" />\n </div>\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <ChevronIcon />\n </div>\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n onClick={() => {\n void addRow(index + 1)\n close()\n }}\n >\n <PlusIcon />\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n <CopyIcon />\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n <XIcon />\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }}\n size=\"medium\"\n />\n )\n}\n"],"names":["React","ChevronIcon","CopyIcon","MoreIcon","PlusIcon","XIcon","useTranslation","Popup","PopupList","baseClass","ArrayAction","addRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","removeRow","rowCount","t","button","buttonClassName","className","horizontalAlign","render","close","ButtonGroup","buttonSize","Button","onClick","div","direction","Fragment","size"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,SAAS,QAAQ,oBAAmB;AACpD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAalB,OAAO,MAAMC,cAA+B,CAAC,EAC3CC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACT;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGb;IAEd,qBACE,KAACC;QACCa,sBAAQ,KAACjB;QACTkB,iBAAiB,CAAC,EAAEZ,UAAU,QAAQ,CAAC;QACvCa,WAAWb;QACXc,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE;YAChB,qBACE,MAACjB,UAAUkB,WAAW;gBAACC,YAAW;;oBAC/BZ,cAAcD,UAAU,mBACvB,MAACN,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,SAAS,CAAC;wBACvDoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;oCAAY8B,WAAU;;;4BAExBZ,EAAE;;;oBAGNJ,cAAcD,QAAQI,WAAW,mBAChC,MAACV,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,QAAQ,CAAC;wBACjCoB,SAAS;4BACPb,QAAQF,OAAOA,QAAQ;4BACvBW;wBACF;;0CAEA,KAACK;gCAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;0CAC5C,cAAA,KAACR;;4BAEFkB,EAAE;;;oBAGN,CAACN,4BACA,MAACb,MAAMgC,QAAQ;;0CACb,MAACxB,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,KAAK,CAAC;gCACnDoB,SAAS;oCACP,KAAKlB,OAAOG,QAAQ;oCACpBW;gCACF;;kDAEA,KAACrB;oCACAe,EAAE;;;0CAEL,MAACX,UAAUoB,MAAM;gCACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,WAAW,CAAC;gCACzDoB,SAAS;oCACPjB,aAAaE;oCACbW;gCACF;;kDAEA,KAACvB;oCACAiB,EAAE;;;;;kCAIT,MAACX,UAAUoB,MAAM;wBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,QAAQ,CAAC;wBACtDoB,SAAS;4BACPZ,UAAUH;4BACVW;wBACF;;0CAEA,KAACpB;4BACAc,EAAE;;;;;QAIX;QACAc,MAAK;;AAGX,EAAC"}
@@ -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;AAIrB,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,CAkNpC,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,CA2OpC,CAAA"}
@@ -14,11 +14,13 @@ import { formatTimeToNow } from '../../utilities/formatDate.js';
14
14
  import { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js';
15
15
  import './index.scss';
16
16
  const baseClass = 'autosave';
17
+ // The minimum time the saving state should be shown
18
+ const minimumAnimationTime = 1000;
17
19
  export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdatedAt })=>{
18
20
  const { routes: { api }, serverURL } = useConfig();
19
21
  const { docConfig, getVersions, versions } = useDocumentInfo();
20
22
  const { reportUpdate } = useDocumentEvents();
21
- const { dispatchFields, setSubmitted } = useForm();
23
+ const { dispatchFields, setModified, setSubmitted } = useForm();
22
24
  const submitted = useFormSubmitted();
23
25
  const versionsConfig = docConfig?.versions;
24
26
  const [fields] = useAllFormFields();
@@ -51,8 +53,12 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
51
53
  useEffect(()=>{
52
54
  const abortController = new AbortController();
53
55
  let autosaveTimeout = undefined;
56
+ // We need to log the time in order to figure out if we need to trigger the state off later
57
+ let startTimestamp = undefined;
58
+ let endTimestamp = undefined;
54
59
  const autosave = ()=>{
55
60
  if (modified) {
61
+ startTimestamp = new Date().getTime();
56
62
  setSaving(true);
57
63
  let url;
58
64
  let method;
@@ -68,36 +74,40 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
68
74
  method = 'POST';
69
75
  }
70
76
  if (url) {
71
- autosaveTimeout = setTimeout(async ()=>{
72
- if (modifiedRef.current) {
73
- const { data, valid } = {
74
- ...reduceFieldsToValuesWithValidation(fieldRef.current, true)
75
- };
76
- data._status = 'draft';
77
- const skipSubmission = submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate;
78
- if (!skipSubmission) {
79
- const res = await fetch(url, {
80
- body: JSON.stringify(data),
81
- credentials: 'include',
82
- headers: {
83
- 'Accept-Language': i18n.language,
84
- 'Content-Type': 'application/json'
85
- },
86
- method,
87
- signal: abortController.signal
88
- });
77
+ if (modifiedRef.current) {
78
+ const { data, valid } = {
79
+ ...reduceFieldsToValuesWithValidation(fieldRef.current, true)
80
+ };
81
+ data._status = 'draft';
82
+ const skipSubmission = submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate;
83
+ if (!skipSubmission) {
84
+ void fetch(url, {
85
+ body: JSON.stringify(data),
86
+ credentials: 'include',
87
+ headers: {
88
+ 'Accept-Language': i18n.language,
89
+ 'Content-Type': 'application/json'
90
+ },
91
+ method,
92
+ signal: abortController.signal
93
+ }).then((res)=>{
94
+ const newDate = new Date();
95
+ // We need to log the time in order to figure out if we need to trigger the state off later
96
+ endTimestamp = newDate.getTime();
89
97
  if (res.status === 200) {
90
- const newDate = new Date();
91
98
  setLastSaved(newDate.getTime());
92
99
  reportUpdate({
93
100
  id,
94
101
  entitySlug,
95
102
  updatedAt: newDate.toISOString()
96
103
  });
104
+ setModified(false);
97
105
  void getVersions();
106
+ } else {
107
+ return res.json();
98
108
  }
99
- if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && res.status === 400) {
100
- const json = await res.json();
109
+ }).then((json)=>{
110
+ if (versionsConfig?.drafts && versionsConfig?.drafts?.validate && json.errors) {
101
111
  if (Array.isArray(json.errors)) {
102
112
  const [fieldErrors, nonFieldErrors] = json.errors.reduce(([fieldErrs, nonFieldErrs], err)=>{
103
113
  const newFieldErrs = [];
@@ -140,17 +150,31 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
140
150
  return;
141
151
  }
142
152
  }
143
- }
153
+ }).then(()=>{
154
+ // If request was faster than minimum animation time, animate the difference
155
+ if (endTimestamp - startTimestamp < minimumAnimationTime) {
156
+ autosaveTimeout = setTimeout(()=>{
157
+ setSaving(false);
158
+ }, minimumAnimationTime - (endTimestamp - startTimestamp));
159
+ } else {
160
+ setSaving(false);
161
+ }
162
+ });
144
163
  }
145
- setSaving(false);
146
- }, 1000);
164
+ }
147
165
  }
148
166
  }
149
167
  };
150
168
  void autosave();
151
169
  return ()=>{
152
- clearTimeout(autosaveTimeout);
153
- if (abortController.signal) abortController.abort();
170
+ if (autosaveTimeout) clearTimeout(autosaveTimeout);
171
+ if (abortController.signal) {
172
+ try {
173
+ abortController.abort();
174
+ } catch (error) {
175
+ // swallow error
176
+ }
177
+ }
154
178
  setSaving(false);
155
179
  };
156
180
  }, [
@@ -166,6 +190,7 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
166
190
  reportUpdate,
167
191
  serverURL,
168
192
  setSubmitted,
193
+ setModified,
169
194
  versionsConfig?.drafts,
170
195
  debouncedFields,
171
196
  submitted
@@ -184,7 +209,7 @@ export const Autosave = ({ id, collection, global: globalDoc, publishedDocUpdate
184
209
  className: baseClass,
185
210
  children: [
186
211
  saving && t('general:saving'),
187
- !saving && lastSaved && /*#__PURE__*/ _jsx(React.Fragment, {
212
+ !saving && Boolean(lastSaved) && /*#__PURE__*/ _jsx(React.Fragment, {
188
213
  children: t('version:lastSavedAgo', {
189
214
  distance: formatTimeToNow({
190
215
  date: lastSaved,
@@ -1 +1 @@
1
- {"version":3,"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\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 routes: { api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, 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\n const autosave = () => {\n if (modified) {\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 autosaveTimeout = setTimeout(async () => {\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 const res = await 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\n if (res.status === 200) {\n const newDate = new Date()\n setLastSaved(newDate.getTime())\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n void getVersions()\n }\n\n if (\n versionsConfig?.drafts &&\n versionsConfig?.drafts?.validate &&\n res.status === 400\n ) {\n const json = await res.json()\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 }\n\n setSaving(false)\n }, 1000)\n }\n }\n }\n\n void autosave()\n\n return () => {\n clearTimeout(autosaveTimeout)\n if (abortController.signal) abortController.abort()\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 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 && lastSaved && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","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","url","method","entitySlug","slug","setTimeout","data","valid","_status","skipSubmission","validate","res","fetch","body","JSON","stringify","credentials","headers","language","signal","status","newDate","Date","getTime","updatedAt","toISOString","json","Array","isArray","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","clearTimeout","abort","docs","div","className","Fragment","distance","date"],"mappings":"AAAA;;AAIA,SAASA,eAAe,QAAQ,iBAAgB;AAChD,OAAOC,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAC1D,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SACEC,gBAAgB,EAChBC,OAAO,EACPC,eAAe,EACfC,gBAAgB,QACX,8BAA6B;AACpC,SAASC,WAAW,QAAQ,6BAA4B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,iBAAiB,QAAQ,0CAAyC;AAC3E,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,kCAAkC,QAAQ,wDAAuD;AAC1G,OAAO,eAAc;AAErB,MAAMC,YAAY;AASlB,OAAO,MAAMC,WAA4B,CAAC,EACxCC,EAAE,EACFC,UAAU,EACVC,QAAQC,SAAS,EACjBC,qBAAqB,EACtB;IACC,MAAM,EACJC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGhB;IACJ,MAAM,EAAEiB,SAAS,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAGjB;IAC7C,MAAM,EAAEkB,YAAY,EAAE,GAAGnB;IACzB,MAAM,EAAEoB,cAAc,EAAEC,YAAY,EAAE,GAAG1B;IACzC,MAAM2B,YAAYzB;IAClB,MAAM0B,iBAAiBP,WAAWE;IAElC,MAAM,CAACM,OAAO,GAAG9B;IACjB,MAAM+B,eAAe7B;IACrB,MAAM,EAAE8B,MAAMC,MAAM,EAAE,GAAGzB;IACzB,MAAM,EAAE0B,IAAI,EAAEC,CAAC,EAAE,GAAG1B;IAEpB,IAAI2B,WAAW1C,gBAAgB2C,gBAAgB;IAC/C,IAAIR,eAAeS,MAAM,IAAIT,eAAeS,MAAM,CAACC,QAAQ,EACzDH,WAAWP,eAAeS,MAAM,CAACC,QAAQ,CAACH,QAAQ;IAEpD,MAAM,CAACI,QAAQC,UAAU,GAAG3C,SAAS;IACrC,MAAM,CAAC4C,WAAWC,aAAa,GAAG7C;IAClC,MAAM8C,kBAAkBxC,YAAY0B,QAAQM;IAC5C,MAAMS,WAAWzC,YAAY2B,cAAcK;IAC3C,MAAMU,WAAWjD,OAAOiC;IACxB,MAAMiB,cAAclD,OAAOgD;IAC3B,MAAMG,YAAYnD,OAAOoC;IACzB,MAAMgB,eAAepD,OAAO+C;IAE5BK,aAAaC,OAAO,GAAGN;IAEvB,2CAA2C;IAC3C,8CAA8C;IAC9C,iCAAiC;IACjCE,SAASI,OAAO,GAAGpB;IAEnB,6CAA6C;IAC7C,+CAA+C;IAC/C,6BAA6B;IAC7BiB,YAAYG,OAAO,GAAGL;IAEtB,2CAA2C;IAC3C,8CAA8C;IAC9CG,UAAUE,OAAO,GAAGjB;IAEpB,yCAAyC;IACzCrC,UAAU;QACR,MAAMuD,kBAAkB,IAAIC;QAC5B,IAAIC,kBAAkBC;QAEtB,MAAMf,WAAW;YACf,IAAIM,UAAU;gBACZJ,UAAU;gBAEV,IAAIc;gBACJ,IAAIC;gBACJ,IAAIC;gBAEJ,IAAI1C,cAAcD,IAAI;oBACpB2C,aAAa1C,WAAW2C,IAAI;oBAC5BH,MAAM,CAAC,EAAElC,UAAU,EAAED,IAAI,CAAC,EAAEqC,WAAW,CAAC,EAAE3C,GAAG,iCAAiC,EAAEkC,UAAUE,OAAO,CAAC,CAAC;oBACnGM,SAAS;gBACX;gBAEA,IAAIvC,WAAW;oBACbwC,aAAaxC,UAAUyC,IAAI;oBAC3BH,MAAM,CAAC,EAAElC,UAAU,EAAED,IAAI,SAAS,EAAEqC,WAAW,iCAAiC,EAAET,UAAUE,OAAO,CAAC,CAAC;oBACrGM,SAAS;gBACX;gBAEA,IAAID,KAAK;oBACPF,kBAAkBM,WAAW;wBAC3B,IAAIZ,YAAYG,OAAO,EAAE;4BACvB,MAAM,EAAEU,IAAI,EAAEC,KAAK,EAAE,GAAG;gCACtB,GAAGlD,mCAAmCmC,SAASI,OAAO,EAAE,KAAK;4BAC/D;4BACAU,KAAKE,OAAO,GAAG;4BACf,MAAMC,iBACJnC,aAAa,CAACiC,SAAShC,gBAAgBS,UAAUT,gBAAgBS,QAAQ0B;4BAE3E,IAAI,CAACD,gBAAgB;gCACnB,MAAME,MAAM,MAAMC,MAAMX,KAAK;oCAC3BY,MAAMC,KAAKC,SAAS,CAACT;oCACrBU,aAAa;oCACbC,SAAS;wCACP,mBAAmBrC,KAAKsC,QAAQ;wCAChC,gBAAgB;oCAClB;oCACAhB;oCACAiB,QAAQtB,gBAAgBsB,MAAM;gCAChC;gCAEA,IAAIR,IAAIS,MAAM,KAAK,KAAK;oCACtB,MAAMC,UAAU,IAAIC;oCACpBjC,aAAagC,QAAQE,OAAO;oCAC5BpD,aAAa;wCACXX;wCACA2C;wCACAqB,WAAWH,QAAQI,WAAW;oCAChC;oCACA,KAAKxD;gCACP;gCAEA,IACEM,gBAAgBS,UAChBT,gBAAgBS,QAAQ0B,YACxBC,IAAIS,MAAM,KAAK,KACf;oCACA,MAAMM,OAAO,MAAMf,IAAIe,IAAI;oCAC3B,IAAIC,MAAMC,OAAO,CAACF,KAAKG,MAAM,GAAG;wCAC9B,MAAM,CAACC,aAAaC,eAAe,GAAGL,KAAKG,MAAM,CAACG,MAAM,CACtD,CAAC,CAACC,WAAWC,aAAa,EAAEC;4CAC1B,MAAMC,eAAe,EAAE;4CACvB,MAAMC,kBAAkB,EAAE;4CAE1B,IAAIF,KAAKG,SAAS;gDAChBD,gBAAgBE,IAAI,CAACJ;4CACvB;4CAEA,IAAIR,MAAMC,OAAO,CAACO,KAAK7B,OAAO;gDAC5B6B,IAAI7B,IAAI,CAACkC,OAAO,CAAC,CAACC;oDAChB,IAAIA,WAAWC,OAAO;wDACpBN,aAAaG,IAAI,CAACE;oDACpB,OAAO;wDACLJ,gBAAgBE,IAAI,CAACE;oDACvB;gDACF;4CACF;4CAEA,OAAO;gDACL;uDAAIR;uDAAcG;iDAAa;gDAC/B;uDAAIF;uDAAiBG;iDAAgB;6CACtC;wCACH,GACA;4CAAC,EAAE;4CAAE,EAAE;yCAAC;wCAGVjE,eAAe;4CACbuE,MAAM;4CACNd,QAAQC;wCACV;wCAEAC,eAAeS,OAAO,CAAC,CAACL;4CACtB1F,MAAMmG,KAAK,CAACT,IAAIG,OAAO,IAAI1D,KAAKC,CAAC,CAAC;wCACpC;wCAEAR,aAAa;wCACbc,UAAU;wCACV;oCACF;gCACF;4BACF;wBACF;wBAEAA,UAAU;oBACZ,GAAG;gBACL;YACF;QACF;QAEA,KAAKF;QAEL,OAAO;YACL4D,aAAa9C;YACb,IAAIF,gBAAgBsB,MAAM,EAAEtB,gBAAgBiD,KAAK;YACjD3D,UAAU;QACZ;IACF,GAAG;QACDrB;QACAL;QACAW;QACAH;QACAN;QACAiB;QACApB;QACAsB;QACAS;QACApB;QACAJ;QACAM;QACAE,gBAAgBS;QAChBM;QACAhB;KACD;IAEDhC,UAAU;QACR,IAAI4B,UAAU6E,MAAM,CAAC,EAAE,EAAE;YACvB1D,aAAa,IAAIiC,KAAKpD,SAAS6E,IAAI,CAAC,EAAE,CAACvB,SAAS,EAAED,OAAO;QAC3D,OAAO,IAAI3D,uBAAuB;YAChCyB,aAAa,IAAIiC,KAAK1D,uBAAuB2D,OAAO;QACtD;IACF,GAAG;QAAC3D;QAAuBM;KAAS;IAEpC,qBACE,MAAC8E;QAAIC,WAAW3F;;YACb4B,UAAUL,EAAE;YACZ,CAACK,UAAUE,2BACV,KAAC/C,MAAM6G,QAAQ;0BACZrE,EAAE,wBAAwB;oBACzBsE,UAAU/F,gBAAgB;wBAAEgG,MAAMhE;wBAAWR;oBAAK;gBACpD;;;;AAKV,EAAC"}
1
+ {"version":3,"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 routes: { api },\n serverURL,\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()\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"],"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","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","div","className","Boolean","Fragment","distance","date"],"mappings":"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"}
@@ -12,7 +12,7 @@ export type Props = {
12
12
  header?: React.ReactNode;
13
13
  initCollapsed?: boolean;
14
14
  isCollapsed?: boolean;
15
- onToggle?: (collapsed: boolean) => void;
15
+ onToggle?: (collapsed: boolean) => Promise<void> | void;
16
16
  };
17
17
  export declare const Collapsible: React.FC<Props>;
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Collapsible/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAA;AAQ1F,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAA;AAE9C,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IACtC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Collapsible/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAA;AAQ1F,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAA;AAE9C,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IACtC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACxD,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
@@ -17,7 +17,7 @@ export const Collapsible = ({ actions, children, className, collapsibleStyle = '
17
17
  const { t } = useTranslation();
18
18
  const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal;
19
19
  const toggleCollapsible = React.useCallback(()=>{
20
- if (typeof onToggle === 'function') onToggle(!isCollapsed);
20
+ if (typeof onToggle === 'function') void onToggle(!isCollapsed);
21
21
  setCollapsedLocal(!isCollapsed);
22
22
  }, [
23
23
  onToggle,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') onToggle(!isCollapsed)\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {header && (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header && header}\n </div>\n )}\n <div className={`${baseClass}__actions-wrap`}>\n {actions && <div className={`${baseClass}__actions`}>{actions}</div>}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight duration={200} height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"names":["React","useState","AnimateHeightImport","AnimateHeight","default","ChevronIcon","DragHandleIcon","useTranslation","CollapsibleProvider","useCollapsible","baseClass","Collapsible","actions","children","className","collapsibleStyle","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","toggleCollapsible","useCallback","div","filter","join","toggle","onMouseEnter","onMouseLeave","attributes","listeners","button","onClick","type","span","direction","undefined","duration","height"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => Promise<void> | void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') void onToggle(!isCollapsed)\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {header && (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header && header}\n </div>\n )}\n <div className={`${baseClass}__actions-wrap`}>\n {actions && <div className={`${baseClass}__actions`}>{actions}</div>}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight duration={200} height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"names":["React","useState","AnimateHeightImport","AnimateHeight","default","ChevronIcon","DragHandleIcon","useTranslation","CollapsibleProvider","useCollapsible","baseClass","Collapsible","actions","children","className","collapsibleStyle","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","toggleCollapsible","useCallback","div","filter","join","toggle","onMouseEnter","onMouseLeave","attributes","listeners","button","onClick","type","span","direction","undefined","duration","height"],"mappings":"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"}
@@ -189,7 +189,9 @@ $cal-icon-width: 18px;
189
189
  border-right: 1px solid var(--theme-elevation-150);
190
190
  }
191
191
 
192
- &__time {
192
+ &__time,
193
+ &__time-container,
194
+ .react-datepicker__time-container .react-datepicker__time {
193
195
  background: none;
194
196
  }
195
197
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgI1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqI1C,CAAA"}
@@ -10,6 +10,7 @@ import { useConfig } from '../../providers/Config/index.js';
10
10
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { requests } from '../../utilities/api.js';
13
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
13
14
  import { Button } from '../Button/index.js';
14
15
  import { PopupList } from '../Popup/index.js';
15
16
  import { Translation } from '../Translation/index.js';
@@ -17,7 +18,7 @@ import './index.scss';
17
18
  const baseClass = 'delete-document';
18
19
  export const DeleteDocument = (props)=>{
19
20
  const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props;
20
- const { routes: { admin, api }, serverURL } = useConfig();
21
+ const { routes: { admin: adminRoute, api }, serverURL } = useConfig();
21
22
  const { setModified } = useForm();
22
23
  const [deleting, setDeleting] = useState(false);
23
24
  const { toggleModal } = useModal();
@@ -54,7 +55,10 @@ export const DeleteDocument = (props)=>{
54
55
  label: getTranslation(singularLabel, i18n),
55
56
  title
56
57
  }) || json.message);
57
- return router.push(`${admin}/collections/${collectionSlug}`);
58
+ return router.push(formatAdminURL({
59
+ adminRoute,
60
+ path: `/collections/${collectionSlug}`
61
+ }));
58
62
  }
59
63
  toggleModal(modalSlug);
60
64
  if (json.errors) {
@@ -83,7 +87,7 @@ export const DeleteDocument = (props)=>{
83
87
  i18n,
84
88
  title,
85
89
  router,
86
- admin,
90
+ adminRoute,
87
91
  addDefaultError
88
92
  ]);
89
93
  if (id) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(`${admin}/collections/${collectionSlug}`)\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n admin,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","requests","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","routes","admin","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","errors","forEach","e","Fragment","onClick","className","slug","div","h1","p","elements","children","strong","i18nKey","variables","buttonStyle","undefined","type"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n\n const {\n routes: { admin: adminRoute, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n )\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n adminRoute,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","requests","formatAdminURL","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","routes","admin","adminRoute","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","e","Fragment","onClick","className","slug","div","h1","p","elements","children","strong","i18nKey","variables","buttonStyle","undefined","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkHtC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoHtC,CAAA"}
@@ -59,7 +59,9 @@ export const DeleteMany = (props)=>{
59
59
  return null;
60
60
  }
61
61
  if (json.errors) {
62
- toast.error(json.message);
62
+ toast.error(json.message, {
63
+ description: json.errors.map((error)=>error.message).join('\n')
64
+ });
63
65
  } else {
64
66
  addDefaultError();
65
67
  }
@@ -121,7 +123,7 @@ export const DeleteMany = (props)=>{
121
123
  }),
122
124
  /*#__PURE__*/ _jsx(Button, {
123
125
  id: "confirm-delete",
124
- onClick: deleting ? undefined : handleDelete,
126
+ onClick: deleting ? undefined : ()=>void handleDelete(),
125
127
  children: deleting ? t('general:deleting') : t('general:confirm')
126
128
  })
127
129
  ]