@payloadcms/next 3.0.0-canary.291e44c → 3.0.0-canary.2d0dd26

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 (443) hide show
  1. package/dist/cjs/withPayload.cjs +166 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -0
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -0
  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 +13 -15
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
  11. package/dist/elements/DocumentHeader/Tabs/index.d.ts +2 -2
  12. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/index.js +9 -14
  14. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
  16. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +13 -28
  18. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -1
  21. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  22. package/dist/elements/DocumentHeader/index.d.ts +2 -3
  23. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentHeader/index.js +9 -12
  25. package/dist/elements/DocumentHeader/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/index.scss +44 -42
  27. package/dist/elements/FormHeader/index.scss +7 -5
  28. package/dist/elements/Logo/index.d.ts.map +1 -1
  29. package/dist/elements/Logo/index.js +5 -6
  30. package/dist/elements/Logo/index.js.map +1 -1
  31. package/dist/elements/Nav/NavWrapper/index.scss +20 -18
  32. package/dist/elements/Nav/getNavPrefs.d.ts +6 -0
  33. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -0
  34. package/dist/elements/Nav/getNavPrefs.js +26 -0
  35. package/dist/elements/Nav/getNavPrefs.js.map +1 -0
  36. package/dist/elements/Nav/index.client.d.ts +6 -1
  37. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  38. package/dist/elements/Nav/index.client.js +44 -94
  39. package/dist/elements/Nav/index.client.js.map +1 -1
  40. package/dist/elements/Nav/index.d.ts.map +1 -1
  41. package/dist/elements/Nav/index.js +66 -23
  42. package/dist/elements/Nav/index.js.map +1 -1
  43. package/dist/elements/Nav/index.scss +127 -125
  44. package/dist/exports/layouts.d.ts +1 -0
  45. package/dist/exports/layouts.d.ts.map +1 -1
  46. package/dist/exports/layouts.js +1 -0
  47. package/dist/exports/layouts.js.map +1 -1
  48. package/dist/exports/routes.d.ts +1 -1
  49. package/dist/exports/routes.d.ts.map +1 -1
  50. package/dist/exports/routes.js +1 -1
  51. package/dist/exports/routes.js.map +1 -1
  52. package/dist/exports/utilities.d.ts +2 -1
  53. package/dist/exports/utilities.d.ts.map +1 -1
  54. package/dist/exports/utilities.js +3 -1
  55. package/dist/exports/utilities.js.map +1 -1
  56. package/dist/exports/views.d.ts +0 -2
  57. package/dist/exports/views.d.ts.map +1 -1
  58. package/dist/exports/views.js +0 -2
  59. package/dist/exports/views.js.map +1 -1
  60. package/dist/fetchAPI-multipart/isEligibleRequest.js +1 -1
  61. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  62. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  63. package/dist/fetchAPI-multipart/processMultipart.js +9 -11
  64. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  65. package/dist/layouts/Root/NestProviders.d.ts +11 -0
  66. package/dist/layouts/Root/NestProviders.d.ts.map +1 -0
  67. package/dist/layouts/Root/NestProviders.js +21 -0
  68. package/dist/layouts/Root/NestProviders.js.map +1 -0
  69. package/dist/layouts/Root/checkDependencies.d.ts +2 -0
  70. package/dist/layouts/Root/checkDependencies.d.ts.map +1 -0
  71. package/dist/layouts/Root/checkDependencies.js +49 -0
  72. package/dist/layouts/Root/checkDependencies.js.map +1 -0
  73. package/dist/layouts/Root/index.d.ts +4 -3
  74. package/dist/layouts/Root/index.d.ts.map +1 -1
  75. package/dist/layouts/Root/index.js +35 -96
  76. package/dist/layouts/Root/index.js.map +1 -1
  77. package/dist/prod/styles.css +1 -1
  78. package/dist/routes/rest/collections/create.d.ts.map +1 -1
  79. package/dist/routes/rest/collections/create.js +5 -1
  80. package/dist/routes/rest/collections/create.js.map +1 -1
  81. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  82. package/dist/routes/rest/collections/delete.js +8 -0
  83. package/dist/routes/rest/collections/delete.js.map +1 -1
  84. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  85. package/dist/routes/rest/collections/deleteByID.js +7 -1
  86. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  87. package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
  88. package/dist/routes/rest/collections/duplicate.js +5 -1
  89. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  90. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  91. package/dist/routes/rest/collections/find.js +7 -1
  92. package/dist/routes/rest/collections/find.js.map +1 -1
  93. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  94. package/dist/routes/rest/collections/findByID.js +5 -1
  95. package/dist/routes/rest/collections/findByID.js.map +1 -1
  96. package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
  97. package/dist/routes/rest/collections/findVersionByID.js +5 -1
  98. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  99. package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
  100. package/dist/routes/rest/collections/findVersions.js +7 -1
  101. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  102. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  103. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  104. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  105. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  106. package/dist/routes/rest/collections/update.js +10 -0
  107. package/dist/routes/rest/collections/update.js.map +1 -1
  108. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  109. package/dist/routes/rest/collections/updateByID.js +7 -1
  110. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  111. package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
  112. package/dist/routes/rest/globals/findOne.js +5 -1
  113. package/dist/routes/rest/globals/findOne.js.map +1 -1
  114. package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
  115. package/dist/routes/rest/globals/findVersionByID.js +5 -1
  116. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  117. package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
  118. package/dist/routes/rest/globals/findVersions.js +7 -1
  119. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  120. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  121. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  122. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  123. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  124. package/dist/routes/rest/globals/update.js +5 -1
  125. package/dist/routes/rest/globals/update.js.map +1 -1
  126. package/dist/routes/rest/index.d.ts +5 -0
  127. package/dist/routes/rest/index.d.ts.map +1 -1
  128. package/dist/routes/rest/index.js +73 -10
  129. package/dist/routes/rest/index.js.map +1 -1
  130. package/dist/routes/rest/og/image.d.ts +4 -2
  131. package/dist/routes/rest/og/image.d.ts.map +1 -1
  132. package/dist/routes/rest/og/image.js +7 -3
  133. package/dist/routes/rest/og/image.js.map +1 -1
  134. package/dist/routes/rest/og/index.d.ts.map +1 -1
  135. package/dist/routes/rest/og/index.js +7 -12
  136. package/dist/routes/rest/og/index.js.map +1 -1
  137. package/dist/routes/rest/routeError.d.ts.map +1 -1
  138. package/dist/routes/rest/routeError.js +10 -50
  139. package/dist/routes/rest/routeError.js.map +1 -1
  140. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +1 -1
  141. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -1
  142. package/dist/routes/rest/utilities/sanitizeJoinParams.js +9 -5
  143. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -1
  144. package/dist/routes/rest/utilities/sanitizePopulate.d.ts +3 -0
  145. package/dist/routes/rest/utilities/sanitizePopulate.d.ts.map +1 -0
  146. package/dist/routes/rest/utilities/sanitizePopulate.js +11 -0
  147. package/dist/routes/rest/utilities/sanitizePopulate.js.map +1 -0
  148. package/dist/routes/rest/utilities/sanitizeSelect.d.ts +6 -0
  149. package/dist/routes/rest/utilities/sanitizeSelect.d.ts.map +1 -0
  150. package/dist/routes/rest/utilities/sanitizeSelect.js +17 -0
  151. package/dist/routes/rest/utilities/sanitizeSelect.js.map +1 -0
  152. package/dist/templates/Default/Wrapper/index.scss +38 -36
  153. package/dist/templates/Default/index.d.ts +2 -1
  154. package/dist/templates/Default/index.d.ts.map +1 -1
  155. package/dist/templates/Default/index.js +97 -41
  156. package/dist/templates/Default/index.js.map +1 -1
  157. package/dist/templates/Default/index.scss +60 -58
  158. package/dist/templates/Minimal/index.scss +22 -20
  159. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  160. package/dist/utilities/addLocalesToRequest.js +18 -8
  161. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  162. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  163. package/dist/utilities/createPayloadRequest.js +15 -13
  164. package/dist/utilities/createPayloadRequest.js.map +1 -1
  165. package/dist/utilities/getClientConfig.d.ts +8 -0
  166. package/dist/utilities/getClientConfig.d.ts.map +1 -0
  167. package/dist/utilities/getClientConfig.js +16 -0
  168. package/dist/utilities/getClientConfig.js.map +1 -0
  169. package/dist/utilities/getPayloadHMR.d.ts +1 -2
  170. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  171. package/dist/utilities/getPayloadHMR.js +4 -102
  172. package/dist/utilities/getPayloadHMR.js.map +1 -1
  173. package/dist/utilities/getRequestLocales.d.ts.map +1 -1
  174. package/dist/utilities/getRequestLocales.js +10 -6
  175. package/dist/utilities/getRequestLocales.js.map +1 -1
  176. package/dist/utilities/handleServerFunctions.d.ts +3 -0
  177. package/dist/utilities/handleServerFunctions.d.ts.map +1 -0
  178. package/dist/utilities/handleServerFunctions.js +35 -0
  179. package/dist/utilities/handleServerFunctions.js.map +1 -0
  180. package/dist/utilities/initPage/handleAdminPage.d.ts +5 -3
  181. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  182. package/dist/utilities/initPage/handleAdminPage.js +10 -1
  183. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  184. package/dist/utilities/initPage/handleAuthRedirect.js +2 -2
  185. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  186. package/dist/utilities/initPage/index.d.ts.map +1 -1
  187. package/dist/utilities/initPage/index.js +11 -5
  188. package/dist/utilities/initPage/index.js.map +1 -1
  189. package/dist/utilities/initPage/isCustomAdminView.d.ts +10 -0
  190. package/dist/utilities/initPage/isCustomAdminView.d.ts.map +1 -0
  191. package/dist/utilities/initPage/isCustomAdminView.js +31 -0
  192. package/dist/utilities/initPage/isCustomAdminView.js.map +1 -0
  193. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  194. package/dist/utilities/initPage/shared.js +2 -1
  195. package/dist/utilities/initPage/shared.js.map +1 -1
  196. package/dist/utilities/initReq.d.ts +3 -3
  197. package/dist/utilities/initReq.d.ts.map +1 -1
  198. package/dist/utilities/initReq.js +5 -6
  199. package/dist/utilities/initReq.js.map +1 -1
  200. package/dist/views/API/LocaleSelector/index.js +2 -2
  201. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  202. package/dist/views/API/RenderJSON/index.scss +68 -66
  203. package/dist/views/API/index.client.d.ts.map +1 -1
  204. package/dist/views/API/index.client.js +16 -16
  205. package/dist/views/API/index.client.js.map +1 -1
  206. package/dist/views/Account/Settings/index.js +0 -1
  207. package/dist/views/Account/Settings/index.js.map +1 -1
  208. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  209. package/dist/views/Account/ToggleTheme/index.js +2 -0
  210. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  211. package/dist/views/Account/index.d.ts.map +1 -1
  212. package/dist/views/Account/index.js +82 -29
  213. package/dist/views/Account/index.js.map +1 -1
  214. package/dist/views/CreateFirstUser/index.client.d.ts +3 -1
  215. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  216. package/dist/views/CreateFirstUser/index.client.js +83 -108
  217. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  218. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  219. package/dist/views/CreateFirstUser/index.js +36 -4
  220. package/dist/views/CreateFirstUser/index.js.map +1 -1
  221. package/dist/views/Dashboard/Default/index.d.ts +5 -3
  222. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  223. package/dist/views/Dashboard/Default/index.js +58 -47
  224. package/dist/views/Dashboard/Default/index.js.map +1 -1
  225. package/dist/views/Dashboard/index.d.ts.map +1 -1
  226. package/dist/views/Dashboard/index.js +55 -37
  227. package/dist/views/Dashboard/index.js.map +1 -1
  228. package/dist/views/Document/getDocPreferences.d.ts +11 -0
  229. package/dist/views/Document/getDocPreferences.d.ts.map +1 -0
  230. package/dist/views/Document/getDocPreferences.js +44 -0
  231. package/dist/views/Document/getDocPreferences.js.map +1 -0
  232. package/dist/views/Document/getDocumentData.d.ts +10 -11
  233. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  234. package/dist/views/Document/getDocumentData.js +35 -45
  235. package/dist/views/Document/getDocumentData.js.map +1 -1
  236. package/dist/views/Document/getDocumentPermissions.d.ts +2 -2
  237. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  238. package/dist/views/Document/getDocumentPermissions.js +10 -7
  239. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  240. package/dist/views/Document/getIsLocked.d.ts +16 -0
  241. package/dist/views/Document/getIsLocked.d.ts.map +1 -0
  242. package/dist/views/Document/getIsLocked.js +55 -0
  243. package/dist/views/Document/getIsLocked.js.map +1 -0
  244. package/dist/views/Document/getVersions.d.ts +19 -0
  245. package/dist/views/Document/getVersions.d.ts.map +1 -0
  246. package/dist/views/Document/getVersions.js +181 -0
  247. package/dist/views/Document/getVersions.js.map +1 -0
  248. package/dist/views/Document/getViewsFromConfig.d.ts +3 -3
  249. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  250. package/dist/views/Document/getViewsFromConfig.js +30 -25
  251. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  252. package/dist/views/Document/handleServerFunction.d.ts +25 -0
  253. package/dist/views/Document/handleServerFunction.d.ts.map +1 -0
  254. package/dist/views/Document/handleServerFunction.js +159 -0
  255. package/dist/views/Document/handleServerFunction.js.map +1 -0
  256. package/dist/views/Document/index.d.ts +5 -1
  257. package/dist/views/Document/index.d.ts.map +1 -1
  258. package/dist/views/Document/index.js +184 -73
  259. package/dist/views/Document/index.js.map +1 -1
  260. package/dist/views/Document/renderDocumentSlots.d.ts +12 -0
  261. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -0
  262. package/dist/views/Document/renderDocumentSlots.js +92 -0
  263. package/dist/views/Document/renderDocumentSlots.js.map +1 -0
  264. package/dist/views/Edit/index.d.ts +3 -2
  265. package/dist/views/Edit/index.d.ts.map +1 -1
  266. package/dist/views/Edit/index.js +7 -3
  267. package/dist/views/Edit/index.js.map +1 -1
  268. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  269. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +5 -1
  270. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  271. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  272. package/dist/views/ForgotPassword/index.js +2 -0
  273. package/dist/views/ForgotPassword/index.js.map +1 -1
  274. package/dist/views/List/handleServerFunction.d.ts +27 -0
  275. package/dist/views/List/handleServerFunction.d.ts.map +1 -0
  276. package/dist/views/List/handleServerFunction.js +158 -0
  277. package/dist/views/List/handleServerFunction.js.map +1 -0
  278. package/dist/views/List/index.d.ts +12 -2
  279. package/dist/views/List/index.d.ts.map +1 -1
  280. package/dist/views/List/index.js +145 -85
  281. package/dist/views/List/index.js.map +1 -1
  282. package/dist/views/List/renderListViewSlots.d.ts +12 -0
  283. package/dist/views/List/renderListViewSlots.d.ts.map +1 -0
  284. package/dist/views/List/renderListViewSlots.js +56 -0
  285. package/dist/views/List/renderListViewSlots.js.map +1 -0
  286. package/dist/views/LivePreview/Context/sizeReducer.d.ts +1 -1
  287. package/dist/views/LivePreview/Context/sizeReducer.d.ts.map +1 -1
  288. package/dist/views/LivePreview/Context/sizeReducer.js +4 -4
  289. package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
  290. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  291. package/dist/views/LivePreview/index.client.js +52 -42
  292. package/dist/views/LivePreview/index.client.js.map +1 -1
  293. package/dist/views/LivePreview/index.d.ts.map +1 -1
  294. package/dist/views/LivePreview/index.js +5 -36
  295. package/dist/views/LivePreview/index.js.map +1 -1
  296. package/dist/views/Login/LoginField/index.d.ts.map +1 -1
  297. package/dist/views/Login/LoginField/index.js +6 -1
  298. package/dist/views/Login/LoginField/index.js.map +1 -1
  299. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  300. package/dist/views/Login/LoginForm/index.js +4 -2
  301. package/dist/views/Login/LoginForm/index.js.map +1 -1
  302. package/dist/views/Login/index.d.ts.map +1 -1
  303. package/dist/views/Login/index.js +26 -20
  304. package/dist/views/Login/index.js.map +1 -1
  305. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  306. package/dist/views/Logout/LogoutClient.js +79 -56
  307. package/dist/views/Logout/LogoutClient.js.map +1 -1
  308. package/dist/views/NotFound/index.d.ts.map +1 -1
  309. package/dist/views/NotFound/index.js +3 -0
  310. package/dist/views/NotFound/index.js.map +1 -1
  311. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
  312. package/dist/views/ResetPassword/ResetPasswordForm/index.js +13 -12
  313. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  314. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  315. package/dist/views/ResetPassword/index.js +2 -0
  316. package/dist/views/ResetPassword/index.js.map +1 -1
  317. package/dist/views/Root/getViewFromConfig.d.ts +3 -1
  318. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  319. package/dist/views/Root/getViewFromConfig.js +128 -7
  320. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  321. package/dist/views/Root/index.d.ts.map +1 -1
  322. package/dist/views/Root/index.js +35 -15
  323. package/dist/views/Root/index.js.map +1 -1
  324. package/dist/views/Version/Default/index.d.ts.map +1 -1
  325. package/dist/views/Version/Default/index.js +3 -5
  326. package/dist/views/Version/Default/index.js.map +1 -1
  327. package/dist/views/Version/Default/types.d.ts +2 -2
  328. package/dist/views/Version/Default/types.d.ts.map +1 -1
  329. package/dist/views/Version/Default/types.js.map +1 -1
  330. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +4 -2
  331. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  332. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  333. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  334. package/dist/views/Version/RenderFieldsToDiff/index.js +3 -3
  335. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  336. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +4 -2
  337. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  338. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  339. package/dist/views/Version/Restore/index.js +1 -1
  340. package/dist/views/Version/Restore/index.js.map +1 -1
  341. package/dist/views/Version/index.d.ts.map +1 -1
  342. package/dist/views/Version/index.js.map +1 -1
  343. package/dist/views/Versions/buildColumns.d.ts +3 -2
  344. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  345. package/dist/views/Versions/buildColumns.js +33 -61
  346. package/dist/views/Versions/buildColumns.js.map +1 -1
  347. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -0
  348. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  349. package/dist/views/Versions/cells/AutosaveCell/index.js +48 -37
  350. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  351. package/dist/views/Versions/cells/CreatedAt/index.d.ts +4 -0
  352. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  353. package/dist/views/Versions/cells/CreatedAt/index.js +43 -44
  354. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  355. package/dist/views/Versions/cells/ID/index.d.ts +3 -1
  356. package/dist/views/Versions/cells/ID/index.d.ts.map +1 -1
  357. package/dist/views/Versions/cells/ID/index.js +7 -19
  358. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  359. package/dist/views/Versions/getLatestVersion.js +1 -1
  360. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  361. package/dist/views/Versions/index.client.d.ts.map +1 -1
  362. package/dist/views/Versions/index.client.js +53 -51
  363. package/dist/views/Versions/index.client.js.map +1 -1
  364. package/dist/views/Versions/index.d.ts.map +1 -1
  365. package/dist/views/Versions/index.js +5 -6
  366. package/dist/views/Versions/index.js.map +1 -1
  367. package/dist/withPayload.d.ts.map +1 -1
  368. package/dist/withPayload.js +19 -1
  369. package/dist/withPayload.js.map +1 -1
  370. package/license.md +22 -0
  371. package/package.json +21 -14
  372. package/dist/cjs/withPayload.js +0 -111
  373. package/dist/cjs/withPayload.js.map +0 -1
  374. package/dist/elements/DocumentLocked/index.d.ts +0 -12
  375. package/dist/elements/DocumentLocked/index.d.ts.map +0 -1
  376. package/dist/elements/DocumentLocked/index.js +0 -142
  377. package/dist/elements/DocumentLocked/index.js.map +0 -1
  378. package/dist/elements/DocumentLocked/index.scss +0 -37
  379. package/dist/elements/DocumentTakeOver/index.d.ts +0 -8
  380. package/dist/elements/DocumentTakeOver/index.d.ts.map +0 -1
  381. package/dist/elements/DocumentTakeOver/index.js +0 -98
  382. package/dist/elements/DocumentTakeOver/index.js.map +0 -1
  383. package/dist/elements/DocumentTakeOver/index.scss +0 -37
  384. package/dist/elements/EmailAndUsername/index.d.ts +0 -14
  385. package/dist/elements/EmailAndUsername/index.d.ts.map +0 -1
  386. package/dist/elements/EmailAndUsername/index.js +0 -121
  387. package/dist/elements/EmailAndUsername/index.js.map +0 -1
  388. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -4
  389. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +0 -1
  390. package/dist/elements/LeaveWithoutSaving/index.js +0 -162
  391. package/dist/elements/LeaveWithoutSaving/index.js.map +0 -1
  392. package/dist/elements/LeaveWithoutSaving/index.scss +0 -37
  393. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts +0 -9
  394. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +0 -1
  395. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +0 -136
  396. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +0 -1
  397. package/dist/routes/rest/buildFormState.d.ts +0 -5
  398. package/dist/routes/rest/buildFormState.d.ts.map +0 -1
  399. package/dist/routes/rest/buildFormState.js +0 -46
  400. package/dist/routes/rest/buildFormState.js.map +0 -1
  401. package/dist/views/Edit/Default/Auth/APIKey.d.ts +0 -6
  402. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +0 -1
  403. package/dist/views/Edit/Default/Auth/APIKey.js +0 -131
  404. package/dist/views/Edit/Default/Auth/APIKey.js.map +0 -1
  405. package/dist/views/Edit/Default/Auth/index.d.ts +0 -5
  406. package/dist/views/Edit/Default/Auth/index.d.ts.map +0 -1
  407. package/dist/views/Edit/Default/Auth/index.js +0 -307
  408. package/dist/views/Edit/Default/Auth/index.js.map +0 -1
  409. package/dist/views/Edit/Default/Auth/index.scss +0 -78
  410. package/dist/views/Edit/Default/Auth/types.d.ts +0 -17
  411. package/dist/views/Edit/Default/Auth/types.d.ts.map +0 -1
  412. package/dist/views/Edit/Default/Auth/types.js +0 -2
  413. package/dist/views/Edit/Default/Auth/types.js.map +0 -1
  414. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts +0 -11
  415. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +0 -1
  416. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +0 -130
  417. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +0 -1
  418. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts +0 -8
  419. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts.map +0 -1
  420. package/dist/views/Edit/Default/SetDocumentTitle/index.js +0 -81
  421. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +0 -1
  422. package/dist/views/Edit/Default/index.d.ts +0 -4
  423. package/dist/views/Edit/Default/index.d.ts.map +0 -1
  424. package/dist/views/Edit/Default/index.js +0 -342
  425. package/dist/views/Edit/Default/index.js.map +0 -1
  426. package/dist/views/Edit/Default/index.scss +0 -23
  427. package/dist/views/Edit/Default/types.d.ts +0 -6
  428. package/dist/views/Edit/Default/types.d.ts.map +0 -1
  429. package/dist/views/Edit/Default/types.js +0 -2
  430. package/dist/views/Edit/Default/types.js.map +0 -1
  431. package/dist/views/Edit/index.client.d.ts +0 -3
  432. package/dist/views/Edit/index.client.d.ts.map +0 -1
  433. package/dist/views/Edit/index.client.js +0 -54
  434. package/dist/views/Edit/index.client.js.map +0 -1
  435. package/dist/views/List/Default/index.d.ts +0 -4
  436. package/dist/views/List/Default/index.d.ts.map +0 -1
  437. package/dist/views/List/Default/index.js +0 -387
  438. package/dist/views/List/Default/index.js.map +0 -1
  439. package/dist/views/List/Default/index.scss +0 -179
  440. package/dist/views/List/Default/types.d.ts +0 -15
  441. package/dist/views/List/Default/types.d.ts.map +0 -1
  442. package/dist/views/List/Default/types.js +0 -2
  443. package/dist/views/List/Default/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","SetStepNav","SetViewActions","EntityType","formatAdminURL","getCreateMappedComponent","RenderComponent","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","createMappedComponent","importMap","serverProps","mappedBeforeDashboards","undefined","mappedAfterDashboards","_jsxs","className","_jsx","nav","actions","mappedComponent","length","map","entities","label","groupIndex","type","entity","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","lockStatus","userEditing","collection","labels","plural","path","slug","collections","create","permission","global","globalLockData","find","data","_isLocked","_userEditing","id","singular","buttonStyle","el","icon","iconStyle","round","to","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, Permissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked, SetStepNav, SetViewActions } from '@payloadcms/ui'\nimport {\n EntityType,\n formatAdminURL,\n getCreateMappedComponent,\n RenderComponent,\n} from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{ data: { _isLocked: boolean; _userEditing: ClientUser | null }; slug: string }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: Permissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const mappedBeforeDashboards = createMappedComponent(\n beforeDashboard,\n undefined,\n undefined,\n 'beforeDashboard',\n )\n\n const mappedAfterDashboards = createMappedComponent(\n afterDashboard,\n undefined,\n undefined,\n 'afterDashboard',\n )\n\n return (\n <div className={baseClass}>\n <SetStepNav nav={[]} />\n <SetViewActions actions={[]} />\n <Gutter className={`${baseClass}__wrap`}>\n <RenderComponent mappedComponent={mappedBeforeDashboards} />\n <Fragment>\n <SetViewActions actions={[]} />\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ type, entity }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let lockStatus = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(entity.labels.plural, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${entity.slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${entity.slug}/create`,\n })\n\n hasCreatePermission =\n permissions?.collections?.[entity.slug]?.create?.permission\n }\n\n if (type === EntityType.global) {\n title = getTranslation(entity.label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(entity.label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${entity.slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find(\n (global) => global.slug === entity.slug,\n )\n if (globalLockData) {\n lockStatus = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n lockStatus && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label: getTranslation(entity.labels.singular, i18n),\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${entity.slug}`}\n Link={Link}\n title={title}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n <RenderComponent mappedComponent={mappedAfterDashboards} />\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, SanitizedPermissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, formatAdminURL } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: SanitizedPermissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard && (\n <RenderServerComponent\n Component={beforeDashboard}\n importMap={payload.importMap}\n serverProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n Link={Link}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard && (\n <RenderServerComponent\n Component={afterDashboard}\n importMap={payload.importMap}\n serverProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )}\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAU7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAiH9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuH9C,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { HydrateAuthProvider } from '@payloadcms/ui';
