@payloadcms/next 3.0.0-canary.95569e4 → 3.0.0-canary.96477cf

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 (621) hide show
  1. package/dist/cjs/withPayload.js +111 -0
  2. package/dist/cjs/withPayload.js.map +1 -0
  3. package/dist/config.js +0 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +15 -9
  6. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +100 -35
  8. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +75 -64
  11. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  12. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +31 -35
  13. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js.map +1 -1
  14. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +15 -12
  15. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js.map +1 -1
  16. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/index.js +95 -82
  18. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +37 -14
  21. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +60 -52
  25. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentHeader/index.js +24 -23
  28. package/dist/elements/DocumentHeader/index.js.map +1 -1
  29. package/dist/elements/DocumentHeader/index.scss +1 -1
  30. package/dist/elements/DocumentLocked/index.d.ts +12 -0
  31. package/dist/elements/DocumentLocked/index.d.ts.map +1 -0
  32. package/dist/elements/DocumentLocked/index.js +142 -0
  33. package/dist/elements/DocumentLocked/index.js.map +1 -0
  34. package/dist/elements/DocumentLocked/index.scss +37 -0
  35. package/dist/elements/DocumentTakeOver/index.d.ts +8 -0
  36. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -0
  37. package/dist/elements/DocumentTakeOver/index.js +98 -0
  38. package/dist/elements/DocumentTakeOver/index.js.map +1 -0
  39. package/dist/elements/DocumentTakeOver/index.scss +37 -0
  40. package/dist/elements/EmailAndUsername/index.d.ts +1 -1
  41. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  42. package/dist/elements/EmailAndUsername/index.js +107 -75
  43. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  44. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  45. package/dist/elements/LeaveWithoutSaving/index.js +150 -83
  46. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  47. package/dist/elements/LeaveWithoutSaving/index.scss +3 -3
  48. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  49. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +121 -101
  50. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  51. package/dist/elements/Logo/index.js +37 -22
  52. package/dist/elements/Logo/index.js.map +1 -1
  53. package/dist/elements/Nav/NavHamburger/index.js +41 -13
  54. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  55. package/dist/elements/Nav/NavWrapper/index.js +48 -16
  56. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  57. package/dist/elements/Nav/NavWrapper/index.scss +5 -0
  58. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  59. package/dist/elements/Nav/index.client.js +149 -76
  60. package/dist/elements/Nav/index.client.js.map +1 -1
  61. package/dist/elements/Nav/index.d.ts.map +1 -1
  62. package/dist/elements/Nav/index.js +57 -51
  63. package/dist/elements/Nav/index.js.map +1 -1
  64. package/dist/elements/Nav/index.scss +5 -1
  65. package/dist/exports/layouts.d.ts +1 -1
  66. package/dist/exports/layouts.d.ts.map +1 -1
  67. package/dist/exports/layouts.js +1 -2
  68. package/dist/exports/layouts.js.map +1 -1
  69. package/dist/exports/routes.js +0 -1
  70. package/dist/exports/routes.js.map +1 -1
  71. package/dist/exports/templates.js +0 -1
  72. package/dist/exports/templates.js.map +1 -1
  73. package/dist/exports/utilities.js +0 -1
  74. package/dist/exports/utilities.js.map +1 -1
  75. package/dist/exports/views.d.ts +1 -1
  76. package/dist/exports/views.d.ts.map +1 -1
  77. package/dist/exports/views.js +1 -2
  78. package/dist/exports/views.js.map +1 -1
  79. package/dist/fetchAPI-multipart/fileFactory.d.ts +2 -1
  80. package/dist/fetchAPI-multipart/fileFactory.d.ts.map +1 -1
  81. package/dist/fetchAPI-multipart/fileFactory.js +35 -34
  82. package/dist/fetchAPI-multipart/fileFactory.js.map +1 -1
  83. package/dist/fetchAPI-multipart/handlers.d.ts +1 -1
  84. package/dist/fetchAPI-multipart/handlers.d.ts.map +1 -1
  85. package/dist/fetchAPI-multipart/handlers.js +79 -78
  86. package/dist/fetchAPI-multipart/handlers.js.map +1 -1
  87. package/dist/fetchAPI-multipart/index.d.ts +1 -101
  88. package/dist/fetchAPI-multipart/index.d.ts.map +1 -1
  89. package/dist/fetchAPI-multipart/index.js +33 -31
  90. package/dist/fetchAPI-multipart/index.js.map +1 -1
  91. package/dist/fetchAPI-multipart/isEligibleRequest.js +13 -21
  92. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  93. package/dist/fetchAPI-multipart/processMultipart.d.ts +2 -1
  94. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  95. package/dist/fetchAPI-multipart/processMultipart.js +159 -141
  96. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  97. package/dist/fetchAPI-multipart/processNested.d.ts.map +1 -1
  98. package/dist/fetchAPI-multipart/processNested.js +26 -20
  99. package/dist/fetchAPI-multipart/processNested.js.map +1 -1
  100. package/dist/fetchAPI-multipart/uploadTimer.d.ts.map +1 -1
  101. package/dist/fetchAPI-multipart/uploadTimer.js +18 -17
  102. package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -1
  103. package/dist/fetchAPI-multipart/utilities.d.ts +1 -1
  104. package/dist/fetchAPI-multipart/utilities.d.ts.map +1 -1
  105. package/dist/fetchAPI-multipart/utilities.js +185 -165
  106. package/dist/fetchAPI-multipart/utilities.js.map +1 -1
  107. package/dist/fetchAPI-stream-file/index.js +19 -17
  108. package/dist/fetchAPI-stream-file/index.js.map +1 -1
  109. package/dist/index.js +0 -1
  110. package/dist/index.js.map +1 -1
  111. package/dist/layouts/Root/index.d.ts.map +1 -1
  112. package/dist/layouts/Root/index.js +151 -116
  113. package/dist/layouts/Root/index.js.map +1 -1
  114. package/dist/prod/styles.css +1 -1
  115. package/dist/routes/graphql/handler.d.ts.map +1 -1
  116. package/dist/routes/graphql/handler.js +119 -101
  117. package/dist/routes/graphql/handler.js.map +1 -1
  118. package/dist/routes/graphql/index.js +0 -1
  119. package/dist/routes/graphql/index.js.map +1 -1
  120. package/dist/routes/graphql/playground.js +23 -24
  121. package/dist/routes/graphql/playground.js.map +1 -1
  122. package/dist/routes/index.js +0 -1
  123. package/dist/routes/index.js.map +1 -1
  124. package/dist/routes/rest/auth/access.js +22 -21
  125. package/dist/routes/rest/auth/access.js.map +1 -1
  126. package/dist/routes/rest/auth/forgotPassword.js +29 -25
  127. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  128. package/dist/routes/rest/auth/init.js +16 -14
  129. package/dist/routes/rest/auth/init.js.map +1 -1
  130. package/dist/routes/rest/auth/login.js +43 -38
  131. package/dist/routes/rest/auth/login.js.map +1 -1
  132. package/dist/routes/rest/auth/logout.js +31 -27
  133. package/dist/routes/rest/auth/logout.js.map +1 -1
  134. package/dist/routes/rest/auth/me.js +23 -21
  135. package/dist/routes/rest/auth/me.js.map +1 -1
  136. package/dist/routes/rest/auth/refresh.js +31 -27
  137. package/dist/routes/rest/auth/refresh.js.map +1 -1
  138. package/dist/routes/rest/auth/registerFirstUser.js +43 -38
  139. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  140. package/dist/routes/rest/auth/resetPassword.js +38 -33
  141. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  142. package/dist/routes/rest/auth/unlock.js +27 -23
  143. package/dist/routes/rest/auth/unlock.js.map +1 -1
  144. package/dist/routes/rest/auth/verifyEmail.js +22 -17
  145. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  146. package/dist/routes/rest/buildFormState.js +38 -37
  147. package/dist/routes/rest/buildFormState.js.map +1 -1
  148. package/dist/routes/rest/checkEndpoints.js +11 -9
  149. package/dist/routes/rest/checkEndpoints.js.map +1 -1
  150. package/dist/routes/rest/collections/count.js +15 -11
  151. package/dist/routes/rest/collections/count.js.map +1 -1
  152. package/dist/routes/rest/collections/create.js +30 -26
  153. package/dist/routes/rest/collections/create.js.map +1 -1
  154. package/dist/routes/rest/collections/delete.js +40 -35
  155. package/dist/routes/rest/collections/delete.js.map +1 -1
  156. package/dist/routes/rest/collections/deleteByID.js +36 -31
  157. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  158. package/dist/routes/rest/collections/docAccess.js +17 -14
  159. package/dist/routes/rest/collections/docAccess.js.map +1 -1
  160. package/dist/routes/rest/collections/duplicate.js +36 -31
  161. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  162. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  163. package/dist/routes/rest/collections/find.js +32 -20
  164. package/dist/routes/rest/collections/find.js.map +1 -1
  165. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  166. package/dist/routes/rest/collections/findByID.js +30 -23
  167. package/dist/routes/rest/collections/findByID.js.map +1 -1
  168. package/dist/routes/rest/collections/findVersionByID.js +27 -22
  169. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  170. package/dist/routes/rest/collections/findVersions.js +27 -19
  171. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  172. package/dist/routes/rest/collections/preview.js +39 -34
  173. package/dist/routes/rest/collections/preview.js.map +1 -1
  174. package/dist/routes/rest/collections/restoreVersion.js +32 -27
  175. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  176. package/dist/routes/rest/collections/update.js +43 -37
  177. package/dist/routes/rest/collections/update.js.map +1 -1
  178. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  179. package/dist/routes/rest/collections/updateByID.js +44 -33
  180. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  181. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  182. package/dist/routes/rest/files/checkFileAccess.js +52 -45
  183. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  184. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  185. package/dist/routes/rest/files/getFile.js +56 -49
  186. package/dist/routes/rest/files/getFile.js.map +1 -1
  187. package/dist/routes/rest/files/getFileTypeFallback.js +16 -17
  188. package/dist/routes/rest/files/getFileTypeFallback.js.map +1 -1
  189. package/dist/routes/rest/globals/docAccess.js +15 -13
  190. package/dist/routes/rest/globals/docAccess.js.map +1 -1
  191. package/dist/routes/rest/globals/findOne.js +22 -18
  192. package/dist/routes/rest/globals/findOne.js.map +1 -1
  193. package/dist/routes/rest/globals/findVersionByID.js +22 -17
  194. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  195. package/dist/routes/rest/globals/findVersions.js +27 -19
  196. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  197. package/dist/routes/rest/globals/preview.js +38 -34
  198. package/dist/routes/rest/globals/preview.js.map +1 -1
  199. package/dist/routes/rest/globals/restoreVersion.js +27 -22
  200. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  201. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  202. package/dist/routes/rest/globals/update.js +38 -28
  203. package/dist/routes/rest/globals/update.js.map +1 -1
  204. package/dist/routes/rest/index.d.ts +12 -12
  205. package/dist/routes/rest/index.d.ts.map +1 -1
  206. package/dist/routes/rest/index.js +681 -626
  207. package/dist/routes/rest/index.js.map +1 -1
  208. package/dist/routes/rest/og/image.d.ts +1 -1
  209. package/dist/routes/rest/og/image.d.ts.map +1 -1
  210. package/dist/routes/rest/og/image.js +74 -76
  211. package/dist/routes/rest/og/image.js.map +1 -1
  212. package/dist/routes/rest/og/index.js +61 -60
  213. package/dist/routes/rest/og/index.js.map +1 -1
  214. package/dist/routes/rest/routeError.d.ts +2 -7
  215. package/dist/routes/rest/routeError.d.ts.map +1 -1
  216. package/dist/routes/rest/routeError.js +116 -95
  217. package/dist/routes/rest/routeError.js.map +1 -1
  218. package/dist/routes/rest/types.js +1 -2
  219. package/dist/routes/rest/types.js.map +1 -1
  220. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts.map +1 -1
  221. package/dist/routes/rest/utilities/sanitizeCollectionID.js +18 -11
  222. package/dist/routes/rest/utilities/sanitizeCollectionID.js.map +1 -1
  223. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +13 -0
  224. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -0
  225. package/dist/routes/rest/utilities/sanitizeJoinParams.js +17 -0
  226. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -0
  227. package/dist/scss/app.scss +4 -4
  228. package/dist/scss/type.scss +4 -4
  229. package/dist/templates/Default/NavHamburger/index.js +18 -6
  230. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  231. package/dist/templates/Default/Wrapper/index.js +42 -13
  232. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  233. package/dist/templates/Default/Wrapper/index.scss +0 -1
  234. package/dist/templates/Default/index.d.ts.map +1 -1
  235. package/dist/templates/Default/index.js +71 -50
  236. package/dist/templates/Default/index.js.map +1 -1
  237. package/dist/templates/Default/index.scss +14 -4
  238. package/dist/templates/Minimal/index.js +16 -16
  239. package/dist/templates/Minimal/index.js.map +1 -1
  240. package/dist/templates/Minimal/index.scss +2 -2
  241. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  242. package/dist/utilities/addDataAndFileToRequest.js +40 -35
  243. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  244. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  245. package/dist/utilities/addLocalesToRequest.js +48 -36
  246. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  247. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  248. package/dist/utilities/createPayloadRequest.js +90 -73
  249. package/dist/utilities/createPayloadRequest.js.map +1 -1
  250. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  251. package/dist/utilities/getNextRequestI18n.js +13 -11
  252. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  253. package/dist/utilities/getPayloadHMR.d.ts +2 -2
  254. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  255. package/dist/utilities/getPayloadHMR.js +91 -93
  256. package/dist/utilities/getPayloadHMR.js.map +1 -1
  257. package/dist/utilities/getRequestLanguage.js +16 -13
  258. package/dist/utilities/getRequestLanguage.js.map +1 -1
  259. package/dist/utilities/getRequestLocales.js +27 -24
  260. package/dist/utilities/getRequestLocales.js.map +1 -1
  261. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  262. package/dist/utilities/getRequestTheme.js +19 -16
  263. package/dist/utilities/getRequestTheme.js.map +1 -1
  264. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  265. package/dist/utilities/headersWithCors.js +21 -30
  266. package/dist/utilities/headersWithCors.js.map +1 -1
  267. package/dist/utilities/initPage/handleAdminPage.js +46 -42
  268. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  269. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  270. package/dist/utilities/initPage/handleAuthRedirect.js +47 -32
  271. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  272. package/dist/utilities/initPage/index.d.ts.map +1 -1
  273. package/dist/utilities/initPage/index.js +140 -122
  274. package/dist/utilities/initPage/index.js.map +1 -1
  275. package/dist/utilities/initPage/shared.js +26 -25
  276. package/dist/utilities/initPage/shared.js.map +1 -1
  277. package/dist/utilities/initPage/types.js +1 -2
  278. package/dist/utilities/initPage/types.js.map +1 -1
  279. package/dist/utilities/initReq.d.ts +11 -0
  280. package/dist/utilities/initReq.d.ts.map +1 -0
  281. package/dist/utilities/initReq.js +46 -0
  282. package/dist/utilities/initReq.js.map +1 -0
  283. package/dist/utilities/mergeHeaders.js +8 -9
  284. package/dist/utilities/mergeHeaders.js.map +1 -1
  285. package/dist/utilities/meta.js +66 -65
  286. package/dist/utilities/meta.js.map +1 -1
  287. package/dist/utilities/timestamp.d.ts.map +1 -1
  288. package/dist/utilities/timestamp.js +6 -5
  289. package/dist/utilities/timestamp.js.map +1 -1
  290. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -1
  291. package/dist/views/API/LocaleSelector/index.js +38 -11
  292. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  293. package/dist/views/API/RenderJSON/index.d.ts +1 -1
  294. package/dist/views/API/RenderJSON/index.d.ts.map +1 -1
  295. package/dist/views/API/RenderJSON/index.js +124 -112
  296. package/dist/views/API/RenderJSON/index.js.map +1 -1
  297. package/dist/views/API/index.client.d.ts.map +1 -1
  298. package/dist/views/API/index.client.js +190 -202
  299. package/dist/views/API/index.client.js.map +1 -1
  300. package/dist/views/API/index.js +2 -3
  301. package/dist/views/API/index.js.map +1 -1
  302. package/dist/views/API/meta.d.ts.map +1 -1
  303. package/dist/views/API/meta.js +22 -14
  304. package/dist/views/API/meta.js.map +1 -1
  305. package/dist/views/Account/Settings/LanguageSelector.js +45 -12
  306. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  307. package/dist/views/Account/Settings/index.d.ts +5 -4
  308. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  309. package/dist/views/Account/Settings/index.js +22 -27
  310. package/dist/views/Account/Settings/index.js.map +1 -1
  311. package/dist/views/Account/ToggleTheme/index.js +51 -30
  312. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  313. package/dist/views/Account/index.client.js +32 -16
  314. package/dist/views/Account/index.client.js.map +1 -1
  315. package/dist/views/Account/index.d.ts.map +1 -1
  316. package/dist/views/Account/index.js +102 -69
  317. package/dist/views/Account/index.js.map +1 -1
  318. package/dist/views/Account/meta.js +12 -8
  319. package/dist/views/Account/meta.js.map +1 -1
  320. package/dist/views/CreateFirstUser/index.client.d.ts +1 -1
  321. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  322. package/dist/views/CreateFirstUser/index.client.js +115 -58
  323. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  324. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  325. package/dist/views/CreateFirstUser/index.js +42 -28
  326. package/dist/views/CreateFirstUser/index.js.map +1 -1
  327. package/dist/views/CreateFirstUser/index.scss +10 -0
  328. package/dist/views/CreateFirstUser/meta.js +12 -8
  329. package/dist/views/CreateFirstUser/meta.js.map +1 -1
  330. package/dist/views/Dashboard/Default/index.d.ts +8 -1
  331. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  332. package/dist/views/Dashboard/Default/index.js +146 -117
  333. package/dist/views/Dashboard/Default/index.js.map +1 -1
  334. package/dist/views/Dashboard/Default/index.scss +5 -0
  335. package/dist/views/Dashboard/index.d.ts.map +1 -1
  336. package/dist/views/Dashboard/index.js +76 -52
  337. package/dist/views/Dashboard/index.js.map +1 -1
  338. package/dist/views/Dashboard/meta.js +16 -12
  339. package/dist/views/Dashboard/meta.js.map +1 -1
  340. package/dist/views/Document/getCustomViewByKey.js +2 -3
  341. package/dist/views/Document/getCustomViewByKey.js.map +1 -1
  342. package/dist/views/Document/getCustomViewByRoute.d.ts +4 -1
  343. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  344. package/dist/views/Document/getCustomViewByRoute.js +30 -17
  345. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  346. package/dist/views/Document/getDocumentData.d.ts +5 -2
  347. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  348. package/dist/views/Document/getDocumentData.js +45 -28
  349. package/dist/views/Document/getDocumentData.js.map +1 -1
  350. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  351. package/dist/views/Document/getDocumentPermissions.js +86 -74
  352. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  353. package/dist/views/Document/getMetaBySegment.d.ts +4 -3
  354. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  355. package/dist/views/Document/getMetaBySegment.js +114 -63
  356. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  357. package/dist/views/Document/getViewsFromConfig.d.ts +9 -3
  358. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  359. package/dist/views/Document/getViewsFromConfig.js +309 -288
  360. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  361. package/dist/views/Document/index.d.ts.map +1 -1
  362. package/dist/views/Document/index.js +194 -160
  363. package/dist/views/Document/index.js.map +1 -1
  364. package/dist/views/Document/meta.js +1 -2
  365. package/dist/views/Document/meta.js.map +1 -1
  366. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  367. package/dist/views/Edit/Default/Auth/APIKey.js +118 -131
  368. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  369. package/dist/views/Edit/Default/Auth/index.js +293 -196
  370. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  371. package/dist/views/Edit/Default/Auth/types.d.ts +1 -1
  372. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  373. package/dist/views/Edit/Default/Auth/types.js +1 -2
  374. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  375. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  376. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +121 -70
  377. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  378. package/dist/views/Edit/Default/SetDocumentTitle/index.js +74 -29
  379. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +1 -1
  380. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  381. package/dist/views/Edit/Default/index.js +322 -189
  382. package/dist/views/Edit/Default/index.js.map +1 -1
  383. package/dist/views/Edit/Default/types.js +1 -2
  384. package/dist/views/Edit/Default/types.js.map +1 -1
  385. package/dist/views/Edit/index.client.js +45 -21
  386. package/dist/views/Edit/index.client.js.map +1 -1
  387. package/dist/views/Edit/index.js +2 -3
  388. package/dist/views/Edit/index.js.map +1 -1
  389. package/dist/views/Edit/meta.d.ts.map +1 -1
  390. package/dist/views/Edit/meta.js +43 -24
  391. package/dist/views/Edit/meta.js.map +1 -1
  392. package/dist/views/Edit/sanitizeEditViewProps.js +8 -9
  393. package/dist/views/Edit/sanitizeEditViewProps.js.map +1 -1
  394. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +154 -94
  395. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  396. package/dist/views/ForgotPassword/index.js +61 -48
  397. package/dist/views/ForgotPassword/index.js.map +1 -1
  398. package/dist/views/ForgotPassword/meta.js +12 -8
  399. package/dist/views/ForgotPassword/meta.js.map +1 -1
  400. package/dist/views/List/Default/index.d.ts.map +1 -1
  401. package/dist/views/List/Default/index.js +374 -196
  402. package/dist/views/List/Default/index.js.map +1 -1
  403. package/dist/views/List/Default/index.scss +4 -12
  404. package/dist/views/List/Default/types.js +1 -2
  405. package/dist/views/List/Default/types.js.map +1 -1
  406. package/dist/views/List/index.d.ts.map +1 -1
  407. package/dist/views/List/index.js +155 -138
  408. package/dist/views/List/index.js.map +1 -1
  409. package/dist/views/List/meta.js +20 -17
  410. package/dist/views/List/meta.js.map +1 -1
  411. package/dist/views/LivePreview/Context/collisionDetection.js +24 -21
  412. package/dist/views/LivePreview/Context/collisionDetection.js.map +1 -1
  413. package/dist/views/LivePreview/Context/context.d.ts +3 -2
  414. package/dist/views/LivePreview/Context/context.d.ts.map +1 -1
  415. package/dist/views/LivePreview/Context/context.js +39 -36
  416. package/dist/views/LivePreview/Context/context.js.map +1 -1
  417. package/dist/views/LivePreview/Context/index.d.ts.map +1 -1
  418. package/dist/views/LivePreview/Context/index.js +136 -142
  419. package/dist/views/LivePreview/Context/index.js.map +1 -1
  420. package/dist/views/LivePreview/Context/sizeReducer.js +18 -19
  421. package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
  422. package/dist/views/LivePreview/Device/index.d.ts.map +1 -1
  423. package/dist/views/LivePreview/Device/index.js +82 -71
  424. package/dist/views/LivePreview/Device/index.js.map +1 -1
  425. package/dist/views/LivePreview/DeviceContainer/index.js +47 -23
  426. package/dist/views/LivePreview/DeviceContainer/index.js.map +1 -1
  427. package/dist/views/LivePreview/IFrame/index.js +21 -16
  428. package/dist/views/LivePreview/IFrame/index.js.map +1 -1
  429. package/dist/views/LivePreview/Preview/index.js +145 -92
  430. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  431. package/dist/views/LivePreview/Toolbar/Controls/index.js +137 -116
  432. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  433. package/dist/views/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  434. package/dist/views/LivePreview/Toolbar/SizeInput/index.js +89 -51
  435. package/dist/views/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  436. package/dist/views/LivePreview/Toolbar/index.js +82 -50
  437. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  438. package/dist/views/LivePreview/ToolbarArea/index.js +32 -10
  439. package/dist/views/LivePreview/ToolbarArea/index.js.map +1 -1
  440. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  441. package/dist/views/LivePreview/index.client.js +332 -162
  442. package/dist/views/LivePreview/index.client.js.map +1 -1
  443. package/dist/views/LivePreview/index.js +67 -55
  444. package/dist/views/LivePreview/index.js.map +1 -1
  445. package/dist/views/LivePreview/meta.d.ts.map +1 -1
  446. package/dist/views/LivePreview/meta.js +14 -8
  447. package/dist/views/LivePreview/meta.js.map +1 -1
  448. package/dist/views/LivePreview/usePopupWindow.d.ts +1 -1
  449. package/dist/views/LivePreview/usePopupWindow.d.ts.map +1 -1
  450. package/dist/views/LivePreview/usePopupWindow.js +133 -91
  451. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  452. package/dist/views/Login/LoginField/index.js +83 -39
  453. package/dist/views/Login/LoginField/index.js.map +1 -1
  454. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  455. package/dist/views/Login/LoginForm/index.js +147 -67
  456. package/dist/views/Login/LoginForm/index.js.map +1 -1
  457. package/dist/views/Login/index.d.ts.map +1 -1
  458. package/dist/views/Login/index.js +78 -55
  459. package/dist/views/Login/index.js.map +1 -1
  460. package/dist/views/Login/meta.js +12 -8
  461. package/dist/views/Login/meta.js.map +1 -1
  462. package/dist/views/Logout/LogoutClient.d.ts +1 -0
  463. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  464. package/dist/views/Logout/LogoutClient.js +86 -39
  465. package/dist/views/Logout/LogoutClient.js.map +1 -1
  466. package/dist/views/Logout/index.d.ts.map +1 -1
  467. package/dist/views/Logout/index.js +29 -16
  468. package/dist/views/Logout/index.js.map +1 -1
  469. package/dist/views/Logout/index.scss +12 -9
  470. package/dist/views/Logout/meta.js +11 -7
  471. package/dist/views/Logout/meta.js.map +1 -1
  472. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  473. package/dist/views/NotFound/index.client.js +81 -40
  474. package/dist/views/NotFound/index.client.js.map +1 -1
  475. package/dist/views/NotFound/index.d.ts +5 -5
  476. package/dist/views/NotFound/index.d.ts.map +1 -1
  477. package/dist/views/NotFound/index.js +49 -37
  478. package/dist/views/NotFound/index.js.map +1 -1
  479. package/dist/views/NotFound/index.scss +18 -0
  480. package/dist/views/NotFound/meta.js +9 -7
  481. package/dist/views/NotFound/meta.js.map +1 -1
  482. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  483. package/dist/views/ResetPassword/index.client.js +101 -60
  484. package/dist/views/ResetPassword/index.client.js.map +1 -1
  485. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  486. package/dist/views/ResetPassword/index.js +65 -56
  487. package/dist/views/ResetPassword/index.js.map +1 -1
  488. package/dist/views/ResetPassword/index.scss +28 -2
  489. package/dist/views/ResetPassword/meta.js +12 -8
  490. package/dist/views/ResetPassword/meta.js.map +1 -1
  491. package/dist/views/Root/generateCustomViewMetadata.d.ts +11 -0
  492. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -0
  493. package/dist/views/Root/generateCustomViewMetadata.js +25 -0
  494. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
  495. package/dist/views/Root/getCustomViewByRoute.d.ts +6 -2
  496. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  497. package/dist/views/Root/getCustomViewByRoute.js +42 -16
  498. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  499. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  500. package/dist/views/Root/getViewFromConfig.js +164 -158
  501. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  502. package/dist/views/Root/index.d.ts +5 -5
  503. package/dist/views/Root/index.d.ts.map +1 -1
  504. package/dist/views/Root/index.js +102 -83
  505. package/dist/views/Root/index.js.map +1 -1
  506. package/dist/views/Root/isPathMatchingRoute.d.ts.map +1 -1
  507. package/dist/views/Root/isPathMatchingRoute.js +22 -13
  508. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  509. package/dist/views/Root/meta.d.ts +5 -5
  510. package/dist/views/Root/meta.d.ts.map +1 -1
  511. package/dist/views/Root/meta.js +144 -121
  512. package/dist/views/Root/meta.js.map +1 -1
  513. package/dist/views/Unauthorized/index.js +32 -22
  514. package/dist/views/Unauthorized/index.js.map +1 -1
  515. package/dist/views/Unauthorized/meta.js +12 -8
  516. package/dist/views/Unauthorized/meta.js.map +1 -1
  517. package/dist/views/Verify/index.d.ts.map +1 -1
  518. package/dist/views/Verify/index.js +59 -43
  519. package/dist/views/Verify/index.js.map +1 -1
  520. package/dist/views/Verify/meta.js +12 -8
  521. package/dist/views/Verify/meta.js.map +1 -1
  522. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  523. package/dist/views/Version/Default/SetStepNav.js +147 -103
  524. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  525. package/dist/views/Version/Default/index.d.ts.map +1 -1
  526. package/dist/views/Version/Default/index.js +200 -114
  527. package/dist/views/Version/Default/index.js.map +1 -1
  528. package/dist/views/Version/Default/types.js +1 -2
  529. package/dist/views/Version/Default/types.js.map +1 -1
  530. package/dist/views/Version/RenderFieldsToDiff/Label/index.js +6 -5
  531. package/dist/views/Version/RenderFieldsToDiff/Label/index.js.map +1 -1
  532. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  533. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +68 -70
  534. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  535. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +1 -1
  536. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +35 -32
  537. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +1 -1
  538. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +108 -78
  539. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  540. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +17 -11
  541. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +1 -1
  542. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  543. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +42 -38
  544. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  545. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  546. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +42 -32
  547. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  548. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +17 -11
  549. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +1 -1
  550. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  551. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +39 -30
  552. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  553. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js +4 -5
  554. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js.map +1 -1
  555. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -2
  556. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +20 -21
  557. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  558. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js +23 -24
  559. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +1 -1
  560. package/dist/views/Version/RenderFieldsToDiff/fields/types.js +1 -2
  561. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  562. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  563. package/dist/views/Version/RenderFieldsToDiff/index.js +106 -97
  564. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  565. package/dist/views/Version/RenderFieldsToDiff/types.js +1 -2
  566. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  567. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  568. package/dist/views/Version/Restore/index.js +111 -112
  569. package/dist/views/Version/Restore/index.js.map +1 -1
  570. package/dist/views/Version/Restore/index.scss +26 -10
  571. package/dist/views/Version/Restore/types.js +1 -2
  572. package/dist/views/Version/Restore/types.js.map +1 -1
  573. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  574. package/dist/views/Version/SelectComparison/index.js +153 -138
  575. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  576. package/dist/views/Version/SelectComparison/types.d.ts +1 -0
  577. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  578. package/dist/views/Version/SelectComparison/types.js +1 -2
  579. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  580. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  581. package/dist/views/Version/SelectLocales/index.js +58 -30
  582. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  583. package/dist/views/Version/SelectLocales/types.js +1 -2
  584. package/dist/views/Version/SelectLocales/types.js.map +1 -1
  585. package/dist/views/Version/index.d.ts.map +1 -1
  586. package/dist/views/Version/index.js +128 -105
  587. package/dist/views/Version/index.js.map +1 -1
  588. package/dist/views/Version/meta.d.ts.map +1 -1
  589. package/dist/views/Version/meta.js +50 -39
  590. package/dist/views/Version/meta.js.map +1 -1
  591. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  592. package/dist/views/Versions/buildColumns.js +95 -75
  593. package/dist/views/Versions/buildColumns.js.map +1 -1
  594. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  595. package/dist/views/Versions/cells/AutosaveCell/index.js +98 -43
  596. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  597. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  598. package/dist/views/Versions/cells/CreatedAt/index.js +70 -17
  599. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  600. package/dist/views/Versions/cells/ID/index.js +17 -5
  601. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  602. package/dist/views/Versions/getLatestVersion.d.ts +1 -0
  603. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  604. package/dist/views/Versions/getLatestVersion.js +45 -30
  605. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  606. package/dist/views/Versions/index.client.js +80 -77
  607. package/dist/views/Versions/index.client.js.map +1 -1
  608. package/dist/views/Versions/index.d.ts.map +1 -1
  609. package/dist/views/Versions/index.js +170 -126
  610. package/dist/views/Versions/index.js.map +1 -1
  611. package/dist/views/Versions/meta.d.ts.map +1 -1
  612. package/dist/views/Versions/meta.js +44 -33
  613. package/dist/views/Versions/meta.js.map +1 -1
  614. package/dist/views/Versions/types.js +1 -2
  615. package/dist/views/Versions/types.js.map +1 -1
  616. package/dist/withPayload.d.ts.map +1 -1
  617. package/dist/withPayload.js +83 -117
  618. package/dist/withPayload.js.map +1 -1
  619. package/package.json +39 -21
  620. package/dist/cjs/withPayload.cjs +0 -145
  621. package/dist/cjs/withPayload.cjs.map +0 -1
