@payloadcms/next 3.0.0-beta.3 → 3.0.0-beta.30

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 (365) hide show
  1. package/dist/cjs/withPayload.cjs +2 -1
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/exports/routes.d.ts +1 -1
  4. package/dist/exports/routes.d.ts.map +1 -1
  5. package/dist/exports/routes.js +1 -1
  6. package/dist/exports/routes.js.map +1 -1
  7. package/dist/exports/utilities.d.ts +7 -1
  8. package/dist/exports/utilities.d.ts.map +1 -1
  9. package/dist/exports/utilities.js +7 -1
  10. package/dist/exports/utilities.js.map +1 -1
  11. package/dist/{next-fileupload → fetchAPI-multipart}/fileFactory.d.ts +2 -2
  12. package/dist/fetchAPI-multipart/fileFactory.d.ts.map +1 -0
  13. package/dist/fetchAPI-multipart/fileFactory.js.map +1 -0
  14. package/dist/{next-fileupload → fetchAPI-multipart}/handlers.d.ts +2 -2
  15. package/dist/fetchAPI-multipart/handlers.d.ts.map +1 -0
  16. package/dist/fetchAPI-multipart/handlers.js.map +1 -0
  17. package/dist/{next-fileupload → fetchAPI-multipart}/index.d.ts +8 -8
  18. package/dist/fetchAPI-multipart/index.d.ts.map +1 -0
  19. package/dist/{next-fileupload → fetchAPI-multipart}/index.js +1 -1
  20. package/dist/fetchAPI-multipart/index.js.map +1 -0
  21. package/dist/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -0
  22. package/dist/{next-fileupload → fetchAPI-multipart}/isEligibleRequest.js +1 -1
  23. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -0
  24. package/dist/fetchAPI-multipart/processMultipart.d.ts +8 -0
  25. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -0
  26. package/dist/{next-fileupload → fetchAPI-multipart}/processMultipart.js +29 -6
  27. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -0
  28. package/dist/fetchAPI-multipart/processNested.d.ts.map +1 -0
  29. package/dist/{next-fileupload → fetchAPI-multipart}/processNested.js +2 -1
  30. package/dist/fetchAPI-multipart/processNested.js.map +1 -0
  31. package/dist/fetchAPI-multipart/uploadTimer.d.ts.map +1 -0
  32. package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -0
  33. package/dist/{next-fileupload → fetchAPI-multipart}/utilities.d.ts +4 -4
  34. package/dist/fetchAPI-multipart/utilities.d.ts.map +1 -0
  35. package/dist/{next-fileupload → fetchAPI-multipart}/utilities.js +4 -4
  36. package/dist/fetchAPI-multipart/utilities.js.map +1 -0
  37. package/dist/fetchAPI-stream-file/index.d.ts.map +1 -0
  38. package/dist/fetchAPI-stream-file/index.js.map +1 -0
  39. package/dist/layouts/Root/index.d.ts.map +1 -1
  40. package/dist/layouts/Root/index.js +23 -1
  41. package/dist/layouts/Root/index.js.map +1 -1
  42. package/dist/prod/styles.css +1 -1
  43. package/dist/routes/graphql/handler.d.ts.map +1 -1
  44. package/dist/routes/graphql/handler.js +22 -10
  45. package/dist/routes/graphql/handler.js.map +1 -1
  46. package/dist/routes/index.d.ts +1 -1
  47. package/dist/routes/index.d.ts.map +1 -1
  48. package/dist/routes/index.js +1 -1
  49. package/dist/routes/index.js.map +1 -1
  50. package/dist/routes/rest/auth/access.d.ts.map +1 -1
  51. package/dist/routes/rest/auth/access.js +5 -0
  52. package/dist/routes/rest/auth/access.js.map +1 -1
  53. package/dist/routes/rest/auth/forgotPassword.d.ts.map +1 -1
  54. package/dist/routes/rest/auth/forgotPassword.js +7 -2
  55. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  56. package/dist/routes/rest/auth/init.d.ts.map +1 -1
  57. package/dist/routes/rest/auth/init.js +6 -0
  58. package/dist/routes/rest/auth/init.js.map +1 -1
  59. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  60. package/dist/routes/rest/auth/login.js +8 -5
  61. package/dist/routes/rest/auth/login.js.map +1 -1
  62. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  63. package/dist/routes/rest/auth/logout.js +12 -7
  64. package/dist/routes/rest/auth/logout.js.map +1 -1
  65. package/dist/routes/rest/auth/me.d.ts.map +1 -1
  66. package/dist/routes/rest/auth/me.js +5 -0
  67. package/dist/routes/rest/auth/me.js.map +1 -1
  68. package/dist/routes/rest/auth/refresh.d.ts.map +1 -1
  69. package/dist/routes/rest/auth/refresh.js +11 -7
  70. package/dist/routes/rest/auth/refresh.js.map +1 -1
  71. package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
  72. package/dist/routes/rest/auth/registerFirstUser.js +8 -5
  73. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  74. package/dist/routes/rest/auth/resetPassword.d.ts.map +1 -1
  75. package/dist/routes/rest/auth/resetPassword.js +8 -5
  76. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  77. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  78. package/dist/routes/rest/auth/unlock.js +7 -2
  79. package/dist/routes/rest/auth/unlock.js.map +1 -1
  80. package/dist/routes/rest/auth/verifyEmail.d.ts.map +1 -1
  81. package/dist/routes/rest/auth/verifyEmail.js +7 -2
  82. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  83. package/dist/routes/rest/buildFormState.d.ts +3 -3
  84. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  85. package/dist/routes/rest/buildFormState.js +42 -7
  86. package/dist/routes/rest/buildFormState.js.map +1 -1
  87. package/dist/routes/rest/collections/count.d.ts +3 -0
  88. package/dist/routes/rest/collections/count.d.ts.map +1 -0
  89. package/dist/routes/rest/collections/count.js +15 -0
  90. package/dist/routes/rest/collections/count.js.map +1 -0
  91. package/dist/routes/rest/collections/create.d.ts.map +1 -1
  92. package/dist/routes/rest/collections/create.js +5 -0
  93. package/dist/routes/rest/collections/create.js.map +1 -1
  94. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  95. package/dist/routes/rest/collections/delete.js +7 -0
  96. package/dist/routes/rest/collections/delete.js.map +1 -1
  97. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  98. package/dist/routes/rest/collections/deleteByID.js +14 -1
  99. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  100. package/dist/routes/rest/collections/docAccess.d.ts.map +1 -1
  101. package/dist/routes/rest/collections/docAccess.js +5 -0
  102. package/dist/routes/rest/collections/docAccess.js.map +1 -1
  103. package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
  104. package/dist/routes/rest/collections/duplicate.js +12 -1
  105. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  106. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  107. package/dist/routes/rest/collections/find.js +5 -0
  108. package/dist/routes/rest/collections/find.js.map +1 -1
  109. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  110. package/dist/routes/rest/collections/findByID.js +12 -1
  111. package/dist/routes/rest/collections/findByID.js.map +1 -1
  112. package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
  113. package/dist/routes/rest/collections/findVersionByID.js +12 -1
  114. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  115. package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
  116. package/dist/routes/rest/collections/findVersions.js +5 -0
  117. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  118. package/dist/routes/rest/collections/preview.d.ts.map +1 -1
  119. package/dist/routes/rest/collections/preview.js +11 -2
  120. package/dist/routes/rest/collections/preview.js.map +1 -1
  121. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  122. package/dist/routes/rest/collections/restoreVersion.js +12 -1
  123. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  124. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  125. package/dist/routes/rest/collections/update.js +7 -0
  126. package/dist/routes/rest/collections/update.js.map +1 -1
  127. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  128. package/dist/routes/rest/collections/updateByID.js +12 -1
  129. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  130. package/dist/routes/rest/files/checkFileAccess.d.ts +3 -3
  131. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  132. package/dist/routes/rest/files/checkFileAccess.js +1 -0
  133. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  134. package/dist/routes/rest/files/getFile.d.ts +2 -2
  135. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  136. package/dist/routes/rest/files/getFile.js +19 -10
  137. package/dist/routes/rest/files/getFile.js.map +1 -1
  138. package/dist/routes/rest/files/getFileTypeFallback.d.ts +7 -0
  139. package/dist/routes/rest/files/getFileTypeFallback.d.ts.map +1 -0
  140. package/dist/routes/rest/files/getFileTypeFallback.js +21 -0
  141. package/dist/routes/rest/files/getFileTypeFallback.js.map +1 -0
  142. package/dist/routes/rest/globals/docAccess.d.ts.map +1 -1
  143. package/dist/routes/rest/globals/docAccess.js +5 -0
  144. package/dist/routes/rest/globals/docAccess.js.map +1 -1
  145. package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
  146. package/dist/routes/rest/globals/findOne.js +5 -0
  147. package/dist/routes/rest/globals/findOne.js.map +1 -1
  148. package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
  149. package/dist/routes/rest/globals/findVersionByID.js +5 -0
  150. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  151. package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
  152. package/dist/routes/rest/globals/findVersions.js +5 -0
  153. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  154. package/dist/routes/rest/globals/preview.d.ts.map +1 -1
  155. package/dist/routes/rest/globals/preview.js +11 -2
  156. package/dist/routes/rest/globals/preview.js.map +1 -1
  157. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  158. package/dist/routes/rest/globals/restoreVersion.js +5 -0
  159. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  160. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  161. package/dist/routes/rest/globals/update.js +5 -0
  162. package/dist/routes/rest/globals/update.js.map +1 -1
  163. package/dist/routes/rest/index.d.ts +1 -0
  164. package/dist/routes/rest/index.d.ts.map +1 -1
  165. package/dist/routes/rest/index.js +324 -213
  166. package/dist/routes/rest/index.js.map +1 -1
  167. package/dist/routes/rest/routeError.d.ts +5 -4
  168. package/dist/routes/rest/routeError.d.ts.map +1 -1
  169. package/dist/routes/rest/routeError.js +25 -11
  170. package/dist/routes/rest/routeError.js.map +1 -1
  171. package/dist/routes/rest/types.d.ts +7 -7
  172. package/dist/routes/rest/types.d.ts.map +1 -1
  173. package/dist/routes/rest/types.js.map +1 -1
  174. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts +9 -0
  175. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts.map +1 -0
  176. package/dist/routes/rest/utilities/sanitizeCollectionID.js +13 -0
  177. package/dist/routes/rest/utilities/sanitizeCollectionID.js.map +1 -0
  178. package/dist/scss/app.scss +2 -3
  179. package/dist/scss/vars.scss +0 -7
  180. package/dist/utilities/addDataAndFileToRequest.d.ts +11 -0
  181. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -0
  182. package/dist/utilities/addDataAndFileToRequest.js +74 -0
  183. package/dist/utilities/addDataAndFileToRequest.js.map +1 -0
  184. package/dist/utilities/addLocalesToRequest.d.ts +20 -0
  185. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -0
  186. package/dist/utilities/addLocalesToRequest.js +44 -0
  187. package/dist/utilities/addLocalesToRequest.js.map +1 -0
  188. package/dist/utilities/buildFieldSchemaMap/index.d.ts +2 -2
  189. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  190. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  191. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  192. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +3 -0
  193. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  194. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  195. package/dist/utilities/createPayloadRequest.js +15 -28
  196. package/dist/utilities/createPayloadRequest.js.map +1 -1
  197. package/dist/utilities/getDataAndFile.d.ts +2 -2
  198. package/dist/utilities/getDataAndFile.d.ts.map +1 -1
  199. package/dist/utilities/getDataAndFile.js +27 -43
  200. package/dist/utilities/getDataAndFile.js.map +1 -1
  201. package/dist/utilities/getPayloadHMR.d.ts +2 -1
  202. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  203. package/dist/utilities/getPayloadHMR.js +22 -18
  204. package/dist/utilities/getPayloadHMR.js.map +1 -1
  205. package/dist/utilities/getRequestLanguage.d.ts +1 -1
  206. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  207. package/dist/utilities/getRequestLanguage.js +3 -4
  208. package/dist/utilities/getRequestLanguage.js.map +1 -1
  209. package/dist/utilities/headersWithCors.d.ts +8 -0
  210. package/dist/utilities/headersWithCors.d.ts.map +1 -0
  211. package/dist/utilities/headersWithCors.js +17 -0
  212. package/dist/utilities/headersWithCors.js.map +1 -0
  213. package/dist/utilities/initPage/handleAdminPage.d.ts +13 -0
  214. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -0
  215. package/dist/utilities/initPage/handleAdminPage.js +35 -0
  216. package/dist/utilities/initPage/handleAdminPage.js.map +1 -0
  217. package/dist/utilities/initPage/handleAuthRedirect.d.ts +9 -0
  218. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -0
  219. package/dist/utilities/initPage/handleAuthRedirect.js +26 -0
  220. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -0
  221. package/dist/utilities/initPage/index.d.ts +4 -0
  222. package/dist/utilities/initPage/index.d.ts.map +1 -0
  223. package/dist/utilities/{initPage.js → initPage/index.js} +22 -31
  224. package/dist/utilities/initPage/index.js.map +1 -0
  225. package/dist/utilities/initPage/shared.d.ts +4 -0
  226. package/dist/utilities/initPage/shared.d.ts.map +1 -0
  227. package/dist/utilities/initPage/shared.js +17 -0
  228. package/dist/utilities/initPage/shared.js.map +1 -0
  229. package/dist/utilities/initPage/types.d.ts +24 -0
  230. package/dist/utilities/initPage/types.d.ts.map +1 -0
  231. package/dist/utilities/initPage/types.js +3 -0
  232. package/dist/utilities/initPage/types.js.map +1 -0
  233. package/dist/views/API/index.client.js +2 -2
  234. package/dist/views/API/index.client.js.map +1 -1
  235. package/dist/views/Account/index.d.ts.map +1 -1
  236. package/dist/views/Account/index.js +2 -1
  237. package/dist/views/Account/index.js.map +1 -1
  238. package/dist/views/CreateFirstUser/index.client.d.ts +3 -3
  239. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  240. package/dist/views/CreateFirstUser/index.client.js +48 -6
  241. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  242. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  243. package/dist/views/CreateFirstUser/index.js +9 -20
  244. package/dist/views/CreateFirstUser/index.js.map +1 -1
  245. package/dist/views/CreateFirstUser/index.scss +2 -12
  246. package/dist/views/Document/index.d.ts.map +1 -1
  247. package/dist/views/Document/index.js +2 -1
  248. package/dist/views/Document/index.js.map +1 -1
  249. package/dist/views/Edit/Default/Auth/APIKey.d.ts +1 -0
  250. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  251. package/dist/views/Edit/Default/Auth/APIKey.js +13 -6
  252. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  253. package/dist/views/Edit/Default/Auth/index.js +2 -1
  254. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  255. package/dist/views/Edit/Default/{SetStepNav → SetDocumentStepNav}/index.d.ts +1 -1
  256. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -0
  257. package/dist/views/Edit/Default/{SetStepNav → SetDocumentStepNav}/index.js +12 -5
  258. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -0
  259. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  260. package/dist/views/Edit/Default/index.js +6 -5
  261. package/dist/views/Edit/Default/index.js.map +1 -1
  262. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts +3 -0
  263. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -0
  264. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +58 -0
  265. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -0
  266. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  267. package/dist/views/ForgotPassword/index.js +3 -39
  268. package/dist/views/ForgotPassword/index.js.map +1 -1
  269. package/dist/views/List/index.js +2 -2
  270. package/dist/views/List/index.js.map +1 -1
  271. package/dist/views/LivePreview/Preview/index.d.ts.map +1 -1
  272. package/dist/views/LivePreview/Preview/index.js +23 -0
  273. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  274. package/dist/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  275. package/dist/views/LivePreview/Toolbar/Controls/index.js +6 -4
  276. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  277. package/dist/views/LivePreview/index.client.js +2 -2
  278. package/dist/views/LivePreview/index.client.js.map +1 -1
  279. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  280. package/dist/views/Login/LoginForm/index.js +32 -2
  281. package/dist/views/Login/LoginForm/index.js.map +1 -1
  282. package/dist/views/Login/index.d.ts.map +1 -1
  283. package/dist/views/Login/index.js +14 -7
  284. package/dist/views/Login/index.js.map +1 -1
  285. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  286. package/dist/views/Logout/LogoutClient.js +1 -2
  287. package/dist/views/Logout/LogoutClient.js.map +1 -1
  288. package/dist/views/NotFound/index.d.ts.map +1 -1
  289. package/dist/views/NotFound/index.js +5 -3
  290. package/dist/views/NotFound/index.js.map +1 -1
  291. package/dist/views/ResetPassword/index.client.d.ts +7 -0
  292. package/dist/views/ResetPassword/index.client.d.ts.map +1 -0
  293. package/dist/views/ResetPassword/index.client.js +83 -0
  294. package/dist/views/ResetPassword/index.client.js.map +1 -0
  295. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  296. package/dist/views/ResetPassword/index.js +6 -31
  297. package/dist/views/ResetPassword/index.js.map +1 -1
  298. package/dist/views/ResetPassword/index.scss +2 -12
  299. package/dist/views/Root/getViewFromConfig.d.ts +1 -1
  300. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  301. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  302. package/dist/views/Root/index.js +1 -1
  303. package/dist/views/Root/index.js.map +1 -1
  304. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +0 -2
  305. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  306. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  307. package/dist/views/Version/Restore/index.js +11 -8
  308. package/dist/views/Version/Restore/index.js.map +1 -1
  309. package/dist/views/Version/Restore/index.scss +4 -2
  310. package/dist/views/Versions/index.js +2 -2
  311. package/dist/views/Versions/index.js.map +1 -1
  312. package/dist/withPayload.d.ts.map +1 -1
  313. package/dist/withPayload.js +2 -1
  314. package/dist/withPayload.js.map +1 -1
  315. package/package.json +34 -33
  316. package/dist/next-fileupload/fileFactory.d.ts.map +0 -1
  317. package/dist/next-fileupload/fileFactory.js.map +0 -1
  318. package/dist/next-fileupload/handlers.d.ts.map +0 -1
  319. package/dist/next-fileupload/handlers.js.map +0 -1
  320. package/dist/next-fileupload/index.d.ts.map +0 -1
  321. package/dist/next-fileupload/index.js.map +0 -1
  322. package/dist/next-fileupload/isEligibleRequest.d.ts.map +0 -1
  323. package/dist/next-fileupload/isEligibleRequest.js.map +0 -1
  324. package/dist/next-fileupload/processMultipart.d.ts +0 -8
  325. package/dist/next-fileupload/processMultipart.d.ts.map +0 -1
  326. package/dist/next-fileupload/processMultipart.js.map +0 -1
  327. package/dist/next-fileupload/processNested.d.ts.map +0 -1
  328. package/dist/next-fileupload/processNested.js.map +0 -1
  329. package/dist/next-fileupload/uploadTimer.d.ts.map +0 -1
  330. package/dist/next-fileupload/uploadTimer.js.map +0 -1
  331. package/dist/next-fileupload/utilities.d.ts.map +0 -1
  332. package/dist/next-fileupload/utilities.js.map +0 -1
  333. package/dist/next-stream-file/index.d.ts.map +0 -1
  334. package/dist/next-stream-file/index.js.map +0 -1
  335. package/dist/prod/payload/SuisseIntl-Bold.woff +0 -0
  336. package/dist/prod/payload/SuisseIntl-Bold.woff2 +0 -0
  337. package/dist/prod/payload/SuisseIntl-Medium.woff +0 -0
  338. package/dist/prod/payload/SuisseIntl-Medium.woff2 +0 -0
  339. package/dist/prod/payload/SuisseIntl-SemiBold.woff +0 -0
  340. package/dist/prod/payload/SuisseIntl-SemiBold.woff2 +0 -0
  341. package/dist/prod/payload/SuisseIntl.woff +0 -0
  342. package/dist/prod/payload/SuisseIntl.woff2 +0 -0
  343. package/dist/prod/payload/merriweather-v30-latin-900.woff +0 -0
  344. package/dist/prod/payload/merriweather-v30-latin-900.woff2 +0 -0
  345. package/dist/prod/payload/merriweather-v30-latin-900italic.woff +0 -0
  346. package/dist/prod/payload/merriweather-v30-latin-900italic.woff2 +0 -0
  347. package/dist/prod/payload/merriweather-v30-latin-italic.woff +0 -0
  348. package/dist/prod/payload/merriweather-v30-latin-italic.woff2 +0 -0
  349. package/dist/prod/payload/merriweather-v30-latin-regular.woff +0 -0
  350. package/dist/prod/payload/merriweather-v30-latin-regular.woff2 +0 -0
  351. package/dist/scss/fonts.scss +0 -75
  352. package/dist/utilities/initPage.d.ts +0 -12
  353. package/dist/utilities/initPage.d.ts.map +0 -1
  354. package/dist/utilities/initPage.js.map +0 -1
  355. package/dist/views/Edit/Default/SetStepNav/index.d.ts.map +0 -1
  356. package/dist/views/Edit/Default/SetStepNav/index.js.map +0 -1
  357. package/src/index.js +0 -1
  358. /package/dist/{next-fileupload → fetchAPI-multipart}/fileFactory.js +0 -0
  359. /package/dist/{next-fileupload → fetchAPI-multipart}/handlers.js +0 -0
  360. /package/dist/{next-fileupload → fetchAPI-multipart}/isEligibleRequest.d.ts +0 -0
  361. /package/dist/{next-fileupload → fetchAPI-multipart}/processNested.d.ts +0 -0
  362. /package/dist/{next-fileupload → fetchAPI-multipart}/uploadTimer.d.ts +0 -0
  363. /package/dist/{next-fileupload → fetchAPI-multipart}/uploadTimer.js +0 -0
  364. /package/dist/{next-stream-file → fetchAPI-stream-file}/index.d.ts +0 -0
  365. /package/dist/{next-stream-file → fetchAPI-stream-file}/index.js +0 -0
