@payloadcms/next 3.0.0-canary.3bd3027 → 3.0.0-canary.4de9e42

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 (402) hide show
  1. package/dist/config.js.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +5 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +2 -2
  14. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  16. package/dist/elements/DocumentHeader/index.js.map +1 -1
  17. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  18. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  19. package/dist/elements/Logo/index.js.map +1 -1
  20. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  21. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  22. package/dist/elements/Nav/index.client.js +10 -4
  23. package/dist/elements/Nav/index.client.js.map +1 -1
  24. package/dist/elements/Nav/index.js.map +1 -1
  25. package/dist/exports/layouts.js.map +1 -1
  26. package/dist/exports/routes.js.map +1 -1
  27. package/dist/exports/templates.js.map +1 -1
  28. package/dist/exports/utilities.js.map +1 -1
  29. package/dist/exports/views.js.map +1 -1
  30. package/dist/fetchAPI-multipart/fileFactory.js.map +1 -1
  31. package/dist/fetchAPI-multipart/handlers.js.map +1 -1
  32. package/dist/fetchAPI-multipart/index.js.map +1 -1
  33. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  34. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  35. package/dist/fetchAPI-multipart/processNested.js.map +1 -1
  36. package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -1
  37. package/dist/fetchAPI-multipart/utilities.js.map +1 -1
  38. package/dist/fetchAPI-stream-file/index.js.map +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/layouts/Root/index.d.ts.map +1 -1
  41. package/dist/layouts/Root/index.js +0 -1
  42. package/dist/layouts/Root/index.js.map +1 -1
  43. package/dist/prod/styles.css +1 -1
  44. package/dist/routes/graphql/handler.d.ts.map +1 -1
  45. package/dist/routes/graphql/handler.js +11 -12
  46. package/dist/routes/graphql/handler.js.map +1 -1
  47. package/dist/routes/graphql/index.js.map +1 -1
  48. package/dist/routes/graphql/playground.js.map +1 -1
  49. package/dist/routes/index.js.map +1 -1
  50. package/dist/routes/rest/auth/access.js.map +1 -1
  51. package/dist/routes/rest/auth/forgotPassword.d.ts.map +1 -1
  52. package/dist/routes/rest/auth/forgotPassword.js +7 -3
  53. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  54. package/dist/routes/rest/auth/init.js.map +1 -1
  55. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  56. package/dist/routes/rest/auth/login.js +9 -4
  57. package/dist/routes/rest/auth/login.js.map +1 -1
  58. package/dist/routes/rest/auth/logout.js.map +1 -1
  59. package/dist/routes/rest/auth/me.js.map +1 -1
  60. package/dist/routes/rest/auth/refresh.d.ts.map +1 -1
  61. package/dist/routes/rest/auth/refresh.js +12 -20
  62. package/dist/routes/rest/auth/refresh.js.map +1 -1
  63. package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
  64. package/dist/routes/rest/auth/registerFirstUser.js +9 -2
  65. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  66. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  67. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  68. package/dist/routes/rest/auth/unlock.js +7 -3
  69. package/dist/routes/rest/auth/unlock.js.map +1 -1
  70. package/dist/routes/rest/auth/verifyEmail.js +1 -1
  71. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  72. package/dist/routes/rest/buildFormState.d.ts +2 -2
  73. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  74. package/dist/routes/rest/buildFormState.js.map +1 -1
  75. package/dist/routes/rest/checkEndpoints.js.map +1 -1
  76. package/dist/routes/rest/collections/count.js.map +1 -1
  77. package/dist/routes/rest/collections/create.js.map +1 -1
  78. package/dist/routes/rest/collections/delete.js.map +1 -1
  79. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  80. package/dist/routes/rest/collections/docAccess.js.map +1 -1
  81. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  82. package/dist/routes/rest/collections/find.js.map +1 -1
  83. package/dist/routes/rest/collections/findByID.js.map +1 -1
  84. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  85. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  86. package/dist/routes/rest/collections/preview.js.map +1 -1
  87. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  88. package/dist/routes/rest/collections/update.js.map +1 -1
  89. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  90. package/dist/routes/rest/files/checkFileAccess.d.ts +2 -2
  91. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  92. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  93. package/dist/routes/rest/files/getFile.d.ts +2 -2
  94. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  95. package/dist/routes/rest/files/getFile.js +8 -5
  96. package/dist/routes/rest/files/getFile.js.map +1 -1
  97. package/dist/routes/rest/files/getFileTypeFallback.js.map +1 -1
  98. package/dist/routes/rest/globals/docAccess.js.map +1 -1
  99. package/dist/routes/rest/globals/findOne.js.map +1 -1
  100. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  101. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  102. package/dist/routes/rest/globals/preview.js.map +1 -1
  103. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  104. package/dist/routes/rest/globals/update.js.map +1 -1
  105. package/dist/routes/rest/index.d.ts.map +1 -1
  106. package/dist/routes/rest/index.js +88 -93
  107. package/dist/routes/rest/index.js.map +1 -1
  108. package/dist/routes/rest/og/image.js.map +1 -1
  109. package/dist/routes/rest/og/index.d.ts +2 -2
  110. package/dist/routes/rest/og/index.d.ts.map +1 -1
  111. package/dist/routes/rest/og/index.js.map +1 -1
  112. package/dist/routes/rest/routeError.d.ts +2 -2
  113. package/dist/routes/rest/routeError.d.ts.map +1 -1
  114. package/dist/routes/rest/routeError.js +3 -3
  115. package/dist/routes/rest/routeError.js.map +1 -1
  116. package/dist/routes/rest/types.d.ts +7 -7
  117. package/dist/routes/rest/types.d.ts.map +1 -1
  118. package/dist/routes/rest/types.js.map +1 -1
  119. package/dist/routes/rest/utilities/sanitizeCollectionID.js.map +1 -1
  120. package/dist/scss/colors.scss +76 -76
  121. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  122. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  123. package/dist/templates/Default/index.d.ts +2 -2
  124. package/dist/templates/Default/index.d.ts.map +1 -1
  125. package/dist/templates/Default/index.js.map +1 -1
  126. package/dist/templates/Minimal/index.js.map +1 -1
  127. package/dist/utilities/addDataAndFileToRequest.d.ts +3 -6
  128. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  129. package/dist/utilities/addDataAndFileToRequest.js +15 -18
  130. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  131. package/dist/utilities/addLocalesToRequest.d.ts +2 -5
  132. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  133. package/dist/utilities/addLocalesToRequest.js +8 -9
  134. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  135. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  136. package/dist/utilities/createPayloadRequest.js +14 -10
  137. package/dist/utilities/createPayloadRequest.js.map +1 -1
  138. package/dist/utilities/getNextRequestI18n.d.ts +3 -3
  139. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  140. package/dist/utilities/getNextRequestI18n.js +3 -1
  141. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  142. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  143. package/dist/utilities/getPayloadHMR.js +11 -8
  144. package/dist/utilities/getPayloadHMR.js.map +1 -1
  145. package/dist/utilities/getRequestLanguage.js.map +1 -1
  146. package/dist/utilities/getRequestLocales.js.map +1 -1
  147. package/dist/utilities/getRequestTheme.js.map +1 -1
  148. package/dist/utilities/headersWithCors.d.ts +2 -2
  149. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  150. package/dist/utilities/headersWithCors.js +19 -3
  151. package/dist/utilities/headersWithCors.js.map +1 -1
  152. package/dist/utilities/initPage/handleAdminPage.d.ts +4 -0
  153. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  154. package/dist/utilities/initPage/handleAdminPage.js +3 -1
  155. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  156. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  157. package/dist/utilities/initPage/handleAuthRedirect.js +9 -5
  158. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  159. package/dist/utilities/initPage/index.d.ts.map +1 -1
  160. package/dist/utilities/initPage/index.js +2 -1
  161. package/dist/utilities/initPage/index.js.map +1 -1
  162. package/dist/utilities/initPage/shared.js.map +1 -1
  163. package/dist/utilities/initPage/types.js.map +1 -1
  164. package/dist/utilities/mergeHeaders.d.ts +2 -0
  165. package/dist/utilities/mergeHeaders.d.ts.map +1 -0
  166. package/dist/utilities/mergeHeaders.js +37 -0
  167. package/dist/utilities/mergeHeaders.js.map +1 -0
  168. package/dist/utilities/meta.d.ts +2 -2
  169. package/dist/utilities/meta.d.ts.map +1 -1
  170. package/dist/utilities/meta.js +2 -2
  171. package/dist/utilities/meta.js.map +1 -1
  172. package/dist/utilities/timestamp.js.map +1 -1
  173. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  174. package/dist/views/API/RenderJSON/index.js.map +1 -1
  175. package/dist/views/API/index.client.d.ts.map +1 -1
  176. package/dist/views/API/index.client.js +4 -6
  177. package/dist/views/API/index.client.js.map +1 -1
  178. package/dist/views/API/index.js.map +1 -1
  179. package/dist/views/API/meta.js.map +1 -1
  180. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  181. package/dist/views/Account/Settings/index.js.map +1 -1
  182. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  183. package/dist/views/Account/index.d.ts.map +1 -1
  184. package/dist/views/Account/index.js +14 -23
  185. package/dist/views/Account/index.js.map +1 -1
  186. package/dist/views/Account/meta.js.map +1 -1
  187. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  188. package/dist/views/CreateFirstUser/index.js.map +1 -1
  189. package/dist/views/CreateFirstUser/meta.js.map +1 -1
  190. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  191. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  192. package/dist/views/Dashboard/Default/index.js +13 -4
  193. package/dist/views/Dashboard/Default/index.js.map +1 -1
  194. package/dist/views/Dashboard/index.js.map +1 -1
  195. package/dist/views/Dashboard/meta.js.map +1 -1
  196. package/dist/views/Document/getCustomViewByKey.js.map +1 -1
  197. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  198. package/dist/views/Document/getDocumentData.d.ts +2 -2
  199. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  200. package/dist/views/Document/getDocumentData.js +1 -1
  201. package/dist/views/Document/getDocumentData.js.map +1 -1
  202. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  203. package/dist/views/Document/getMetaBySegment.d.ts +2 -2
  204. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  205. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  206. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  207. package/dist/views/Document/getViewsFromConfig.js +19 -5
  208. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  209. package/dist/views/Document/index.d.ts.map +1 -1
  210. package/dist/views/Document/index.js +40 -48
  211. package/dist/views/Document/index.js.map +1 -1
  212. package/dist/views/Document/meta.js.map +1 -1
  213. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  214. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  215. package/dist/views/Edit/Default/Auth/index.js +10 -3
  216. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  217. package/dist/views/Edit/Default/Auth/index.scss +17 -2
  218. package/dist/views/Edit/Default/Auth/types.d.ts +1 -0
  219. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  220. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  221. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  222. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +15 -5
  223. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  224. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +1 -1
  225. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  226. package/dist/views/Edit/Default/index.js +19 -16
  227. package/dist/views/Edit/Default/index.js.map +1 -1
  228. package/dist/views/Edit/Default/types.js.map +1 -1
  229. package/dist/views/Edit/index.client.js.map +1 -1
  230. package/dist/views/Edit/index.js.map +1 -1
  231. package/dist/views/Edit/meta.js.map +1 -1
  232. package/dist/views/Edit/sanitizeEditViewProps.js.map +1 -1
  233. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  234. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +34 -6
  235. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  236. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  237. package/dist/views/ForgotPassword/index.js +11 -4
  238. package/dist/views/ForgotPassword/index.js.map +1 -1
  239. package/dist/views/ForgotPassword/meta.js.map +1 -1
  240. package/dist/views/List/Default/index.js.map +1 -1
  241. package/dist/views/List/Default/types.js.map +1 -1
  242. package/dist/views/List/index.d.ts.map +1 -1
  243. package/dist/views/List/index.js +13 -5
  244. package/dist/views/List/index.js.map +1 -1
  245. package/dist/views/List/meta.d.ts +2 -2
  246. package/dist/views/List/meta.d.ts.map +1 -1
  247. package/dist/views/List/meta.js.map +1 -1
  248. package/dist/views/LivePreview/Context/collisionDetection.js.map +1 -1
  249. package/dist/views/LivePreview/Context/context.js.map +1 -1
  250. package/dist/views/LivePreview/Context/index.js.map +1 -1
  251. package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
  252. package/dist/views/LivePreview/Device/index.js.map +1 -1
  253. package/dist/views/LivePreview/DeviceContainer/index.js.map +1 -1
  254. package/dist/views/LivePreview/IFrame/index.js.map +1 -1
  255. package/dist/views/LivePreview/Preview/index.js +1 -1
  256. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  257. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  258. package/dist/views/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  259. package/dist/views/LivePreview/Toolbar/index.d.ts +2 -2
  260. package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  261. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  262. package/dist/views/LivePreview/ToolbarArea/index.js.map +1 -1
  263. package/dist/views/LivePreview/index.client.js.map +1 -1
  264. package/dist/views/LivePreview/index.js.map +1 -1
  265. package/dist/views/LivePreview/meta.js.map +1 -1
  266. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  267. package/dist/views/Login/LoginField/index.d.ts +6 -0
  268. package/dist/views/Login/LoginField/index.d.ts.map +1 -0
  269. package/dist/views/Login/LoginField/index.js +101 -0
  270. package/dist/views/Login/LoginField/index.js.map +1 -0
  271. package/dist/views/Login/LoginForm/index.d.ts +3 -0
  272. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  273. package/dist/views/Login/LoginForm/index.js +39 -33
  274. package/dist/views/Login/LoginForm/index.js.map +1 -1
  275. package/dist/views/Login/index.d.ts.map +1 -1
  276. package/dist/views/Login/index.js +7 -0
  277. package/dist/views/Login/index.js.map +1 -1
  278. package/dist/views/Login/meta.js.map +1 -1
  279. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  280. package/dist/views/Logout/LogoutClient.js +5 -1
  281. package/dist/views/Logout/LogoutClient.js.map +1 -1
  282. package/dist/views/Logout/index.d.ts +2 -2
  283. package/dist/views/Logout/index.d.ts.map +1 -1
  284. package/dist/views/Logout/index.js +2 -2
  285. package/dist/views/Logout/index.js.map +1 -1
  286. package/dist/views/Logout/meta.js.map +1 -1
  287. package/dist/views/NotFound/index.client.js +2 -2
  288. package/dist/views/NotFound/index.client.js.map +1 -1
  289. package/dist/views/NotFound/index.d.ts.map +1 -1
  290. package/dist/views/NotFound/index.js +5 -1
  291. package/dist/views/NotFound/index.js.map +1 -1
  292. package/dist/views/NotFound/meta.d.ts +2 -2
  293. package/dist/views/NotFound/meta.d.ts.map +1 -1
  294. package/dist/views/NotFound/meta.js.map +1 -1
  295. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  296. package/dist/views/ResetPassword/index.client.js +9 -5
  297. package/dist/views/ResetPassword/index.client.js.map +1 -1
  298. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  299. package/dist/views/ResetPassword/index.js +7 -3
  300. package/dist/views/ResetPassword/index.js.map +1 -1
  301. package/dist/views/ResetPassword/meta.js.map +1 -1
  302. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  303. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  304. package/dist/views/Root/getViewFromConfig.js +5 -1
  305. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  306. package/dist/views/Root/index.d.ts +2 -2
  307. package/dist/views/Root/index.d.ts.map +1 -1
  308. package/dist/views/Root/index.js +18 -7
  309. package/dist/views/Root/index.js.map +1 -1
  310. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  311. package/dist/views/Root/meta.js.map +1 -1
  312. package/dist/views/Unauthorized/index.js.map +1 -1
  313. package/dist/views/Unauthorized/meta.js.map +1 -1
  314. package/dist/views/Verify/index.d.ts.map +1 -1
  315. package/dist/views/Verify/index.js +9 -2
  316. package/dist/views/Verify/index.js.map +1 -1
  317. package/dist/views/Verify/meta.js.map +1 -1
  318. package/dist/views/Version/Default/SetStepNav.d.ts +0 -1
  319. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  320. package/dist/views/Version/Default/SetStepNav.js +28 -13
  321. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  322. package/dist/views/Version/Default/index.d.ts.map +1 -1
  323. package/dist/views/Version/Default/index.js +12 -14
  324. package/dist/views/Version/Default/index.js.map +1 -1
  325. package/dist/views/Version/Default/types.d.ts +3 -3
  326. package/dist/views/Version/Default/types.d.ts.map +1 -1
  327. package/dist/views/Version/Default/types.js.map +1 -1
  328. package/dist/views/Version/RenderFieldsToDiff/Label/index.js.map +1 -1
  329. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  330. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +1 -1
  331. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  332. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +1 -1
  333. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +2 -2
  334. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  335. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  336. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +2 -2
  337. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  338. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  339. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +1 -1
  340. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  341. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js.map +1 -1
  342. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +6 -6
  343. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  344. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +1 -1
  345. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  346. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  347. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +2 -2
  348. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  349. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  350. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  351. package/dist/views/Version/Restore/index.js +11 -5
  352. package/dist/views/Version/Restore/index.js.map +1 -1
  353. package/dist/views/Version/Restore/types.js.map +1 -1
  354. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  355. package/dist/views/Version/SelectComparison/index.js +49 -28
  356. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  357. package/dist/views/Version/SelectComparison/index.scss +1 -1
  358. package/dist/views/Version/SelectComparison/types.d.ts +2 -1
  359. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  360. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  361. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  362. package/dist/views/Version/SelectLocales/types.js.map +1 -1
  363. package/dist/views/Version/index.d.ts.map +1 -1
  364. package/dist/views/Version/index.js +25 -40
  365. package/dist/views/Version/index.js.map +1 -1
  366. package/dist/views/Version/meta.js.map +1 -1
  367. package/dist/views/Versions/buildColumns.d.ts +3 -1
  368. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  369. package/dist/views/Versions/buildColumns.js +7 -4
  370. package/dist/views/Versions/buildColumns.js.map +1 -1
  371. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -1
  372. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  373. package/dist/views/Versions/cells/AutosaveCell/index.js +31 -13
  374. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  375. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  376. package/dist/views/Versions/cells/CreatedAt/index.js +10 -4
  377. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  378. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  379. package/dist/views/Versions/getLatestVersion.d.ts +5 -0
  380. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -0
  381. package/dist/views/Versions/getLatestVersion.js +29 -0
  382. package/dist/views/Versions/getLatestVersion.js.map +1 -0
  383. package/dist/views/Versions/index.client.js.map +1 -1
  384. package/dist/views/Versions/index.d.ts.map +1 -1
  385. package/dist/views/Versions/index.js +25 -3
  386. package/dist/views/Versions/index.js.map +1 -1
  387. package/dist/views/Versions/meta.js.map +1 -1
  388. package/dist/views/Versions/types.js.map +1 -1
  389. package/dist/withPayload.js.map +1 -1
  390. package/package.json +20 -26
  391. package/dist/prod/index.js +0 -62
  392. package/dist/prod/payload/payload-favicon-dark.png +0 -0
  393. package/dist/prod/payload/payload-favicon-light.png +0 -0
  394. package/dist/prod/payload/static-og-image.png +0 -0
  395. package/dist/views/Version/shared.d.ts +0 -9
  396. package/dist/views/Version/shared.d.ts.map +0 -1
  397. package/dist/views/Version/shared.js +0 -10
  398. package/dist/views/Version/shared.js.map +0 -1
  399. package/dist/webpackEntry.d.ts +0 -5
  400. package/dist/webpackEntry.d.ts.map +0 -1
  401. package/dist/webpackEntry.js +0 -6
  402. package/dist/webpackEntry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport default {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: null,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: null,\n}\n"],"names":["Iterable","Nested","Select","Tabs","Text","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,cAAc,sBAAqB;AAC1C,OAAOC,YAAY,oBAAmB;AAEtC,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,UAAU,kBAAiB;AAClC,OAAOC,UAAU,kBAAiB;AAElC,eAAe;IACbC,OAAOL;IACPM,QAAQN;IACRO,UAAUH;IACVI,MAAMJ;IACNK,aAAaR;IACbS,MAAMN;IACNO,OAAOP;IACPQ,OAAOX;IACPY,MAAMT;IACNU,QAAQV;IACRW,OAAOX;IACPY,OAAOd;IACPe,cAAc;IACdC,UAAUd;IACVe,KAAKlB;IACLmB,QAAQlB;IACRmB,MAAMlB;IACNmB,MAAMlB;IACNmB,UAAUnB;IACVoB,QAAQ;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport default {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: null,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: null,\n}\n"],"names":["Iterable","Nested","Select","Tabs","Text","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"mappings":"AAAA,OAAOA,cAAc,sBAAqB;AAC1C,OAAOC,YAAY,oBAAmB;AAEtC,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,UAAU,kBAAiB;AAClC,OAAOC,UAAU,kBAAiB;AAElC,eAAe;IACbC,OAAOL;IACPM,QAAQN;IACRO,UAAUH;IACVI,MAAMJ;IACNK,aAAaR;IACbS,MAAMN;IACNO,OAAOP;IACPQ,OAAOX;IACPY,MAAMT;IACNU,QAAQV;IACRW,OAAOX;IACPY,OAAOd;IACPe,cAAc;IACdC,UAAUd;IACVe,KAAKlB;IACLmB,QAAQlB;IACRmB,MAAMlB;IACNmB,MAAMlB;IACNmB,UAAUnB;IACVoB,QAAQ;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/styles.ts"],"sourcesContent":["export const diffStyles = {\n variables: {\n dark: {\n addedBackground: 'var(--theme-success-900)',\n addedColor: 'var(--theme-success-100)',\n diffViewerBackground: 'transparent',\n diffViewerColor: 'var(--theme-text)',\n emptyLineBackground: 'var(--theme-elevation-50)',\n removedBackground: 'var(--theme-error-900)',\n removedColor: 'var(--theme-error-100)',\n wordAddedBackground: 'var(--theme-success-800)',\n wordRemovedBackground: 'var(--theme-error-800)',\n },\n light: {\n addedBackground: 'var(--theme-success-100)',\n addedColor: 'var(--theme-success-900)',\n diffViewerBackground: 'transparent',\n diffViewerColor: 'var(--theme-text)',\n emptyLineBackground: 'var(--theme-elevation-50)',\n removedBackground: 'var(--theme-error-100)',\n removedColor: 'var(--theme-error-900)',\n wordAddedBackground: 'var(--theme-success-200)',\n wordRemovedBackground: 'var(--theme-error-200)',\n },\n },\n}\n"],"names":["diffStyles","variables","dark","addedBackground","addedColor","diffViewerBackground","diffViewerColor","emptyLineBackground","removedBackground","removedColor","wordAddedBackground","wordRemovedBackground","light"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAO,MAAMA,aAAa;IACxBC,WAAW;QACTC,MAAM;YACJC,iBAAiB;YACjBC,YAAY;YACZC,sBAAsB;YACtBC,iBAAiB;YACjBC,qBAAqB;YACrBC,mBAAmB;YACnBC,cAAc;YACdC,qBAAqB;YACrBC,uBAAuB;QACzB;QACAC,OAAO;YACLT,iBAAiB;YACjBC,YAAY;YACZC,sBAAsB;YACtBC,iBAAiB;YACjBC,qBAAqB;YACrBC,mBAAmB;YACnBC,cAAc;YACdC,qBAAqB;YACrBC,uBAAuB;QACzB;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/styles.ts"],"sourcesContent":["export const diffStyles = {\n variables: {\n dark: {\n addedBackground: 'var(--theme-success-900)',\n addedColor: 'var(--theme-success-100)',\n diffViewerBackground: 'transparent',\n diffViewerColor: 'var(--theme-text)',\n emptyLineBackground: 'var(--theme-elevation-50)',\n removedBackground: 'var(--theme-error-900)',\n removedColor: 'var(--theme-error-100)',\n wordAddedBackground: 'var(--theme-success-800)',\n wordRemovedBackground: 'var(--theme-error-800)',\n },\n light: {\n addedBackground: 'var(--theme-success-100)',\n addedColor: 'var(--theme-success-900)',\n diffViewerBackground: 'transparent',\n diffViewerColor: 'var(--theme-text)',\n emptyLineBackground: 'var(--theme-elevation-50)',\n removedBackground: 'var(--theme-error-100)',\n removedColor: 'var(--theme-error-900)',\n wordAddedBackground: 'var(--theme-success-200)',\n wordRemovedBackground: 'var(--theme-error-200)',\n },\n },\n}\n"],"names":["diffStyles","variables","dark","addedBackground","addedColor","diffViewerBackground","diffViewerColor","emptyLineBackground","removedBackground","removedColor","wordAddedBackground","wordRemovedBackground","light"],"mappings":"AAAA,OAAO,MAAMA,aAAa;IACxBC,WAAW;QACTC,MAAM;YACJC,iBAAiB;YACjBC,YAAY;YACZC,sBAAsB;YACtBC,iBAAiB;YACjBC,qBAAqB;YACrBC,mBAAmB;YACnBC,cAAc;YACdC,qBAAqB;YACrBC,uBAAuB;QACzB;QACAC,OAAO;YACLT,iBAAiB;YACjBC,YAAY;YACZC,sBAAsB;YACtBC,iBAAiB;YACjBC,qBAAqB;YACrBC,mBAAmB;YACnBC,cAAc;YACdC,qBAAqB;YACrBC,uBAAuB;QACzB;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { FieldMap, MappedField } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { FieldPermissions } from 'payload'\nimport type React from 'react'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nexport type DiffComponents = Record<string, React.FC<Props>>\n\nexport type Props = {\n comparison: any\n diffComponents: DiffComponents\n diffMethod?: DiffMethod\n disableGutter?: boolean\n field: MappedField\n fieldMap: FieldMap\n i18n: I18nClient\n isRichText?: boolean\n locale?: string\n locales?: string[]\n permissions?: Record<string, FieldPermissions>\n version: any\n}\n"],"names":[],"rangeMappings":"","mappings":"AAQA,WAaC"}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { FieldMap, MappedField } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { FieldPermissions } from 'payload'\nimport type React from 'react'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nexport type DiffComponents = Record<string, React.FC<Props>>\n\nexport type Props = {\n comparison: any\n diffComponents: DiffComponents\n diffMethod?: DiffMethod\n disableGutter?: boolean\n field: MappedField\n fieldMap: FieldMap\n i18n: I18nClient\n isRichText?: boolean\n locale?: string\n locales?: string[]\n permissions?: Record<string, FieldPermissions>\n version: any\n}\n"],"names":[],"mappings":"AAQA,WAaC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["'use client'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport React from 'react'\n\nimport type { FieldDiffProps, Props } from './types.js'\n\nimport Nested from './fields/Nested/index.js'\nimport { diffMethods } from './fields/diffMethods.js'\nimport './index.scss'\n\nconst baseClass = 'render-field-diffs'\n\nconst RenderFieldsToDiff: React.FC<Props> = ({\n comparison,\n diffComponents,\n fieldMap,\n fieldPermissions,\n i18n,\n locales,\n version,\n}) => {\n return (\n <div className={baseClass}>\n {fieldMap?.map((field, i) => {\n if ('name' in field && field.name === 'id') return null\n\n const Component = diffComponents[field.type]\n\n const isRichText = field.type === 'richText'\n const diffMethod: DiffMethod = diffMethods[field.type] || 'CHARS'\n\n if (Component) {\n if (field.isFieldAffectingData && 'name' in field) {\n const fieldName = field.name\n const valueIsObject = field.type === 'code' || field.type === 'json'\n\n const versionValue = valueIsObject\n ? JSON.stringify(version?.[fieldName])\n : version?.[fieldName]\n\n const comparisonValue = valueIsObject\n ? JSON.stringify(comparison?.[fieldName])\n : comparison?.[fieldName]\n\n const hasPermission = fieldPermissions?.[fieldName]?.read?.permission\n\n const subFieldPermissions = fieldPermissions?.[fieldName]?.fields\n\n if (hasPermission === false) return null\n\n const baseCellProps: FieldDiffProps = {\n comparison: comparisonValue,\n diffComponents,\n diffMethod,\n field,\n fieldMap:\n 'fieldMap' in field.fieldComponentProps\n ? field.fieldComponentProps?.fieldMap\n : fieldMap,\n fieldPermissions: subFieldPermissions,\n i18n,\n isRichText,\n locales,\n version: versionValue,\n }\n\n if (field.localized) {\n return (\n <div className={`${baseClass}__field`} key={i}>\n {locales.map((locale, index) => {\n const versionLocaleValue = versionValue?.[locale]\n const comparisonLocaleValue = comparisonValue?.[locale]\n\n const cellProps = {\n ...baseCellProps,\n comparison: comparisonLocaleValue,\n version: versionLocaleValue,\n }\n\n return (\n <div className={`${baseClass}__locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__locale-value`}>\n <Component {...cellProps} locale={locale} />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__field`} key={i}>\n <Component {...baseCellProps} />\n </div>\n )\n }\n\n if (field.type === 'tabs' && 'fieldMap' in field.fieldComponentProps) {\n const Tabs = diffComponents.tabs\n\n return (\n <Tabs\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldMap={field.fieldComponentProps.fieldMap}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n\n // At this point, we are dealing with a `row`, etc\n if ('fieldMap' in field.fieldComponentProps) {\n return (\n <Nested\n comparison={comparison}\n diffComponents={diffComponents}\n disableGutter\n field={field}\n fieldMap={field.fieldComponentProps.fieldMap}\n i18n={i18n}\n key={i}\n locales={locales}\n permissions={fieldPermissions}\n version={version}\n />\n )\n }\n }\n\n return null\n })}\n </div>\n )\n}\n\nexport default RenderFieldsToDiff\n"],"names":["React","Nested","diffMethods","baseClass","RenderFieldsToDiff","comparison","diffComponents","fieldMap","fieldPermissions","i18n","locales","version","div","className","map","field","i","name","Component","type","isRichText","diffMethod","isFieldAffectingData","fieldName","valueIsObject","versionValue","JSON","stringify","comparisonValue","hasPermission","read","permission","subFieldPermissions","fields","baseCellProps","fieldComponentProps","localized","locale","index","versionLocaleValue","comparisonLocaleValue","cellProps","join","Tabs","tabs","disableGutter","permissions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["'use client'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport React from 'react'\n\nimport type { FieldDiffProps, Props } from './types.js'\n\nimport Nested from './fields/Nested/index.js'\nimport { diffMethods } from './fields/diffMethods.js'\nimport './index.scss'\n\nconst baseClass = 'render-field-diffs'\n\nconst RenderFieldsToDiff: React.FC<Props> = ({\n comparison,\n diffComponents,\n fieldMap,\n fieldPermissions,\n i18n,\n locales,\n version,\n}) => {\n return (\n <div className={baseClass}>\n {fieldMap?.map((field, i) => {\n if ('name' in field && field.name === 'id') return null\n\n const Component = diffComponents[field.type]\n\n const isRichText = field.type === 'richText'\n const diffMethod: DiffMethod = diffMethods[field.type] || 'CHARS'\n\n if (Component) {\n if (field.isFieldAffectingData && 'name' in field) {\n const fieldName = field.name\n const valueIsObject = field.type === 'code' || field.type === 'json'\n\n const versionValue = valueIsObject\n ? JSON.stringify(version?.[fieldName])\n : version?.[fieldName]\n\n const comparisonValue = valueIsObject\n ? JSON.stringify(comparison?.[fieldName])\n : comparison?.[fieldName]\n\n const hasPermission = fieldPermissions?.[fieldName]?.read?.permission\n\n const subFieldPermissions = fieldPermissions?.[fieldName]?.fields\n\n if (hasPermission === false) return null\n\n const baseCellProps: FieldDiffProps = {\n comparison: comparisonValue,\n diffComponents,\n diffMethod,\n field,\n fieldMap:\n 'fieldMap' in field.fieldComponentProps\n ? field.fieldComponentProps?.fieldMap\n : fieldMap,\n fieldPermissions: subFieldPermissions,\n i18n,\n isRichText,\n locales,\n version: versionValue,\n }\n\n if (field.localized) {\n return (\n <div className={`${baseClass}__field`} key={i}>\n {locales.map((locale, index) => {\n const versionLocaleValue = versionValue?.[locale]\n const comparisonLocaleValue = comparisonValue?.[locale]\n\n const cellProps = {\n ...baseCellProps,\n comparison: comparisonLocaleValue,\n version: versionLocaleValue,\n }\n\n return (\n <div className={`${baseClass}__locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__locale-value`}>\n <Component {...cellProps} locale={locale} />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__field`} key={i}>\n <Component {...baseCellProps} />\n </div>\n )\n }\n\n if (field.type === 'tabs' && 'fieldMap' in field.fieldComponentProps) {\n const Tabs = diffComponents.tabs\n\n return (\n <Tabs\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldMap={field.fieldComponentProps.fieldMap}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n\n // At this point, we are dealing with a `row`, etc\n if ('fieldMap' in field.fieldComponentProps) {\n return (\n <Nested\n comparison={comparison}\n diffComponents={diffComponents}\n disableGutter\n field={field}\n fieldMap={field.fieldComponentProps.fieldMap}\n i18n={i18n}\n key={i}\n locales={locales}\n permissions={fieldPermissions}\n version={version}\n />\n )\n }\n }\n\n return null\n })}\n </div>\n )\n}\n\nexport default RenderFieldsToDiff\n"],"names":["React","Nested","diffMethods","baseClass","RenderFieldsToDiff","comparison","diffComponents","fieldMap","fieldPermissions","i18n","locales","version","div","className","map","field","i","name","Component","type","isRichText","diffMethod","isFieldAffectingData","fieldName","valueIsObject","versionValue","JSON","stringify","comparisonValue","hasPermission","read","permission","subFieldPermissions","fields","baseCellProps","fieldComponentProps","localized","locale","index","versionLocaleValue","comparisonLocaleValue","cellProps","join","Tabs","tabs","disableGutter","permissions"],"mappings":"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"}
@@ -12,9 +12,9 @@ export type Props = {
12
12
  locales: string[];
13
13
  version: Record<string, any>;
14
14
  };
15
- export type FieldDiffProps = Props & {
15
+ export type FieldDiffProps = {
16
16
  diffMethod: DiffMethod;
17
17
  field: MappedField;
18
18
  isRichText: boolean;
19
- };
19
+ } & Props;
20
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/RenderFieldsToDiff/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAClD,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG;IACnC,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/RenderFieldsToDiff/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAClD,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB,GAAG,KAAK,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/RenderFieldsToDiff/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { FieldMap, MappedField } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { FieldPermissions } from 'payload'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport type { DiffComponents } from './fields/types.js'\n\nexport type Props = {\n comparison: Record<string, any>\n diffComponents: DiffComponents\n fieldMap: FieldMap\n fieldPermissions: Record<string, FieldPermissions>\n i18n: I18nClient\n locales: string[]\n version: Record<string, any>\n}\n\nexport type FieldDiffProps = Props & {\n diffMethod: DiffMethod\n field: MappedField\n isRichText: boolean\n}\n"],"names":[],"rangeMappings":"","mappings":"AAiBA,WAIC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/RenderFieldsToDiff/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { FieldMap, MappedField } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { FieldPermissions } from 'payload'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport type { DiffComponents } from './fields/types.js'\n\nexport type Props = {\n comparison: Record<string, any>\n diffComponents: DiffComponents\n fieldMap: FieldMap\n fieldPermissions: Record<string, FieldPermissions>\n i18n: I18nClient\n locales: string[]\n version: Record<string, any>\n}\n\nexport type FieldDiffProps = {\n diffMethod: DiffMethod\n field: MappedField\n isRichText: boolean\n} & Props\n"],"names":[],"mappings":"AAiBA,WAIS"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgF5B,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuF5B,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
4
  import { Button, Modal, Pill, useConfig, useModal, useTranslation } from '@payloadcms/ui';
5
- import { requests } from '@payloadcms/ui/shared';
5
+ import { formatAdminURL, requests } from '@payloadcms/ui/shared';
6
6
  import { useRouter } from 'next/navigation.js';
7
7
  import React, { Fragment, useCallback, useState } from 'react';
8
8
  import { toast } from 'sonner';
@@ -10,7 +10,7 @@ import { MinimalTemplate } from '../../../templates/Minimal/index.js';
10
10
  const baseClass = 'restore-version';
11
11
  const modalSlug = 'restore-version';
12
12
  const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID, versionDate, versionID })=>{
13
- const { routes: { admin, api }, serverURL } = useConfig();
13
+ const { routes: { admin: adminRoute, api: apiRoute }, serverURL } = useConfig();
14
14
  const { toggleModal } = useModal();
15
15
  const [processing, setProcessing] = useState(false);
16
16
  const router = useRouter();
@@ -19,15 +19,21 @@ const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID,
19
19
  label: getTranslation(label, i18n),
20
20
  versionDate
21
21
  });
22
- let fetchURL = `${serverURL}${api}`;
22
+ let fetchURL = `${serverURL}${apiRoute}`;
23
23
  let redirectURL;
24
24
  if (collectionSlug) {
25
25
  fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}`;
26
- redirectURL = `${admin}/collections/${collectionSlug}/${originalDocID}`;
26
+ redirectURL = formatAdminURL({
27
+ adminRoute,
28
+ path: `/collections/${collectionSlug}/${originalDocID}`
29
+ });
27
30
  }
28
31
  if (globalSlug) {
29
32
  fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}`;
30
- redirectURL = `${admin}/globals/${globalSlug}`;
33
+ redirectURL = formatAdminURL({
34
+ adminRoute,
35
+ path: `/globals/${globalSlug}`
36
+ });
31
37
  }
32
38
  const handleRestore = useCallback(async ()=>{
33
39
  setProcessing(true);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Modal, Pill, useConfig, useModal, useTranslation } from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { MinimalTemplate } from '../../../templates/Minimal/index.js'\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n versionDate,\n versionID,\n}) => {\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${api}`\n let redirectURL: string\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}`\n redirectURL = `${admin}/collections/${collectionSlug}/${originalDocID}`\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}`\n redirectURL = `${admin}/globals/${globalSlug}`\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n\n return (\n <Fragment>\n <Pill\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n >\n {t('version:restoreThisVersion')}\n </Pill>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : handleRestore}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"names":["getTranslation","Button","Modal","Pill","useConfig","useModal","useTranslation","requests","useRouter","React","Fragment","useCallback","useState","toast","MinimalTemplate","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","versionDate","versionID","routes","admin","api","serverURL","toggleModal","processing","setProcessing","router","i18n","t","restoreMessage","fetchURL","redirectURL","handleRestore","res","post","headers","language","status","json","success","message","push","error","filter","Boolean","join","onClick","slug","h1","p","buttonStyle","undefined","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,iBAAgB;AACzF,SAASC,QAAQ,QAAQ,wBAAuB;AAChD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAC9D,SAASC,KAAK,QAAQ,SAAQ;AAI9B,SAASC,eAAe,QAAQ,sCAAqC;AAGrE,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAElB,MAAMC,UAA2B,CAAC,EAChCC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,SAAS,EACV;IACC,MAAM,EACJC,QAAQ,EAAEC,KAAK,EAAEC,GAAG,EAAE,EACtBC,SAAS,EACV,GAAGxB;IACJ,MAAM,EAAEyB,WAAW,EAAE,GAAGxB;IACxB,MAAM,CAACyB,YAAYC,cAAc,GAAGnB,SAAS;IAC7C,MAAMoB,SAASxB;IACf,MAAM,EAAEyB,IAAI,EAAEC,CAAC,EAAE,GAAG5B;IAEpB,MAAM6B,iBAAiBD,EAAE,gCAAgC;QACvDb,OAAOrB,eAAeqB,OAAOY;QAC7BV;IACF;IAEA,IAAIa,WAAW,CAAC,EAAER,UAAU,EAAED,IAAI,CAAC;IACnC,IAAIU;IAEJ,IAAIlB,gBAAgB;QAClBiB,WAAW,CAAC,EAAEA,SAAS,CAAC,EAAEjB,eAAe,UAAU,EAAEK,UAAU,CAAC;QAChEa,cAAc,CAAC,EAAEX,MAAM,aAAa,EAAEP,eAAe,CAAC,EAAEG,cAAc,CAAC;IACzE;IAEA,IAAIF,YAAY;QACdgB,WAAW,CAAC,EAAEA,SAAS,SAAS,EAAEhB,WAAW,UAAU,EAAEI,UAAU,CAAC;QACpEa,cAAc,CAAC,EAAEX,MAAM,SAAS,EAAEN,WAAW,CAAC;IAChD;IAEA,MAAMkB,gBAAgB3B,YAAY;QAChCoB,cAAc;QAEd,MAAMQ,MAAM,MAAMhC,SAASiC,IAAI,CAACJ,UAAU;YACxCK,SAAS;gBACP,mBAAmBR,KAAKS,QAAQ;YAClC;QACF;QAEA,IAAIH,IAAII,MAAM,KAAK,KAAK;YACtB,MAAMC,OAAO,MAAML,IAAIK,IAAI;YAC3B/B,MAAMgC,OAAO,CAACD,KAAKE,OAAO;YAC1Bd,OAAOe,IAAI,CAACV;QACd,OAAO;YACLxB,MAAMmC,KAAK,CAACd,EAAE;QAChB;IACF,GAAG;QAACE;QAAUC;QAAaH;QAAGD;QAAMD;KAAO;IAE3C,qBACE,MAACtB;;0BACC,KAACP;gBACCe,WAAW;oBAACH;oBAAWG;iBAAU,CAAC+B,MAAM,CAACC,SAASC,IAAI,CAAC;gBACvDC,SAAS,IAAMvB,YAAYb;0BAE1BkB,EAAE;;0BAEL,KAAChC;gBAAMgB,WAAW,CAAC,EAAEH,UAAU,OAAO,CAAC;gBAAEsC,MAAMrC;0BAC7C,cAAA,MAACF;oBAAgBI,WAAW,CAAC,EAAEH,UAAU,gBAAgB,CAAC;;sCACxD,KAACuC;sCAAIpB,EAAE;;sCACP,KAACqB;sCAAGpB;;sCACJ,KAAClC;4BACCuD,aAAY;4BACZJ,SAAStB,aAAa2B,YAAY,IAAM5B,YAAYb;4BACpD0C,MAAK;sCAEJxB,EAAE;;sCAEL,KAACjC;4BAAOmD,SAAStB,aAAa2B,YAAYnB;sCACvCR,aAAaI,EAAE,uBAAuBA,EAAE;;;;;;;AAMrD;AAEA,eAAejB,QAAO"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Modal, Pill, useConfig, useModal, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { MinimalTemplate } from '../../../templates/Minimal/index.js'\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n versionDate,\n versionID,\n}) => {\n const {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n\n return (\n <Fragment>\n <Pill\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n >\n {t('version:restoreThisVersion')}\n </Pill>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : handleRestore}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"names":["getTranslation","Button","Modal","Pill","useConfig","useModal","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","MinimalTemplate","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","versionDate","versionID","routes","admin","adminRoute","api","apiRoute","serverURL","toggleModal","processing","setProcessing","router","i18n","t","restoreMessage","fetchURL","redirectURL","path","handleRestore","res","post","headers","language","status","json","success","message","push","error","filter","Boolean","join","onClick","slug","h1","p","buttonStyle","undefined","type"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,iBAAgB;AACzF,SAASC,cAAc,EAAEC,QAAQ,QAAQ,wBAAuB;AAChE,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAC9D,SAASC,KAAK,QAAQ,SAAQ;AAI9B,SAASC,eAAe,QAAQ,sCAAqC;AAGrE,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAElB,MAAMC,UAA2B,CAAC,EAChCC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,SAAS,EACV;IACC,MAAM,EACJC,QAAQ,EAAEC,OAAOC,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC5CC,SAAS,EACV,GAAG3B;IAEJ,MAAM,EAAE4B,WAAW,EAAE,GAAG3B;IACxB,MAAM,CAAC4B,YAAYC,cAAc,GAAGrB,SAAS;IAC7C,MAAMsB,SAAS1B;IACf,MAAM,EAAE2B,IAAI,EAAEC,CAAC,EAAE,GAAG/B;IAEpB,MAAMgC,iBAAiBD,EAAE,gCAAgC;QACvDf,OAAOtB,eAAesB,OAAOc;QAC7BZ;IACF;IAEA,IAAIe,WAAW,CAAC,EAAER,UAAU,EAAED,SAAS,CAAC;IACxC,IAAIU;IAEJ,IAAIpB,gBAAgB;QAClBmB,WAAW,CAAC,EAAEA,SAAS,CAAC,EAAEnB,eAAe,UAAU,EAAEK,UAAU,CAAC;QAChEe,cAAcjC,eAAe;YAC3BqB;YACAa,MAAM,CAAC,aAAa,EAAErB,eAAe,CAAC,EAAEG,cAAc,CAAC;QACzD;IACF;IAEA,IAAIF,YAAY;QACdkB,WAAW,CAAC,EAAEA,SAAS,SAAS,EAAElB,WAAW,UAAU,EAAEI,UAAU,CAAC;QACpEe,cAAcjC,eAAe;YAC3BqB;YACAa,MAAM,CAAC,SAAS,EAAEpB,WAAW,CAAC;QAChC;IACF;IAEA,MAAMqB,gBAAgB9B,YAAY;QAChCsB,cAAc;QAEd,MAAMS,MAAM,MAAMnC,SAASoC,IAAI,CAACL,UAAU;YACxCM,SAAS;gBACP,mBAAmBT,KAAKU,QAAQ;YAClC;QACF;QAEA,IAAIH,IAAII,MAAM,KAAK,KAAK;YACtB,MAAMC,OAAO,MAAML,IAAIK,IAAI;YAC3BlC,MAAMmC,OAAO,CAACD,KAAKE,OAAO;YAC1Bf,OAAOgB,IAAI,CAACX;QACd,OAAO;YACL1B,MAAMsC,KAAK,CAACf,EAAE;QAChB;IACF,GAAG;QAACE;QAAUC;QAAaH;QAAGD;QAAMD;KAAO;IAE3C,qBACE,MAACxB;;0BACC,KAACR;gBACCgB,WAAW;oBAACH;oBAAWG;iBAAU,CAACkC,MAAM,CAACC,SAASC,IAAI,CAAC;gBACvDC,SAAS,IAAMxB,YAAYf;0BAE1BoB,EAAE;;0BAEL,KAACnC;gBAAMiB,WAAW,CAAC,EAAEH,UAAU,OAAO,CAAC;gBAAEyC,MAAMxC;0BAC7C,cAAA,MAACF;oBAAgBI,WAAW,CAAC,EAAEH,UAAU,gBAAgB,CAAC;;sCACxD,KAAC0C;sCAAIrB,EAAE;;sCACP,KAACsB;sCAAGrB;;sCACJ,KAACrC;4BACC2D,aAAY;4BACZJ,SAASvB,aAAa4B,YAAY,IAAM7B,YAAYf;4BACpD6C,MAAK;sCAEJzB,EAAE;;sCAEL,KAACpC;4BAAOuD,SAASvB,aAAa4B,YAAYnB;sCACvCT,aAAaI,EAAE,uBAAuBA,EAAE;;;;;;;AAMrD;AAEA,eAAenB,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Restore/types.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nexport type Props = {\n className?: string\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalSlug?: SanitizedGlobalConfig['slug']\n label: SanitizedCollectionConfig['labels']['singular']\n originalDocID: number | string\n versionDate: string\n versionID: string\n}\n"],"names":[],"rangeMappings":"","mappings":"AAEA,WAQC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Restore/types.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nexport type Props = {\n className?: string\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalSlug?: SanitizedGlobalConfig['slug']\n label: SanitizedCollectionConfig['labels']['singular']\n originalDocID: number | string\n versionDate: string\n versionID: string\n}\n"],"names":[],"mappings":"AAEA,WAQC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAQrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiH5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAQrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuJ5C,CAAA"}
@@ -1,19 +1,16 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { ReactSelect, fieldBaseClass, useConfig, useDocumentInfo, useTranslation } from '@payloadcms/ui';
3
+ import { ReactSelect, fieldBaseClass, useConfig, useTranslation } from '@payloadcms/ui';
4
4
  import { formatDate } from '@payloadcms/ui/shared';
5
- import qs from 'qs';
5
+ import * as qs from 'qs-esm';
6
6
  import React, { useCallback, useEffect, useState } from 'react';
7
- import { mostRecentVersionOption, publishedVersionOption } from '../shared.js';
7
+ import { renderPill } from '../../Versions/cells/AutosaveCell/index.js';
8
8
  const baseClass = 'compare-version';
9
9
  const maxResultsPerRequest = 10;
10
- const baseOptions = [
11
- mostRecentVersionOption
12
- ];
10
+ const baseOptions = [];
13
11
  export const SelectComparison = (props)=>{
14
- const { baseURL, onChange, parentID, publishedDoc, value, versionID } = props;
12
+ const { baseURL, latestDraftVersion, latestPublishedVersion, onChange, parentID, value, versionID } = props;
15
13
  const { admin: { dateFormat } } = useConfig();
16
- const { docConfig } = useDocumentInfo();
17
14
  const [options, setOptions] = useState(baseOptions);
18
15
  const [lastLoadedPage, setLastLoadedPage] = useState(1);
19
16
  const [errorLoading, setErrorLoading] = useState('');
@@ -35,13 +32,6 @@ export const SelectComparison = (props)=>{
35
32
  ]
36
33
  }
37
34
  };
38
- if (docConfig.versions?.drafts) {
39
- query.where.and.push({
40
- latest: {
41
- not_equals: true
42
- }
43
- });
44
- }
45
35
  if (parentID) {
46
36
  query.where.and.push({
47
37
  parent: {
@@ -59,16 +49,41 @@ export const SelectComparison = (props)=>{
59
49
  if (response.ok) {
60
50
  const data = await response.json();
61
51
  if (data.docs.length > 0) {
62
- setOptions((existingOptions)=>[
63
- ...existingOptions,
64
- ...data.docs.map((doc)=>({
65
- label: formatDate({
52
+ const versionInfo = {
53
+ draft: {
54
+ currentLabel: t('version:currentDraft'),
55
+ latestVersion: latestDraftVersion,
56
+ pillStyle: undefined,
57
+ previousLabel: t('version:draft')
58
+ },
59
+ published: {
60
+ currentLabel: t('version:currentPublishedVersion'),
61
+ latestVersion: latestPublishedVersion,
62
+ pillStyle: 'success',
63
+ previousLabel: t('version:previouslyPublished')
64
+ }
65
+ };
66
+ const additionalOptions = data.docs.map((doc)=>{
67
+ const status = doc.version._status;
68
+ const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {};
69
+ return {
70
+ label: /*#__PURE__*/ _jsxs("div", {
71
+ children: [
72
+ formatDate({
66
73
  date: doc.updatedAt,
67
74
  i18n,
68
75
  pattern: dateFormat
69
76
  }),
70
- value: doc.id
71
- }))
77
+ "  ",
78
+ renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)
79
+ ]
80
+ }),
81
+ value: doc.id
82
+ };
83
+ });
84
+ setOptions((existingOptions)=>[
85
+ ...existingOptions,
86
+ ...additionalOptions
72
87
  ]);
73
88
  if (!data.hasNextPage) {
74
89
  loadedAllOptionsRef.current = true;
@@ -85,7 +100,8 @@ export const SelectComparison = (props)=>{
85
100
  versionID,
86
101
  t,
87
102
  i18n,
88
- docConfig.versions?.drafts
103
+ latestDraftVersion,
104
+ latestPublishedVersion
89
105
  ]);
90
106
  useEffect(()=>{
91
107
  void getResults({
@@ -94,6 +110,16 @@ export const SelectComparison = (props)=>{
94
110
  }, [
95
111
  getResults
96
112
  ]);
113
+ const filteredOptions = options.filter((option, index, self)=>self.findIndex((t)=>t.value === option.value) === index);
114
+ useEffect(()=>{
115
+ if (filteredOptions.length > 0 && !value) {
116
+ onChange(filteredOptions[0]);
117
+ }
118
+ }, [
119
+ filteredOptions,
120
+ value,
121
+ onChange
122
+ ]);
97
123
  return /*#__PURE__*/ _jsxs("div", {
98
124
  className: [
99
125
  fieldBaseClass,
@@ -114,12 +140,7 @@ export const SelectComparison = (props)=>{
114
140
  lastLoadedPage: lastLoadedPage + 1
115
141
  });
116
142
  },
117
- options: [
118
- ...publishedDoc?._status === 'published' ? [
119
- publishedVersionOption
120
- ] : [],
121
- ...options
122
- ],
143
+ options: filteredOptions,
123
144
  placeholder: t('version:selectVersionToCompare'),
124
145
  value: value
125
146
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport {\n ReactSelect,\n fieldBaseClass,\n useConfig,\n useDocumentInfo,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport qs from 'qs'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { mostRecentVersionOption, publishedVersionOption } from '../shared.js'\nimport './index.scss'\n\nconst baseClass = 'compare-version'\n\nconst maxResultsPerRequest = 10\n\nconst baseOptions = [mostRecentVersionOption]\n\nexport const SelectComparison: React.FC<Props> = (props) => {\n const { baseURL, onChange, parentID, publishedDoc, value, versionID } = props\n\n const {\n admin: { dateFormat },\n } = useConfig()\n\n const { docConfig } = useDocumentInfo()\n const [options, setOptions] = useState(baseOptions)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [errorLoading, setErrorLoading] = useState('')\n const { i18n, t } = useTranslation()\n const loadedAllOptionsRef = React.useRef(false)\n\n const getResults = useCallback(\n async ({ lastLoadedPage: lastLoadedPageArg }) => {\n if (loadedAllOptionsRef.current) return\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: lastLoadedPageArg,\n where: {\n and: [\n {\n id: {\n not_equals: versionID,\n },\n },\n ],\n },\n }\n\n if (docConfig.versions?.drafts) {\n query.where.and.push({\n latest: {\n not_equals: true,\n },\n })\n }\n\n if (parentID) {\n query.where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n const search = qs.stringify(query)\n\n const response = await fetch(`${baseURL}?${search}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n setOptions((existingOptions) => [\n ...existingOptions,\n ...data.docs.map((doc) => ({\n label: formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat }),\n value: doc.id,\n })),\n ])\n\n if (!data.hasNextPage) {\n loadedAllOptionsRef.current = true\n }\n setLastLoadedPage(data.page)\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n },\n [dateFormat, baseURL, parentID, versionID, t, i18n, docConfig.versions?.drafts],\n )\n\n useEffect(() => {\n void getResults({ lastLoadedPage: 1 })\n }, [getResults])\n\n return (\n <div\n className={[fieldBaseClass, baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__label`}>{t('version:compareVersion')}</div>\n {!errorLoading && (\n <ReactSelect\n isClearable={false}\n isSearchable={false}\n onChange={onChange}\n onMenuScrollToBottom={() => {\n void getResults({ lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={[\n ...(publishedDoc?._status === 'published' ? [publishedVersionOption] : []),\n ...options,\n ]}\n placeholder={t('version:selectVersionToCompare')}\n value={value}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"names":["ReactSelect","fieldBaseClass","useConfig","useDocumentInfo","useTranslation","formatDate","qs","React","useCallback","useEffect","useState","mostRecentVersionOption","publishedVersionOption","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","onChange","parentID","publishedDoc","value","versionID","admin","dateFormat","docConfig","options","setOptions","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","i18n","t","loadedAllOptionsRef","useRef","getResults","lastLoadedPageArg","current","query","depth","limit","page","where","and","id","not_equals","versions","drafts","push","latest","parent","equals","search","stringify","response","fetch","credentials","headers","language","ok","data","json","docs","length","existingOptions","map","doc","label","date","updatedAt","pattern","hasNextPage","div","className","filter","Boolean","join","isClearable","isSearchable","onMenuScrollToBottom","_status","placeholder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { ReactSelect, fieldBaseClass, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { renderPill } from '../../Versions/cells/AutosaveCell/index.js'\nimport './index.scss'\n\nconst baseClass = 'compare-version'\n\nconst maxResultsPerRequest = 10\n\nconst baseOptions = []\n\nexport const SelectComparison: React.FC<Props> = (props) => {\n const {\n baseURL,\n latestDraftVersion,\n latestPublishedVersion,\n onChange,\n parentID,\n value,\n versionID,\n } = props\n\n const {\n admin: { dateFormat },\n } = useConfig()\n\n const [options, setOptions] = useState<\n {\n label: React.ReactNode | string\n value: string\n }[]\n >(baseOptions)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [errorLoading, setErrorLoading] = useState('')\n const { i18n, t } = useTranslation()\n const loadedAllOptionsRef = React.useRef(false)\n\n const getResults = useCallback(\n async ({ lastLoadedPage: lastLoadedPageArg }) => {\n if (loadedAllOptionsRef.current) return\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: lastLoadedPageArg,\n where: {\n and: [\n {\n id: {\n not_equals: versionID,\n },\n },\n ],\n },\n }\n\n if (parentID) {\n query.where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n const search = qs.stringify(query)\n\n const response = await fetch(`${baseURL}?${search}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n\n if (data.docs.length > 0) {\n const versionInfo = {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersion,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentPublishedVersion'),\n latestVersion: latestPublishedVersion,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n\n const additionalOptions = data.docs.map((doc) => {\n const status = doc.version._status\n const { currentLabel, latestVersion, pillStyle, previousLabel } =\n versionInfo[status] || {}\n\n return {\n label: (\n <div>\n {formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })}\n &nbsp;&nbsp;\n {renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)}\n </div>\n ),\n value: doc.id,\n }\n })\n\n setOptions((existingOptions) => [...existingOptions, ...additionalOptions])\n\n if (!data.hasNextPage) {\n loadedAllOptionsRef.current = true\n }\n setLastLoadedPage(data.page)\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n },\n [dateFormat, baseURL, parentID, versionID, t, i18n, latestDraftVersion, latestPublishedVersion],\n )\n\n useEffect(() => {\n void getResults({ lastLoadedPage: 1 })\n }, [getResults])\n\n const filteredOptions = options.filter(\n (option, index, self) => self.findIndex((t) => t.value === option.value) === index,\n )\n\n useEffect(() => {\n if (filteredOptions.length > 0 && !value) {\n onChange(filteredOptions[0])\n }\n }, [filteredOptions, value, onChange])\n\n return (\n <div\n className={[fieldBaseClass, baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__label`}>{t('version:compareVersion')}</div>\n {!errorLoading && (\n <ReactSelect\n isClearable={false}\n isSearchable={false}\n onChange={onChange}\n onMenuScrollToBottom={() => {\n void getResults({ lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={filteredOptions}\n placeholder={t('version:selectVersionToCompare')}\n value={value}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"names":["ReactSelect","fieldBaseClass","useConfig","useTranslation","formatDate","qs","React","useCallback","useEffect","useState","renderPill","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","latestDraftVersion","latestPublishedVersion","onChange","parentID","value","versionID","admin","dateFormat","options","setOptions","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","i18n","t","loadedAllOptionsRef","useRef","getResults","lastLoadedPageArg","current","query","depth","limit","page","where","and","id","not_equals","push","parent","equals","search","stringify","response","fetch","credentials","headers","language","ok","data","json","docs","length","versionInfo","draft","currentLabel","latestVersion","pillStyle","undefined","previousLabel","published","additionalOptions","map","doc","status","version","_status","label","div","date","updatedAt","pattern","existingOptions","hasNextPage","filteredOptions","filter","option","index","self","findIndex","className","Boolean","join","isClearable","isSearchable","onMenuScrollToBottom","placeholder"],"mappings":"AAAA;;AAIA,SAASA,WAAW,EAAEC,cAAc,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACvF,SAASC,UAAU,QAAQ,wBAAuB;AAClD,YAAYC,QAAQ,SAAQ;AAC5B,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAI/D,SAASC,UAAU,QAAQ,6CAA4C;AAGvE,MAAMC,YAAY;AAElB,MAAMC,uBAAuB;AAE7B,MAAMC,cAAc,EAAE;AAEtB,OAAO,MAAMC,mBAAoC,CAACC;IAChD,MAAM,EACJC,OAAO,EACPC,kBAAkB,EAClBC,sBAAsB,EACtBC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,SAAS,EACV,GAAGP;IAEJ,MAAM,EACJQ,OAAO,EAAEC,UAAU,EAAE,EACtB,GAAGtB;IAEJ,MAAM,CAACuB,SAASC,WAAW,GAAGjB,SAK5BI;IACF,MAAM,CAACc,gBAAgBC,kBAAkB,GAAGnB,SAAS;IACrD,MAAM,CAACoB,cAAcC,gBAAgB,GAAGrB,SAAS;IACjD,MAAM,EAAEsB,IAAI,EAAEC,CAAC,EAAE,GAAG7B;IACpB,MAAM8B,sBAAsB3B,MAAM4B,MAAM,CAAC;IAEzC,MAAMC,aAAa5B,YACjB,OAAO,EAAEoB,gBAAgBS,iBAAiB,EAAE;QAC1C,IAAIH,oBAAoBI,OAAO,EAAE;QACjC,MAAMC,QAGF;YACFC,OAAO;YACPC,OAAO5B;YACP6B,MAAML;YACNM,OAAO;gBACLC,KAAK;oBACH;wBACEC,IAAI;4BACFC,YAAYvB;wBACd;oBACF;iBACD;YACH;QACF;QAEA,IAAIF,UAAU;YACZkB,MAAMI,KAAK,CAACC,GAAG,CAACG,IAAI,CAAC;gBACnBC,QAAQ;oBACNC,QAAQ5B;gBACV;YACF;QACF;QAEA,MAAM6B,SAAS5C,GAAG6C,SAAS,CAACZ;QAE5B,MAAMa,WAAW,MAAMC,MAAM,CAAC,EAAEpC,QAAQ,CAAC,EAAEiC,OAAO,CAAC,EAAE;YACnDI,aAAa;YACbC,SAAS;gBACP,mBAAmBvB,KAAKwB,QAAQ;YAClC;QACF;QAEA,IAAIJ,SAASK,EAAE,EAAE;YACf,MAAMC,OAAsB,MAAMN,SAASO,IAAI;YAE/C,IAAID,KAAKE,IAAI,CAACC,MAAM,GAAG,GAAG;gBACxB,MAAMC,cAAc;oBAClBC,OAAO;wBACLC,cAAc/B,EAAE;wBAChBgC,eAAe/C;wBACfgD,WAAWC;wBACXC,eAAenC,EAAE;oBACnB;oBACAoC,WAAW;wBACTL,cAAc/B,EAAE;wBAChBgC,eAAe9C;wBACf+C,WAAW;wBACXE,eAAenC,EAAE;oBACnB;gBACF;gBAEA,MAAMqC,oBAAoBZ,KAAKE,IAAI,CAACW,GAAG,CAAC,CAACC;oBACvC,MAAMC,SAASD,IAAIE,OAAO,CAACC,OAAO;oBAClC,MAAM,EAAEX,YAAY,EAAEC,aAAa,EAAEC,SAAS,EAAEE,aAAa,EAAE,GAC7DN,WAAW,CAACW,OAAO,IAAI,CAAC;oBAE1B,OAAO;wBACLG,qBACE,MAACC;;gCACExE,WAAW;oCAAEyE,MAAMN,IAAIO,SAAS;oCAAE/C;oCAAMgD,SAASvD;gCAAW;gCAAG;gCAE/Dd,WAAW6D,KAAKP,eAAeD,cAAcI,eAAeF;;;wBAGjE5C,OAAOkD,IAAI3B,EAAE;oBACf;gBACF;gBAEAlB,WAAW,CAACsD,kBAAoB;2BAAIA;2BAAoBX;qBAAkB;gBAE1E,IAAI,CAACZ,KAAKwB,WAAW,EAAE;oBACrBhD,oBAAoBI,OAAO,GAAG;gBAChC;gBACAT,kBAAkB6B,KAAKhB,IAAI;YAC7B;QACF,OAAO;YACLX,gBAAgBE,EAAE;QACpB;IACF,GACA;QAACR;QAAYR;QAASI;QAAUE;QAAWU;QAAGD;QAAMd;QAAoBC;KAAuB;IAGjGV,UAAU;QACR,KAAK2B,WAAW;YAAER,gBAAgB;QAAE;IACtC,GAAG;QAACQ;KAAW;IAEf,MAAM+C,kBAAkBzD,QAAQ0D,MAAM,CACpC,CAACC,QAAQC,OAAOC,OAASA,KAAKC,SAAS,CAAC,CAACvD,IAAMA,EAAEX,KAAK,KAAK+D,OAAO/D,KAAK,MAAMgE;IAG/E7E,UAAU;QACR,IAAI0E,gBAAgBtB,MAAM,GAAG,KAAK,CAACvC,OAAO;YACxCF,SAAS+D,eAAe,CAAC,EAAE;QAC7B;IACF,GAAG;QAACA;QAAiB7D;QAAOF;KAAS;IAErC,qBACE,MAACyD;QACCY,WAAW;YAACvF;YAAgBU;YAAWkB,gBAAgB;SAAgB,CACpEsD,MAAM,CAACM,SACPC,IAAI,CAAC;;0BAER,KAACd;gBAAIY,WAAW,CAAC,EAAE7E,UAAU,OAAO,CAAC;0BAAGqB,EAAE;;YACzC,CAACH,8BACA,KAAC7B;gBACC2F,aAAa;gBACbC,cAAc;gBACdzE,UAAUA;gBACV0E,sBAAsB;oBACpB,KAAK1D,WAAW;wBAAER,gBAAgBA,iBAAiB;oBAAE;gBACvD;gBACAF,SAASyD;gBACTY,aAAa9D,EAAE;gBACfX,OAAOA;;YAGVQ,8BAAgB,KAAC+C;gBAAIY,WAAW,CAAC,EAAE7E,UAAU,eAAe,CAAC;0BAAGkB;;;;AAGvE,EAAC"}
@@ -3,7 +3,7 @@
3
3
  border: 1px solid var(--theme-error-500);
4
4
  min-height: calc(var(--base) * 2);
5
5
  padding: calc(var(--base) * 0.5) calc(var(--base) * 0.75);
6
- background-color: var(--theme-error-500);
6
+ background-color: var(--theme-error-100);
7
7
  color: var(--theme-elevation-0);
8
8
  }
9
9
 
@@ -2,9 +2,10 @@ import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload';
2
2
  import type { CompareOption } from '../Default/types.js';
3
3
  export type Props = {
4
4
  baseURL: string;
5
+ latestDraftVersion?: string;
6
+ latestPublishedVersion?: string;
5
7
  onChange: (val: CompareOption) => void;
6
8
  parentID?: number | string;
7
- publishedDoc: any;
8
9
  value: CompareOption;
9
10
  versionID: string;
10
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,YAAY,EAAE,GAAG,CAAA;IACjB,KAAK,EAAE,aAAa,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAA;AAEhC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,KAAK,EAAE,aAAa,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAA;AAEhC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/SelectComparison/types.ts"],"sourcesContent":["import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload'\n\nimport type { CompareOption } from '../Default/types.js'\n\nexport type Props = {\n baseURL: string\n onChange: (val: CompareOption) => void\n parentID?: number | string\n publishedDoc: any\n value: CompareOption\n versionID: string\n}\n\ntype CLEAR = {\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: SanitizedCollectionConfig\n data: PaginatedDocs<any>\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n"],"names":[],"rangeMappings":"","mappings":"AA0BA,WAGC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/SelectComparison/types.ts"],"sourcesContent":["import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload'\n\nimport type { CompareOption } from '../Default/types.js'\n\nexport type Props = {\n baseURL: string\n latestDraftVersion?: string\n latestPublishedVersion?: string\n onChange: (val: CompareOption) => void\n parentID?: number | string\n value: CompareOption\n versionID: string\n}\n\ntype CLEAR = {\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: SanitizedCollectionConfig\n data: PaginatedDocs<any>\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n"],"names":[],"mappings":"AA2BA,WAGC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"sourcesContent":["'use client'\nimport { ReactSelect, useLocale, useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'select-version-locales'\n\nexport const SelectLocales: React.FC<Props> = ({ onChange, options, value }) => {\n const { t } = useTranslation()\n const { code } = useLocale()\n\n const format = (items) => {\n return items.map((item) => {\n if (typeof item.label === 'string') return item\n if (typeof item.label !== 'string' && item.label[code]) {\n return {\n label: item.label[code],\n value: item.value,\n }\n }\n })\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__label`}>{t('version:showLocales')}</div>\n <ReactSelect\n isMulti\n onChange={onChange}\n options={format(options)}\n placeholder={t('version:selectLocales')}\n value={format(value)}\n />\n </div>\n )\n}\n"],"names":["ReactSelect","useLocale","useTranslation","React","baseClass","SelectLocales","onChange","options","value","t","code","format","items","map","item","label","div","className","isMulti","placeholder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACvE,OAAOC,WAAW,QAAO;AAMzB,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAAiC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,EAAE;IACzE,MAAM,EAAEC,CAAC,EAAE,GAAGP;IACd,MAAM,EAAEQ,IAAI,EAAE,GAAGT;IAEjB,MAAMU,SAAS,CAACC;QACd,OAAOA,MAAMC,GAAG,CAAC,CAACC;YAChB,IAAI,OAAOA,KAAKC,KAAK,KAAK,UAAU,OAAOD;YAC3C,IAAI,OAAOA,KAAKC,KAAK,KAAK,YAAYD,KAAKC,KAAK,CAACL,KAAK,EAAE;gBACtD,OAAO;oBACLK,OAAOD,KAAKC,KAAK,CAACL,KAAK;oBACvBF,OAAOM,KAAKN,KAAK;gBACnB;YACF;QACF;IACF;IAEA,qBACE,MAACQ;QAAIC,WAAWb;;0BACd,KAACY;gBAAIC,WAAW,CAAC,EAAEb,UAAU,OAAO,CAAC;0BAAGK,EAAE;;0BAC1C,KAACT;gBACCkB,OAAO;gBACPZ,UAAUA;gBACVC,SAASI,OAAOJ;gBAChBY,aAAaV,EAAE;gBACfD,OAAOG,OAAOH;;;;AAItB,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"sourcesContent":["'use client'\nimport { ReactSelect, useLocale, useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'select-version-locales'\n\nexport const SelectLocales: React.FC<Props> = ({ onChange, options, value }) => {\n const { t } = useTranslation()\n const { code } = useLocale()\n\n const format = (items) => {\n return items.map((item) => {\n if (typeof item.label === 'string') return item\n if (typeof item.label !== 'string' && item.label[code]) {\n return {\n label: item.label[code],\n value: item.value,\n }\n }\n })\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__label`}>{t('version:showLocales')}</div>\n <ReactSelect\n isMulti\n onChange={onChange}\n options={format(options)}\n placeholder={t('version:selectLocales')}\n value={format(value)}\n />\n </div>\n )\n}\n"],"names":["ReactSelect","useLocale","useTranslation","React","baseClass","SelectLocales","onChange","options","value","t","code","format","items","map","item","label","div","className","isMulti","placeholder"],"mappings":"AAAA;;AACA,SAASA,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACvE,OAAOC,WAAW,QAAO;AAMzB,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAAiC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,EAAE;IACzE,MAAM,EAAEC,CAAC,EAAE,GAAGP;IACd,MAAM,EAAEQ,IAAI,EAAE,GAAGT;IAEjB,MAAMU,SAAS,CAACC;QACd,OAAOA,MAAMC,GAAG,CAAC,CAACC;YAChB,IAAI,OAAOA,KAAKC,KAAK,KAAK,UAAU,OAAOD;YAC3C,IAAI,OAAOA,KAAKC,KAAK,KAAK,YAAYD,KAAKC,KAAK,CAACL,KAAK,EAAE;gBACtD,OAAO;oBACLK,OAAOD,KAAKC,KAAK,CAACL,KAAK;oBACvBF,OAAOM,KAAKN,KAAK;gBACnB;YACF;QACF;IACF;IAEA,qBACE,MAACQ;QAAIC,WAAWb;;0BACd,KAACY;gBAAIC,WAAW,CAAC,EAAEb,UAAU,OAAO,CAAC;0BAAGK,EAAE;;0BAC1C,KAACT;gBACCkB,OAAO;gBACPZ,UAAUA;gBACVC,SAASI,OAAOJ;gBAChBY,aAAaV,EAAE;gBACfD,OAAOG,OAAOH;;;;AAItB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/SelectLocales/types.ts"],"sourcesContent":["import type { OptionObject } from 'payload'\n\nexport type Props = {\n onChange: (options: OptionObject[]) => void\n options: OptionObject[]\n value: OptionObject[]\n}\n"],"names":[],"rangeMappings":"","mappings":"AAEA,WAIC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/SelectLocales/types.ts"],"sourcesContent":["import type { OptionObject } from 'payload'\n\nexport type Props = {\n onChange: (options: OptionObject[]) => void\n options: OptionObject[]\n value: OptionObject[]\n}\n"],"names":[],"mappings":"AAEA,WAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAOhB,eAAO,MAAM,WAAW,EAAE,iBA4HzB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,WAAW,EAAE,iBAiHzB,CAAA"}
@@ -1,10 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { notFound } from 'next/navigation.js';
3
3
  import React from 'react';
4
+ import { getLatestVersion } from '../Versions/getLatestVersion.js';
4
5
  import { DefaultVersionView } from './Default/index.js';
5
6
  export const VersionView = async (props)=>{
6
7
  const { initPageResult, routeSegments } = props;
7
- const { collectionConfig, docID: id, globalConfig, permissions, req: { payload, payload: { config } = {}, user } = {} } = initPageResult;
8
+ const { collectionConfig, docID: id, globalConfig, permissions, req, req: { payload, payload: { config } = {}, user } = {} } = initPageResult;
8
9
  const versionID = routeSegments[routeSegments.length - 1];
9
10
  const collectionSlug = collectionConfig?.slug;
10
11
  const globalSlug = globalConfig?.slug;
@@ -12,8 +13,8 @@ export const VersionView = async (props)=>{
12
13
  let docPermissions;
13
14
  let slug;
14
15
  let doc;
15
- let publishedDoc;
16
- let mostRecentDoc;
16
+ let latestPublishedVersion = null;
17
+ let latestDraftVersion = null;
17
18
  if (collectionSlug) {
18
19
  // /collections/:slug/:id/versions/:versionID
19
20
  slug = collectionSlug;
@@ -25,26 +26,13 @@ export const VersionView = async (props)=>{
25
26
  depth: 1,
26
27
  locale: '*',
27
28
  overrideAccess: false,
29
+ req,
28
30
  user
29
31
  });
30
- publishedDoc = await payload.findByID({
31
- id,
32
- collection: slug,
33
- depth: 1,
34
- draft: false,
35
- locale: '*',
36
- overrideAccess: false,
37
- user
38
- });
39
- mostRecentDoc = await payload.findByID({
40
- id,
41
- collection: slug,
42
- depth: 1,
43
- draft: true,
44
- locale: '*',
45
- overrideAccess: false,
46
- user
47
- });
32
+ if (collectionConfig?.versions?.drafts) {
33
+ latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection');
34
+ latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection');
35
+ }
48
36
  } catch (error) {
49
37
  return notFound();
50
38
  }
@@ -60,42 +48,39 @@ export const VersionView = async (props)=>{
60
48
  depth: 1,
61
49
  locale: '*',
62
50
  overrideAccess: false,
51
+ req,
63
52
  user
64
53
  });
65
- publishedDoc = await payload.findGlobal({
66
- slug,
67
- depth: 1,
68
- draft: false,
69
- locale: '*',
70
- overrideAccess: false,
71
- user
72
- });
73
- mostRecentDoc = await payload.findGlobal({
74
- slug,
75
- depth: 1,
76
- draft: true,
77
- locale: '*',
78
- overrideAccess: false,
79
- user
80
- });
54
+ if (globalConfig?.versions?.drafts) {
55
+ latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global');
56
+ latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global');
57
+ }
81
58
  } catch (error) {
82
59
  return notFound();
83
60
  }
84
61
  }
62
+ const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt;
63
+ if (publishedNewerThanDraft) {
64
+ latestDraftVersion = {
65
+ id: '',
66
+ updatedAt: ''
67
+ };
68
+ }
85
69
  const localeOptions = localization && localization?.locales && localization.locales.map(({ code, label })=>({
86
70
  label: typeof label === 'string' ? label : '',
87
71
  value: code
88
72
  }));
73
+ const latestVersion = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt ? latestPublishedVersion : latestDraftVersion;
89
74
  if (!doc) {
90
75
  return notFound();
91
76
  }
92
77
  return /*#__PURE__*/ _jsx(DefaultVersionView, {
93
78
  doc: doc,
94
79
  docPermissions: docPermissions,
95
- initialComparisonDoc: mostRecentDoc,
80
+ initialComparisonDoc: latestVersion,
81
+ latestDraftVersion: latestDraftVersion?.id,
82
+ latestPublishedVersion: latestPublishedVersion?.id,
96
83
  localeOptions: localeOptions,
97
- mostRecentDoc: mostRecentDoc,
98
- publishedDoc: publishedDoc,
99
84
  versionID: versionID
100
85
  });
101
86
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let publishedDoc: Document\n let mostRecentDoc: Document\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n user,\n })\n\n publishedDoc = await payload.findByID({\n id,\n collection: slug,\n depth: 1,\n draft: false,\n locale: '*',\n overrideAccess: false,\n user,\n })\n\n mostRecentDoc = await payload.findByID({\n id,\n collection: slug,\n depth: 1,\n draft: true,\n locale: '*',\n overrideAccess: false,\n user,\n })\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n user,\n })\n\n publishedDoc = await payload.findGlobal({\n slug,\n depth: 1,\n draft: false,\n locale: '*',\n overrideAccess: false,\n user,\n })\n\n mostRecentDoc = await payload.findGlobal({\n slug,\n depth: 1,\n draft: true,\n locale: '*',\n overrideAccess: false,\n user,\n })\n } catch (error) {\n return notFound()\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization?.locales &&\n localization.locales.map(({ code, label }) => ({\n label: typeof label === 'string' ? label : '',\n value: code,\n }))\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={mostRecentDoc}\n localeOptions={localeOptions}\n mostRecentDoc={mostRecentDoc}\n publishedDoc={publishedDoc}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","React","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","publishedDoc","mostRecentDoc","collections","findVersionByID","collection","depth","locale","overrideAccess","findByID","draft","error","globals","findGlobalVersionByID","findGlobal","localeOptions","locales","map","code","label","value","initialComparisonDoc"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAQA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC;IACJ,IAAIC;IAEJ,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBhB;YACF;YAEAS,eAAe,MAAMX,QAAQmB,QAAQ,CAAC;gBACpCvB;gBACAmB,YAAYT;gBACZU,OAAO;gBACPI,OAAO;gBACPH,QAAQ;gBACRC,gBAAgB;gBAChBhB;YACF;YAEAU,gBAAgB,MAAMZ,QAAQmB,QAAQ,CAAC;gBACrCvB;gBACAmB,YAAYT;gBACZU,OAAO;gBACPI,OAAO;gBACPH,QAAQ;gBACRC,gBAAgB;gBAChBhB;YACF;QACF,EAAE,OAAOmB,OAAO;YACd,OAAOlC;QACT;IACF;IAEA,IAAIoB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAYwB,OAAO,CAACf,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQuB,qBAAqB,CAAC;gBACxC3B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBhB;YACF;YAEAS,eAAe,MAAMX,QAAQwB,UAAU,CAAC;gBACtClB;gBACAU,OAAO;gBACPI,OAAO;gBACPH,QAAQ;gBACRC,gBAAgB;gBAChBhB;YACF;YAEAU,gBAAgB,MAAMZ,QAAQwB,UAAU,CAAC;gBACvClB;gBACAU,OAAO;gBACPI,OAAO;gBACPH,QAAQ;gBACRC,gBAAgB;gBAChBhB;YACF;QACF,EAAE,OAAOmB,OAAO;YACd,OAAOlC;QACT;IACF;IAEA,MAAMsC,gBACJjB,gBACAA,cAAckB,WACdlB,aAAakB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA,OAAO,OAAOA,UAAU,WAAWA,QAAQ;YAC3CC,OAAOF;QACT,CAAA;IAEF,IAAI,CAAClB,KAAK;QACR,OAAOvB;IACT;IAEA,qBACE,KAACE;QACCqB,KAAKA;QACLD,gBAAgBA;QAChBsB,sBAAsBnB;QACtBa,eAAeA;QACfb,eAAeA;QACfD,cAAcA;QACdR,WAAWA;;AAGjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization?.locales &&\n localization.locales.map(({ code, label }) => ({\n label: typeof label === 'string' ? label : '',\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","initialComparisonDoc"],"mappings":";AAQA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,GAAG,EACHA,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC,yBAAyB;IAC7B,IAAIC,qBAAqB;IAEzB,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIR,kBAAkByB,UAAUC,QAAQ;gBACtCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,IAAIqB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAYwB,OAAO,CAACf,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQuB,qBAAqB,CAAC;gBACxC3B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIL,cAAcsB,UAAUC,QAAQ;gBAClCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,MAAMsC,0BAA0Bb,wBAAwBc,YAAYb,oBAAoBa;IAExF,IAAID,yBAAyB;QAC3BZ,qBAAqB;YACnBhB,IAAI;YACJ6B,WAAW;QACb;IACF;IAEA,MAAMC,gBACJlB,gBACAA,cAAcmB,WACdnB,aAAamB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA,OAAO,OAAOA,UAAU,WAAWA,QAAQ;YAC3CC,OAAOF;QACT,CAAA;IAEF,MAAMG,gBACJrB,wBAAwBc,YAAYb,oBAAoBa,YACpDd,yBACAC;IAEN,IAAI,CAACF,KAAK;QACR,OAAOxB;IACT;IAEA,qBACE,KAACG;QACCqB,KAAKA;QACLD,gBAAgBA;QAChBwB,sBAAsBD;QACtBpB,oBAAoBA,oBAAoBhB;QACxCe,wBAAwBA,wBAAwBf;QAChD8B,eAAeA;QACfvB,WAAWA;;AAGjB,EAAC"}