@@ -1,8 +1,13 @@
1
1
  'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
2
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
5
  import { DocumentControls, DocumentFields, Form, OperationProvider, SetViewActions, useAuth, useConfig, useDocumentEvents, useDocumentInfo, useTranslation } from '@payloadcms/ui';
4
- import { getFormState } from '@payloadcms/ui/shared';
5
- import React, { Fragment, useCallback } from 'react';
6
+ import { getFormState, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
7
+ import { useRouter } from 'next/navigation.js';
8
+ import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
9
+ import { DocumentLocked } from '../../elements/DocumentLocked/index.js';
10
+ import { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js';
6
11
  import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
7
12
  import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
8
13
  import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
@@ -11,176 +16,341 @@ import { LivePreviewProvider } from './Context/index.js';
11
16
  import { LivePreview } from './Preview/index.js';
12
17
  import { usePopupWindow } from './usePopupWindow.js';
13
18
  const baseClass = 'live-preview';
14
- const PreviewView = ({ apiRoute, collectionConfig, config, fields, globalConfig, schemaPath, serverURL })=>{
15
- const { id, AfterDocument, AfterFields, BeforeDocument, BeforeFields, action, apiURL, collectionSlug, disableActions, disableLeaveWithoutSaving, docPermissions, getDocPreferences, globalSlug, hasPublishPermission, hasSavePermission, initialData, initialState, isEditing, isInitializing, onSave: onSaveFromProps } = useDocumentInfo();
16
- const operation = id ? 'update' : 'create';
17
- const { config: { admin: { user: userSlug } } } = useConfig();
18
- const { t } = useTranslation();
19
- const { previewWindowType } = useLivePreviewContext();
20
- const { refreshCookieAsync, user } = useAuth();
21
- const { reportUpdate } = useDocumentEvents();
22
- const onSave = useCallback((json)=>{
23
- reportUpdate({
24
- id,
25
- entitySlug: collectionSlug,
26
- updatedAt: json?.result?.updatedAt || new Date().toISOString()
27
- });
28
- // If we're editing the doc of the logged-in user,
29
- // Refresh the cookie to get new permissions
30
- if (user && collectionSlug === userSlug && id === user.id) {
31
- void refreshCookieAsync();
32
- }
33
- if (typeof onSaveFromProps === 'function') {
34
- void onSaveFromProps({
35
- ...json,
36
- operation: id ? 'update' : 'create'
37
- });
38
- }
39
- }, [
40
- collectionSlug,
41
- id,
42
- onSaveFromProps,
43
- refreshCookieAsync,
44
- reportUpdate,
45
- user,
46
- userSlug
47
- ]);
48
- const onChange = useCallback(async ({ formState: prevFormState })=>{
49
- const docPreferences = await getDocPreferences();
50
- return getFormState({
51
- apiRoute,
52
- body: {
53
- id,
54
- docPreferences,
55
- formState: prevFormState,
56
- operation,
57
- schemaPath
58
- },
59
- serverURL
60
- });
61
- }, [
62
- serverURL,
63
- apiRoute,
19
+ const PreviewView = ({
20
+ apiRoute,
21
+ collectionConfig,
22
+ config,
23
+ fields,
24
+ globalConfig,
25
+ schemaPath,
26
+ serverURL
27
+ }) => {
28
+ const {
29
+ id,
30
+ action,
31
+ AfterDocument,
32
+ AfterFields,
33
+ apiURL,
34
+ BeforeDocument,
35
+ BeforeFields,
36
+ collectionSlug,
37
+ currentEditor,
38
+ disableActions,
39
+ disableLeaveWithoutSaving,
40
+ docPermissions,
41
+ documentIsLocked,
42
+ getDocPreferences,
43
+ globalSlug,
44
+ hasPublishPermission,
45
+ hasSavePermission,
46
+ initialData,
47
+ initialState,
48
+ isEditing,
49
+ isInitializing,
50
+ onSave: onSaveFromProps,
51
+ setCurrentEditor,
52
+ setDocumentIsLocked,
53
+ unlockDocument,
54
+ updateDocumentEditor
55
+ } = useDocumentInfo();
56
+ const operation = id ? 'update' : 'create';
57
+ const {
58
+ config: {
59
+ admin: {
60
+ user: userSlug
61
+ },
62
+ routes: {
63
+ admin: adminRoute
64
+ }
65
+ }
66
+ } = useConfig();
67
+ const router = useRouter();
68
+ const {
69
+ t
70
+ } = useTranslation();
71
+ const {
72
+ previewWindowType
73
+ } = useLivePreviewContext();
74
+ const {
75
+ refreshCookieAsync,
76
+ user
77
+ } = useAuth();
78
+ const {
79
+ reportUpdate
80
+ } = useDocumentEvents();
81
+ const docConfig = collectionConfig || globalConfig;
82
+ const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true;
83
+ const isLockingEnabled = lockDocumentsProp !== false;
84
+ const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
85
+ const [showTakeOverModal, setShowTakeOverModal] = useState(false);
86
+ const documentLockStateRef = useRef({
87
+ hasShownLockedModal: false,
88
+ isLocked: false,
89
+ user: null
90
+ });
91
+ const [lastUpdateTime, setLastUpdateTime] = useState(Date.now());
92
+ const onSave = useCallback(json => {
93
+ reportUpdate({
94
+ id,
95
+ entitySlug: collectionSlug,
96
+ updatedAt: json?.result?.updatedAt || new Date().toISOString()
97
+ });
98
+ // If we're editing the doc of the logged-in user,
99
+ // Refresh the cookie to get new permissions
100
+ if (user && collectionSlug === userSlug && id === user.id) {
101
+ void refreshCookieAsync();
102
+ }
103
+ // Unlock the document after save
104
+ if ((id || globalSlug) && isLockingEnabled) {
105
+ setDocumentIsLocked(false);
106
+ }
107
+ if (typeof onSaveFromProps === 'function') {
108
+ void onSaveFromProps({
109
+ ...json,
110
+ operation: id ? 'update' : 'create'
111
+ });
112
+ }
113
+ }, [collectionSlug, globalSlug, id, isLockingEnabled, onSaveFromProps, refreshCookieAsync, reportUpdate, setDocumentIsLocked, user, userSlug]);
114
+ const onChange = useCallback(async ({
115
+ formState: prevFormState
116
+ }) => {
117
+ const currentTime = Date.now();
118
+ const timeSinceLastUpdate = currentTime - lastUpdateTime;
119
+ const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
120
+ ;
121
+ if (updateLastEdited) {
122
+ setLastUpdateTime(currentTime);
123
+ }
124
+ const docPreferences = await getDocPreferences();
125
+ const {
126
+ lockedState,
127
+ state
128
+ } = await getFormState({
129
+ apiRoute,
130
+ body: {
64
131
  id,
132
+ collectionSlug,
133
+ docPreferences,
134
+ formState: prevFormState,
135
+ globalSlug,
65
136
  operation,
137
+ returnLockStatus: isLockingEnabled ? true : false,
66
138
  schemaPath,
67
- getDocPreferences
68
- ]);
69
- return /*#__PURE__*/ _jsx(OperationProvider, {
70
- operation: operation,
71
- children: /*#__PURE__*/ _jsxs(Form, {
72
- action: action,
73
- className: `${baseClass}__form`,
74
- disabled: !hasSavePermission,
75
- initialState: initialState,
76
- isInitializing: isInitializing,
77
- method: id ? 'PATCH' : 'POST',
78
- onChange: [
79
- onChange
80
- ],
81
- onSuccess: onSave,
82
- children: [
83
- (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && /*#__PURE__*/ _jsx(LeaveWithoutSaving, {}),
84
- /*#__PURE__*/ _jsx(SetDocumentStepNav, {
85
- collectionSlug: collectionSlug,
86
- globalLabel: globalConfig?.label,
87
- globalSlug: globalSlug,
88
- id: id,
89
- pluralLabel: collectionConfig ? collectionConfig?.labels?.plural : undefined,
90
- useAsTitle: collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined,
91
- view: t('general:livePreview')
92
- }),
93
- /*#__PURE__*/ _jsx(SetDocumentTitle, {
94
- collectionConfig: collectionConfig,
95
- config: config,
96
- fallback: id?.toString() || '',
97
- globalConfig: globalConfig
98
- }),
99
- /*#__PURE__*/ _jsx(DocumentControls, {
100
- apiURL: apiURL,
101
- data: initialData,
102
- disableActions: disableActions,
103
- hasPublishPermission: hasPublishPermission,
104
- hasSavePermission: hasSavePermission,
105
- id: id,
106
- isEditing: isEditing,
107
- permissions: docPermissions,
108
- slug: collectionConfig?.slug || globalConfig?.slug
109
- }),
110
- /*#__PURE__*/ _jsxs("div", {
111
- className: [
112
- baseClass,
113
- previewWindowType === 'popup' && `${baseClass}--detached`
114
- ].filter(Boolean).join(' '),
115
- children: [
116
- /*#__PURE__*/ _jsxs("div", {
117
- className: [
118
- `${baseClass}__main`,
119
- previewWindowType === 'popup' && `${baseClass}__main--popup-open`
120
- ].filter(Boolean).join(' '),
121
- children: [
122
- BeforeDocument,
123
- /*#__PURE__*/ _jsx(DocumentFields, {
124
- AfterFields: AfterFields,
125
- BeforeFields: BeforeFields,
126
- docPermissions: docPermissions,
127
- fields: fields,
128
- forceSidebarWrap: true,
129
- readOnly: !hasSavePermission,
130
- schemaPath: collectionSlug || globalSlug
131
- }),
132
- AfterDocument
133
- ]
134
- }),
135
- /*#__PURE__*/ _jsx(LivePreview, {
136
- collectionSlug: collectionSlug,
137
- globalSlug: globalSlug
138
- })
139
- ]
140
- })
141
- ]
142
- })
139
+ updateLastEdited
140
+ },
141
+ serverURL
143
142
  });
143
+ setDocumentIsLocked(true);
144
+ if (isLockingEnabled) {
145
+ const previousOwnerId = documentLockStateRef.current?.user?.id;
146
+ if (lockedState) {
147
+ if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {
148
+ if (previousOwnerId === user.id && lockedState.user.id !== user.id) {
149
+ setShowTakeOverModal(true);
150
+ documentLockStateRef.current.hasShownLockedModal = true;
151
+ }
152
+ documentLockStateRef.current = documentLockStateRef.current = {
153
+ hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,
154
+ isLocked: true,
155
+ user: lockedState.user
156
+ };
157
+ setCurrentEditor(lockedState.user);
158
+ }
159
+ }
160
+ }
161
+ return state;
162
+ }, [collectionSlug, globalSlug, serverURL, apiRoute, id, isLockingEnabled, lastUpdateTime, operation, schemaPath, getDocPreferences, setCurrentEditor, setDocumentIsLocked, user]);
163
+ // Clean up when the component unmounts or when the document is unlocked
164
+ useEffect(() => {
165
+ return () => {
166
+ if (!isLockingEnabled) {
167
+ return;
168
+ }
169
+ const currentPath = window.location.pathname;
170
+ const documentId = id || globalSlug;
171
+ // Routes where we do NOT want to unlock the document
172
+ const stayWithinDocumentPaths = ['preview', 'api', 'versions'];
173
+ const isStayingWithinDocument = stayWithinDocumentPaths.some(path => currentPath.includes(path));
174
+ // Unlock the document only if we're actually navigating away from the document
175
+ if (documentId && documentIsLocked && !isStayingWithinDocument) {
176
+ // Check if this user is still the current editor
177
+ if (documentLockStateRef.current?.user?.id === user?.id) {
178
+ void unlockDocument(id, collectionSlug ?? globalSlug);
179
+ setDocumentIsLocked(false);
180
+ setCurrentEditor(null);
181
+ }
182
+ }
183
+ setShowTakeOverModal(false);
184
+ };
185
+ }, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
186
+ const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && currentEditor.id !== user.id && !isReadOnlyForIncomingUser && !showTakeOverModal &&
187
+ // eslint-disable-next-line react-compiler/react-compiler
188
+ !documentLockStateRef.current?.hasShownLockedModal;
189
+ return /*#__PURE__*/_jsx(OperationProvider, {
190
+ operation: operation,
191
+ children: /*#__PURE__*/_jsxs(Form, {
192
+ action: action,
193
+ className: `${baseClass}__form`,
194
+ disabled: isReadOnlyForIncomingUser || !hasSavePermission,
195
+ initialState: initialState,
196
+ isInitializing: isInitializing,
197
+ method: id ? 'PATCH' : 'POST',
198
+ onChange: [onChange],
199
+ onSuccess: onSave,
200
+ children: [isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(DocumentLocked, {
201
+ handleGoBack: () => handleGoBack({
202
+ adminRoute,
203
+ collectionSlug,
204
+ router
205
+ }),
206
+ isActive: shouldShowDocumentLockedModal,
207
+ onReadOnly: () => {
208
+ setIsReadOnlyForIncomingUser(true);
209
+ setShowTakeOverModal(false);
210
+ },
211
+ onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled),
212
+ updatedAt: lastUpdateTime,
213
+ user: currentEditor
214
+ }), isLockingEnabled && showTakeOverModal && /*#__PURE__*/_jsx(DocumentTakeOver, {
215
+ handleBackToDashboard: () => handleBackToDashboard({
216
+ adminRoute,
217
+ router
218
+ }),
219
+ isActive: showTakeOverModal,
220
+ onReadOnly: () => {
221
+ setIsReadOnlyForIncomingUser(true);
222
+ setShowTakeOverModal(false);
223
+ }
224
+ }), (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(LeaveWithoutSaving, {}), /*#__PURE__*/_jsx(SetDocumentStepNav, {
225
+ collectionSlug: collectionSlug,
226
+ globalLabel: globalConfig?.label,
227
+ globalSlug: globalSlug,
228
+ id: id,
229
+ pluralLabel: collectionConfig ? collectionConfig?.labels?.plural : undefined,
230
+ useAsTitle: collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined,
231
+ view: t('general:livePreview')
232
+ }), /*#__PURE__*/_jsx(SetDocumentTitle, {
233
+ collectionConfig: collectionConfig,
234
+ config: config,
235
+ fallback: id?.toString() || '',
236
+ globalConfig: globalConfig
237
+ }), /*#__PURE__*/_jsx(DocumentControls, {
238
+ apiURL: apiURL,
239
+ data: initialData,
240
+ disableActions: disableActions,
241
+ hasPublishPermission: hasPublishPermission,
242
+ hasSavePermission: hasSavePermission,
243
+ id: id,
244
+ isEditing: isEditing,
245
+ onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled, setIsReadOnlyForIncomingUser),
246
+ permissions: docPermissions,
247
+ readOnlyForIncomingUser: isReadOnlyForIncomingUser,
248
+ slug: collectionConfig?.slug || globalConfig?.slug,
249
+ user: currentEditor
250
+ }), /*#__PURE__*/_jsxs("div", {
251
+ className: [baseClass, previewWindowType === 'popup' && `${baseClass}--detached`].filter(Boolean).join(' '),
252
+ children: [/*#__PURE__*/_jsxs("div", {
253
+ className: [`${baseClass}__main`, previewWindowType === 'popup' && `${baseClass}__main--popup-open`].filter(Boolean).join(' '),
254
+ children: [BeforeDocument, /*#__PURE__*/_jsx(DocumentFields, {
255
+ AfterFields: AfterFields,
256
+ BeforeFields: BeforeFields,
257
+ docPermissions: docPermissions,
258
+ fields: fields,
259
+ forceSidebarWrap: true,
260
+ readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
261
+ schemaPath: collectionSlug || globalSlug
262
+ }), AfterDocument]
263
+ }), /*#__PURE__*/_jsx(LivePreview, {
264
+ collectionSlug: collectionSlug,
265
+ globalSlug: globalSlug
266
+ })]
267
+ })]
268
+ })
269
+ });
144
270
  };
145
- export const LivePreviewClient = (props)=>{
146
- const { breakpoints, url } = props;
147
- const { collectionSlug, globalSlug } = useDocumentInfo();
148
- const { config, config: { routes: { api: apiRoute }, serverURL }, getEntityConfig } = useConfig();
149
- const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({
150
- eventType: 'payload-live-preview',
151
- url
152
- });
271
+ export const LivePreviewClient = props => {
272
+ const $ = _c(14);
273
+ const {
274
+ breakpoints,
275
+ url
276
+ } = props;
277
+ const {
278
+ collectionSlug,
279
+ globalSlug
280
+ } = useDocumentInfo();
281
+ const {
282
+ config,
283
+ config: t0,
284
+ getEntityConfig
285
+ } = useConfig();
286
+ const {
287
+ routes: t1,
288
+ serverURL
289
+ } = t0;
290
+ const {
291
+ api: apiRoute
292
+ } = t1;
293
+ let t2;
294
+ if ($[0] !== url) {
295
+ t2 = {
296
+ eventType: "payload-live-preview",
297
+ url
298
+ };
299
+ $[0] = url;
300
+ $[1] = t2;
301
+ } else {
302
+ t2 = $[1];
303
+ }
304
+ const {
305
+ isPopupOpen,
306
+ openPopupWindow,
307
+ popupRef
308
+ } = usePopupWindow(t2);
309
+ let t3;
310
+ if ($[2] !== collectionSlug || $[3] !== getEntityConfig || $[4] !== globalSlug || $[5] !== apiRoute || $[6] !== config || $[7] !== serverURL || $[8] !== breakpoints || $[9] !== isPopupOpen || $[10] !== openPopupWindow || $[11] !== popupRef || $[12] !== url) {
153
311
  const collectionConfig = getEntityConfig({
154
- collectionSlug
312
+ collectionSlug
155
313
  });
156
314
  const globalConfig = getEntityConfig({
157
- globalSlug
315
+ globalSlug
158
316
  });
159
317
  const schemaPath = collectionSlug || globalSlug;
160
- return /*#__PURE__*/ _jsxs(Fragment, {
161
- children: [
162
- /*#__PURE__*/ _jsx(SetViewActions, {
163
- actions: (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions
164
- }),
165
- /*#__PURE__*/ _jsx(LivePreviewProvider, {
166
- breakpoints: breakpoints,
167
- fieldSchema: collectionConfig?.fields || globalConfig?.fields,
168
- isPopupOpen: isPopupOpen,
169
- openPopupWindow: openPopupWindow,
170
- popupRef: popupRef,
171
- url: url,
172
- children: /*#__PURE__*/ _jsx(PreviewView, {
173
- apiRoute: apiRoute,
174
- collectionConfig: collectionConfig,
175
- config: config,
176
- fields: (collectionConfig || globalConfig)?.fields,
177
- globalConfig: globalConfig,
178
- schemaPath: schemaPath,
179
- serverURL: serverURL
180
- })
181
- })
182
- ]
318
+ t3 = _jsxs(Fragment, {
319
+ children: [_jsx(SetViewActions, {
320
+ actions: (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions
321
+ }), _jsx(LivePreviewProvider, {
322
+ breakpoints,
323
+ fieldSchema: collectionConfig?.fields || globalConfig?.fields,
324
+ isPopupOpen,
325
+ openPopupWindow,
326
+ popupRef,
327
+ url,
328
+ children: _jsx(PreviewView, {
329
+ apiRoute,
330
+ collectionConfig,
331
+ config,
332
+ fields: (collectionConfig || globalConfig)?.fields,
333
+ globalConfig,
334
+ schemaPath,
335
+ serverURL
336
+ })
337
+ })]
183
338
  });
339
+ $[2] = collectionSlug;
340
+ $[3] = getEntityConfig;
341
+ $[4] = globalSlug;
342
+ $[5] = apiRoute;
343
+ $[6] = config;
344
+ $[7] = serverURL;
345
+ $[8] = breakpoints;
346
+ $[9] = isPopupOpen;
347
+ $[10] = openPopupWindow;
348
+ $[11] = popupRef;
349
+ $[12] = url;
350
+ $[13] = t3;
351
+ } else {
352
+ t3 = $[13];
353
+ }
354
+ return t3;
184
355
  };
185
-
186
356
  //# sourceMappingURL=index.client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n OperationProvider,\n SetViewActions,\n useAuth,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport { LivePreview } from './Preview/index.js'\nimport './index.scss'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n serverURL,\n}) => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n },\n } = useConfig()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [collectionSlug, id, onSaveFromProps, refreshCookieAsync, reportUpdate, user, userSlug],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n docPreferences,\n formState: prevFormState,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, schemaPath, getDocPreferences],\n )\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={!hasSavePermission}\n schemaPath={collectionSlug || globalSlug}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\n <SetViewActions\n actions={\n (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions\n }\n />\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","SetViewActions","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useTranslation","getFormState","React","Fragment","useCallback","LeaveWithoutSaving","SetDocumentStepNav","SetDocumentTitle","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fields","globalConfig","schemaPath","serverURL","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","onSave","onSaveFromProps","operation","admin","user","userSlug","t","previewWindowType","refreshCookieAsync","reportUpdate","json","entitySlug","updatedAt","result","Date","toISOString","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","view","fallback","toString","data","permissions","slug","div","filter","Boolean","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","routes","api","getEntityConfig","isPopupOpen","openPopupWindow","popupRef","eventType","actions","components","views","edit","livePreview","fieldSchema"],"mappings":"AAAA;;AAWA,SACEA,gBAAgB,EAChBC,cAAc,EACdC,IAAI,EACJC,iBAAiB,EACjBC,cAAc,EACdC,OAAO,EACPC,SAAS,EACTC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,QACT,iBAAgB;AACvB,SAASC,YAAY,QAAQ,wBAAuB;AACpD,OAAOC,SAASC,QAAQ,EAAEC,WAAW,QAAQ,QAAO;AAEpD,SAASC,kBAAkB,QAAQ,6CAA4C;AAC/E,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,gBAAgB,QAAQ,4CAA2C;AAC5E,SAASC,qBAAqB,QAAQ,uBAAsB;AAC5D,SAASC,mBAAmB,QAAQ,qBAAoB;AACxD,SAASC,WAAW,QAAQ,qBAAoB;AAEhD,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,MAAMC,YAAY;AAYlB,MAAMC,cAA+B,CAAC,EACpCC,QAAQ,EACRC,gBAAgB,EAChBC,MAAM,EACNC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,SAAS,EACV;IACC,MAAM,EACJC,EAAE,EACFC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,YAAY,EACZC,MAAM,EACNC,MAAM,EACNC,cAAc,EACdC,cAAc,EACdC,yBAAyB,EACzBC,cAAc,EACdC,iBAAiB,EACjBC,UAAU,EACVC,oBAAoB,EACpBC,iBAAiB,EACjBC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,cAAc,EACdC,QAAQC,eAAe,EACxB,GAAG1C;IAEJ,MAAM2C,YAAYrB,KAAK,WAAW;IAElC,MAAM,EACJL,QAAQ,EACN2B,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EAC1B,EACF,GAAGhD;IACJ,MAAM,EAAEiD,CAAC,EAAE,GAAG9C;IACd,MAAM,EAAE+C,iBAAiB,EAAE,GAAGvC;IAC9B,MAAM,EAAEwC,kBAAkB,EAAEJ,IAAI,EAAE,GAAGhD;IACrC,MAAM,EAAEqD,YAAY,EAAE,GAAGnD;IAEzB,MAAM0C,SAASpC,YACb,CAAC8C;QACCD,aAAa;YACX5B;YACA8B,YAAYvB;YACZwB,WAAWF,MAAMG,QAAQD,aAAa,IAAIE,OAAOC,WAAW;QAC9D;QAEA,kDAAkD;QAClD,4CAA4C;QAC5C,IAAIX,QAAQhB,mBAAmBiB,YAAYxB,OAAOuB,KAAKvB,EAAE,EAAE;YACzD,KAAK2B;QACP;QAEA,IAAI,OAAOP,oBAAoB,YAAY;YACzC,KAAKA,gBAAgB;gBACnB,GAAGS,IAAI;gBACPR,WAAWrB,KAAK,WAAW;YAC7B;QACF;IACF,GACA;QAACO;QAAgBP;QAAIoB;QAAiBO;QAAoBC;QAAcL;QAAMC;KAAS;IAGzF,MAAMW,WAAqCpD,YACzC,OAAO,EAAEqD,WAAWC,aAAa,EAAE;QACjC,MAAMC,iBAAiB,MAAM3B;QAE7B,OAAO/B,aAAa;YAClBa;YACA8C,MAAM;gBACJvC;gBACAsC;gBACAF,WAAWC;gBACXhB;gBACAvB;YACF;YACAC;QACF;IACF,GACA;QAACA;QAAWN;QAAUO;QAAIqB;QAAWvB;QAAYa;KAAkB;IAGrE,qBACE,KAACtC;QAAkBgD,WAAWA;kBAC5B,cAAA,MAACjD;YACCiC,QAAQA;YACRmC,WAAW,CAAC,EAAEjD,UAAU,MAAM,CAAC;YAC/BkD,UAAU,CAAC3B;YACXE,cAAcA;YACdE,gBAAgBA;YAChBwB,QAAQ1C,KAAK,UAAU;YACvBmC,UAAU;gBAACA;aAAS;YACpBQ,WAAWxB;;gBAET,CAAA,AAACzB,oBACD,CAAEA,CAAAA,iBAAiBkD,QAAQ,EAAEC,UAAUnD,iBAAiBkD,QAAQ,EAAEC,QAAQC,QAAO,KAChFjD,gBACC,CAAEA,CAAAA,aAAa+C,QAAQ,EAAEC,UAAUhD,aAAa+C,QAAQ,EAAEC,QAAQC,QAAO,CAAE,KAC7E,CAACrC,2CAA6B,KAACzB;8BACjC,KAACC;oBACCsB,gBAAgBA;oBAChBwC,aAAalD,cAAcmD;oBAC3BpC,YAAYA;oBACZZ,IAAIA;oBACJiD,aAAavD,mBAAmBA,kBAAkBwD,QAAQC,SAASC;oBACnEC,YAAY3D,mBAAmBA,kBAAkB4B,OAAO+B,aAAaD;oBACrEE,MAAM7B,EAAE;;8BAEV,KAACvC;oBACCQ,kBAAkBA;oBAClBC,QAAQA;oBACR4D,UAAUvD,IAAIwD,cAAc;oBAC5B3D,cAAcA;;8BAEhB,KAAC3B;oBACCoC,QAAQA;oBACRmD,MAAM1C;oBACNP,gBAAgBA;oBAChBK,sBAAsBA;oBACtBC,mBAAmBA;oBACnBd,IAAIA;oBACJiB,WAAWA;oBACXyC,aAAahD;oBACbiD,MAAMjE,kBAAkBiE,QAAQ9D,cAAc8D;;8BAEhD,MAACC;oBACCpB,WAAW;wBAACjD;wBAAWmC,sBAAsB,WAAW,CAAC,EAAEnC,UAAU,UAAU,CAAC;qBAAC,CAC9EsE,MAAM,CAACC,SACPC,IAAI,CAAC;;sCAER,MAACH;4BACCpB,WAAW;gCACT,CAAC,EAAEjD,UAAU,MAAM,CAAC;gCACpBmC,sBAAsB,WAAW,CAAC,EAAEnC,UAAU,kBAAkB,CAAC;6BAClE,CACEsE,MAAM,CAACC,SACPC,IAAI,CAAC;;gCAEP5D;8CACD,KAAChC;oCACC+B,aAAaA;oCACbE,cAAcA;oCACdM,gBAAgBA;oCAChBd,QAAQA;oCACRoE,gBAAgB;oCAChBC,UAAU,CAACnD;oCACXhB,YAAYS,kBAAkBK;;gCAE/BX;;;sCAEH,KAACZ;4BAAYkB,gBAAgBA;4BAAgBK,YAAYA;;;;;;;AAKnE;AAEA,OAAO,MAAMsD,oBAIR,CAACC;IACJ,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGF;IAC7B,MAAM,EAAE5D,cAAc,EAAEK,UAAU,EAAE,GAAGlC;IAEvC,MAAM,EACJiB,MAAM,EACNA,QAAQ,EACN2E,QAAQ,EAAEC,KAAK9E,QAAQ,EAAE,EACzBM,SAAS,EACV,EACDyE,eAAe,EAChB,GAAGhG;IAEJ,MAAM,EAAEiG,WAAW,EAAEC,eAAe,EAAEC,QAAQ,EAAE,GAAGrF,eAAe;QAChEsF,WAAW;QACXP;IACF;IAEA,MAAM3E,mBAAmB8E,gBAAgB;QAAEjE;IAAe;IAE1D,MAAMV,eAAe2E,gBAAgB;QAAE5D;IAAW;IAElD,MAAMd,aAAaS,kBAAkBK;IAErC,qBACE,MAAC9B;;0BACC,KAACR;gBACCuG,SACGnF,CAAAA,oBAAoBG,YAAW,GAAIyB,OAAOwD,YAAYC,OAAOC,MAAMC,aAAaJ;;0BAGrF,KAACzF;gBACCgF,aAAaA;gBACbc,aAAaxF,kBAAkBE,UAAUC,cAAcD;gBACvD6E,aAAaA;gBACbC,iBAAiBA;gBACjBC,UAAUA;gBACVN,KAAKA;0BAEL,cAAA,KAAC7E;oBACCC,UAAUA;oBACVC,kBAAkBA;oBAClBC,QAAQA;oBACRC,QAASF,CAAAA,oBAAoBG,YAAW,GAAID;oBAC5CC,cAAcA;oBACdC,YAAYA;oBACZC,WAAWA;;;;;AAKrB,EAAC"}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","Form","OperationProvider","SetViewActions","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useTranslation","getFormState","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","SetDocumentStepNav","SetDocumentTitle","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fields","globalConfig","schemaPath","serverURL","id","action","AfterDocument","AfterFields","apiURL","BeforeDocument","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","onSave","onSaveFromProps","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","documentLockStateRef","hasShownLockedModal","isLocked","lastUpdateTime","setLastUpdateTime","Date","now","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","body","returnLockStatus","previousOwnerId","current","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","api","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","actions","components","views","edit","livePreview","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n OperationProvider,\n SetViewActions,\n useAuth,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n getFormState,\n handleBackToDashboard,\n handleGoBack,\n handleTakeOver,\n} from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n serverURL,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeDocument,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromProps,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const [lastUpdateTime, setLastUpdateTime] = useState(Date.now())\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - lastUpdateTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setLastUpdateTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n updateLastEdited,\n },\n serverURL,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId = documentLockStateRef.current?.user?.id\n\n if (lockedState) {\n if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedState.user.id !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user,\n }\n setCurrentEditor(lockedState.user)\n }\n }\n }\n\n return state\n },\n [\n collectionSlug,\n globalSlug,\n serverURL,\n apiRoute,\n id,\n isLockingEnabled,\n lastUpdateTime,\n operation,\n schemaPath,\n getDocPreferences,\n setCurrentEditor,\n setDocumentIsLocked,\n user,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (documentLockStateRef.current?.user?.id === user?.id) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n currentEditor.id !== user.id &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPath={collectionSlug || globalSlug}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\n <SetViewActions\n actions={\n (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions\n }\n />\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}