@@ -1,26 +1,14 @@
1
1
  import { Button } from '@payloadcms/ui/elements/Button';
2
2
  import { Translation } from '@payloadcms/ui/elements/Translation';
3
- import { Email } from '@payloadcms/ui/fields/Email';
4
- import { Form } from '@payloadcms/ui/forms/Form';
5
- import { FormSubmit } from '@payloadcms/ui/forms/Submit';
6
3
  import LinkImport from 'next/link.js';
7
4
  import React, { Fragment } from 'react';
5
+ import { ForgotPasswordForm } from './ForgotPasswordForm/index.js';
8
6
  export { generateForgotPasswordMetadata } from './meta.js';
9
7
  const Link = LinkImport.default || LinkImport;
10
8
  export const forgotPasswordBaseClass = 'forgot-password';
11
9
  export const ForgotPasswordView = ({ initPageResult })=>{
12
10
  const { req: { i18n, payload: { config }, user } } = initPageResult;
13
- const { admin: { user: userSlug }, routes: { admin, api }, serverURL } = config;
14
- // const handleResponse = (res) => {
15
- // res.json().then(
16
- // () => {
17
- // setHasSubmitted(true)
18
- // },
19
- // () => {
20
- // toast.error(i18n.t('authentication:emailNotValid'))
21
- // },
22
- // )
23
- // }
11
+ const { routes: { admin } } = config;
24
12
  if (user) {
25
13
  return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement("h1", null, i18n.t('authentication:alreadyLoggedIn')), /*#__PURE__*/ React.createElement("p", null, /*#__PURE__*/ React.createElement(Translation, {
26
14
  elements: {
@@ -37,31 +25,7 @@ export const ForgotPasswordView = ({ initPageResult })=>{
37
25
  to: admin
38
26
  }, i18n.t('general:backToDashboard')));
39
27
  }
40
- // if (hasSubmitted) {
41
- // return (
42
- // <Fragment>
43
- // <h1>{i18n.t('authentication:emailSent')}</h1>
44
- // <p>{i18n.t('authentication:checkYourEmailForPasswordReset')}</p>
45
- // </Fragment>
46
- // )
47
- // }
48
- return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement(Form, {
49
- action: `${serverURL}${api}/${userSlug}/forgot-password`,
50
- // handleResponse={handleResponse}
51
- initialState: {
52
- email: {
53
- initialValue: '',
54
- valid: false,
55
- value: undefined
56
- }
57
- },
58
- method: "POST"
59
- }, /*#__PURE__*/ React.createElement("h1", null, i18n.t('authentication:forgotPassword')), /*#__PURE__*/ React.createElement("p", null, i18n.t('authentication:forgotPasswordEmailInstructions')), /*#__PURE__*/ React.createElement(Email, {
60
- autoComplete: "email",
61
- label: i18n.t('general:emailAddress'),
62
- name: "email",
63
- required: true
64
- }), /*#__PURE__*/ React.createElement(FormSubmit, null, i18n.t('general:submit'))), /*#__PURE__*/ React.createElement(Link, {
28
+ return /*#__PURE__*/ React.createElement(Fragment, null, /*#__PURE__*/ React.createElement(ForgotPasswordForm, null), /*#__PURE__*/ React.createElement(Link, {
65
29
  href: `${admin}/login`
66
30
  }, i18n.t('authentication:backToLogin')));
67
31
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ForgotPassword/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload/types'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Translation } from '@payloadcms/ui/elements/Translation'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nexport { generateForgotPasswordMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\nexport const forgotPasswordBaseClass = 'forgot-password'\n\nexport const ForgotPasswordView: React.FC<AdminViewProps> = ({ initPageResult }) => {\n const {\n req: {\n i18n,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { user: userSlug },\n routes: { admin, api },\n serverURL,\n } = config\n\n // const handleResponse = (res) => {\n // res.json().then(\n // () => {\n // setHasSubmitted(true)\n // },\n // () => {\n // toast.error(i18n.t('authentication:emailNotValid'))\n // },\n // )\n // }\n\n if (user) {\n return (\n <Fragment>\n <h1>{i18n.t('authentication:alreadyLoggedIn')}</h1>\n <p>\n <Translation\n elements={{\n '0': ({ children }) => <Link href={`${admin}/account`}>{children}</Link>,\n }}\n i18nKey=\"authentication:loggedInChangePassword\"\n t={i18n.t}\n />\n </p>\n <br />\n <Button Link={Link} buttonStyle=\"secondary\" el=\"link\" to={admin}>\n {i18n.t('general:backToDashboard')}\n </Button>\n </Fragment>\n )\n }\n\n // if (hasSubmitted) {\n // return (\n // <Fragment>\n // <h1>{i18n.t('authentication:emailSent')}</h1>\n // <p>{i18n.t('authentication:checkYourEmailForPasswordReset')}</p>\n // </Fragment>\n // )\n // }\n\n return (\n <Fragment>\n <Form\n action={`${serverURL}${api}/${userSlug}/forgot-password`}\n // handleResponse={handleResponse}\n initialState={{\n email: {\n initialValue: '',\n valid: false,\n value: undefined,\n },\n }}\n method=\"POST\"\n >\n <h1>{i18n.t('authentication:forgotPassword')}</h1>\n <p>{i18n.t('authentication:forgotPasswordEmailInstructions')}</p>\n <Email autoComplete=\"email\" label={i18n.t('general:emailAddress')} name=\"email\" required />\n <FormSubmit>{i18n.t('general:submit')}</FormSubmit>\n </Form>\n <Link href={`${admin}/login`}>{i18n.t('authentication:backToLogin')}</Link>\n </Fragment>\n )\n}\n"],"names":["Button","Translation","Email","Form","FormSubmit","LinkImport","React","Fragment","generateForgotPasswordMetadata","Link","default","forgotPasswordBaseClass","ForgotPasswordView","initPageResult","req","i18n","payload","config","user","admin","userSlug","routes","api","serverURL","h1","t","p","elements","children","href","i18nKey","br","buttonStyle","el","to","action","initialState","email","initialValue","valid","value","undefined","method","autoComplete","label","name","required"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,MAAM,QAAQ,iCAAgC;AACvD,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,KAAK,QAAQ,8BAA6B;AACnD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,8BAA8B,QAAQ,YAAW;AAE1D,MAAMC,OAAQJ,WAAWK,OAAO,IAAIL;AACpC,OAAO,MAAMM,0BAA0B,kBAAiB;AAExD,OAAO,MAAMC,qBAA+C,CAAC,EAAEC,cAAc,EAAE;IAC7E,MAAM,EACJC,KAAK,EACHC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGL;IAEJ,MAAM,EACJM,OAAO,EAAED,MAAME,QAAQ,EAAE,EACzBC,QAAQ,EAAEF,KAAK,EAAEG,GAAG,EAAE,EACtBC,SAAS,EACV,GAAGN;IAEJ,oCAAoC;IACpC,qBAAqB;IACrB,cAAc;IACd,8BAA8B;IAC9B,SAAS;IACT,cAAc;IACd,4DAA4D;IAC5D,SAAS;IACT,MAAM;IACN,IAAI;IAEJ,IAAIC,MAAM;QACR,qBACE,oBAACX,8BACC,oBAACiB,YAAIT,KAAKU,CAAC,CAAC,kDACZ,oBAACC,yBACC,oBAACzB;YACC0B,UAAU;gBACR,KAAK,CAAC,EAAEC,QAAQ,EAAE,iBAAK,oBAACnB;wBAAKoB,MAAM,CAAC,EAAEV,MAAM,QAAQ,CAAC;uBAAGS;YAC1D;YACAE,SAAQ;YACRL,GAAGV,KAAKU,CAAC;2BAGb,oBAACM,2BACD,oBAAC/B;YAAOS,MAAMA;YAAMuB,aAAY;YAAYC,IAAG;YAAOC,IAAIf;WACvDJ,KAAKU,CAAC,CAAC;IAIhB;IAEA,sBAAsB;IACtB,aAAa;IACb,iBAAiB;IACjB,sDAAsD;IACtD,yEAAyE;IACzE,kBAAkB;IAClB,MAAM;IACN,IAAI;IAEJ,qBACE,oBAAClB,8BACC,oBAACJ;QACCgC,QAAQ,CAAC,EAAEZ,UAAU,EAAED,IAAI,CAAC,EAAEF,SAAS,gBAAgB,CAAC;QACxD,kCAAkC;QAClCgB,cAAc;YACZC,OAAO;gBACLC,cAAc;gBACdC,OAAO;gBACPC,OAAOC;YACT;QACF;QACAC,QAAO;qBAEP,oBAAClB,YAAIT,KAAKU,CAAC,CAAC,iDACZ,oBAACC,WAAGX,KAAKU,CAAC,CAAC,kEACX,oBAACvB;QAAMyC,cAAa;QAAQC,OAAO7B,KAAKU,CAAC,CAAC;QAAyBoB,MAAK;QAAQC,UAAAA;sBAChF,oBAAC1C,kBAAYW,KAAKU,CAAC,CAAC,mCAEtB,oBAAChB;QAAKoB,MAAM,CAAC,EAAEV,MAAM,MAAM,CAAC;OAAGJ,KAAKU,CAAC,CAAC;AAG5C,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/ForgotPassword/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload/types'\n\nimport { Button } from '@payloadcms/ui/elements/Button'\nimport { Translation } from '@payloadcms/ui/elements/Translation'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { ForgotPasswordForm } from './ForgotPasswordForm/index.js'\n\nexport { generateForgotPasswordMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\nexport const forgotPasswordBaseClass = 'forgot-password'\n\nexport const ForgotPasswordView: React.FC<AdminViewProps> = ({ initPageResult }) => {\n const {\n req: {\n i18n,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n routes: { admin },\n } = config\n\n if (user) {\n return (\n <Fragment>\n <h1>{i18n.t('authentication:alreadyLoggedIn')}</h1>\n <p>\n <Translation\n elements={{\n '0': ({ children }) => <Link href={`${admin}/account`}>{children}</Link>,\n }}\n i18nKey=\"authentication:loggedInChangePassword\"\n t={i18n.t}\n />\n </p>\n <br />\n <Button Link={Link} buttonStyle=\"secondary\" el=\"link\" to={admin}>\n {i18n.t('general:backToDashboard')}\n </Button>\n </Fragment>\n )\n }\n\n return (\n <Fragment>\n <ForgotPasswordForm />\n <Link href={`${admin}/login`}>{i18n.t('authentication:backToLogin')}</Link>\n </Fragment>\n )\n}\n"],"names":["Button","Translation","LinkImport","React","Fragment","ForgotPasswordForm","generateForgotPasswordMetadata","Link","default","forgotPasswordBaseClass","ForgotPasswordView","initPageResult","req","i18n","payload","config","user","routes","admin","h1","t","p","elements","children","href","i18nKey","br","buttonStyle","el","to"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,MAAM,QAAQ,iCAAgC;AACvD,SAASC,WAAW,QAAQ,sCAAqC;AACjE,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,kBAAkB,QAAQ,gCAA+B;AAElE,SAASC,8BAA8B,QAAQ,YAAW;AAE1D,MAAMC,OAAQL,WAAWM,OAAO,IAAIN;AACpC,OAAO,MAAMO,0BAA0B,kBAAiB;AAExD,OAAO,MAAMC,qBAA+C,CAAC,EAAEC,cAAc,EAAE;IAC7E,MAAM,EACJC,KAAK,EACHC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,EACF,GAAGL;IAEJ,MAAM,EACJM,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGH;IAEJ,IAAIC,MAAM;QACR,qBACE,oBAACZ,8BACC,oBAACe,YAAIN,KAAKO,CAAC,CAAC,kDACZ,oBAACC,yBACC,oBAACpB;YACCqB,UAAU;gBACR,KAAK,CAAC,EAAEC,QAAQ,EAAE,iBAAK,oBAAChB;wBAAKiB,MAAM,CAAC,EAAEN,MAAM,QAAQ,CAAC;uBAAGK;YAC1D;YACAE,SAAQ;YACRL,GAAGP,KAAKO,CAAC;2BAGb,oBAACM,2BACD,oBAAC1B;YAAOO,MAAMA;YAAMoB,aAAY;YAAYC,IAAG;YAAOC,IAAIX;WACvDL,KAAKO,CAAC,CAAC;IAIhB;IAEA,qBACE,oBAAChB,8BACC,oBAACC,yCACD,oBAACE;QAAKiB,MAAM,CAAC,EAAEN,MAAM,MAAM,CAAC;OAAGL,KAAKO,CAAC,CAAC;AAG5C,EAAC"}
@@ -46,7 +46,7 @@ export const ListView = async ({ initPageResult, searchParams })=>{
46
46
  } else if (typeof CustomList === 'object' && typeof CustomList.Component === 'function') {
47
47
  CustomListView = CustomList.Component;
48
48
  }
49
- const page = isNumber(query?.page) ? query.page : 0;
49
+ const page = isNumber(query?.page) ? Number(query.page) : 0;
50
50
  const whereQuery = mergeListSearchAndWhere({
51
51
  collectionConfig,
52
52
  query: {
@@ -54,7 +54,7 @@ export const ListView = async ({ initPageResult, searchParams })=>{
54
54
  where: query?.where || undefined
55
55
  }
56
56
  });
57
- const limit = isNumber(query?.limit) ? query.limit : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
57
+ const limit = isNumber(query?.limit) ? Number(query.limit) : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
58
58
  const sort = query?.sort && typeof query.sort === 'string' ? query.sort : listPreferences?.sort || undefined;
59
59
  const data = await payload.find({
60
60
  collection: collectionSlug,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { TableColumnsProvider } from '@payloadcms/ui/elements/TableColumns'\nimport { ListInfoProvider } from '@payloadcms/ui/providers/ListInfo'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig } from 'payload/config'\nimport { type AdminViewProps } from 'payload/types'\nimport { isNumber, mergeListSearchAndWhere } from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({ initPageResult, searchParams }) => {\n const {\n collectionConfig,\n permissions,\n req: {\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n return <UnauthorizedView initPageResult={initPageResult} searchParams={searchParams} />\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n key: {\n equals: preferenceKey,\n },\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin },\n } = config\n\n if (collectionConfig) {\n const {\n admin: { components: { views: { List: CustomList } = {} } = {} },\n } = collectionConfig\n\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n let CustomListView = null\n\n if (CustomList && typeof CustomList === 'function') {\n CustomListView = CustomList\n } else if (typeof CustomList === 'object' && typeof CustomList.Component === 'function') {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? query.page : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? query.limit\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort || undefined\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n limit,\n locale,\n overrideAccess: false,\n page,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const viewComponentProps: DefaultListViewProps = {\n collectionSlug,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n }\n\n return (\n <Fragment>\n <HydrateClientUser permissions={permissions} user={user} />\n <ListInfoProvider\n collectionConfig={createClientCollectionConfig({\n collection: collectionConfig,\n t: initPageResult.req.i18n.t,\n })}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={`${admin}/collections/${collectionSlug}/create`}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderCustomComponent\n CustomComponent={CustomListView}\n DefaultComponent={DefaultListView}\n componentProps={viewComponentProps}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","RenderCustomComponent","TableColumnsProvider","ListInfoProvider","ListQueryProvider","notFound","createClientCollectionConfig","isNumber","mergeListSearchAndWhere","React","Fragment","UnauthorizedView","DefaultListView","generateListMetadata","ListView","initPageResult","searchParams","collectionConfig","permissions","req","locale","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","key","equals","then","res","docs","value","error","routes","admin","components","views","List","CustomList","includes","CustomListView","Component","page","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","i18n","hasCreatePermission","create","newDocumentURL","defaultSort","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { TableColumnsProvider } from '@payloadcms/ui/elements/TableColumns'\nimport { ListInfoProvider } from '@payloadcms/ui/providers/ListInfo'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig } from 'payload/config'\nimport { type AdminViewProps } from 'payload/types'\nimport { isNumber, mergeListSearchAndWhere } from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({ initPageResult, searchParams }) => {\n const {\n collectionConfig,\n permissions,\n req: {\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n return <UnauthorizedView initPageResult={initPageResult} searchParams={searchParams} />\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n key: {\n equals: preferenceKey,\n },\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin },\n } = config\n\n if (collectionConfig) {\n const {\n admin: { components: { views: { List: CustomList } = {} } = {} },\n } = collectionConfig\n\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n let CustomListView = null\n\n if (CustomList && typeof CustomList === 'function') {\n CustomListView = CustomList\n } else if (typeof CustomList === 'object' && typeof CustomList.Component === 'function') {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort || undefined\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n limit,\n locale,\n overrideAccess: false,\n page,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const viewComponentProps: DefaultListViewProps = {\n collectionSlug,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n }\n\n return (\n <Fragment>\n <HydrateClientUser permissions={permissions} user={user} />\n <ListInfoProvider\n collectionConfig={createClientCollectionConfig({\n collection: collectionConfig,\n t: initPageResult.req.i18n.t,\n })}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={`${admin}/collections/${collectionSlug}/create`}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderCustomComponent\n CustomComponent={CustomListView}\n DefaultComponent={DefaultListView}\n componentProps={viewComponentProps}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","RenderCustomComponent","TableColumnsProvider","ListInfoProvider","ListQueryProvider","notFound","createClientCollectionConfig","isNumber","mergeListSearchAndWhere","React","Fragment","UnauthorizedView","DefaultListView","generateListMetadata","ListView","initPageResult","searchParams","collectionConfig","permissions","req","locale","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","key","equals","then","res","docs","value","error","routes","admin","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","i18n","hasCreatePermission","create","newDocumentURL","defaultSort","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,iBAAiB,QAAQ,4CAA2C;AAC7E,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,4BAA4B,QAAQ,iBAAgB;AAE7D,SAASC,QAAQ,EAAEC,uBAAuB,QAAQ,oBAAmB;AACrE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAIvC,SAASC,gBAAgB,QAAQ,2BAA0B;AAC3D,SAASC,eAAe,QAAQ,qBAAoB;AAEpD,SAASC,oBAAoB,QAAQ,YAAW;AAEhD,OAAO,MAAMC,WAAqC,OAAO,EAAEC,cAAc,EAAEC,YAAY,EAAE;IACvF,MAAM,EACJC,gBAAgB,EAChBC,WAAW,EACXC,KAAK,EACHC,MAAM,EACNC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,KAAK,EACLC,IAAI,EACL,EACDC,eAAe,EAChB,GAAGV;IAEJ,MAAMW,iBAAiBT,kBAAkBU;IAEzC,IAAI,CAACT,aAAaU,aAAa,CAACF,eAAe,EAAEG,MAAMC,YAAY;QACjE,qBAAO,oBAACnB;YAAiBI,gBAAgBA;YAAgBC,cAAcA;;IACzE;IAEA,IAAIe;IACJ,MAAMC,gBAAgB,CAAC,EAAEN,eAAe,KAAK,CAAC;IAE9C,IAAI;QACFK,kBAAmB,MAAMV,QACtBY,IAAI,CAAC;YACJC,YAAY;YACZC,OAAO;YACPC,OAAO;YACPZ;YACAa,OAAO;gBACLC,KAAK;oBACHC,QAAQP;gBACV;YACF;QACF,IACEQ,KAAK,CAACC,MAAQA,KAAKC,MAAM,CAAC,EAAE,EAAEC;IACpC,EAAE,OAAOC,OAAO,CAAC,EAAE,+BAA+B;IAElD,MAAM,EACJC,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGxB;IAEJ,IAAIL,kBAAkB;QACpB,MAAM,EACJ6B,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAEC,MAAMC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EACjE,GAAGjC;QAEJ,IAAI,CAACQ,gBAAgBG,WAAW,CAACuB,QAAQ,CAACzB,iBAAiB;YACzD,OAAOrB;QACT;QAEA,IAAI+C,iBAAiB;QAErB,IAAIF,cAAc,OAAOA,eAAe,YAAY;YAClDE,iBAAiBF;QACnB,OAAO,IAAI,OAAOA,eAAe,YAAY,OAAOA,WAAWG,SAAS,KAAK,YAAY;YACvFD,iBAAiBF,WAAWG,SAAS;QACvC;QAEA,MAAMC,OAAO/C,SAASgB,OAAO+B,QAAQC,OAAOhC,MAAM+B,IAAI,IAAI;QAC1D,MAAME,aAAahD,wBAAwB;YACzCS;YACAM,OAAO;gBACLkC,QAAQ,OAAOlC,OAAOkC,WAAW,WAAWlC,MAAMkC,MAAM,GAAGC;gBAC3DrB,OAAO,AAACd,OAAOc,SAAmBqB;YACpC;QACF;QACA,MAAMtB,QAAQ7B,SAASgB,OAAOa,SAC1BmB,OAAOhC,MAAMa,KAAK,IAClBL,iBAAiBK,SAASnB,iBAAiB6B,KAAK,CAACa,UAAU,CAACC,YAAY;QAC5E,MAAMC,OACJtC,OAAOsC,QAAQ,OAAOtC,MAAMsC,IAAI,KAAK,WACjCtC,MAAMsC,IAAI,GACV9B,iBAAiB8B,QAAQH;QAE/B,MAAMI,OAAO,MAAMzC,QAAQY,IAAI,CAAC;YAC9BC,YAAYR;YACZS,OAAO;YACP4B,OAAO;YACPC,gBAAgB;YAChB5B;YACAhB;YACA6C,gBAAgB;YAChBX;YACAO;YACArC;YACAa,OAAOmB,cAAc,CAAC;QACxB;QAEA,MAAMU,qBAA2C;YAC/CxC;YACAyC,sBAAsBlD,iBAAiB6B,KAAK,CAACqB,oBAAoB;QACnE;QAEA,qBACE,oBAACzD,8BACC,oBAACV;YAAkBkB,aAAaA;YAAaM,MAAMA;0BACnD,oBAACrB;YACCc,kBAAkBX,6BAA6B;gBAC7C4B,YAAYjB;gBACZmD,GAAGrD,eAAeI,GAAG,CAACkD,IAAI,CAACD,CAAC;YAC9B;YACA1C,gBAAgBA;YAChB4C,qBAAqBpD,aAAaU,aAAa,CAACF,eAAe,EAAE6C,QAAQzC;YACzE0C,gBAAgB,CAAC,EAAE1B,MAAM,aAAa,EAAEpB,eAAe,OAAO,CAAC;yBAE/D,oBAACtB;YACC0D,MAAMA;YACNF,cAAcxB,SAASnB,kBAAkB6B,OAAOa,YAAYC;YAC5Da,aAAaZ;YACba,oBAAAA;YACA1C,eAAeA;yBAEf,oBAAC9B;YACCwB,gBAAgBA;YAChBiD,qBAAAA;YACA5C,iBAAiBA;YACjBC,eAAeA;yBAEf,oBAAC/B;YACC2E,iBAAiBxB;YACjByB,kBAAkBjE;YAClBkE,gBAAgBZ;;IAO9B;IAEA,OAAO7D;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Preview/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMlD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4F/C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Preview/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMlD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgH/C,CAAA"}
@@ -15,6 +15,7 @@ export const LivePreview = (props)=>{
15
15
  const { breakpoint, fieldSchemaJSON } = useLivePreviewContext();
16
16
  const prevWindowType = React.useRef();
17
17
  const [fields] = useAllFormFields();
18
+ // For client-side apps, send data through `window.postMessage`
18
19
  // The preview could either be an iframe embedded on the page
19
20
  // Or it could be a separate popup window
20
21
  // We need to transmit data to both accordingly
@@ -55,6 +56,28 @@ export const LivePreview = (props)=>{
55
56
  fieldSchemaJSON,
56
57
  mostRecentUpdate
57
58
  ]);
59
+ // To support SSR, we transmit a `window.postMessage` event without a payload
60
+ // This is because the event will ultimately trigger a server-side roundtrip
61
+ // i.e., save, save draft, autosave, etc. will fire `router.refresh()`
62
+ useEffect(()=>{
63
+ const message = {
64
+ type: 'payload-document-event'
65
+ };
66
+ // Post message to external popup window
67
+ if (previewWindowType === 'popup' && popupRef.current) {
68
+ popupRef.current.postMessage(message, url);
69
+ }
70
+ // Post message to embedded iframe
71
+ if (previewWindowType === 'iframe' && iframeRef.current) {
72
+ iframeRef.current.contentWindow?.postMessage(message, url);
73
+ }
74
+ }, [
75
+ mostRecentUpdate,
76
+ iframeRef,
77
+ popupRef,
78
+ previewWindowType,
79
+ url
80
+ ]);
58
81
  if (previewWindowType === 'iframe') {
59
82
  return /*#__PURE__*/ React.createElement("div", {
60
83
  className: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/LivePreview/Preview/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload/types'\n\nimport { ShimmerEffect } from '@payloadcms/ui/elements/ShimmerEffect'\nimport { useAllFormFields } from '@payloadcms/ui/forms/Form'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\nimport { DeviceContainer } from '../Device/index.js'\nimport { IFrame } from '../IFrame/index.js'\nimport { LivePreviewToolbar } from '../Toolbar/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-window'\n\nexport const LivePreview: React.FC<EditViewProps> = (props) => {\n const {\n appIsReady,\n iframeHasLoaded,\n iframeRef,\n popupRef,\n previewWindowType,\n setIframeHasLoaded,\n url,\n } = useLivePreviewContext()\n\n const { mostRecentUpdate } = useDocumentEvents()\n\n const { breakpoint, fieldSchemaJSON } = useLivePreviewContext()\n\n const prevWindowType =\n React.useRef<ReturnType<typeof useLivePreviewContext>['previewWindowType']>()\n\n const [fields] = useAllFormFields()\n\n // The preview could either be an iframe embedded on the page\n // Or it could be a separate popup window\n // We need to transmit data to both accordingly\n useEffect(() => {\n // For performance, do no reduce fields to values until after the iframe or popup has loaded\n if (fields && window && 'postMessage' in window && appIsReady) {\n const values = reduceFieldsToValues(fields, true)\n\n // To reduce on large `postMessage` payloads, only send `fieldSchemaToJSON` one time\n // To do this, the underlying JS function maintains a cache of this value\n // So we need to send it through each time the window type changes\n // But only once per window type change, not on every render, because this is a potentially large obj\n const shouldSendSchema =\n !prevWindowType.current || prevWindowType.current !== previewWindowType\n\n prevWindowType.current = previewWindowType\n\n const message = {\n type: 'payload-live-preview',\n data: values,\n externallyUpdatedRelationship: mostRecentUpdate,\n fieldSchemaJSON: shouldSendSchema ? fieldSchemaJSON : undefined,\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }\n }, [\n fields,\n url,\n iframeHasLoaded,\n previewWindowType,\n popupRef,\n appIsReady,\n iframeRef,\n setIframeHasLoaded,\n fieldSchemaJSON,\n mostRecentUpdate,\n ])\n\n if (previewWindowType === 'iframe') {\n return (\n <div\n className={[\n baseClass,\n breakpoint && breakpoint !== 'responsive' && `${baseClass}--has-breakpoint`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__wrapper`}>\n <LivePreviewToolbar {...props} />\n <div className={`${baseClass}__main`}>\n <DeviceContainer>\n {url ? (\n <IFrame ref={iframeRef} setIframeHasLoaded={setIframeHasLoaded} url={url} />\n ) : (\n <ShimmerEffect height=\"100%\" />\n )}\n </DeviceContainer>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"names":["ShimmerEffect","useAllFormFields","useDocumentEvents","reduceFieldsToValues","React","useEffect","useLivePreviewContext","DeviceContainer","IFrame","LivePreviewToolbar","baseClass","LivePreview","props","appIsReady","iframeHasLoaded","iframeRef","popupRef","previewWindowType","setIframeHasLoaded","url","mostRecentUpdate","breakpoint","fieldSchemaJSON","prevWindowType","useRef","fields","window","values","shouldSendSchema","current","message","type","data","externallyUpdatedRelationship","undefined","postMessage","contentWindow","div","className","filter","Boolean","join","ref","height"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,aAAa,QAAQ,wCAAuC;AACrE,SAASC,gBAAgB,QAAQ,4BAA2B;AAC5D,SAASC,iBAAiB,QAAQ,0CAAyC;AAC3E,SAASC,oBAAoB,QAAQ,gDAA+C;AACpF,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAExC,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,eAAe,QAAQ,qBAAoB;AACpD,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,kBAAkB,QAAQ,sBAAqB;AAGxD,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAuC,CAACC;IACnD,MAAM,EACJC,UAAU,EACVC,eAAe,EACfC,SAAS,EACTC,QAAQ,EACRC,iBAAiB,EACjBC,kBAAkB,EAClBC,GAAG,EACJ,GAAGb;IAEJ,MAAM,EAAEc,gBAAgB,EAAE,GAAGlB;IAE7B,MAAM,EAAEmB,UAAU,EAAEC,eAAe,EAAE,GAAGhB;IAExC,MAAMiB,iBACJnB,MAAMoB,MAAM;IAEd,MAAM,CAACC,OAAO,GAAGxB;IAEjB,6DAA6D;IAC7D,yCAAyC;IACzC,+CAA+C;IAC/CI,UAAU;QACR,4FAA4F;QAC5F,IAAIoB,UAAUC,UAAU,iBAAiBA,UAAUb,YAAY;YAC7D,MAAMc,SAASxB,qBAAqBsB,QAAQ;YAE5C,oFAAoF;YACpF,yEAAyE;YACzE,kEAAkE;YAClE,qGAAqG;YACrG,MAAMG,mBACJ,CAACL,eAAeM,OAAO,IAAIN,eAAeM,OAAO,KAAKZ;YAExDM,eAAeM,OAAO,GAAGZ;YAEzB,MAAMa,UAAU;gBACdC,MAAM;gBACNC,MAAML;gBACNM,+BAA+Bb;gBAC/BE,iBAAiBM,mBAAmBN,kBAAkBY;YACxD;YAEA,wCAAwC;YACxC,IAAIjB,sBAAsB,WAAWD,SAASa,OAAO,EAAE;gBACrDb,SAASa,OAAO,CAACM,WAAW,CAACL,SAASX;YACxC;YAEA,kCAAkC;YAClC,IAAIF,sBAAsB,YAAYF,UAAUc,OAAO,EAAE;gBACvDd,UAAUc,OAAO,CAACO,aAAa,EAAED,YAAYL,SAASX;YACxD;QACF;IACF,GAAG;QACDM;QACAN;QACAL;QACAG;QACAD;QACAH;QACAE;QACAG;QACAI;QACAF;KACD;IAED,IAAIH,sBAAsB,UAAU;QAClC,qBACE,oBAACoB;YACCC,WAAW;gBACT5B;gBACAW,cAAcA,eAAe,gBAAgB,CAAC,EAAEX,UAAU,gBAAgB,CAAC;aAC5E,CACE6B,MAAM,CAACC,SACPC,IAAI,CAAC;yBAER,oBAACJ;YAAIC,WAAW,CAAC,EAAE5B,UAAU,SAAS,CAAC;yBACrC,oBAACD,oBAAuBG,sBACxB,oBAACyB;YAAIC,WAAW,CAAC,EAAE5B,UAAU,MAAM,CAAC;yBAClC,oBAACH,uBACEY,oBACC,oBAACX;YAAOkC,KAAK3B;YAAWG,oBAAoBA;YAAoBC,KAAKA;2BAErE,oBAACnB;YAAc2C,QAAO;;IAOpC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/LivePreview/Preview/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload/types'\n\nimport { ShimmerEffect } from '@payloadcms/ui/elements/ShimmerEffect'\nimport { useAllFormFields } from '@payloadcms/ui/forms/Form'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\nimport { DeviceContainer } from '../Device/index.js'\nimport { IFrame } from '../IFrame/index.js'\nimport { LivePreviewToolbar } from '../Toolbar/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-window'\n\nexport const LivePreview: React.FC<EditViewProps> = (props) => {\n const {\n appIsReady,\n iframeHasLoaded,\n iframeRef,\n popupRef,\n previewWindowType,\n setIframeHasLoaded,\n url,\n } = useLivePreviewContext()\n\n const { mostRecentUpdate } = useDocumentEvents()\n\n const { breakpoint, fieldSchemaJSON } = useLivePreviewContext()\n\n const prevWindowType =\n React.useRef<ReturnType<typeof useLivePreviewContext>['previewWindowType']>()\n\n const [fields] = useAllFormFields()\n\n // For client-side apps, send data through `window.postMessage`\n // The preview could either be an iframe embedded on the page\n // Or it could be a separate popup window\n // We need to transmit data to both accordingly\n useEffect(() => {\n // For performance, do no reduce fields to values until after the iframe or popup has loaded\n if (fields && window && 'postMessage' in window && appIsReady) {\n const values = reduceFieldsToValues(fields, true)\n\n // To reduce on large `postMessage` payloads, only send `fieldSchemaToJSON` one time\n // To do this, the underlying JS function maintains a cache of this value\n // So we need to send it through each time the window type changes\n // But only once per window type change, not on every render, because this is a potentially large obj\n const shouldSendSchema =\n !prevWindowType.current || prevWindowType.current !== previewWindowType\n\n prevWindowType.current = previewWindowType\n\n const message = {\n type: 'payload-live-preview',\n data: values,\n externallyUpdatedRelationship: mostRecentUpdate,\n fieldSchemaJSON: shouldSendSchema ? fieldSchemaJSON : undefined,\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }\n }, [\n fields,\n url,\n iframeHasLoaded,\n previewWindowType,\n popupRef,\n appIsReady,\n iframeRef,\n setIframeHasLoaded,\n fieldSchemaJSON,\n mostRecentUpdate,\n ])\n\n // To support SSR, we transmit a `window.postMessage` event without a payload\n // This is because the event will ultimately trigger a server-side roundtrip\n // i.e., save, save draft, autosave, etc. will fire `router.refresh()`\n useEffect(() => {\n const message = {\n type: 'payload-document-event',\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }, [mostRecentUpdate, iframeRef, popupRef, previewWindowType, url])\n\n if (previewWindowType === 'iframe') {\n return (\n <div\n className={[\n baseClass,\n breakpoint && breakpoint !== 'responsive' && `${baseClass}--has-breakpoint`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__wrapper`}>\n <LivePreviewToolbar {...props} />\n <div className={`${baseClass}__main`}>\n <DeviceContainer>\n {url ? (\n <IFrame ref={iframeRef} setIframeHasLoaded={setIframeHasLoaded} url={url} />\n ) : (\n <ShimmerEffect height=\"100%\" />\n )}\n </DeviceContainer>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"names":["ShimmerEffect","useAllFormFields","useDocumentEvents","reduceFieldsToValues","React","useEffect","useLivePreviewContext","DeviceContainer","IFrame","LivePreviewToolbar","baseClass","LivePreview","props","appIsReady","iframeHasLoaded","iframeRef","popupRef","previewWindowType","setIframeHasLoaded","url","mostRecentUpdate","breakpoint","fieldSchemaJSON","prevWindowType","useRef","fields","window","values","shouldSendSchema","current","message","type","data","externallyUpdatedRelationship","undefined","postMessage","contentWindow","div","className","filter","Boolean","join","ref","height"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,aAAa,QAAQ,wCAAuC;AACrE,SAASC,gBAAgB,QAAQ,4BAA2B;AAC5D,SAASC,iBAAiB,QAAQ,0CAAyC;AAC3E,SAASC,oBAAoB,QAAQ,gDAA+C;AACpF,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAExC,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,eAAe,QAAQ,qBAAoB;AACpD,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,kBAAkB,QAAQ,sBAAqB;AAGxD,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAuC,CAACC;IACnD,MAAM,EACJC,UAAU,EACVC,eAAe,EACfC,SAAS,EACTC,QAAQ,EACRC,iBAAiB,EACjBC,kBAAkB,EAClBC,GAAG,EACJ,GAAGb;IAEJ,MAAM,EAAEc,gBAAgB,EAAE,GAAGlB;IAE7B,MAAM,EAAEmB,UAAU,EAAEC,eAAe,EAAE,GAAGhB;IAExC,MAAMiB,iBACJnB,MAAMoB,MAAM;IAEd,MAAM,CAACC,OAAO,GAAGxB;IAEjB,+DAA+D;IAC/D,6DAA6D;IAC7D,yCAAyC;IACzC,+CAA+C;IAC/CI,UAAU;QACR,4FAA4F;QAC5F,IAAIoB,UAAUC,UAAU,iBAAiBA,UAAUb,YAAY;YAC7D,MAAMc,SAASxB,qBAAqBsB,QAAQ;YAE5C,oFAAoF;YACpF,yEAAyE;YACzE,kEAAkE;YAClE,qGAAqG;YACrG,MAAMG,mBACJ,CAACL,eAAeM,OAAO,IAAIN,eAAeM,OAAO,KAAKZ;YAExDM,eAAeM,OAAO,GAAGZ;YAEzB,MAAMa,UAAU;gBACdC,MAAM;gBACNC,MAAML;gBACNM,+BAA+Bb;gBAC/BE,iBAAiBM,mBAAmBN,kBAAkBY;YACxD;YAEA,wCAAwC;YACxC,IAAIjB,sBAAsB,WAAWD,SAASa,OAAO,EAAE;gBACrDb,SAASa,OAAO,CAACM,WAAW,CAACL,SAASX;YACxC;YAEA,kCAAkC;YAClC,IAAIF,sBAAsB,YAAYF,UAAUc,OAAO,EAAE;gBACvDd,UAAUc,OAAO,CAACO,aAAa,EAAED,YAAYL,SAASX;YACxD;QACF;IACF,GAAG;QACDM;QACAN;QACAL;QACAG;QACAD;QACAH;QACAE;QACAG;QACAI;QACAF;KACD;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,sEAAsE;IACtEf,UAAU;QACR,MAAMyB,UAAU;YACdC,MAAM;QACR;QAEA,wCAAwC;QACxC,IAAId,sBAAsB,WAAWD,SAASa,OAAO,EAAE;YACrDb,SAASa,OAAO,CAACM,WAAW,CAACL,SAASX;QACxC;QAEA,kCAAkC;QAClC,IAAIF,sBAAsB,YAAYF,UAAUc,OAAO,EAAE;YACvDd,UAAUc,OAAO,CAACO,aAAa,EAAED,YAAYL,SAASX;QACxD;IACF,GAAG;QAACC;QAAkBL;QAAWC;QAAUC;QAAmBE;KAAI;IAElE,IAAIF,sBAAsB,UAAU;QAClC,qBACE,oBAACoB;YACCC,WAAW;gBACT5B;gBACAW,cAAcA,eAAe,gBAAgB,CAAC,EAAEX,UAAU,gBAAgB,CAAC;aAC5E,CACE6B,MAAM,CAACC,SACPC,IAAI,CAAC;yBAER,oBAACJ;YAAIC,WAAW,CAAC,EAAE5B,UAAU,SAAS,CAAC;yBACrC,oBAACD,oBAAuBG,sBACxB,oBAACyB;YAAIC,WAAW,CAAC,EAAE5B,UAAU,MAAM,CAAC;yBAClC,oBAACH,uBACEY,oBACC,oBAACX;YAAOkC,KAAK3B;YAAWG,oBAAoBA;YAAoBC,KAAKA;2BAErE,oBAACnB;YAAc2C,QAAO;;IAOpC;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMlD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwGnD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAOlD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8GnD,CAAA"}
@@ -3,6 +3,7 @@ import { Popup, PopupList } from '@payloadcms/ui/elements/Popup';
3
3
  import { Chevron } from '@payloadcms/ui/icons/Chevron';
4
4
  import { LinkIcon } from '@payloadcms/ui/icons/Link';
5
5
  import { X } from '@payloadcms/ui/icons/X';
6
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
6
7
  import React from 'react';
7
8
  import { useLivePreviewContext } from '../../Context/context.js';
8
9
  import { PreviewFrameSizeInput } from '../SizeInput/index.js';
@@ -15,12 +16,13 @@ const zoomOptions = [
15
16
  150,
16
17
  200
17
18
  ];
18
- const customOption = {
19
- label: 'Custom',
20
- value: 'custom'
21
- };
22
19
  export const ToolbarControls = ()=>{
23
20
  const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } = useLivePreviewContext();
21
+ const { t } = useTranslation();
22
+ const customOption = {
23
+ label: t('general:custom'),
24
+ value: 'custom'
25
+ };
24
26
  return /*#__PURE__*/ React.createElement("div", {
25
27
  className: baseClass
26
28
  }, breakpoints?.length > 0 && /*#__PURE__*/ React.createElement(Popup, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload/types'\n\nimport { Popup, PopupList } from '@payloadcms/ui/elements/Popup'\nimport { Chevron } from '@payloadcms/ui/icons/Chevron'\nimport { LinkIcon } from '@payloadcms/ui/icons/Link'\nimport { X } from '@payloadcms/ui/icons/X'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../../Context/context.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\nconst customOption = {\n label: 'Custom', // TODO: Add i18n to this string\n value: 'custom',\n}\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <X />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n type=\"button\"\n >\n <LinkIcon />\n </a>\n </div>\n )\n}\n"],"names":["Popup","PopupList","Chevron","LinkIcon","X","React","useLivePreviewContext","PreviewFrameSizeInput","baseClass","zoomOptions","customOption","label","value","ToolbarControls","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","div","className","length","button","Fragment","span","find","bp","name","horizontalAlign","render","close","ButtonGroup","map","Button","active","key","onClick","showScrollbar","verticalAlign","axis","zoomValue","a","href","e","preventDefault","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,KAAK,EAAEC,SAAS,QAAQ,gCAA+B;AAChE,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,2BAA0B;AAChE,SAASC,qBAAqB,QAAQ,wBAAuB;AAG7D,MAAMC,YAAY;AAClB,MAAMC,cAAc;IAAC;IAAI;IAAI;IAAK;IAAK;IAAK;CAAI;AAChD,MAAMC,eAAe;IACnBC,OAAO;IACPC,OAAO;AACT;AAEA,OAAO,MAAMC,kBAA2C;IACtD,MAAM,EAAEC,UAAU,EAAEC,WAAW,EAAEC,aAAa,EAAEC,oBAAoB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAE,GACxFd;IAEF,qBACE,oBAACe;QAAIC,WAAWd;OACbO,aAAaQ,SAAS,mBACrB,oBAACvB;QACCwB,sBACE,oBAACnB,MAAMoB,QAAQ,sBACb,oBAACC,cACEX,YAAYY,IAAI,CAAC,CAACC,KAAOA,GAAGC,IAAI,IAAIf,aAAaH,SAASD,aAAaC,KAAK,GACxE,mBAEP,oBAACT;YAAQoB,WAAW,CAAC,EAAEd,UAAU,SAAS,CAAC;;QAG/Cc,WAAW,CAAC,EAAEd,UAAU,YAAY,CAAC;QACrCsB,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,oBAAC/B,UAAUgC,WAAW,sBACpB,oBAAC5B,MAAMoB,QAAQ,QACZV,YAAYmB,GAAG,CAAC,CAACN,mBAChB,oBAAC3B,UAAUkC,MAAM;oBACfC,QAAQR,GAAGC,IAAI,IAAIf;oBACnBuB,KAAKT,GAAGC,IAAI;oBACZS,SAAS;wBACPtB,cAAcY,GAAGC,IAAI;wBACrBG;oBACF;mBAECJ,GAAGjB,KAAK,IAIZG,eAAe,0BACd,oBAACb,UAAUkC,MAAM;gBACfC,QAAQtB,cAAcJ,aAAaE,KAAK;gBACxC0B,SAAS;oBACPtB,cAAcN,aAAaE,KAAK;oBAChCoB;gBACF;eAECtB,aAAaC,KAAK;QAM7B4B,eAAAA;QACAC,eAAc;sBAGlB,oBAACnB;QAAIC,WAAW,CAAC,EAAEd,UAAU,aAAa,CAAC;qBACzC,oBAACD;QAAsBkC,MAAK;sBAC5B,oBAACf;QAAKJ,WAAW,CAAC,EAAEd,UAAU,cAAc,CAAC;qBAC3C,oBAACJ,yBAEH,oBAACG;QAAsBkC,MAAK;uBAE9B,oBAACzC;QACCwB,sBACE,oBAACnB,MAAMoB,QAAQ,sBACb,oBAACC,cAAMN,OAAO,KAAI,MAAQ,mBAE1B,oBAAClB;YAAQoB,WAAW,CAAC,EAAEd,UAAU,SAAS,CAAC;;QAG/Cc,WAAW,CAAC,EAAEd,UAAU,MAAM,CAAC;QAC/BsB,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,oBAAC/B,UAAUgC,WAAW,sBACpB,oBAAC5B,MAAMoB,QAAQ,QACZhB,YAAYyB,GAAG,CAAC,CAACQ,0BAChB,oBAACzC,UAAUkC,MAAM;oBACfC,QAAQhB,OAAO,OAAOsB;oBACtBL,KAAKK;oBACLJ,SAAS;wBACPpB,QAAQwB,YAAY;wBACpBV;oBACF;mBAECU,WAAU;QAMrBH,eAAAA;QACAC,eAAc;sBAEhB,oBAACG;QACCrB,WAAW,CAAC,EAAEd,UAAU,UAAU,CAAC;QACnCoC,MAAMzB;QACNmB,SAAS,CAACO;YACRA,EAAEC,cAAc;YAChB7B,qBAAqB;QACvB;QACA8B,MAAK;qBAEL,oBAAC5C;AAIT,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload/types'\n\nimport { Popup, PopupList } from '@payloadcms/ui/elements/Popup'\nimport { Chevron } from '@payloadcms/ui/icons/Chevron'\nimport { LinkIcon } from '@payloadcms/ui/icons/Link'\nimport { X } from '@payloadcms/ui/icons/X'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../../Context/context.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n const { t } = useTranslation()\n\n const customOption = {\n label: t('general:custom'),\n value: 'custom',\n }\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <X />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n &nbsp;\n <Chevron className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n type=\"button\"\n >\n <LinkIcon />\n </a>\n </div>\n )\n}\n"],"names":["Popup","PopupList","Chevron","LinkIcon","X","useTranslation","React","useLivePreviewContext","PreviewFrameSizeInput","baseClass","zoomOptions","ToolbarControls","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","t","customOption","label","value","div","className","length","button","Fragment","span","find","bp","name","horizontalAlign","render","close","ButtonGroup","map","Button","active","key","onClick","showScrollbar","verticalAlign","axis","zoomValue","a","href","e","preventDefault","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -12,8 +12,8 @@ import { useTranslation } from '@payloadcms/ui/providers/Translation';
12
12
  import { getFormState } from '@payloadcms/ui/utilities/getFormState';
13
13
  import React, { Fragment, useCallback } from 'react';
14
14
  import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
15
+ import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
15
16
  import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
16
- import { SetStepNav } from '../Edit/Default/SetStepNav/index.js';
17
17
  import { useLivePreviewContext } from './Context/context.js';
18
18
  import { LivePreviewProvider } from './Context/index.js';
19
19
  import { LivePreview } from './Preview/index.js';
@@ -80,7 +80,7 @@ const PreviewView = ({ apiRoute, collectionConfig, config, fieldMap, globalConfi
80
80
  onChange
81
81
  ],
82
82
  onSuccess: onSave
83
- }, (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(SetStepNav, {
83
+ }, (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(SetDocumentStepNav, {
84
84
  collectionSlug: collectionSlug,
85
85
  globalLabel: globalConfig?.label,
86
86
  globalSlug: globalSlug,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { LivePreviewConfig } from 'payload/config'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig, Data } from 'payload/types'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { LoadingOverlay } from '@payloadcms/ui/elements/Loading'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { SetStepNav } from '../Edit/Default/SetStepNav/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 apiRoute: string\n collectionConfig?: ClientCollectionConfig\n config: ClientConfig\n fieldMap: FieldMap\n globalConfig?: ClientGlobalConfig\n schemaPath: string\n serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fieldMap,\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 hasSavePermission,\n initialData,\n initialState,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n\n const onSave = useCallback(\n (json) => {\n // reportUpdate({\n // id,\n // entitySlug: collectionConfig.slug,\n // updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n // })\n\n // if (auth && id === user.id) {\n // await refreshCookieAsync()\n // }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n id,\n onSaveFromProps,\n // refreshCookieAsync,\n // reportUpdate\n ],\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 // Allow the `DocumentInfoProvider` to hydrate\n if (!collectionSlug && !globalSlug) {\n return <LoadingOverlay />\n }\n\n return (\n <Fragment>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\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 <SetStepNav\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 hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\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 fieldMap={fieldMap}\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 </Fragment>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n breakpoints: LivePreviewConfig['breakpoints']\n initialData: Data\n url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const config = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const {\n collections,\n globals,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const schemaPath = collectionSlug || globalSlug\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const { getFieldMap } = useComponentMap()\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n return (\n <Fragment>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.LivePreview} />\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 fieldMap={fieldMap}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"names":["DocumentControls","DocumentFields","LoadingOverlay","Form","SetViewActions","useComponentMap","useConfig","useDocumentInfo","OperationProvider","useTranslation","getFormState","React","Fragment","useCallback","LeaveWithoutSaving","SetDocumentTitle","SetStepNav","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fieldMap","globalConfig","schemaPath","serverURL","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","globalSlug","hasSavePermission","initialData","initialState","onSave","onSaveFromProps","operation","t","previewWindowType","json","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","fallback","toString","data","isEditing","Boolean","permissions","slug","div","filter","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","isPopupOpen","openPopupWindow","popupRef","eventType","collections","globals","routes","api","find","collection","global","getComponentMap","componentMap","getFieldMap","actions","actionsMap","Edit","fieldSchema","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { LivePreviewConfig } from 'payload/config'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig, Data } from 'payload/types'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { LoadingOverlay } from '@payloadcms/ui/elements/Loading'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\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 apiRoute: string\n collectionConfig?: ClientCollectionConfig\n config: ClientConfig\n fieldMap: FieldMap\n globalConfig?: ClientGlobalConfig\n schemaPath: string\n serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fieldMap,\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 hasSavePermission,\n initialData,\n initialState,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n\n const onSave = useCallback(\n (json) => {\n // reportUpdate({\n // id,\n // entitySlug: collectionConfig.slug,\n // updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n // })\n\n // if (auth && id === user.id) {\n // await refreshCookieAsync()\n // }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n id,\n onSaveFromProps,\n // refreshCookieAsync,\n // reportUpdate\n ],\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 // Allow the `DocumentInfoProvider` to hydrate\n if (!collectionSlug && !globalSlug) {\n return <LoadingOverlay />\n }\n\n return (\n <Fragment>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\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 hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\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 fieldMap={fieldMap}\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 </Fragment>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n breakpoints: LivePreviewConfig['breakpoints']\n initialData: Data\n url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const config = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const {\n collections,\n globals,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const schemaPath = collectionSlug || globalSlug\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const { getFieldMap } = useComponentMap()\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n return (\n <Fragment>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.LivePreview} />\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 fieldMap={fieldMap}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"names":["DocumentControls","DocumentFields","LoadingOverlay","Form","SetViewActions","useComponentMap","useConfig","useDocumentInfo","OperationProvider","useTranslation","getFormState","React","Fragment","useCallback","LeaveWithoutSaving","SetDocumentStepNav","SetDocumentTitle","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fieldMap","globalConfig","schemaPath","serverURL","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","globalSlug","hasSavePermission","initialData","initialState","onSave","onSaveFromProps","operation","t","previewWindowType","json","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","fallback","toString","data","isEditing","Boolean","permissions","slug","div","filter","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","isPopupOpen","openPopupWindow","popupRef","eventType","collections","globals","routes","api","find","collection","global","getComponentMap","componentMap","getFieldMap","actions","actionsMap","Edit","fieldSchema","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CA4CA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAgBzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAiFA,CAAA"}
@@ -10,6 +10,7 @@ import { Form } from '@payloadcms/ui/forms/Form';
10
10
  import { FormSubmit } from '@payloadcms/ui/forms/Submit';
11
11
  import { useConfig } from '@payloadcms/ui/providers/Config';
12
12
  import { useTranslation } from '@payloadcms/ui/providers/Translation';
13
+ import { email, password } from 'payload/fields/validations';
13
14
  export const LoginForm = ({ searchParams })=>{
14
15
  const config = useConfig();
15
16
  const { admin: { autoLogin, user: userSlug }, routes: { admin, api } } = config;
@@ -44,12 +45,41 @@ export const LoginForm = ({ searchParams })=>{
44
45
  autoComplete: "email",
45
46
  label: t('general:email'),
46
47
  name: "email",
47
- required: true
48
+ required: true,
49
+ validate: (value)=>email(value, {
50
+ name: 'email',
51
+ type: 'email',
52
+ data: {},
53
+ preferences: {
54
+ fields: {}
55
+ },
56
+ req: {
57
+ t
58
+ },
59
+ required: true,
60
+ siblingData: {}
61
+ })
48
62
  }), /*#__PURE__*/ React.createElement(Password, {
49
63
  autoComplete: "off",
50
64
  label: t('general:password'),
51
65
  name: "password",
52
- required: true
66
+ required: true,
67
+ validate: (value)=>password(value, {
68
+ name: 'password',
69
+ type: 'text',
70
+ data: {},
71
+ preferences: {
72
+ fields: {}
73
+ },
74
+ req: {
75
+ payload: {
76
+ config
77
+ },
78
+ t
79
+ },
80
+ required: true,
81
+ siblingData: {}
82
+ })
53
83
  })), /*#__PURE__*/ React.createElement(Link, {
54
84
  href: `${admin}/forgot`
55
85
  }, t('authentication:forgotPasswordQuestion')), /*#__PURE__*/ React.createElement(FormSubmit, null, t('authentication:login')));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst baseClass = 'login__form'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nimport type { FormState } from 'payload/types'\n\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\n\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ searchParams }) => {\n const config = useConfig()\n\n const {\n admin: { autoLogin, user: userSlug },\n routes: { admin, api },\n } = config\n\n const { t } = useTranslation()\n\n const prefillForm = autoLogin && autoLogin.prefillOnly\n\n const initialState: FormState = {\n email: {\n initialValue: prefillForm ? autoLogin.email : undefined,\n valid: true,\n value: prefillForm ? autoLogin.email : undefined,\n },\n password: {\n initialValue: prefillForm ? autoLogin.password : undefined,\n valid: true,\n value: prefillForm ? autoLogin.password : undefined,\n },\n }\n\n return (\n <Form\n action={`${api}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : admin}\n waitForAutocomplete\n >\n <FormLoadingOverlayToggle action=\"loading\" name=\"login-form\" />\n <div className={`${baseClass}__inputWrap`}>\n <Email autoComplete=\"email\" label={t('general:email')} name=\"email\" required />\n <Password autoComplete=\"off\" label={t('general:password')} name=\"password\" required />\n </div>\n <Link href={`${admin}/forgot`}>{t('authentication:forgotPasswordQuestion')}</Link>\n <FormSubmit>{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["LinkImport","React","baseClass","Link","default","FormLoadingOverlayToggle","Email","Password","Form","FormSubmit","useConfig","useTranslation","LoginForm","searchParams","config","admin","autoLogin","user","userSlug","routes","api","t","prefillForm","prefillOnly","initialState","email","initialValue","undefined","valid","value","password","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","name","div","autoComplete","label","required","href"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,OAAOA,gBAAgB,eAAc;AACrC,OAAOC,WAAW,QAAO;AAEzB,MAAMC,YAAY;AAClB,MAAMC,OAAQH,WAAWI,OAAO,IAAIJ;AAIpC,SAASK,wBAAwB,QAAQ,kCAAiC;AAC1E,SAASC,KAAK,QAAQ,8BAA6B;AACnD,SAASC,QAAQ,QAAQ,iCAAgC;AACzD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAIrE,OAAO,MAAMC,YAER,CAAC,EAAEC,YAAY,EAAE;IACpB,MAAMC,SAASJ;IAEf,MAAM,EACJK,OAAO,EAAEC,SAAS,EAAEC,MAAMC,QAAQ,EAAE,EACpCC,QAAQ,EAAEJ,KAAK,EAAEK,GAAG,EAAE,EACvB,GAAGN;IAEJ,MAAM,EAAEO,CAAC,EAAE,GAAGV;IAEd,MAAMW,cAAcN,aAAaA,UAAUO,WAAW;IAEtD,MAAMC,eAA0B;QAC9BC,OAAO;YACLC,cAAcJ,cAAcN,UAAUS,KAAK,GAAGE;YAC9CC,OAAO;YACPC,OAAOP,cAAcN,UAAUS,KAAK,GAAGE;QACzC;QACAG,UAAU;YACRJ,cAAcJ,cAAcN,UAAUc,QAAQ,GAAGH;YACjDC,OAAO;YACPC,OAAOP,cAAcN,UAAUc,QAAQ,GAAGH;QAC5C;IACF;IAEA,qBACE,oBAACnB;QACCuB,QAAQ,CAAC,EAAEX,IAAI,CAAC,EAAEF,SAAS,MAAM,CAAC;QAClCc,WAAW9B;QACX+B,sBAAAA;QACAT,cAAcA;QACdU,QAAO;QACPC,UAAU,OAAOtB,cAAcsB,aAAa,WAAWtB,aAAasB,QAAQ,GAAGpB;QAC/EqB,qBAAAA;qBAEA,oBAAC/B;QAAyB0B,QAAO;QAAUM,MAAK;sBAChD,oBAACC;QAAIN,WAAW,CAAC,EAAE9B,UAAU,WAAW,CAAC;qBACvC,oBAACI;QAAMiC,cAAa;QAAQC,OAAOnB,EAAE;QAAkBgB,MAAK;QAAQI,UAAAA;sBACpE,oBAAClC;QAASgC,cAAa;QAAMC,OAAOnB,EAAE;QAAqBgB,MAAK;QAAWI,UAAAA;uBAE7E,oBAACtC;QAAKuC,MAAM,CAAC,EAAE3B,MAAM,OAAO,CAAC;OAAGM,EAAE,yDAClC,oBAACZ,kBAAYY,EAAE;AAGrB,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst baseClass = 'login__form'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nimport type { FormState, PayloadRequestWithData } from 'payload/types'\n\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Email } from '@payloadcms/ui/fields/Email'\nimport { Password } from '@payloadcms/ui/fields/Password'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { FormSubmit } from '@payloadcms/ui/forms/Submit'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { email, password } from 'payload/fields/validations'\n\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ searchParams }) => {\n const config = useConfig()\n\n const {\n admin: { autoLogin, user: userSlug },\n routes: { admin, api },\n } = config\n\n const { t } = useTranslation()\n\n const prefillForm = autoLogin && autoLogin.prefillOnly\n\n const initialState: FormState = {\n email: {\n initialValue: prefillForm ? autoLogin.email : undefined,\n valid: true,\n value: prefillForm ? autoLogin.email : undefined,\n },\n password: {\n initialValue: prefillForm ? autoLogin.password : undefined,\n valid: true,\n value: prefillForm ? autoLogin.password : undefined,\n },\n }\n\n return (\n <Form\n action={`${api}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : admin}\n waitForAutocomplete\n >\n <FormLoadingOverlayToggle action=\"loading\" name=\"login-form\" />\n <div className={`${baseClass}__inputWrap`}>\n <Email\n autoComplete=\"email\"\n label={t('general:email')}\n name=\"email\"\n required\n validate={(value) =>\n email(value, {\n name: 'email',\n type: 'email',\n data: {},\n preferences: { fields: {} },\n req: { t } as PayloadRequestWithData,\n required: true,\n siblingData: {},\n })\n }\n />\n <Password\n autoComplete=\"off\"\n label={t('general:password')}\n name=\"password\"\n required\n validate={(value) =>\n password(value, {\n name: 'password',\n type: 'text',\n data: {},\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as PayloadRequestWithData,\n required: true,\n siblingData: {},\n })\n }\n />\n </div>\n <Link href={`${admin}/forgot`}>{t('authentication:forgotPasswordQuestion')}</Link>\n <FormSubmit>{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["LinkImport","React","baseClass","Link","default","FormLoadingOverlayToggle","Email","Password","Form","FormSubmit","useConfig","useTranslation","email","password","LoginForm","searchParams","config","admin","autoLogin","user","userSlug","routes","api","t","prefillForm","prefillOnly","initialState","initialValue","undefined","valid","value","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","name","div","autoComplete","label","required","validate","type","data","preferences","fields","req","siblingData","payload","href"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,OAAOA,gBAAgB,eAAc;AACrC,OAAOC,WAAW,QAAO;AAEzB,MAAMC,YAAY;AAClB,MAAMC,OAAQH,WAAWI,OAAO,IAAIJ;AAIpC,SAASK,wBAAwB,QAAQ,kCAAiC;AAC1E,SAASC,KAAK,QAAQ,8BAA6B;AACnD,SAASC,QAAQ,QAAQ,iCAAgC;AACzD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,QAAQ,QAAQ,6BAA4B;AAI5D,OAAO,MAAMC,YAER,CAAC,EAAEC,YAAY,EAAE;IACpB,MAAMC,SAASN;IAEf,MAAM,EACJO,OAAO,EAAEC,SAAS,EAAEC,MAAMC,QAAQ,EAAE,EACpCC,QAAQ,EAAEJ,KAAK,EAAEK,GAAG,EAAE,EACvB,GAAGN;IAEJ,MAAM,EAAEO,CAAC,EAAE,GAAGZ;IAEd,MAAMa,cAAcN,aAAaA,UAAUO,WAAW;IAEtD,MAAMC,eAA0B;QAC9Bd,OAAO;YACLe,cAAcH,cAAcN,UAAUN,KAAK,GAAGgB;YAC9CC,OAAO;YACPC,OAAON,cAAcN,UAAUN,KAAK,GAAGgB;QACzC;QACAf,UAAU;YACRc,cAAcH,cAAcN,UAAUL,QAAQ,GAAGe;YACjDC,OAAO;YACPC,OAAON,cAAcN,UAAUL,QAAQ,GAAGe;QAC5C;IACF;IAEA,qBACE,oBAACpB;QACCuB,QAAQ,CAAC,EAAET,IAAI,CAAC,EAAEF,SAAS,MAAM,CAAC;QAClCY,WAAW9B;QACX+B,sBAAAA;QACAP,cAAcA;QACdQ,QAAO;QACPC,UAAU,OAAOpB,cAAcoB,aAAa,WAAWpB,aAAaoB,QAAQ,GAAGlB;QAC/EmB,qBAAAA;qBAEA,oBAAC/B;QAAyB0B,QAAO;QAAUM,MAAK;sBAChD,oBAACC;QAAIN,WAAW,CAAC,EAAE9B,UAAU,WAAW,CAAC;qBACvC,oBAACI;QACCiC,cAAa;QACbC,OAAOjB,EAAE;QACTc,MAAK;QACLI,UAAAA;QACAC,UAAU,CAACZ,QACTlB,MAAMkB,OAAO;gBACXO,MAAM;gBACNM,MAAM;gBACNC,MAAM,CAAC;gBACPC,aAAa;oBAAEC,QAAQ,CAAC;gBAAE;gBAC1BC,KAAK;oBAAExB;gBAAE;gBACTkB,UAAU;gBACVO,aAAa,CAAC;YAChB;sBAGJ,oBAACzC;QACCgC,cAAa;QACbC,OAAOjB,EAAE;QACTc,MAAK;QACLI,UAAAA;QACAC,UAAU,CAACZ,QACTjB,SAASiB,OAAO;gBACdO,MAAM;gBACNM,MAAM;gBACNC,MAAM,CAAC;gBACPC,aAAa;oBAAEC,QAAQ,CAAC;gBAAE;gBAC1BC,KAAK;oBACHE,SAAS;wBACPjC;oBACF;oBACAO;gBACF;gBACAkB,UAAU;gBACVO,aAAa,CAAC;YAChB;uBAIN,oBAAC7C;QAAK+C,MAAM,CAAC,EAAEjC,MAAM,OAAO,CAAC;OAAGM,EAAE,yDAClC,oBAACd,kBAAYc,EAAE;AAGrB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Login/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAInD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,eAAO,MAAM,cAAc,UAAU,CAAA;AAErC,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8B9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Login/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAKnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,eAAO,MAAM,cAAc,UAAU,CAAA;AAErC,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2C9C,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { WithServerSideProps } from '@payloadcms/ui/elements/WithServerSideProps';
1
2
  import { Logo } from '@payloadcms/ui/graphics/Logo';
2
3
  import { redirect } from 'next/navigation.js';
3
4
  import React, { Fragment } from 'react';
@@ -6,8 +7,18 @@ export { generateLoginMetadata } from './meta.js';
6
7
  export const loginBaseClass = 'login';
7
8
  export const LoginView = ({ initPageResult, searchParams })=>{
8
9
  const { req } = initPageResult;
9
- const { payload: { config }, user } = req;
10
+ const { payload: { config }, payload, user } = req;
10
11
  const { admin: { components: { afterLogin, beforeLogin } = {}, user: userSlug }, collections, routes: { admin } } = config;
12
+ const BeforeLogins = Array.isArray(beforeLogin) ? beforeLogin.map((Component, i)=>/*#__PURE__*/ React.createElement(WithServerSideProps, {
13
+ Component: Component,
14
+ key: i,
15
+ payload: payload
16
+ })) : null;
17
+ const AfterLogins = Array.isArray(afterLogin) ? afterLogin.map((Component, i)=>/*#__PURE__*/ React.createElement(WithServerSideProps, {
18
+ Component: Component,
19
+ key: i,
20
+ payload: payload
21
+ })) : null;
11
22
  if (user) {
12
23
  redirect(admin);
13
24
  }
@@ -16,13 +27,9 @@ export const LoginView = ({ initPageResult, searchParams })=>{
16
27
  className: `${loginBaseClass}__brand`
17
28
  }, /*#__PURE__*/ React.createElement(Logo, {
18
29
  config: config
19
- })), Array.isArray(beforeLogin) && beforeLogin.map((Component, i)=>/*#__PURE__*/ React.createElement(Component, {
20
- key: i
21
- })), !collectionConfig?.auth?.disableLocalStrategy && /*#__PURE__*/ React.createElement(LoginForm, {
30
+ })), Array.isArray(BeforeLogins) && BeforeLogins.map((Component)=>Component), !collectionConfig?.auth?.disableLocalStrategy && /*#__PURE__*/ React.createElement(LoginForm, {
22
31
  searchParams: searchParams
23
- }), Array.isArray(afterLogin) && afterLogin.map((Component, i)=>/*#__PURE__*/ React.createElement(Component, {
24
- key: i
25
- })));
32
+ }), Array.isArray(AfterLogins) && AfterLogins.map((Component)=>Component));
26
33
  };
27
34
 
28
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Login/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload/types'\n\nimport { Logo } from '@payloadcms/ui/graphics/Logo'\nimport { redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { LoginForm } from './LoginForm/index.js'\nimport './index.scss'\n\nexport { generateLoginMetadata } from './meta.js'\n\nexport const loginBaseClass = 'login'\n\nexport const LoginView: React.FC<AdminViewProps> = ({ initPageResult, searchParams }) => {\n const { req } = initPageResult\n\n const {\n payload: { config },\n user,\n } = req\n\n const {\n admin: { components: { afterLogin, beforeLogin } = {}, user: userSlug },\n collections,\n routes: { admin },\n } = config\n\n if (user) {\n redirect(admin)\n }\n\n const collectionConfig = collections.find(({ slug }) => slug === userSlug)\n\n return (\n <Fragment>\n <div className={`${loginBaseClass}__brand`}>\n <Logo config={config} />\n </div>\n {Array.isArray(beforeLogin) && beforeLogin.map((Component, i) => <Component key={i} />)}\n {!collectionConfig?.auth?.disableLocalStrategy && <LoginForm searchParams={searchParams} />}\n {Array.isArray(afterLogin) && afterLogin.map((Component, i) => <Component key={i} />)}\n </Fragment>\n )\n}\n"],"names":["Logo","redirect","React","Fragment","LoginForm","generateLoginMetadata","loginBaseClass","LoginView","initPageResult","searchParams","req","payload","config","user","admin","components","afterLogin","beforeLogin","userSlug","collections","routes","collectionConfig","find","slug","div","className","Array","isArray","map","Component","i","key","auth","disableLocalStrategy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,IAAI,QAAQ,+BAA8B;AACnD,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,SAAS,QAAQ,uBAAsB;AAGhD,SAASC,qBAAqB,QAAQ,YAAW;AAEjD,OAAO,MAAMC,iBAAiB,QAAO;AAErC,OAAO,MAAMC,YAAsC,CAAC,EAAEC,cAAc,EAAEC,YAAY,EAAE;IAClF,MAAM,EAAEC,GAAG,EAAE,GAAGF;IAEhB,MAAM,EACJG,SAAS,EAAEC,MAAM,EAAE,EACnBC,IAAI,EACL,GAAGH;IAEJ,MAAM,EACJI,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EACvEC,WAAW,EACXC,QAAQ,EAAEN,KAAK,EAAE,EAClB,GAAGF;IAEJ,IAAIC,MAAM;QACRZ,SAASa;IACX;IAEA,MAAMO,mBAAmBF,YAAYG,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASL;IAEjE,qBACE,oBAACf,8BACC,oBAACqB;QAAIC,WAAW,CAAC,EAAEnB,eAAe,OAAO,CAAC;qBACxC,oBAACN;QAAKY,QAAQA;SAEfc,MAAMC,OAAO,CAACV,gBAAgBA,YAAYW,GAAG,CAAC,CAACC,WAAWC,kBAAM,oBAACD;YAAUE,KAAKD;aAChF,CAACT,kBAAkBW,MAAMC,sCAAwB,oBAAC7B;QAAUK,cAAcA;QAC1EiB,MAAMC,OAAO,CAACX,eAAeA,WAAWY,GAAG,CAAC,CAACC,WAAWC,kBAAM,oBAACD;YAAUE,KAAKD;;AAGrF,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Login/index.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload/types'\n\nimport { WithServerSideProps } from '@payloadcms/ui/elements/WithServerSideProps'\nimport { Logo } from '@payloadcms/ui/graphics/Logo'\nimport { redirect } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { LoginForm } from './LoginForm/index.js'\nimport './index.scss'\n\nexport { generateLoginMetadata } from './meta.js'\n\nexport const loginBaseClass = 'login'\n\nexport const LoginView: React.FC<AdminViewProps> = ({ initPageResult, searchParams }) => {\n const { req } = initPageResult\n\n const {\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n admin: { components: { afterLogin, beforeLogin } = {}, user: userSlug },\n collections,\n routes: { admin },\n } = config\n\n const BeforeLogins = Array.isArray(beforeLogin)\n ? beforeLogin.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} payload={payload} />\n ))\n : null\n\n const AfterLogins = Array.isArray(afterLogin)\n ? afterLogin.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} payload={payload} />\n ))\n : null\n\n if (user) {\n redirect(admin)\n }\n\n const collectionConfig = collections.find(({ slug }) => slug === userSlug)\n\n return (\n <Fragment>\n <div className={`${loginBaseClass}__brand`}>\n <Logo config={config} />\n </div>\n {Array.isArray(BeforeLogins) && BeforeLogins.map((Component) => Component)}\n {!collectionConfig?.auth?.disableLocalStrategy && <LoginForm searchParams={searchParams} />}\n {Array.isArray(AfterLogins) && AfterLogins.map((Component) => Component)}\n </Fragment>\n )\n}\n"],"names":["WithServerSideProps","Logo","redirect","React","Fragment","LoginForm","generateLoginMetadata","loginBaseClass","LoginView","initPageResult","searchParams","req","payload","config","user","admin","components","afterLogin","beforeLogin","userSlug","collections","routes","BeforeLogins","Array","isArray","map","Component","i","key","AfterLogins","collectionConfig","find","slug","div","className","auth","disableLocalStrategy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,mBAAmB,QAAQ,8CAA6C;AACjF,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,SAAS,QAAQ,uBAAsB;AAGhD,SAASC,qBAAqB,QAAQ,YAAW;AAEjD,OAAO,MAAMC,iBAAiB,QAAO;AAErC,OAAO,MAAMC,YAAsC,CAAC,EAAEC,cAAc,EAAEC,YAAY,EAAE;IAClF,MAAM,EAAEC,GAAG,EAAE,GAAGF;IAEhB,MAAM,EACJG,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGH;IAEJ,MAAM,EACJI,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAEJ,MAAMK,QAAQ,EAAE,EACvEC,WAAW,EACXC,QAAQ,EAAEN,KAAK,EAAE,EAClB,GAAGF;IAEJ,MAAMS,eAAeC,MAAMC,OAAO,CAACN,eAC/BA,YAAYO,GAAG,CAAC,CAACC,WAAWC,kBAC1B,oBAAC3B;YAAoB0B,WAAWA;YAAWE,KAAKD;YAAGf,SAASA;cAE9D;IAEJ,MAAMiB,cAAcN,MAAMC,OAAO,CAACP,cAC9BA,WAAWQ,GAAG,CAAC,CAACC,WAAWC,kBACzB,oBAAC3B;YAAoB0B,WAAWA;YAAWE,KAAKD;YAAGf,SAASA;cAE9D;IAEJ,IAAIE,MAAM;QACRZ,SAASa;IACX;IAEA,MAAMe,mBAAmBV,YAAYW,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASb;IAEjE,qBACE,oBAACf,8BACC,oBAAC6B;QAAIC,WAAW,CAAC,EAAE3B,eAAe,OAAO,CAAC;qBACxC,oBAACN;QAAKY,QAAQA;SAEfU,MAAMC,OAAO,CAACF,iBAAiBA,aAAaG,GAAG,CAAC,CAACC,YAAcA,YAC/D,CAACI,kBAAkBK,MAAMC,sCAAwB,oBAAC/B;QAAUK,cAAcA;QAC1Ea,MAAMC,OAAO,CAACK,gBAAgBA,YAAYJ,GAAG,CAAC,CAACC,YAAcA;AAGpE,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogoutClient.d.ts","sourceRoot":"","sources":["../../../src/views/Logout/LogoutClient.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAIlD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAmCA,CAAA"}
1
+ {"version":3,"file":"LogoutClient.d.ts","sourceRoot":"","sources":["../../../src/views/Logout/LogoutClient.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAIlD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAkCA,CAAA"}
@@ -27,8 +27,7 @@ export const LogoutClient = (props)=>{
27
27
  url: `${adminRoute}/login${redirect && redirect.length > 0 ? `?redirect=${encodeURIComponent(redirect)}` : ''}`
28
28
  }, t('authentication:logBackIn')));
29
29
  }
30
- // TODO(i18n): needs translation in all languages
31
- return /*#__PURE__*/ React.createElement(Fragment, null, "Logging Out...");
30
+ return /*#__PURE__*/ React.createElement(Fragment, null, t('authentication:loggingOut'));
32
31
  };
33
32
 
34
33
  //# sourceMappingURL=LogoutClient.js.map