3
- import { EntityType, getCreateMappedComponent, groupNavItems, RenderComponent } from '@payloadcms/ui/shared';
2
+ import { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui';
3
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
+ import { EntityType, groupNavItems } from '@payloadcms/ui/shared';
4
5
  import LinkImport from 'next/link.js';
5
6
  import React, { Fragment } from 'react';
6
7
  import { DefaultDashboard } from './Default/index.js';
@@ -22,25 +23,42 @@ export const Dashboard = async ({
22
23
  payload,
23
24
  user
24
25
  },
26
+ req,
25
27
  visibleEntities
26
28
  } = initPageResult;
27
- const CustomDashboardComponent = config.admin.components?.views?.Dashboard;
28
- const collections = config.collections.filter(collection => permissions?.collections?.[collection.slug]?.read?.permission && visibleEntities.collections.includes(collection.slug));
29
- const globals = config.globals.filter(global => permissions?.globals?.[global.slug]?.read?.permission && visibleEntities.globals.includes(global.slug));
30
- const globalSlugs = config.globals.map(global => global.slug);
31
- // Filter the slugs based on permissions and visibility
32
- const filteredGlobalSlugs = globalSlugs.filter(slug => permissions?.globals?.[slug]?.read?.permission && visibleEntities.globals.includes(slug));
33
- const globalData = await Promise.all(filteredGlobalSlugs.map(async slug => {
34
- const data = await payload.findGlobal({
35
- slug,
36
- depth: 0,
37
- includeLockStatus: true
29
+ const collections = config.collections.filter(collection => permissions?.collections?.[collection.slug]?.read && visibleEntities.collections.includes(collection.slug));
30
+ const globals = config.globals.filter(global => permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug));
31
+ // Query locked global documents only if there are globals in the config
32
+ let globalData = [];
33
+ if (config.globals.length > 0) {
34
+ const lockedDocuments = await payload.find({
35
+ collection: 'payload-locked-documents',
36
+ depth: 1,
37
+ overrideAccess: false,
38
+ pagination: false,
39
+ req,
40
+ where: {
41
+ globalSlug: {
42
+ exists: true
43
+ }
44
+ }
38
45
  });
39
- return {
40
- slug,
41
- data
42
- };
43
- }));
46
+ // Map over globals to include `lockDuration` and lock data for each global slug
47
+ globalData = config.globals.map(global => {
48
+ const lockDurationDefault = 300;
49
+ const lockDuration = typeof global.lockDocuments === 'object' ? global.lockDocuments.duration : lockDurationDefault;
50
+ const lockedDoc = lockedDocuments.docs.find(doc => doc.globalSlug === global.slug);
51
+ return {
52
+ slug: global.slug,
53
+ data: {
54
+ _isLocked: !!lockedDoc,
55
+ _lastEditedAt: lockedDoc?.updatedAt ?? null,
56
+ _userEditing: lockedDoc?.user?.value ?? null
57
+ },
58
+ lockDuration
59
+ };
60
+ });
61
+ }
44
62
  const navGroups = groupNavItems([...(collections.map(collection => {
45
63
  const entityToGroup = {
46
64
  type: EntityType.collection,
@@ -54,32 +72,32 @@ export const Dashboard = async ({
54
72
  };
55
73
  return entityToGroup;
56
74
  }) ?? [])], permissions, i18n);
57
- const createMappedComponent = getCreateMappedComponent({
58
- importMap: payload.importMap,
59
- serverProps: {
60
- globalData,
61
- i18n,
62
- Link,
63
- locale,
64
- navGroups,
65
- params,
66
- payload,
67
- permissions,
68
- searchParams,
69
- user,
70
- visibleEntities
71
- }
72
- });
73
- const mappedDashboardComponent = createMappedComponent(CustomDashboardComponent?.Component, undefined, DefaultDashboard, 'CustomDashboardComponent.Component');
74
75
  return /*#__PURE__*/_jsxs(Fragment, {
75
76
  children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
76
77
  permissions: permissions
77
- }), /*#__PURE__*/_jsx(RenderComponent, {
78
+ }), /*#__PURE__*/_jsx(SetStepNav, {
79
+ nav: []
80
+ }), /*#__PURE__*/_jsx(RenderServerComponent, {
78
81
  clientProps: {
79
82
  Link,
80
83
  locale
81
84
  },
82
- mappedComponent: mappedDashboardComponent
85
+ Component: config.admin?.components?.views?.dashboard?.Component,
86
+ Fallback: DefaultDashboard,
87
+ importMap: payload.importMap,
88
+ serverProps: {
89
+ globalData,
90
+ i18n,
91
+ Link,
92
+ locale,
93
+ navGroups,
94
+ params,
95
+ payload,
96
+ permissions,
97
+ searchParams,
98
+ user,
99
+ visibleEntities
100
+ }
83
101
  })]
84
102
  });
85
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HydrateAuthProvider","EntityType","getCreateMappedComponent","groupNavItems","RenderComponent","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","CustomDashboardComponent","admin","components","views","collections","filter","collection","slug","read","permission","includes","globals","global","globalSlugs","map","filteredGlobalSlugs","globalData","Promise","all","data","findGlobal","depth","includeLockStatus","navGroups","entityToGroup","type","entity","createMappedComponent","importMap","serverProps","mappedDashboardComponent","Component","undefined","_jsxs","_jsx","clientProps","mappedComponent"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewProps } from 'payload'\n\nimport { HydrateAuthProvider } from '@payloadcms/ui'\nimport {\n EntityType,\n getCreateMappedComponent,\n groupNavItems,\n RenderComponent,\n} from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const Dashboard: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const CustomDashboardComponent = config.admin.components?.views?.Dashboard\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read?.permission &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read?.permission &&\n visibleEntities.globals.includes(global.slug),\n )\n\n const globalSlugs = config.globals.map((global) => global.slug)\n\n // Filter the slugs based on permissions and visibility\n const filteredGlobalSlugs = globalSlugs.filter(\n (slug) =>\n permissions?.globals?.[slug]?.read?.permission && visibleEntities.globals.includes(slug),\n )\n\n const globalData = await Promise.all(\n filteredGlobalSlugs.map(async (slug) => {\n const data = await payload.findGlobal({\n slug,\n depth: 0,\n includeLockStatus: true,\n })\n\n return {\n slug,\n data,\n }\n }),\n )\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n globalData,\n i18n,\n Link,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n },\n })\n\n const mappedDashboardComponent = createMappedComponent(\n CustomDashboardComponent?.Component,\n undefined,\n DefaultDashboard,\n 'CustomDashboardComponent.Component',\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <RenderComponent\n clientProps={{\n Link,\n locale,\n }}\n mappedComponent={mappedDashboardComponent}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","collections","filter","collection","slug","read","includes","globals","global","globalData","length","lockedDocuments","find","depth","overrideAccess","pagination","where","globalSlug","exists","map","lockDurationDefault","lockDuration","lockDocuments","duration","lockedDoc","docs","doc","data","_isLocked","_lastEditedAt","updatedAt","_userEditing","value","navGroups","entityToGroup","type","entity","_jsxs","_jsx","nav","clientProps","Component","admin","components","views","dashboard","Fallback","importMap","serverProps"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewProps } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, groupNavItems } from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const Dashboard: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = initPageResult\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDurationDefault = 300\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : lockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: lockedDoc?.updatedAt ?? null,\n _userEditing: lockedDoc?.user?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n <RenderServerComponent\n clientProps={{\n Link,\n locale,\n }}\n Component={config.admin?.components?.views?.dashboard?.Component}\n Fallback={DefaultDashboard}\n importMap={payload.importMap}\n serverProps={{\n globalData,\n i18n,\n Link,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { DocumentPreferences, Payload, TypedUser } from 'payload';
2
+ type Args = {
3
+ collectionSlug?: string;
4
+ globalSlug?: string;
5
+ id?: number | string;
6
+ payload: Payload;
7
+ user: TypedUser;
8
+ };
9
+ export declare const getDocPreferences: ({ id, collectionSlug, globalSlug, payload, user, }: Args) => Promise<DocumentPreferences>;
10
+ export {};
11
+ //# sourceMappingURL=getDocPreferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocPreferences.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEtE,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,iBAAiB,uDAM3B,IAAI,KAAG,OAAO,CAAC,mBAAmB,CA2CpC,CAAA"}
@@ -0,0 +1,44 @@
1
+ export const getDocPreferences = async ({
2
+ id,
3
+ collectionSlug,
4
+ globalSlug,
5
+ payload,
6
+ user
7
+ }) => {
8
+ let preferencesKey;
9
+ if (collectionSlug && id) {
10
+ preferencesKey = `collection-${collectionSlug}-${id}`;
11
+ }
12
+ if (globalSlug) {
13
+ preferencesKey = `global-${globalSlug}`;
14
+ }
15
+ if (preferencesKey) {
16
+ const preferencesResult = await payload.find({
17
+ collection: 'payload-preferences',
18
+ depth: 0,
19
+ limit: 1,
20
+ where: {
21
+ and: [{
22
+ key: {
23
+ equals: preferencesKey
24
+ }
25
+ }, {
26
+ 'user.relationTo': {
27
+ equals: user.collection
28
+ }
29
+ }, {
30
+ 'user.value': {
31
+ equals: user.id
32
+ }
33
+ }]
34
+ }
35
+ });
36
+ if (preferencesResult?.docs?.[0]?.value) {
37
+ return preferencesResult.docs[0].value;
38
+ }
39
+ }
40
+ return {
41
+ fields: {}
42
+ };
43
+ };
44
+ //# sourceMappingURL=getDocPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocPreferences.js","names":["getDocPreferences","id","collectionSlug","globalSlug","payload","user","preferencesKey","preferencesResult","find","collection","depth","limit","where","and","key","equals","docs","value","fields"],"sources":["../../../src/views/Document/getDocPreferences.ts"],"sourcesContent":["import type { DocumentPreferences, Payload, TypedUser } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n payload: Payload\n user: TypedUser\n}\n\nexport const getDocPreferences = async ({\n id,\n collectionSlug,\n globalSlug,\n payload,\n user,\n}: Args): Promise<DocumentPreferences> => {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const preferencesResult = (await payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) {\n return preferencesResult.docs[0].value\n }\n }\n\n return { fields: {} }\n}\n"],"mappings":"AAUA,OAAO,MAAMA,iBAAA,GAAoB,MAAAA,CAAO;EACtCC,EAAE;EACFC,cAAc;EACdC,UAAU;EACVC,OAAO;EACPC;AAAI,CACC;EACL,IAAIC,cAAA;EAEJ,IAAIJ,cAAA,IAAkBD,EAAA,EAAI;IACxBK,cAAA,GAAiB,cAAcJ,cAAA,IAAkBD,EAAA,EAAI;EACvD;EAEA,IAAIE,UAAA,EAAY;IACdG,cAAA,GAAiB,UAAUH,UAAA,EAAY;EACzC;EAEA,IAAIG,cAAA,EAAgB;IAClB,MAAMC,iBAAA,GAAqB,MAAMH,OAAA,CAAQI,IAAI,CAAC;MAC5CC,UAAA,EAAY;MACZC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,GAAA,EAAK;YACHC,MAAA,EAAQT;UACV;QACF,GACA;UACE,mBAAmB;YACjBS,MAAA,EAAQV,IAAA,CAAKI;UACf;QACF,GACA;UACE,cAAc;YACZM,MAAA,EAAQV,IAAA,CAAKJ;UACf;QACF;MAEJ;IACF;IAEA,IAAIM,iBAAA,EAAmBS,IAAA,GAAO,EAAE,EAAEC,KAAA,EAAO;MACvC,OAAOV,iBAAA,CAAkBS,IAAI,CAAC,EAAE,CAACC,KAAK;IACxC;EACF;EAEA,OAAO;IAAEC,MAAA,EAAQ,CAAC;EAAE;AACtB","ignoreList":[]}
@@ -1,13 +1,12 @@
1
- import type { Data, FormState, Locale, PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
2
- export declare const getDocumentData: (args: {
3
- collectionConfig?: SanitizedCollectionConfig;
4
- globalConfig?: SanitizedGlobalConfig;
1
+ import type { Locale, Payload, TypedUser, TypeWithID } from 'payload';
2
+ type Args = {
3
+ collectionSlug?: string;
4
+ globalSlug?: string;
5
5
  id?: number | string;
6
- locale: Locale;
7
- req: PayloadRequest;
8
- schemaPath?: string;
9
- }) => Promise<{
10
- data: Data;
11
- formState: FormState;
12
- }>;
6
+ locale?: Locale;
7
+ payload: Payload;
8
+ user?: TypedUser;
9
+ };
10
+ export declare const getDocumentData: ({ id, collectionSlug, globalSlug, locale, payload, user, }: Args) => Promise<null | Record<string, unknown> | TypeWithID>;
11
+ export {};
13
12
  //# sourceMappingURL=getDocumentData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentData.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,SAAS,EACT,MAAM,EACN,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAKhB,eAAO,MAAM,eAAe,SAAgB;IAC1C,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,SAAS,CAAA;CACrB,CAuCA,CAAA"}
1
+ {"version":3,"file":"getDocumentData.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAErE,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,eAAe,+DAOzB,IAAI,KAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAiC5D,CAAA"}
@@ -1,49 +1,39 @@
1
- import { buildFormState } from '@payloadcms/ui/utilities/buildFormState';
2
- import { reduceFieldsToValues } from 'payload/shared';
3
- export const getDocumentData = async args => {
4
- const {
5
- id,
6
- collectionConfig,
7
- globalConfig,
8
- locale,
9
- req,
10
- schemaPath: schemaPathFromProps
11
- } = args;
12
- const schemaPath = schemaPathFromProps || collectionConfig?.slug || globalConfig?.slug;
1
+ export const getDocumentData = async ({
2
+ id,
3
+ collectionSlug,
4
+ globalSlug,
5
+ locale,
6
+ payload,
7
+ user
8
+ }) => {
9
+ let resolvedData = null;
13
10
  try {
14
- const {
15
- state: formState
16
- } = await buildFormState({
17
- req: {
18
- ...req,
19
- data: {
20
- id,
21
- collectionSlug: collectionConfig?.slug,
22
- globalSlug: globalConfig?.slug,
23
- locale: locale?.code,
24
- operation: collectionConfig && id || globalConfig ? 'update' : 'create',
25
- schemaPath
26
- }
27
- }
28
- });
29
- const data = reduceFieldsToValues(formState, true);
30
- return {
31
- data,
32
- formState
33
- };
34
- } catch (error) {
35
- console.error('Error getting document data', error) // eslint-disable-line no-console
36
- ;
37
- return {
38
- data: null,
39
- formState: {
40
- fields: {
41
- initialValue: undefined,
42
- valid: false,
43
- value: undefined
44
- }
45
- }
46
- };
11
+ if (collectionSlug && id) {
12
+ resolvedData = await payload.findByID({
13
+ id,
14
+ collection: collectionSlug,
15
+ depth: 0,
16
+ draft: true,
17
+ fallbackLocale: false,
18
+ locale: locale?.code,
19
+ overrideAccess: false,
20
+ user
21
+ });
22
+ }
23
+ if (globalSlug) {
24
+ resolvedData = await payload.findGlobal({
25
+ slug: globalSlug,
26
+ depth: 0,
27
+ draft: true,
28
+ fallbackLocale: false,
29
+ locale: locale?.code,
30
+ overrideAccess: false,
31
+ user
32
+ });
33
+ }
34
+ } catch (_err) {
35
+ payload.logger.error(_err);
47
36
  }
37
+ return resolvedData;
48
38
  };
49
39
  //# sourceMappingURL=getDocumentData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentData.js","names":["buildFormState","reduceFieldsToValues","getDocumentData","args","id","collectionConfig","globalConfig","locale","req","schemaPath","schemaPathFromProps","slug","state","formState","data","collectionSlug","globalSlug","code","operation","error","console","fields","initialValue","undefined","valid","value"],"sources":["../../../src/views/Document/getDocumentData.tsx"],"sourcesContent":["import type {\n Data,\n FormState,\n Locale,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nexport const getDocumentData = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale: Locale\n req: PayloadRequest\n schemaPath?: string\n}): Promise<{\n data: Data\n formState: FormState\n}> => {\n const { id, collectionConfig, globalConfig, locale, req, schemaPath: schemaPathFromProps } = args\n\n const schemaPath = schemaPathFromProps || collectionConfig?.slug || globalConfig?.slug\n\n try {\n const { state: formState } = await buildFormState({\n req: {\n ...req,\n data: {\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n locale: locale?.code,\n operation: (collectionConfig && id) || globalConfig ? 'update' : 'create',\n schemaPath,\n },\n },\n })\n\n const data = reduceFieldsToValues(formState, true)\n\n return {\n data,\n formState,\n }\n } catch (error) {\n console.error('Error getting document data', error) // eslint-disable-line no-console\n return {\n data: null,\n formState: {\n fields: {\n initialValue: undefined,\n valid: false,\n value: undefined,\n },\n },\n }\n }\n}\n"],"mappings":"AASA,SAASA,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AAErC,OAAO,MAAMC,eAAA,GAAkB,MAAOC,IAAA;EAWpC,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,YAAY;IAAEC,MAAM;IAAEC,GAAG;IAAEC,UAAA,EAAYC;EAAmB,CAAE,GAAGP,IAAA;EAE7F,MAAMM,UAAA,GAAaC,mBAAA,IAAuBL,gBAAA,EAAkBM,IAAA,IAAQL,YAAA,EAAcK,IAAA;EAElF,IAAI;IACF,MAAM;MAAEC,KAAA,EAAOC;IAAS,CAAE,GAAG,MAAMb,cAAA,CAAe;MAChDQ,GAAA,EAAK;QACH,GAAGA,GAAG;QACNM,IAAA,EAAM;UACJV,EAAA;UACAW,cAAA,EAAgBV,gBAAA,EAAkBM,IAAA;UAClCK,UAAA,EAAYV,YAAA,EAAcK,IAAA;UAC1BJ,MAAA,EAAQA,MAAA,EAAQU,IAAA;UAChBC,SAAA,EAAWb,gBAAC,IAAoBD,EAAA,IAAOE,YAAA,GAAe,WAAW;UACjEG;QACF;MACF;IACF;IAEA,MAAMK,IAAA,GAAOb,oBAAA,CAAqBY,SAAA,EAAW;IAE7C,OAAO;MACLC,IAAA;MACAD;IACF;EACF,EAAE,OAAOM,KAAA,EAAO;IACdC,OAAA,CAAQD,KAAK,CAAC,+BAA+BA,KAAA,EAAO;IAAA;IACpD,OAAO;MACLL,IAAA,EAAM;MACND,SAAA,EAAW;QACTQ,MAAA,EAAQ;UACNC,YAAA,EAAcC,SAAA;UACdC,KAAA,EAAO;UACPC,KAAA,EAAOF;QACT;MACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getDocumentData.js","names":["getDocumentData","id","collectionSlug","globalSlug","locale","payload","user","resolvedData","findByID","collection","depth","draft","fallbackLocale","code","overrideAccess","findGlobal","slug","_err","logger","error"],"sources":["../../../src/views/Document/getDocumentData.ts"],"sourcesContent":["import type { Locale, Payload, TypedUser, TypeWithID } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n locale?: Locale\n payload: Payload\n user?: TypedUser\n}\n\nexport const getDocumentData = async ({\n id,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n user,\n}: Args): Promise<null | Record<string, unknown> | TypeWithID> => {\n let resolvedData: Record<string, unknown> | TypeWithID = null\n\n try {\n if (collectionSlug && id) {\n resolvedData = await payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n overrideAccess: false,\n user,\n })\n }\n\n if (globalSlug) {\n resolvedData = await payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n overrideAccess: false,\n user,\n })\n }\n } catch (_err) {\n payload.logger.error(_err)\n }\n\n return resolvedData\n}\n"],"mappings":"AAWA,OAAO,MAAMA,eAAA,GAAkB,MAAAA,CAAO;EACpCC,EAAE;EACFC,cAAc;EACdC,UAAU;EACVC,MAAM;EACNC,OAAO;EACPC;AAAI,CACC;EACL,IAAIC,YAAA,GAAqD;EAEzD,IAAI;IACF,IAAIL,cAAA,IAAkBD,EAAA,EAAI;MACxBM,YAAA,GAAe,MAAMF,OAAA,CAAQG,QAAQ,CAAC;QACpCP,EAAA;QACAQ,UAAA,EAAYP,cAAA;QACZQ,KAAA,EAAO;QACPC,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChBR,MAAA,EAAQA,MAAA,EAAQS,IAAA;QAChBC,cAAA,EAAgB;QAChBR;MACF;IACF;IAEA,IAAIH,UAAA,EAAY;MACdI,YAAA,GAAe,MAAMF,OAAA,CAAQU,UAAU,CAAC;QACtCC,IAAA,EAAMb,UAAA;QACNO,KAAA,EAAO;QACPC,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChBR,MAAA,EAAQA,MAAA,EAAQS,IAAA;QAChBC,cAAA,EAAgB;QAChBR;MACF;IACF;EACF,EAAE,OAAOW,IAAA,EAAM;IACbZ,OAAA,CAAQa,MAAM,CAACC,KAAK,CAACF,IAAA;EACvB;EAEA,OAAOV,YAAA;AACT","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { Data, DocumentPermissions, PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
1
+ import type { Data, PayloadRequest, SanitizedCollectionConfig, SanitizedDocumentPermissions, SanitizedGlobalConfig } from 'payload';
2
2
  export declare const getDocumentPermissions: (args: {
3
3
  collectionConfig?: SanitizedCollectionConfig;
4
4
  data: Data;
@@ -6,7 +6,7 @@ export declare const getDocumentPermissions: (args: {
6
6
  id?: number | string;
7
7
  req: PayloadRequest;
8
8
  }) => Promise<{
9
- docPermissions: DocumentPermissions;
9
+ docPermissions: SanitizedDocumentPermissions;
10
10
  hasPublishPermission: boolean;
11
11
  hasSavePermission: boolean;
12
12
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,cAAc,EAAE,mBAAmB,CAAA;IACnC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAqFA,CAAA"}
1
+ {"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAEJ,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,cAAc,EAAE,4BAA4B,CAAA;IAC5C,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAyFA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { hasSavePermission as getHasSavePermission, isEditing as getIsEditing } from '@payloadcms/ui/shared';
2
- import { docAccessOperation, docAccessOperationGlobal } from 'payload';
2
+ import { docAccessOperation, docAccessOperationGlobal, sanitizePermissions } from 'payload';
3
3
  export const getDocumentPermissions = async args => {
4
4
  const {
5
5
  id,
@@ -43,8 +43,7 @@ export const getDocumentPermissions = async args => {
43
43
  }) => update?.permission);
44
44
  }
45
45
  } catch (error) {
46
- console.error(error) // eslint-disable-line no-console
47
- ;
46
+ req.payload.logger.error(error);
48
47
  }
49
48
  }
50
49
  if (globalConfig) {
@@ -71,13 +70,17 @@ export const getDocumentPermissions = async args => {
71
70
  }) => update?.permission);
72
71
  }
73
72
  } catch (error) {
74
- console.error(error) // eslint-disable-line no-console
75
- ;
73
+ req.payload.logger.error(error);
76
74
  }
77
75
  }
76
+ // TODO: do this in a better way. Only doing this bc this is how the fn was written (mutates the original object)
77
+ const sanitizedDocPermissions = {
78
+ ...docPermissions
79
+ };
80
+ sanitizePermissions(sanitizedDocPermissions);
78
81
  const hasSavePermission = getHasSavePermission({
79
82
  collectionSlug: collectionConfig?.slug,
80
- docPermissions,
83
+ docPermissions: sanitizedDocPermissions,
81
84
  globalSlug: globalConfig?.slug,
82
85
  isEditing: getIsEditing({
83
86
  id,
@@ -86,7 +89,7 @@ export const getDocumentPermissions = async args => {
86
89
  })
87
90
  });
88
91
  return {
89
- docPermissions,
92
+ docPermissions: sanitizedDocPermissions,
90
93
  hasPublishPermission,
91
94
  hasSavePermission
92
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","toString","collection","config","_status","versions","drafts","then","update","permission","error","console","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPermissions,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal } from 'payload'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions: DocumentPermissions\n hasPublishPermission: boolean\n hasSavePermission: boolean\n}> => {\n const { id, collectionConfig, data = {}, globalConfig, req } = args\n\n let docPermissions: DocumentPermissions\n let hasPublishPermission = false\n\n if (collectionConfig) {\n try {\n docPermissions = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'draft',\n },\n },\n })\n\n if (collectionConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then(({ update }) => update?.permission)\n }\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data,\n },\n })\n\n if (globalConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then(({ update }) => update?.permission)\n }\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n const hasSavePermission = getHasSavePermission({\n collectionSlug: collectionConfig?.slug,\n docPermissions,\n globalSlug: globalConfig?.slug,\n isEditing: getIsEditing({\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n }),\n })\n\n return {\n docPermissions,\n hasPublishPermission,\n hasSavePermission,\n }\n}\n"],"mappings":"AAQA,SACEA,iBAAA,IAAqBC,oBAAoB,EACzCC,SAAA,IAAaC,YAAY,QACpB;AACP,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ;AAE7D,OAAO,MAAMC,sBAAA,GAAyB,MAAOC,IAAA;EAW3C,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,IAAA,GAAO,CAAC,CAAC;IAAEC,YAAY;IAAEC;EAAG,CAAE,GAAGL,IAAA;EAE/D,IAAIM,cAAA;EACJ,IAAIC,oBAAA,GAAuB;EAE3B,IAAIL,gBAAA,EAAkB;IACpB,IAAI;MACFI,cAAA,GAAiB,MAAMT,kBAAA,CAAmB;QACxCI,EAAA,EAAIA,EAAA,EAAIO,QAAA;QACRC,UAAA,EAAY;UACVC,MAAA,EAAQR;QACV;QACAG,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPQ,OAAA,EAAS;UACX;QACF;MACF;MAEA,IAAIT,gBAAA,CAAiBU,QAAQ,EAAEC,MAAA,EAAQ;QACrCN,oBAAA,GAAuB,MAAMV,kBAAA,CAAmB;UAC9CI,EAAA,EAAIA,EAAA,EAAIO,QAAA;UACRC,UAAA,EAAY;YACVC,MAAA,EAAQR;UACV;UACAG,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAC,CAAC;UAAEC;QAAM,CAAE,KAAKA,MAAA,EAAQC,UAAA;MAClC;IACF,EAAE,OAAOC,KAAA,EAAO;MACdC,OAAA,CAAQD,KAAK,CAACA,KAAA,EAAO;MAAA;IACvB;EACF;EAEA,IAAIb,YAAA,EAAc;IAChB,IAAI;MACFE,cAAA,GAAiB,MAAMR,wBAAA,CAAyB;QAC9CM,YAAA;QACAC,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF;QACF;MACF;MAEA,IAAIC,YAAA,CAAaQ,QAAQ,EAAEC,MAAA,EAAQ;QACjCN,oBAAA,GAAuB,MAAMT,wBAAA,CAAyB;UACpDM,YAAA;UACAC,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAC,CAAC;UAAEC;QAAM,CAAE,KAAKA,MAAA,EAAQC,UAAA;MAClC;IACF,EAAE,OAAOC,KAAA,EAAO;MACdC,OAAA,CAAQD,KAAK,CAACA,KAAA,EAAO;MAAA;IACvB;EACF;EAEA,MAAMxB,iBAAA,GAAoBC,oBAAA,CAAqB;IAC7CyB,cAAA,EAAgBjB,gBAAA,EAAkBkB,IAAA;IAClCd,cAAA;IACAe,UAAA,EAAYjB,YAAA,EAAcgB,IAAA;IAC1BzB,SAAA,EAAWC,YAAA,CAAa;MACtBK,EAAA;MACAkB,cAAA,EAAgBjB,gBAAA,EAAkBkB,IAAA;MAClCC,UAAA,EAAYjB,YAAA,EAAcgB;IAC5B;EACF;EAEA,OAAO;IACLd,cAAA;IACAC,oBAAA;IACAd;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","sanitizePermissions","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","toString","collection","config","_status","versions","drafts","then","update","permission","error","payload","logger","sanitizedDocPermissions","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPermissions,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal, sanitizePermissions } from 'payload'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions: SanitizedDocumentPermissions\n hasPublishPermission: boolean\n hasSavePermission: boolean\n}> => {\n const { id, collectionConfig, data = {}, globalConfig, req } = args\n\n let docPermissions: DocumentPermissions\n let hasPublishPermission = false\n\n if (collectionConfig) {\n try {\n docPermissions = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'draft',\n },\n },\n })\n\n if (collectionConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then(({ update }) => update?.permission)\n }\n } catch (error) {\n req.payload.logger.error(error)\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data,\n },\n })\n\n if (globalConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then(({ update }) => update?.permission)\n }\n } catch (error) {\n req.payload.logger.error(error)\n }\n }\n\n // TODO: do this in a better way. Only doing this bc this is how the fn was written (mutates the original object)\n const sanitizedDocPermissions = { ...docPermissions } as any as SanitizedDocumentPermissions\n sanitizePermissions(sanitizedDocPermissions)\n\n const hasSavePermission = getHasSavePermission({\n collectionSlug: collectionConfig?.slug,\n docPermissions: sanitizedDocPermissions,\n globalSlug: globalConfig?.slug,\n isEditing: getIsEditing({\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n }),\n })\n\n return {\n docPermissions: sanitizedDocPermissions,\n hasPublishPermission,\n hasSavePermission,\n }\n}\n"],"mappings":"AASA,SACEA,iBAAA,IAAqBC,oBAAoB,EACzCC,SAAA,IAAaC,YAAY,QACpB;AACP,SAASC,kBAAkB,EAAEC,wBAAwB,EAAEC,mBAAmB,QAAQ;AAElF,OAAO,MAAMC,sBAAA,GAAyB,MAAOC,IAAA;EAW3C,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,IAAA,GAAO,CAAC,CAAC;IAAEC,YAAY;IAAEC;EAAG,CAAE,GAAGL,IAAA;EAE/D,IAAIM,cAAA;EACJ,IAAIC,oBAAA,GAAuB;EAE3B,IAAIL,gBAAA,EAAkB;IACpB,IAAI;MACFI,cAAA,GAAiB,MAAMV,kBAAA,CAAmB;QACxCK,EAAA,EAAIA,EAAA,EAAIO,QAAA;QACRC,UAAA,EAAY;UACVC,MAAA,EAAQR;QACV;QACAG,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPQ,OAAA,EAAS;UACX;QACF;MACF;MAEA,IAAIT,gBAAA,CAAiBU,QAAQ,EAAEC,MAAA,EAAQ;QACrCN,oBAAA,GAAuB,MAAMX,kBAAA,CAAmB;UAC9CK,EAAA,EAAIA,EAAA,EAAIO,QAAA;UACRC,UAAA,EAAY;YACVC,MAAA,EAAQR;UACV;UACAG,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAC,CAAC;UAAEC;QAAM,CAAE,KAAKA,MAAA,EAAQC,UAAA;MAClC;IACF,EAAE,OAAOC,KAAA,EAAO;MACdZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA,KAAA;IAC3B;EACF;EAEA,IAAIb,YAAA,EAAc;IAChB,IAAI;MACFE,cAAA,GAAiB,MAAMT,wBAAA,CAAyB;QAC9CO,YAAA;QACAC,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF;QACF;MACF;MAEA,IAAIC,YAAA,CAAaQ,QAAQ,EAAEC,MAAA,EAAQ;QACjCN,oBAAA,GAAuB,MAAMV,wBAAA,CAAyB;UACpDO,YAAA;UACAC,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAC,CAAC;UAAEC;QAAM,CAAE,KAAKA,MAAA,EAAQC,UAAA;MAClC;IACF,EAAE,OAAOC,KAAA,EAAO;MACdZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA,KAAA;IAC3B;EACF;EAEA;EACA,MAAMG,uBAAA,GAA0B;IAAE,GAAGd;EAAe;EACpDR,mBAAA,CAAoBsB,uBAAA;EAEpB,MAAM5B,iBAAA,GAAoBC,oBAAA,CAAqB;IAC7C4B,cAAA,EAAgBnB,gBAAA,EAAkBoB,IAAA;IAClChB,cAAA,EAAgBc,uBAAA;IAChBG,UAAA,EAAYnB,YAAA,EAAckB,IAAA;IAC1B5B,SAAA,EAAWC,YAAA,CAAa;MACtBM,EAAA;MACAoB,cAAA,EAAgBnB,gBAAA,EAAkBoB,IAAA;MAClCC,UAAA,EAAYnB,YAAA,EAAckB;IAC5B;EACF;EAEA,OAAO;IACLhB,cAAA,EAAgBc,uBAAA;IAChBb,oBAAA;IACAf;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import type { PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig, TypedUser } from 'payload';
2
+ type Args = {
3
+ collectionConfig?: SanitizedCollectionConfig;
4
+ globalConfig?: SanitizedGlobalConfig;
5
+ id?: number | string;
6
+ isEditing: boolean;
7
+ req: PayloadRequest;
8
+ };
9
+ type Result = Promise<{
10
+ currentEditor?: TypedUser;
11
+ isLocked: boolean;
12
+ lastUpdateTime?: number;
13
+ }>;
14
+ export declare const getIsLocked: ({ id, collectionConfig, globalConfig, isEditing, req, }: Args) => Result;
15
+ export {};
16
+ //# sourceMappingURL=getIsLocked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIsLocked.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getIsLocked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,SAAS,EAEV,MAAM,SAAS,CAAA;AAEhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,eAAO,MAAM,WAAW,4DAMrB,IAAI,KAAG,MAyDT,CAAA"}
@@ -0,0 +1,55 @@
1
+ export const getIsLocked = async ({
2
+ id,
3
+ collectionConfig,
4
+ globalConfig,
5
+ isEditing,
6
+ req
7
+ }) => {
8
+ const entityConfig = collectionConfig || globalConfig;
9
+ const entityHasLockingEnabled = entityConfig?.lockDocuments !== undefined ? entityConfig?.lockDocuments : true;
10
+ if (!entityHasLockingEnabled || !isEditing) {
11
+ return {
12
+ isLocked: false
13
+ };
14
+ }
15
+ const where = {};
16
+ if (globalConfig) {
17
+ where.globalSlug = {
18
+ equals: globalConfig.slug
19
+ };
20
+ } else {
21
+ where.and = [{
22
+ 'document.value': {
23
+ equals: id
24
+ }
25
+ }, {
26
+ 'document.relationTo': {
27
+ equals: collectionConfig.slug
28
+ }
29
+ }];
30
+ }
31
+ const {
32
+ docs
33
+ } = await req.payload.find({
34
+ collection: 'payload-locked-documents',
35
+ depth: 1,
36
+ overrideAccess: false,
37
+ req,
38
+ where
39
+ });
40
+ if (docs.length > 0) {
41
+ const newEditor = docs[0].user?.value;
42
+ const lastUpdateTime = new Date(docs[0].updatedAt).getTime();
43
+ if (newEditor?.id !== req.user.id) {
44
+ return {
45
+ currentEditor: newEditor,
46
+ isLocked: true,
47
+ lastUpdateTime
48
+ };
49
+ }
50
+ }
51
+ return {
52
+ isLocked: false
53
+ };
54
+ };
55
+ //# sourceMappingURL=getIsLocked.js.map