@payloadcms/next 3.0.0-canary.926cbeb → 3.0.0-canary.95fcd13

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 (281) hide show
  1. package/dist/cjs/withPayload.cjs +10 -5
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +5 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +7 -5
  10. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +2 -2
  14. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  16. package/dist/elements/EmailAndUsername/index.d.ts +8 -0
  17. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
  18. package/dist/elements/EmailAndUsername/index.js +33 -0
  19. package/dist/elements/EmailAndUsername/index.js.map +1 -0
  20. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  21. package/dist/elements/LeaveWithoutSaving/index.js +2 -0
  22. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  24. package/dist/elements/Nav/index.client.js +15 -5
  25. package/dist/elements/Nav/index.client.js.map +1 -1
  26. package/dist/layouts/Root/index.d.ts.map +1 -1
  27. package/dist/layouts/Root/index.js +0 -18
  28. package/dist/layouts/Root/index.js.map +1 -1
  29. package/dist/prod/styles.css +1 -1
  30. package/dist/routes/graphql/handler.d.ts.map +1 -1
  31. package/dist/routes/graphql/handler.js +1 -5
  32. package/dist/routes/graphql/handler.js.map +1 -1
  33. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  34. package/dist/routes/rest/auth/login.js +1 -1
  35. package/dist/routes/rest/auth/login.js.map +1 -1
  36. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  37. package/dist/routes/rest/auth/unlock.js +7 -3
  38. package/dist/routes/rest/auth/unlock.js.map +1 -1
  39. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  40. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  41. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  42. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  43. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  44. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  45. package/dist/routes/rest/index.d.ts.map +1 -1
  46. package/dist/routes/rest/index.js +30 -5
  47. package/dist/routes/rest/index.js.map +1 -1
  48. package/dist/routes/rest/routeError.d.ts.map +1 -1
  49. package/dist/routes/rest/routeError.js +3 -3
  50. package/dist/routes/rest/routeError.js.map +1 -1
  51. package/dist/scss/app.scss +5 -10
  52. package/dist/scss/colors.scss +76 -76
  53. package/dist/scss/toastify.scss +59 -0
  54. package/dist/scss/toasts.scss +75 -45
  55. package/dist/scss/type.scss +14 -23
  56. package/dist/scss/vars.scss +26 -47
  57. package/dist/templates/Default/index.d.ts +2 -2
  58. package/dist/templates/Default/index.d.ts.map +1 -1
  59. package/dist/templates/Default/index.js.map +1 -1
  60. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  61. package/dist/utilities/createPayloadRequest.js +11 -8
  62. package/dist/utilities/createPayloadRequest.js.map +1 -1
  63. package/dist/utilities/getNextRequestI18n.d.ts +3 -3
  64. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  65. package/dist/utilities/getNextRequestI18n.js +3 -1
  66. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  67. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  68. package/dist/utilities/getPayloadHMR.js +11 -8
  69. package/dist/utilities/getPayloadHMR.js.map +1 -1
  70. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  71. package/dist/utilities/headersWithCors.js +19 -3
  72. package/dist/utilities/headersWithCors.js.map +1 -1
  73. package/dist/utilities/initPage/handleAdminPage.d.ts +4 -0
  74. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  75. package/dist/utilities/initPage/handleAdminPage.js +17 -4
  76. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  77. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  78. package/dist/utilities/initPage/handleAuthRedirect.js +16 -4
  79. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  80. package/dist/utilities/initPage/index.js +1 -1
  81. package/dist/utilities/initPage/index.js.map +1 -1
  82. package/dist/utilities/initPage/shared.d.ts +14 -2
  83. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  84. package/dist/utilities/initPage/shared.js +14 -4
  85. package/dist/utilities/initPage/shared.js.map +1 -1
  86. package/dist/utilities/mergeHeaders.d.ts +1 -1
  87. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  88. package/dist/utilities/mergeHeaders.js +7 -33
  89. package/dist/utilities/mergeHeaders.js.map +1 -1
  90. package/dist/utilities/meta.d.ts +2 -2
  91. package/dist/utilities/meta.d.ts.map +1 -1
  92. package/dist/utilities/meta.js +1 -1
  93. package/dist/utilities/meta.js.map +1 -1
  94. package/dist/views/Account/index.d.ts.map +1 -1
  95. package/dist/views/Account/index.js +14 -23
  96. package/dist/views/Account/index.js.map +1 -1
  97. package/dist/views/CreateFirstUser/index.client.d.ts +2 -1
  98. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  99. package/dist/views/CreateFirstUser/index.client.js +11 -13
  100. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  101. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  102. package/dist/views/CreateFirstUser/index.js +11 -29
  103. package/dist/views/CreateFirstUser/index.js.map +1 -1
  104. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  105. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  106. package/dist/views/Dashboard/Default/index.js +13 -4
  107. package/dist/views/Dashboard/Default/index.js.map +1 -1
  108. package/dist/views/Dashboard/Default/index.scss +11 -7
  109. package/dist/views/Document/getDocumentData.d.ts +1 -0
  110. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  111. package/dist/views/Document/getDocumentData.js +4 -3
  112. package/dist/views/Document/getDocumentData.js.map +1 -1
  113. package/dist/views/Document/getMetaBySegment.d.ts +2 -2
  114. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  115. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  116. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  117. package/dist/views/Document/getViewsFromConfig.js +19 -5
  118. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  119. package/dist/views/Document/index.d.ts.map +1 -1
  120. package/dist/views/Document/index.js +24 -32
  121. package/dist/views/Document/index.js.map +1 -1
  122. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  123. package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
  124. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  125. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  126. package/dist/views/Edit/Default/Auth/index.js +65 -32
  127. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  128. package/dist/views/Edit/Default/Auth/index.scss +17 -2
  129. package/dist/views/Edit/Default/Auth/types.d.ts +4 -1
  130. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  131. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  132. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  133. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +15 -5
  134. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  135. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  136. package/dist/views/Edit/Default/index.js +26 -23
  137. package/dist/views/Edit/Default/index.js.map +1 -1
  138. package/dist/views/Edit/Default/index.scss +2 -2
  139. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  140. package/dist/views/ForgotPassword/index.js +12 -4
  141. package/dist/views/ForgotPassword/index.js.map +1 -1
  142. package/dist/views/List/Default/index.scss +2 -5
  143. package/dist/views/List/index.d.ts.map +1 -1
  144. package/dist/views/List/index.js +10 -4
  145. package/dist/views/List/index.js.map +1 -1
  146. package/dist/views/List/meta.d.ts +2 -2
  147. package/dist/views/List/meta.d.ts.map +1 -1
  148. package/dist/views/List/meta.js.map +1 -1
  149. package/dist/views/LivePreview/Preview/index.js +1 -1
  150. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  151. package/dist/views/LivePreview/Toolbar/index.d.ts +2 -2
  152. package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  153. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  154. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  155. package/dist/views/LivePreview/index.client.js.map +1 -1
  156. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  157. package/dist/views/Login/LoginField/index.d.ts +9 -0
  158. package/dist/views/Login/LoginField/index.d.ts.map +1 -0
  159. package/dist/views/Login/LoginField/index.js +46 -0
  160. package/dist/views/Login/LoginField/index.js.map +1 -0
  161. package/dist/views/Login/LoginForm/index.d.ts +3 -0
  162. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  163. package/dist/views/Login/LoginForm/index.js +30 -71
  164. package/dist/views/Login/LoginForm/index.js.map +1 -1
  165. package/dist/views/Login/index.d.ts.map +1 -1
  166. package/dist/views/Login/index.js +7 -0
  167. package/dist/views/Login/index.js.map +1 -1
  168. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  169. package/dist/views/Logout/LogoutClient.js +7 -2
  170. package/dist/views/Logout/LogoutClient.js.map +1 -1
  171. package/dist/views/Logout/index.d.ts +2 -2
  172. package/dist/views/Logout/index.d.ts.map +1 -1
  173. package/dist/views/Logout/index.js +2 -2
  174. package/dist/views/Logout/index.js.map +1 -1
  175. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  176. package/dist/views/NotFound/index.client.js +3 -2
  177. package/dist/views/NotFound/index.client.js.map +1 -1
  178. package/dist/views/NotFound/index.d.ts.map +1 -1
  179. package/dist/views/NotFound/index.js +5 -1
  180. package/dist/views/NotFound/index.js.map +1 -1
  181. package/dist/views/NotFound/meta.d.ts +2 -2
  182. package/dist/views/NotFound/meta.d.ts.map +1 -1
  183. package/dist/views/NotFound/meta.js.map +1 -1
  184. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  185. package/dist/views/ResetPassword/index.client.js +19 -31
  186. package/dist/views/ResetPassword/index.client.js.map +1 -1
  187. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  188. package/dist/views/ResetPassword/index.js +7 -3
  189. package/dist/views/ResetPassword/index.js.map +1 -1
  190. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  191. package/dist/views/Root/getViewFromConfig.js +5 -1
  192. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  193. package/dist/views/Root/index.d.ts +2 -2
  194. package/dist/views/Root/index.d.ts.map +1 -1
  195. package/dist/views/Root/index.js +14 -8
  196. package/dist/views/Root/index.js.map +1 -1
  197. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  198. package/dist/views/Unauthorized/index.js +1 -0
  199. package/dist/views/Unauthorized/index.js.map +1 -1
  200. package/dist/views/Verify/index.d.ts.map +1 -1
  201. package/dist/views/Verify/index.js +9 -2
  202. package/dist/views/Verify/index.js.map +1 -1
  203. package/dist/views/Version/Default/SetStepNav.d.ts +1 -3
  204. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  205. package/dist/views/Version/Default/SetStepNav.js +28 -13
  206. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  207. package/dist/views/Version/Default/index.d.ts.map +1 -1
  208. package/dist/views/Version/Default/index.js +15 -15
  209. package/dist/views/Version/Default/index.js.map +1 -1
  210. package/dist/views/Version/Default/types.d.ts +3 -3
  211. package/dist/views/Version/Default/types.d.ts.map +1 -1
  212. package/dist/views/Version/Default/types.js.map +1 -1
  213. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  214. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  215. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -4
  216. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  217. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  218. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -3
  219. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  220. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  221. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +9 -9
  222. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +1 -2
  223. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  224. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  225. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +3 -4
  226. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  227. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  228. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  229. package/dist/views/Version/Restore/index.js +46 -13
  230. package/dist/views/Version/Restore/index.js.map +1 -1
  231. package/dist/views/Version/Restore/index.scss +31 -0
  232. package/dist/views/Version/Restore/types.d.ts +1 -0
  233. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  234. package/dist/views/Version/Restore/types.js.map +1 -1
  235. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  236. package/dist/views/Version/SelectComparison/index.js +49 -28
  237. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  238. package/dist/views/Version/SelectComparison/index.scss +1 -1
  239. package/dist/views/Version/SelectComparison/types.d.ts +2 -1
  240. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  241. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  242. package/dist/views/Version/index.d.ts.map +1 -1
  243. package/dist/views/Version/index.js +24 -45
  244. package/dist/views/Version/index.js.map +1 -1
  245. package/dist/views/Versions/buildColumns.d.ts +3 -1
  246. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  247. package/dist/views/Versions/buildColumns.js +7 -4
  248. package/dist/views/Versions/buildColumns.js.map +1 -1
  249. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -1
  250. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  251. package/dist/views/Versions/cells/AutosaveCell/index.js +31 -13
  252. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  253. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  254. package/dist/views/Versions/cells/CreatedAt/index.js +10 -4
  255. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  256. package/dist/views/Versions/getLatestVersion.d.ts +5 -0
  257. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -0
  258. package/dist/views/Versions/getLatestVersion.js +29 -0
  259. package/dist/views/Versions/getLatestVersion.js.map +1 -0
  260. package/dist/views/Versions/index.client.d.ts.map +1 -1
  261. package/dist/views/Versions/index.client.js +3 -2
  262. package/dist/views/Versions/index.client.js.map +1 -1
  263. package/dist/views/Versions/index.d.ts.map +1 -1
  264. package/dist/views/Versions/index.js +22 -2
  265. package/dist/views/Versions/index.js.map +1 -1
  266. package/dist/withPayload.d.ts.map +1 -1
  267. package/dist/withPayload.js +10 -5
  268. package/dist/withPayload.js.map +1 -1
  269. package/package.json +19 -25
  270. package/dist/prod/index.js +0 -62
  271. package/dist/prod/payload/payload-favicon-dark.png +0 -0
  272. package/dist/prod/payload/payload-favicon-light.png +0 -0
  273. package/dist/prod/payload/static-og-image.png +0 -0
  274. package/dist/views/Version/shared.d.ts +0 -9
  275. package/dist/views/Version/shared.d.ts.map +0 -1
  276. package/dist/views/Version/shared.js +0 -10
  277. package/dist/views/Version/shared.js.map +0 -1
  278. package/dist/webpackEntry.d.ts +0 -5
  279. package/dist/webpackEntry.d.ts.map +0 -1
  280. package/dist/webpackEntry.js +0 -6
  281. package/dist/webpackEntry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { AdminViewProps, Where } from 'payload'\n\nimport {\n HydrateClientUser,\n ListInfoProvider,\n ListQueryProvider,\n TableColumnsProvider,\n} from '@payloadcms/ui'\nimport { RenderCustomComponent } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig, mergeListSearchAndWhere } from 'payload'\nimport { isNumber, isReactComponentOrFunction } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\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 notFound()\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 req,\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' && isReactComponentOrFunction(CustomList.Component)) {\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 || collectionConfig.defaultSort || 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 req,\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 serverOnlyProps={{\n collectionConfig,\n data,\n hasCreatePermission:\n permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n locale: fullLocale,\n newDocumentURL: `${admin}/collections/${collectionSlug}/create`,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","ListInfoProvider","ListQueryProvider","TableColumnsProvider","RenderCustomComponent","notFound","createClientCollectionConfig","mergeListSearchAndWhere","isNumber","isReactComponentOrFunction","React","Fragment","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","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","defaultSort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","hasCreatePermission","create","newDocumentURL","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"mappings":";AAEA,SACEA,iBAAiB,EACjBC,gBAAgB,EAChBC,iBAAiB,EACjBC,oBAAoB,QACf,iBAAgB;AACvB,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,4BAA4B,EAAEC,uBAAuB,QAAQ,UAAS;AAC/E,SAASC,QAAQ,EAAEC,0BAA0B,QAAQ,iBAAgB;AACrE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAIvC,SAASC,eAAe,QAAQ,qBAAoB;AAEpD,SAASC,oBAAoB,QAAQ,YAAW;AAEhD,OAAO,MAAMC,WAAqC,OAAO,EACvDC,cAAc,EACdC,MAAM,EACNC,YAAY,EACb;IACC,MAAM,EACJC,gBAAgB,EAChBC,QAAQC,UAAU,EAClBC,WAAW,EACXC,GAAG,EACHA,KAAK,EACHC,IAAI,EACJJ,MAAM,EACNK,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,KAAK,EACLC,IAAI,EACL,EACDC,eAAe,EAChB,GAAGb;IAEJ,MAAMc,iBAAiBX,kBAAkBY;IAEzC,IAAI,CAACT,aAAaU,aAAa,CAACF,eAAe,EAAEG,MAAMC,YAAY;QACjE5B;IACF;IAEA,IAAI6B;IACJ,MAAMC,gBAAgB,CAAC,EAAEN,eAAe,KAAK,CAAC;IAE9C,IAAI;QACFK,kBAAmB,MAAMV,QACtBY,IAAI,CAAC;YACJC,YAAY;YACZC,OAAO;YACPC,OAAO;YACPjB;YACAK;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,IAAIP,kBAAkB;QACpB,MAAM,EACJ+B,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAEC,MAAMC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EACjE,GAAGnC;QAEJ,IAAI,CAACU,gBAAgBG,WAAW,CAACuB,QAAQ,CAACzB,iBAAiB;YACzD,OAAOxB;QACT;QAEA,IAAIkD,iBAAiB;QAErB,IAAIF,cAAc,OAAOA,eAAe,YAAY;YAClDE,iBAAiBF;QACnB,OAAO,IAAI,OAAOA,eAAe,YAAY5C,2BAA2B4C,WAAWG,SAAS,GAAG;YAC7FD,iBAAiBF,WAAWG,SAAS;QACvC;QAEA,MAAMC,OAAOjD,SAASkB,OAAO+B,QAAQC,OAAOhC,MAAM+B,IAAI,IAAI;QAC1D,MAAME,aAAapD,wBAAwB;YACzCW;YACAQ,OAAO;gBACLkC,QAAQ,OAAOlC,OAAOkC,WAAW,WAAWlC,MAAMkC,MAAM,GAAGC;gBAC3DrB,OAAO,AAACd,OAAOc,SAAmBqB;YACpC;QACF;QACA,MAAMtB,QAAQ/B,SAASkB,OAAOa,SAC1BmB,OAAOhC,MAAMa,KAAK,IAClBL,iBAAiBK,SAASrB,iBAAiB+B,KAAK,CAACa,UAAU,CAACC,YAAY;QAC5E,MAAMC,OACJtC,OAAOsC,QAAQ,OAAOtC,MAAMsC,IAAI,KAAK,WACjCtC,MAAMsC,IAAI,GACV9B,iBAAiB8B,QAAQ9C,iBAAiB+C,WAAW,IAAIJ;QAE/D,MAAMK,OAAO,MAAM1C,QAAQY,IAAI,CAAC;YAC9BC,YAAYR;YACZS,OAAO;YACP6B,OAAO;YACPC,gBAAgB;YAChB7B;YACApB;YACAkD,gBAAgB;YAChBZ;YACAnC;YACA0C;YACArC;YACAa,OAAOmB,cAAc,CAAC;QACxB;QAEA,MAAMW,qBAA2C;YAC/CzC;YACA0C,sBAAsBrD,iBAAiB+B,KAAK,CAACsB,oBAAoB;QACnE;QAEA,qBACE,MAAC5D;;8BACC,KAACX;oBAAkBqB,aAAaA;oBAAaM,MAAMA;;8BACnD,KAAC1B;oBACCiB,kBAAkBZ,6BAA6B;wBAC7C+B,YAAYnB;wBACZsD,GAAGzD,eAAeO,GAAG,CAACC,IAAI,CAACiD,CAAC;oBAC9B;oBACA3C,gBAAgBA;oBAChB4C,qBAAqBpD,aAAaU,aAAa,CAACF,eAAe,EAAE6C,QAAQzC;oBACzE0C,gBAAgB,CAAC,EAAE1B,MAAM,aAAa,EAAEpB,eAAe,OAAO,CAAC;8BAE/D,cAAA,KAAC3B;wBACCgE,MAAMA;wBACNH,cAAcxB,SAASrB,kBAAkB+B,OAAOa,YAAYC;wBAC5DE,aAAaD;wBACbY,kBAAkB;wBAClBzC,eAAeA;kCAEf,cAAA,KAAChC;4BACC0B,gBAAgBA;4BAChBgD,mBAAmB;4BACnB3C,iBAAiBA;4BACjBC,eAAeA;sCAEf,cAAA,KAAC/B;gCACC0E,iBAAiBvB;gCACjBwB,kBAAkBnE;gCAClBoE,gBAAgBV;gCAChBW,iBAAiB;oCACf/D;oCACAgD;oCACAO,qBACEpD,aAAaU,aAAa,CAACF,eAAe,EAAE6C,QAAQzC;oCACtDV;oCACAgB;oCACAL;oCACAf,QAAQC;oCACRuD,gBAAgB,CAAC,EAAE1B,MAAM,aAAa,EAAEpB,eAAe,OAAO,CAAC;oCAC/Db;oCACAQ;oCACAH;oCACAJ;oCACAU;gCACF;;;;;;;IAOd;IAEA,OAAOtB;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { AdminViewProps, Where } from 'payload'\n\nimport {\n HydrateClientUser,\n ListInfoProvider,\n ListQueryProvider,\n TableColumnsProvider,\n} from '@payloadcms/ui'\nimport { RenderCustomComponent, formatAdminURL } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig, mergeListSearchAndWhere } from 'payload'\nimport { isNumber, isReactComponentOrFunction } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\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 notFound()\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 req,\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: adminRoute },\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' && isReactComponentOrFunction(CustomList.Component)) {\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 || collectionConfig.defaultSort || 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 req,\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={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })}\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 serverOnlyProps={{\n collectionConfig,\n data,\n hasCreatePermission:\n permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n locale: fullLocale,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","ListInfoProvider","ListQueryProvider","TableColumnsProvider","RenderCustomComponent","formatAdminURL","notFound","createClientCollectionConfig","mergeListSearchAndWhere","isNumber","isReactComponentOrFunction","React","Fragment","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","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","adminRoute","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","defaultSort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","hasCreatePermission","create","newDocumentURL","path","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Metadata } from 'next';
2
2
  import type { SanitizedCollectionConfig } from 'payload';
3
3
  import type { GenerateViewMetadata } from '../Root/index.js';
4
- export declare const generateListMetadata: (args: Parameters<GenerateViewMetadata>[0] & {
4
+ export declare const generateListMetadata: (args: {
5
5
  collectionConfig: SanitizedCollectionConfig;
6
- }) => Promise<Metadata>;
6
+ } & Parameters<GenerateViewMetadata>[0]) => Promise<Metadata>;
7
7
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/List/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAI5D,eAAO,MAAM,oBAAoB,SACzB,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG;IAC1C,gBAAgB,EAAE,yBAAyB,CAAA;CAC5C,KACA,OAAO,CAAC,QAAQ,CAmBlB,CAAA"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/List/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAI5D,eAAO,MAAM,oBAAoB,SACzB;IACJ,gBAAgB,EAAE,yBAAyB,CAAA;CAC5C,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,QAAQ,CAmBlB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/List/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateListMetadata = async (\n args: Parameters<GenerateViewMetadata>[0] & {\n collectionConfig: SanitizedCollectionConfig\n },\n): Promise<Metadata> => {\n const { collectionConfig, config, i18n } = args\n\n let title: string = ''\n const description: string = ''\n const keywords: string = ''\n\n if (collectionConfig) {\n title = getTranslation(collectionConfig.labels.plural, i18n)\n }\n\n return meta({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n ...(collectionConfig.admin.meta || {}),\n })\n}\n"],"names":["getTranslation","meta","generateListMetadata","args","collectionConfig","config","i18n","title","description","keywords","labels","plural","admin","serverURL"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,uBAAuB,OAClCC;IAIA,MAAM,EAAEC,gBAAgB,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGH;IAE3C,IAAII,QAAgB;IACpB,MAAMC,cAAsB;IAC5B,MAAMC,WAAmB;IAEzB,IAAIL,kBAAkB;QACpBG,QAAQP,eAAeI,iBAAiBM,MAAM,CAACC,MAAM,EAAEL;IACzD;IAEA,OAAOL,KAAK;QACV,GAAII,OAAOO,KAAK,CAACX,IAAI,IAAI,CAAC,CAAC;QAC3BO;QACAC;QACAI,WAAWR,OAAOQ,SAAS;QAC3BN;QACA,GAAIH,iBAAiBQ,KAAK,CAACX,IAAI,IAAI,CAAC,CAAC;IACvC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/List/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateListMetadata = async (\n args: {\n collectionConfig: SanitizedCollectionConfig\n } & Parameters<GenerateViewMetadata>[0],\n): Promise<Metadata> => {\n const { collectionConfig, config, i18n } = args\n\n let title: string = ''\n const description: string = ''\n const keywords: string = ''\n\n if (collectionConfig) {\n title = getTranslation(collectionConfig.labels.plural, i18n)\n }\n\n return meta({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n ...(collectionConfig.admin.meta || {}),\n })\n}\n"],"names":["getTranslation","meta","generateListMetadata","args","collectionConfig","config","i18n","title","description","keywords","labels","plural","admin","serverURL"],"mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,uBAAuB,OAClCC;IAIA,MAAM,EAAEC,gBAAgB,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGH;IAE3C,IAAII,QAAgB;IACpB,MAAMC,cAAsB;IAC5B,MAAMC,WAAmB;IAEzB,IAAIL,kBAAkB;QACpBG,QAAQP,eAAeI,iBAAiBM,MAAM,CAACC,MAAM,EAAEL;IACzD;IAEA,OAAOL,KAAK;QACV,GAAII,OAAOO,KAAK,CAACX,IAAI,IAAI,CAAC,CAAC;QAC3BO;QACAC;QACAI,WAAWR,OAAOQ,SAAS;QAC3BN;QACA,GAAIH,iBAAiBQ,KAAK,CAACX,IAAI,IAAI,CAAC,CAAC;IACvC;AACF,EAAC"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ShimmerEffect, useAllFormFields, useDocumentEvents } from '@payloadcms/ui';
4
- import { reduceFieldsToValues } from '@payloadcms/ui/shared';
4
+ import { reduceFieldsToValues } from 'payload/shared';
5
5
  import React, { useEffect } from 'react';
6
6
  import { useLivePreviewContext } from '../Context/context.js';
7
7
  import { DeviceContainer } from '../Device/index.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/LivePreview/Preview/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport { ShimmerEffect, useAllFormFields, useDocumentEvents } from '@payloadcms/ui'\nimport { reduceFieldsToValues } from '@payloadcms/ui/shared'\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']>(undefined)\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","undefined","fields","window","values","shouldSendSchema","current","message","type","data","externallyUpdatedRelationship","postMessage","contentWindow","div","className","filter","Boolean","join","ref","height"],"mappings":"AAAA;;AAIA,SAASA,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,QAAQ,iBAAgB;AACnF,SAASC,oBAAoB,QAAQ,wBAAuB;AAC5D,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,CAAgEC;IAE9E,MAAM,CAACC,OAAO,GAAGzB;IAEjB,+DAA+D;IAC/D,6DAA6D;IAC7D,yCAAyC;IACzC,+CAA+C;IAC/CI,UAAU;QACR,4FAA4F;QAC5F,IAAIqB,UAAUC,UAAU,iBAAiBA,UAAUd,YAAY;YAC7D,MAAMe,SAASzB,qBAAqBuB,QAAQ;YAE5C,oFAAoF;YACpF,yEAAyE;YACzE,kEAAkE;YAClE,qGAAqG;YACrG,MAAMG,mBACJ,CAACN,eAAeO,OAAO,IAAIP,eAAeO,OAAO,KAAKb;YAExDM,eAAeO,OAAO,GAAGb;YAEzB,MAAMc,UAAU;gBACdC,MAAM;gBACNC,MAAML;gBACNM,+BAA+Bd;gBAC/BE,iBAAiBO,mBAAmBP,kBAAkBG;YACxD;YAEA,wCAAwC;YACxC,IAAIR,sBAAsB,WAAWD,SAASc,OAAO,EAAE;gBACrDd,SAASc,OAAO,CAACK,WAAW,CAACJ,SAASZ;YACxC;YAEA,kCAAkC;YAClC,IAAIF,sBAAsB,YAAYF,UAAUe,OAAO,EAAE;gBACvDf,UAAUe,OAAO,CAACM,aAAa,EAAED,YAAYJ,SAASZ;YACxD;QACF;IACF,GAAG;QACDO;QACAP;QACAL;QACAG;QACAD;QACAH;QACAE;QACAG;QACAI;QACAF;KACD;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,sEAAsE;IACtEf,UAAU;QACR,MAAM0B,UAAU;YACdC,MAAM;QACR;QAEA,wCAAwC;QACxC,IAAIf,sBAAsB,WAAWD,SAASc,OAAO,EAAE;YACrDd,SAASc,OAAO,CAACK,WAAW,CAACJ,SAASZ;QACxC;QAEA,kCAAkC;QAClC,IAAIF,sBAAsB,YAAYF,UAAUe,OAAO,EAAE;YACvDf,UAAUe,OAAO,CAACM,aAAa,EAAED,YAAYJ,SAASZ;QACxD;IACF,GAAG;QAACC;QAAkBL;QAAWC;QAAUC;QAAmBE;KAAI;IAElE,IAAIF,sBAAsB,UAAU;QAClC,qBACE,KAACoB;YACCC,WAAW;gBACT5B;gBACAW,cAAcA,eAAe,gBAAgB,CAAC,EAAEX,UAAU,gBAAgB,CAAC;aAC5E,CACE6B,MAAM,CAACC,SACPC,IAAI,CAAC;sBAER,cAAA,MAACJ;gBAAIC,WAAW,CAAC,EAAE5B,UAAU,SAAS,CAAC;;kCACrC,KAACD;wBAAoB,GAAGG,KAAK;;kCAC7B,KAACyB;wBAAIC,WAAW,CAAC,EAAE5B,UAAU,MAAM,CAAC;kCAClC,cAAA,KAACH;sCACEY,oBACC,KAACX;gCAAOkC,KAAK3B;gCAAWG,oBAAoBA;gCAAoBC,KAAKA;+CAErE,KAACnB;gCAAc2C,QAAO;;;;;;;IAOpC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/LivePreview/Preview/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport { ShimmerEffect, useAllFormFields, useDocumentEvents } from '@payloadcms/ui'\nimport { reduceFieldsToValues } from 'payload/shared'\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']>(undefined)\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","undefined","fields","window","values","shouldSendSchema","current","message","type","data","externallyUpdatedRelationship","postMessage","contentWindow","div","className","filter","Boolean","join","ref","height"],"mappings":"AAAA;;AAIA,SAASA,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,QAAQ,iBAAgB;AACnF,SAASC,oBAAoB,QAAQ,iBAAgB;AACrD,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,CAAgEC;IAE9E,MAAM,CAACC,OAAO,GAAGzB;IAEjB,+DAA+D;IAC/D,6DAA6D;IAC7D,yCAAyC;IACzC,+CAA+C;IAC/CI,UAAU;QACR,4FAA4F;QAC5F,IAAIqB,UAAUC,UAAU,iBAAiBA,UAAUd,YAAY;YAC7D,MAAMe,SAASzB,qBAAqBuB,QAAQ;YAE5C,oFAAoF;YACpF,yEAAyE;YACzE,kEAAkE;YAClE,qGAAqG;YACrG,MAAMG,mBACJ,CAACN,eAAeO,OAAO,IAAIP,eAAeO,OAAO,KAAKb;YAExDM,eAAeO,OAAO,GAAGb;YAEzB,MAAMc,UAAU;gBACdC,MAAM;gBACNC,MAAML;gBACNM,+BAA+Bd;gBAC/BE,iBAAiBO,mBAAmBP,kBAAkBG;YACxD;YAEA,wCAAwC;YACxC,IAAIR,sBAAsB,WAAWD,SAASc,OAAO,EAAE;gBACrDd,SAASc,OAAO,CAACK,WAAW,CAACJ,SAASZ;YACxC;YAEA,kCAAkC;YAClC,IAAIF,sBAAsB,YAAYF,UAAUe,OAAO,EAAE;gBACvDf,UAAUe,OAAO,CAACM,aAAa,EAAED,YAAYJ,SAASZ;YACxD;QACF;IACF,GAAG;QACDO;QACAP;QACAL;QACAG;QACAD;QACAH;QACAE;QACAG;QACAI;QACAF;KACD;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,sEAAsE;IACtEf,UAAU;QACR,MAAM0B,UAAU;YACdC,MAAM;QACR;QAEA,wCAAwC;QACxC,IAAIf,sBAAsB,WAAWD,SAASc,OAAO,EAAE;YACrDd,SAASc,OAAO,CAACK,WAAW,CAACJ,SAASZ;QACxC;QAEA,kCAAkC;QAClC,IAAIF,sBAAsB,YAAYF,UAAUe,OAAO,EAAE;YACvDf,UAAUe,OAAO,CAACM,aAAa,EAAED,YAAYJ,SAASZ;QACxD;IACF,GAAG;QAACC;QAAkBL;QAAWC;QAAUC;QAAmBE;KAAI;IAElE,IAAIF,sBAAsB,UAAU;QAClC,qBACE,KAACoB;YACCC,WAAW;gBACT5B;gBACAW,cAAcA,eAAe,gBAAgB,CAAC,EAAEX,UAAU,gBAAgB,CAAC;aAC5E,CACE6B,MAAM,CAACC,SACPC,IAAI,CAAC;sBAER,cAAA,MAACJ;gBAAIC,WAAW,CAAC,EAAE5B,UAAU,SAAS,CAAC;;kCACrC,KAACD;wBAAoB,GAAGG,KAAK;;kCAC7B,KAACyB;wBAAIC,WAAW,CAAC,EAAE5B,UAAU,MAAM,CAAC;kCAClC,cAAA,KAACH;sCACEY,oBACC,KAACX;gCAAOkC,KAAK3B;gCAAWG,oBAAoBA;gCAAoBC,KAAKA;+CAErE,KAACnB;gCAAc2C,QAAO;;;;;;;IAOpC;AACF,EAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { EditViewProps } from 'payload';
2
2
  import React from 'react';
3
3
  import './index.scss';
4
- export declare const LivePreviewToolbar: React.FC<EditViewProps & {
4
+ export declare const LivePreviewToolbar: React.FC<{
5
5
  draggable?: boolean;
6
- }>;
6
+ } & EditViewProps>;
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Toolbar/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAgDrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC,aAAa,GAAG;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CASF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Toolbar/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAgDrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC;IACE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GAAG,aAAa,CASlB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/LivePreview/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { EditViewProps } from 'payload'\n\nimport { useDraggable } from '@dnd-kit/core'\nimport { DragHandleIcon } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\nimport { ToolbarControls } from './Controls/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar'\n\nconst DraggableToolbar: React.FC<EditViewProps> = (props) => {\n const { toolbarPosition } = useLivePreviewContext()\n\n const { attributes, listeners, setNodeRef, transform } = useDraggable({\n id: 'live-preview-toolbar',\n })\n\n return (\n <div\n className={[baseClass, `${baseClass}--draggable`].join(' ')}\n style={{\n left: `${toolbarPosition.x}px`,\n top: `${toolbarPosition.y}px`,\n ...(transform\n ? {\n transform: transform\n ? `translate3d(${transform?.x || 0}px, ${transform?.y || 0}px, 0)`\n : undefined,\n }\n : {}),\n }}\n >\n <button\n {...listeners}\n {...attributes}\n className={`${baseClass}__drag-handle`}\n ref={setNodeRef}\n type=\"button\"\n >\n <DragHandleIcon />\n </button>\n <ToolbarControls {...props} />\n </div>\n )\n}\n\nconst StaticToolbar: React.FC<EditViewProps> = (props) => {\n return (\n <div className={[baseClass, `${baseClass}--static`].join(' ')}>\n <ToolbarControls {...props} />\n </div>\n )\n}\n\nexport const LivePreviewToolbar: React.FC<\n EditViewProps & {\n draggable?: boolean\n }\n> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggableToolbar {...props} />\n }\n\n return <StaticToolbar {...props} />\n}\n"],"names":["useDraggable","DragHandleIcon","React","useLivePreviewContext","ToolbarControls","baseClass","DraggableToolbar","props","toolbarPosition","attributes","listeners","setNodeRef","transform","id","div","className","join","style","left","x","top","y","undefined","button","ref","type","StaticToolbar","LivePreviewToolbar","draggable"],"mappings":"AAAA;;AAGA,SAASA,YAAY,QAAQ,gBAAe;AAC5C,SAASC,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,eAAe,QAAQ,sBAAqB;AAGrD,MAAMC,YAAY;AAElB,MAAMC,mBAA4C,CAACC;IACjD,MAAM,EAAEC,eAAe,EAAE,GAAGL;IAE5B,MAAM,EAAEM,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGZ,aAAa;QACpEa,IAAI;IACN;IAEA,qBACE,MAACC;QACCC,WAAW;YAACV;YAAW,CAAC,EAAEA,UAAU,WAAW,CAAC;SAAC,CAACW,IAAI,CAAC;QACvDC,OAAO;YACLC,MAAM,CAAC,EAAEV,gBAAgBW,CAAC,CAAC,EAAE,CAAC;YAC9BC,KAAK,CAAC,EAAEZ,gBAAgBa,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAIT,YACA;gBACEA,WAAWA,YACP,CAAC,YAAY,EAAEA,WAAWO,KAAK,EAAE,IAAI,EAAEP,WAAWS,KAAK,EAAE,MAAM,CAAC,GAChEC;YACN,IACA,CAAC,CAAC;QACR;;0BAEA,KAACC;gBACE,GAAGb,SAAS;gBACZ,GAAGD,UAAU;gBACdM,WAAW,CAAC,EAAEV,UAAU,aAAa,CAAC;gBACtCmB,KAAKb;gBACLc,MAAK;0BAEL,cAAA,KAACxB;;0BAEH,KAACG;gBAAiB,GAAGG,KAAK;;;;AAGhC;AAEA,MAAMmB,gBAAyC,CAACnB;IAC9C,qBACE,KAACO;QAAIC,WAAW;YAACV;YAAW,CAAC,EAAEA,UAAU,QAAQ,CAAC;SAAC,CAACW,IAAI,CAAC;kBACvD,cAAA,KAACZ;YAAiB,GAAGG,KAAK;;;AAGhC;AAEA,OAAO,MAAMoB,qBAIT,CAACpB;IACH,MAAM,EAAEqB,SAAS,EAAE,GAAGrB;IAEtB,IAAIqB,WAAW;QACb,qBAAO,KAACtB;YAAkB,GAAGC,KAAK;;IACpC;IAEA,qBAAO,KAACmB;QAAe,GAAGnB,KAAK;;AACjC,EAAC"}
1
+ {"version":3,"sources":["../../../../src/views/LivePreview/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { EditViewProps } from 'payload'\n\nimport { useDraggable } from '@dnd-kit/core'\nimport { DragHandleIcon } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\nimport { ToolbarControls } from './Controls/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar'\n\nconst DraggableToolbar: React.FC<EditViewProps> = (props) => {\n const { toolbarPosition } = useLivePreviewContext()\n\n const { attributes, listeners, setNodeRef, transform } = useDraggable({\n id: 'live-preview-toolbar',\n })\n\n return (\n <div\n className={[baseClass, `${baseClass}--draggable`].join(' ')}\n style={{\n left: `${toolbarPosition.x}px`,\n top: `${toolbarPosition.y}px`,\n ...(transform\n ? {\n transform: transform\n ? `translate3d(${transform?.x || 0}px, ${transform?.y || 0}px, 0)`\n : undefined,\n }\n : {}),\n }}\n >\n <button\n {...listeners}\n {...attributes}\n className={`${baseClass}__drag-handle`}\n ref={setNodeRef}\n type=\"button\"\n >\n <DragHandleIcon />\n </button>\n <ToolbarControls {...props} />\n </div>\n )\n}\n\nconst StaticToolbar: React.FC<EditViewProps> = (props) => {\n return (\n <div className={[baseClass, `${baseClass}--static`].join(' ')}>\n <ToolbarControls {...props} />\n </div>\n )\n}\n\nexport const LivePreviewToolbar: React.FC<\n {\n draggable?: boolean\n } & EditViewProps\n> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggableToolbar {...props} />\n }\n\n return <StaticToolbar {...props} />\n}\n"],"names":["useDraggable","DragHandleIcon","React","useLivePreviewContext","ToolbarControls","baseClass","DraggableToolbar","props","toolbarPosition","attributes","listeners","setNodeRef","transform","id","div","className","join","style","left","x","top","y","undefined","button","ref","type","StaticToolbar","LivePreviewToolbar","draggable"],"mappings":"AAAA;;AAGA,SAASA,YAAY,QAAQ,gBAAe;AAC5C,SAASC,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,wBAAuB;AAC7D,SAASC,eAAe,QAAQ,sBAAqB;AAGrD,MAAMC,YAAY;AAElB,MAAMC,mBAA4C,CAACC;IACjD,MAAM,EAAEC,eAAe,EAAE,GAAGL;IAE5B,MAAM,EAAEM,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGZ,aAAa;QACpEa,IAAI;IACN;IAEA,qBACE,MAACC;QACCC,WAAW;YAACV;YAAW,CAAC,EAAEA,UAAU,WAAW,CAAC;SAAC,CAACW,IAAI,CAAC;QACvDC,OAAO;YACLC,MAAM,CAAC,EAAEV,gBAAgBW,CAAC,CAAC,EAAE,CAAC;YAC9BC,KAAK,CAAC,EAAEZ,gBAAgBa,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAIT,YACA;gBACEA,WAAWA,YACP,CAAC,YAAY,EAAEA,WAAWO,KAAK,EAAE,IAAI,EAAEP,WAAWS,KAAK,EAAE,MAAM,CAAC,GAChEC;YACN,IACA,CAAC,CAAC;QACR;;0BAEA,KAACC;gBACE,GAAGb,SAAS;gBACZ,GAAGD,UAAU;gBACdM,WAAW,CAAC,EAAEV,UAAU,aAAa,CAAC;gBACtCmB,KAAKb;gBACLc,MAAK;0BAEL,cAAA,KAACxB;;0BAEH,KAACG;gBAAiB,GAAGG,KAAK;;;;AAGhC;AAEA,MAAMmB,gBAAyC,CAACnB;IAC9C,qBACE,KAACO;QAAIC,WAAW;YAACV;YAAW,CAAC,EAAEA,UAAU,QAAQ,CAAC;SAAC,CAACW,IAAI,CAAC;kBACvD,cAAA,KAACZ;YAAiB,GAAGG,KAAK;;;AAGhC;AAEA,OAAO,MAAMoB,qBAIT,CAACpB;IACH,MAAM,EAAEqB,SAAS,EAAE,GAAGrB;IAEtB,IAAIqB,WAAW;QACb,qBAAO,KAACtB;YAAkB,GAAGC,KAAK;;IACpC;IAEA,qBAAO,KAACmB;QAAe,GAAGnB,KAAK;;AACjC,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAgBhB,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,OAAO,cAAc,CAAA;AAiLrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC7C,WAAW,EAAE,IAAI,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ,CA2DA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,IAAI,EAEJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAgBhB,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,OAAO,cAAc,CAAA;AAiLrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC7C,WAAW,EAAE,IAAI,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ,CA2DA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n OperationProvider,\n SetViewActions,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport { LivePreview } from './Preview/index.js'\nimport './index.scss'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n 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 hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const {\n admin: { user: userSlug },\n } = useConfig()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [collectionSlug, id, onSaveFromProps, refreshCookieAsync, reportUpdate, user, userSlug],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n docPreferences,\n formState: prevFormState,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, schemaPath, getDocPreferences],\n )\n\n return (\n <Fragment>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n 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","Form","OperationProvider","SetViewActions","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","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","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","onSave","onSaveFromProps","operation","admin","user","userSlug","t","previewWindowType","refreshCookieAsync","reportUpdate","json","entitySlug","updatedAt","result","Date","toISOString","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","view","fallback","toString","data","permissions","slug","div","filter","Boolean","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","isPopupOpen","openPopupWindow","popupRef","eventType","collections","globals","routes","api","find","collection","global","getComponentMap","componentMap","getFieldMap","actions","actionsMap","Edit","fieldSchema","fields"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n Data,\n FieldMap,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n OperationProvider,\n SetViewActions,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport { LivePreview } from './Preview/index.js'\nimport './index.scss'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n 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 hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const {\n admin: { user: userSlug },\n } = useConfig()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [collectionSlug, id, onSaveFromProps, refreshCookieAsync, reportUpdate, user, userSlug],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n docPreferences,\n formState: prevFormState,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, schemaPath, getDocPreferences],\n )\n\n return (\n <Fragment>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n 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","Form","OperationProvider","SetViewActions","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","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","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","onSave","onSaveFromProps","operation","admin","user","userSlug","t","previewWindowType","refreshCookieAsync","reportUpdate","json","entitySlug","updatedAt","result","Date","toISOString","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","view","fallback","toString","data","permissions","slug","div","filter","Boolean","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","isPopupOpen","openPopupWindow","popupRef","eventType","collections","globals","routes","api","find","collection","global","getComponentMap","componentMap","getFieldMap","actions","actionsMap","Edit","fieldSchema","fields"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/LivePreview/usePopupWindow.ts"],"sourcesContent":["'use client'\nimport { useConfig } from '@payloadcms/ui'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface PopupMessage {\n searchParams: {\n [key: string]: string | undefined\n code: string\n installation_id: string\n state: string\n }\n type: string\n}\n\nexport const usePopupWindow = (props: {\n eventType?: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onMessage?: (searchParams: PopupMessage['searchParams']) => Promise<void>\n url: string\n}): {\n isPopupOpen: boolean\n openPopupWindow: () => void\n popupRef?: React.MutableRefObject<Window | null>\n} => {\n const { eventType, onMessage, url } = props\n const isReceivingMessage = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n const { serverURL } = useConfig()\n const popupRef = useRef<Window | null>(null)\n\n // Optionally broadcast messages back out to the parent component\n useEffect(() => {\n const receiveMessage = async (event: MessageEvent): Promise<void> => {\n if (\n event.origin !== window.location.origin ||\n event.origin !== url ||\n event.origin !== serverURL\n ) {\n // console.warn(`Message received by ${event.origin}; IGNORED.`) // eslint-disable-line no-console\n return\n }\n\n if (\n typeof onMessage === 'function' &&\n event.data?.type === eventType &&\n !isReceivingMessage.current\n ) {\n isReceivingMessage.current = true\n await onMessage(event.data?.searchParams)\n isReceivingMessage.current = false\n }\n }\n\n if (isOpen && popupRef.current) {\n window.addEventListener('message', receiveMessage, false)\n }\n\n return () => {\n window.removeEventListener('message', receiveMessage)\n }\n }, [onMessage, eventType, url, serverURL, isOpen])\n\n // Customize the size, position, and style of the popup window\n const openPopupWindow = useCallback(\n (e?: MouseEvent) => {\n if (e) {\n e.preventDefault()\n }\n\n const features = {\n height: 700,\n left: 'auto',\n menubar: 'no',\n popup: 'yes',\n toolbar: 'no',\n top: 'auto',\n width: 800,\n }\n\n const popupOptions = Object.entries(features)\n .reduce((str, [key, value]) => {\n let strCopy = str\n if (value === 'auto') {\n if (key === 'top') {\n const v = Math.round(window.innerHeight / 2 - features.height / 2)\n strCopy += `top=${v},`\n } else if (key === 'left') {\n const v = Math.round(window.innerWidth / 2 - features.width / 2)\n strCopy += `left=${v},`\n }\n return strCopy\n }\n\n strCopy += `${key}=${value},`\n return strCopy\n }, '')\n .slice(0, -1) // remove last ',' (comma)\n\n const newWindow = window.open(url, '_blank', popupOptions)\n\n popupRef.current = newWindow\n\n setIsOpen(true)\n },\n [url],\n )\n\n // this is the most stable and widely supported way to check if a popup window is no longer open\n // we poll its ref every x ms and use the popup window's `closed` property\n useEffect(() => {\n let timer: NodeJS.Timeout\n\n if (isOpen) {\n timer = setInterval(function () {\n if (popupRef.current.closed) {\n clearInterval(timer)\n setIsOpen(false)\n }\n }, 1000)\n } else {\n clearInterval(timer)\n }\n\n return () => {\n if (timer) {\n clearInterval(timer)\n }\n }\n }, [isOpen, popupRef])\n\n return {\n isPopupOpen: isOpen,\n openPopupWindow,\n popupRef,\n }\n}\n"],"names":["useConfig","useCallback","useEffect","useRef","useState","usePopupWindow","props","eventType","onMessage","url","isReceivingMessage","isOpen","setIsOpen","serverURL","popupRef","receiveMessage","event","origin","window","location","data","type","current","searchParams","addEventListener","removeEventListener","openPopupWindow","e","preventDefault","features","height","left","menubar","popup","toolbar","top","width","popupOptions","Object","entries","reduce","str","key","value","strCopy","v","Math","round","innerHeight","innerWidth","slice","newWindow","open","timer","setInterval","closed","clearInterval","isPopupOpen"],"mappings":"AAAA;AACA,SAASA,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAYhE,OAAO,MAAMC,iBAAiB,CAACC;IAU7B,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAEC,GAAG,EAAE,GAAGH;IACtC,MAAMI,qBAAqBP,OAAO;IAClC,MAAM,CAACQ,QAAQC,UAAU,GAAGR,SAAS;IACrC,MAAM,EAAES,SAAS,EAAE,GAAGb;IACtB,MAAMc,WAAWX,OAAsB;IAEvC,iEAAiE;IACjED,UAAU;QACR,MAAMa,iBAAiB,OAAOC;YAC5B,IACEA,MAAMC,MAAM,KAAKC,OAAOC,QAAQ,CAACF,MAAM,IACvCD,MAAMC,MAAM,KAAKR,OACjBO,MAAMC,MAAM,KAAKJ,WACjB;gBACA,kGAAkG;gBAClG;YACF;YAEA,IACE,OAAOL,cAAc,cACrBQ,MAAMI,IAAI,EAAEC,SAASd,aACrB,CAACG,mBAAmBY,OAAO,EAC3B;gBACAZ,mBAAmBY,OAAO,GAAG;gBAC7B,MAAMd,UAAUQ,MAAMI,IAAI,EAAEG;gBAC5Bb,mBAAmBY,OAAO,GAAG;YAC/B;QACF;QAEA,IAAIX,UAAUG,SAASQ,OAAO,EAAE;YAC9BJ,OAAOM,gBAAgB,CAAC,WAAWT,gBAAgB;QACrD;QAEA,OAAO;YACLG,OAAOO,mBAAmB,CAAC,WAAWV;QACxC;IACF,GAAG;QAACP;QAAWD;QAAWE;QAAKI;QAAWF;KAAO;IAEjD,8DAA8D;IAC9D,MAAMe,kBAAkBzB,YACtB,CAAC0B;QACC,IAAIA,GAAG;YACLA,EAAEC,cAAc;QAClB;QAEA,MAAMC,WAAW;YACfC,QAAQ;YACRC,MAAM;YACNC,SAAS;YACTC,OAAO;YACPC,SAAS;YACTC,KAAK;YACLC,OAAO;QACT;QAEA,MAAMC,eAAeC,OAAOC,OAAO,CAACV,UACjCW,MAAM,CAAC,CAACC,KAAK,CAACC,KAAKC,MAAM;YACxB,IAAIC,UAAUH;YACd,IAAIE,UAAU,QAAQ;gBACpB,IAAID,QAAQ,OAAO;oBACjB,MAAMG,IAAIC,KAAKC,KAAK,CAAC7B,OAAO8B,WAAW,GAAG,IAAInB,SAASC,MAAM,GAAG;oBAChEc,WAAW,CAAC,IAAI,EAAEC,EAAE,CAAC,CAAC;gBACxB,OAAO,IAAIH,QAAQ,QAAQ;oBACzB,MAAMG,IAAIC,KAAKC,KAAK,CAAC7B,OAAO+B,UAAU,GAAG,IAAIpB,SAASO,KAAK,GAAG;oBAC9DQ,WAAW,CAAC,KAAK,EAAEC,EAAE,CAAC,CAAC;gBACzB;gBACA,OAAOD;YACT;YAEAA,WAAW,CAAC,EAAEF,IAAI,CAAC,EAAEC,MAAM,CAAC,CAAC;YAC7B,OAAOC;QACT,GAAG,IACFM,KAAK,CAAC,GAAG,CAAC,GAAG,0BAA0B;;QAE1C,MAAMC,YAAYjC,OAAOkC,IAAI,CAAC3C,KAAK,UAAU4B;QAE7CvB,SAASQ,OAAO,GAAG6B;QAEnBvC,UAAU;IACZ,GACA;QAACH;KAAI;IAGP,gGAAgG;IAChG,0EAA0E;IAC1EP,UAAU;QACR,IAAImD;QAEJ,IAAI1C,QAAQ;YACV0C,QAAQC,YAAY;gBAClB,IAAIxC,SAASQ,OAAO,CAACiC,MAAM,EAAE;oBAC3BC,cAAcH;oBACdzC,UAAU;gBACZ;YACF,GAAG;QACL,OAAO;YACL4C,cAAcH;QAChB;QAEA,OAAO;YACL,IAAIA,OAAO;gBACTG,cAAcH;YAChB;QACF;IACF,GAAG;QAAC1C;QAAQG;KAAS;IAErB,OAAO;QACL2C,aAAa9C;QACbe;QACAZ;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/LivePreview/usePopupWindow.ts"],"sourcesContent":["'use client'\nimport { useConfig } from '@payloadcms/ui'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface PopupMessage {\n searchParams: {\n [key: string]: string | undefined\n code: string\n installation_id: string\n state: string\n }\n type: string\n}\n\nexport const usePopupWindow = (props: {\n eventType?: string\n\n onMessage?: (searchParams: PopupMessage['searchParams']) => Promise<void>\n url: string\n}): {\n isPopupOpen: boolean\n openPopupWindow: () => void\n popupRef?: React.MutableRefObject<Window | null>\n} => {\n const { eventType, onMessage, url } = props\n const isReceivingMessage = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n const { serverURL } = useConfig()\n const popupRef = useRef<Window | null>(null)\n\n // Optionally broadcast messages back out to the parent component\n useEffect(() => {\n const receiveMessage = async (event: MessageEvent): Promise<void> => {\n if (\n event.origin !== window.location.origin ||\n event.origin !== url ||\n event.origin !== serverURL\n ) {\n // console.warn(`Message received by ${event.origin}; IGNORED.`) // eslint-disable-line no-console\n return\n }\n\n if (\n typeof onMessage === 'function' &&\n event.data?.type === eventType &&\n !isReceivingMessage.current\n ) {\n isReceivingMessage.current = true\n await onMessage(event.data?.searchParams)\n isReceivingMessage.current = false\n }\n }\n\n if (isOpen && popupRef.current) {\n window.addEventListener('message', receiveMessage, false)\n }\n\n return () => {\n window.removeEventListener('message', receiveMessage)\n }\n }, [onMessage, eventType, url, serverURL, isOpen])\n\n // Customize the size, position, and style of the popup window\n const openPopupWindow = useCallback(\n (e?: MouseEvent) => {\n if (e) {\n e.preventDefault()\n }\n\n const features = {\n height: 700,\n left: 'auto',\n menubar: 'no',\n popup: 'yes',\n toolbar: 'no',\n top: 'auto',\n width: 800,\n }\n\n const popupOptions = Object.entries(features)\n .reduce((str, [key, value]) => {\n let strCopy = str\n if (value === 'auto') {\n if (key === 'top') {\n const v = Math.round(window.innerHeight / 2 - features.height / 2)\n strCopy += `top=${v},`\n } else if (key === 'left') {\n const v = Math.round(window.innerWidth / 2 - features.width / 2)\n strCopy += `left=${v},`\n }\n return strCopy\n }\n\n strCopy += `${key}=${value},`\n return strCopy\n }, '')\n .slice(0, -1) // remove last ',' (comma)\n\n const newWindow = window.open(url, '_blank', popupOptions)\n\n popupRef.current = newWindow\n\n setIsOpen(true)\n },\n [url],\n )\n\n // this is the most stable and widely supported way to check if a popup window is no longer open\n // we poll its ref every x ms and use the popup window's `closed` property\n useEffect(() => {\n let timer: NodeJS.Timeout\n\n if (isOpen) {\n timer = setInterval(function () {\n if (popupRef.current.closed) {\n clearInterval(timer)\n setIsOpen(false)\n }\n }, 1000)\n } else {\n clearInterval(timer)\n }\n\n return () => {\n if (timer) {\n clearInterval(timer)\n }\n }\n }, [isOpen, popupRef])\n\n return {\n isPopupOpen: isOpen,\n openPopupWindow,\n popupRef,\n }\n}\n"],"names":["useConfig","useCallback","useEffect","useRef","useState","usePopupWindow","props","eventType","onMessage","url","isReceivingMessage","isOpen","setIsOpen","serverURL","popupRef","receiveMessage","event","origin","window","location","data","type","current","searchParams","addEventListener","removeEventListener","openPopupWindow","e","preventDefault","features","height","left","menubar","popup","toolbar","top","width","popupOptions","Object","entries","reduce","str","key","value","strCopy","v","Math","round","innerHeight","innerWidth","slice","newWindow","open","timer","setInterval","closed","clearInterval","isPopupOpen"],"mappings":"AAAA;AACA,SAASA,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAYhE,OAAO,MAAMC,iBAAiB,CAACC;IAU7B,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAEC,GAAG,EAAE,GAAGH;IACtC,MAAMI,qBAAqBP,OAAO;IAClC,MAAM,CAACQ,QAAQC,UAAU,GAAGR,SAAS;IACrC,MAAM,EAAES,SAAS,EAAE,GAAGb;IACtB,MAAMc,WAAWX,OAAsB;IAEvC,iEAAiE;IACjED,UAAU;QACR,MAAMa,iBAAiB,OAAOC;YAC5B,IACEA,MAAMC,MAAM,KAAKC,OAAOC,QAAQ,CAACF,MAAM,IACvCD,MAAMC,MAAM,KAAKR,OACjBO,MAAMC,MAAM,KAAKJ,WACjB;gBACA,kGAAkG;gBAClG;YACF;YAEA,IACE,OAAOL,cAAc,cACrBQ,MAAMI,IAAI,EAAEC,SAASd,aACrB,CAACG,mBAAmBY,OAAO,EAC3B;gBACAZ,mBAAmBY,OAAO,GAAG;gBAC7B,MAAMd,UAAUQ,MAAMI,IAAI,EAAEG;gBAC5Bb,mBAAmBY,OAAO,GAAG;YAC/B;QACF;QAEA,IAAIX,UAAUG,SAASQ,OAAO,EAAE;YAC9BJ,OAAOM,gBAAgB,CAAC,WAAWT,gBAAgB;QACrD;QAEA,OAAO;YACLG,OAAOO,mBAAmB,CAAC,WAAWV;QACxC;IACF,GAAG;QAACP;QAAWD;QAAWE;QAAKI;QAAWF;KAAO;IAEjD,8DAA8D;IAC9D,MAAMe,kBAAkBzB,YACtB,CAAC0B;QACC,IAAIA,GAAG;YACLA,EAAEC,cAAc;QAClB;QAEA,MAAMC,WAAW;YACfC,QAAQ;YACRC,MAAM;YACNC,SAAS;YACTC,OAAO;YACPC,SAAS;YACTC,KAAK;YACLC,OAAO;QACT;QAEA,MAAMC,eAAeC,OAAOC,OAAO,CAACV,UACjCW,MAAM,CAAC,CAACC,KAAK,CAACC,KAAKC,MAAM;YACxB,IAAIC,UAAUH;YACd,IAAIE,UAAU,QAAQ;gBACpB,IAAID,QAAQ,OAAO;oBACjB,MAAMG,IAAIC,KAAKC,KAAK,CAAC7B,OAAO8B,WAAW,GAAG,IAAInB,SAASC,MAAM,GAAG;oBAChEc,WAAW,CAAC,IAAI,EAAEC,EAAE,CAAC,CAAC;gBACxB,OAAO,IAAIH,QAAQ,QAAQ;oBACzB,MAAMG,IAAIC,KAAKC,KAAK,CAAC7B,OAAO+B,UAAU,GAAG,IAAIpB,SAASO,KAAK,GAAG;oBAC9DQ,WAAW,CAAC,KAAK,EAAEC,EAAE,CAAC,CAAC;gBACzB;gBACA,OAAOD;YACT;YAEAA,WAAW,CAAC,EAAEF,IAAI,CAAC,EAAEC,MAAM,CAAC,CAAC;YAC7B,OAAOC;QACT,GAAG,IACFM,KAAK,CAAC,GAAG,CAAC,GAAG,0BAA0B;;QAE1C,MAAMC,YAAYjC,OAAOkC,IAAI,CAAC3C,KAAK,UAAU4B;QAE7CvB,SAASQ,OAAO,GAAG6B;QAEnBvC,UAAU;IACZ,GACA;QAACH;KAAI;IAGP,gGAAgG;IAChG,0EAA0E;IAC1EP,UAAU;QACR,IAAImD;QAEJ,IAAI1C,QAAQ;YACV0C,QAAQC,YAAY;gBAClB,IAAIxC,SAASQ,OAAO,CAACiC,MAAM,EAAE;oBAC3BC,cAAcH;oBACdzC,UAAU;gBACZ;YACF,GAAG;QACL,OAAO;YACL4C,cAAcH;QAChB;QAEA,OAAO;YACL,IAAIA,OAAO;gBACTG,cAAcH;YAChB;QACF;IACF,GAAG;QAAC1C;QAAQG;KAAS;IAErB,OAAO;QACL2C,aAAa9C;QACbe;QACAZ;IACF;AACF,EAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Validate } from 'payload';
2
+ import React from 'react';
3
+ export type LoginFieldProps = {
4
+ required?: boolean;
5
+ type: 'email' | 'emailOrUsername' | 'username';
6
+ validate?: Validate;
7
+ };
8
+ export declare const LoginField: React.FC<LoginFieldProps>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginField/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAA;AAIxD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,UAAU,CAAA;IAC9C,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwDhD,CAAA"}
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { EmailField, TextField, useTranslation } from '@payloadcms/ui';
4
+ import { email, username } from 'payload/shared';
5
+ import React from 'react';
6
+ export const LoginField = ({ type, required = true })=>{
7
+ const { t } = useTranslation();
8
+ if (type === 'email') {
9
+ return /*#__PURE__*/ _jsx(EmailField, {
10
+ autoComplete: "email",
11
+ label: t('general:email'),
12
+ name: "email",
13
+ path: "email",
14
+ required: required,
15
+ validate: email
16
+ });
17
+ }
18
+ if (type === 'username') {
19
+ return /*#__PURE__*/ _jsx(TextField, {
20
+ label: t('authentication:username'),
21
+ name: "username",
22
+ path: "username",
23
+ required: required,
24
+ validate: username
25
+ });
26
+ }
27
+ if (type === 'emailOrUsername') {
28
+ return /*#__PURE__*/ _jsx(TextField, {
29
+ label: t('authentication:emailOrUsername'),
30
+ name: "username",
31
+ path: "username",
32
+ required: required,
33
+ validate: (value, options)=>{
34
+ const passesUsername = username(value, options);
35
+ const passesEmail = email(value, options);
36
+ if (!passesEmail && !passesUsername) {
37
+ return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`;
38
+ }
39
+ return true;
40
+ }
41
+ });
42
+ }
43
+ return null;
44
+ };
45
+
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/views/Login/LoginField/index.tsx"],"sourcesContent":["'use client'\nimport type { Validate, ValidateOptions } from 'payload'\n\nimport { EmailField, TextField, useTranslation } from '@payloadcms/ui'\nimport { email, username } from 'payload/shared'\nimport React from 'react'\nexport type LoginFieldProps = {\n required?: boolean\n type: 'email' | 'emailOrUsername' | 'username'\n validate?: Validate\n}\nexport const LoginField: React.FC<LoginFieldProps> = ({ type, required = true }) => {\n const { t } = useTranslation()\n\n if (type === 'email') {\n return (\n <EmailField\n autoComplete=\"email\"\n label={t('general:email')}\n name=\"email\"\n path=\"email\"\n required={required}\n validate={email}\n />\n )\n }\n\n if (type === 'username') {\n return (\n <TextField\n label={t('authentication:username')}\n name=\"username\"\n path=\"username\"\n required={required}\n validate={username}\n />\n )\n }\n\n if (type === 'emailOrUsername') {\n return (\n <TextField\n label={t('authentication:emailOrUsername')}\n name=\"username\"\n path=\"username\"\n required={required}\n validate={(value, options) => {\n const passesUsername = username(\n value,\n options as ValidateOptions<any, { email?: string }, any, string>,\n )\n const passesEmail = email(\n value,\n options as ValidateOptions<any, { username?: string }, any, string>,\n )\n\n if (!passesEmail && !passesUsername) {\n return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`\n }\n\n return true\n }}\n />\n )\n }\n\n return null\n}\n"],"names":["EmailField","TextField","useTranslation","email","username","React","LoginField","type","required","t","autoComplete","label","name","path","validate","value","options","passesUsername","passesEmail"],"mappings":"AAAA;;AAGA,SAASA,UAAU,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACtE,SAASC,KAAK,EAAEC,QAAQ,QAAQ,iBAAgB;AAChD,OAAOC,WAAW,QAAO;AAMzB,OAAO,MAAMC,aAAwC,CAAC,EAAEC,IAAI,EAAEC,WAAW,IAAI,EAAE;IAC7E,MAAM,EAAEC,CAAC,EAAE,GAAGP;IAEd,IAAIK,SAAS,SAAS;QACpB,qBACE,KAACP;YACCU,cAAa;YACbC,OAAOF,EAAE;YACTG,MAAK;YACLC,MAAK;YACLL,UAAUA;YACVM,UAAUX;;IAGhB;IAEA,IAAII,SAAS,YAAY;QACvB,qBACE,KAACN;YACCU,OAAOF,EAAE;YACTG,MAAK;YACLC,MAAK;YACLL,UAAUA;YACVM,UAAUV;;IAGhB;IAEA,IAAIG,SAAS,mBAAmB;QAC9B,qBACE,KAACN;YACCU,OAAOF,EAAE;YACTG,MAAK;YACLC,MAAK;YACLL,UAAUA;YACVM,UAAU,CAACC,OAAOC;gBAChB,MAAMC,iBAAiBb,SACrBW,OACAC;gBAEF,MAAME,cAAcf,MAClBY,OACAC;gBAGF,IAAI,CAACE,eAAe,CAACD,gBAAgB;oBACnC,OAAO,CAAC,EAAER,EAAE,iBAAiB,EAAE,EAAES,YAAY,CAAC,EAAET,EAAE,oBAAoB,EAAE,EAAEQ,eAAe,CAAC;gBAC5F;gBAEA,OAAO;YACT;;IAGN;IAEA,OAAO;AACT,EAAC"}
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
3
  export declare const LoginForm: React.FC<{
4
+ prefillEmail?: string;
5
+ prefillPassword?: string;
6
+ prefillUsername?: string;
4
7
  searchParams: {
5
8
  [key: string]: string | string[] | undefined;
6
9
  };
@@ -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;AAkBzB,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,CAwHA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAyEA,CAAA"}
@@ -4,115 +4,74 @@ import LinkImport from 'next/link.js';
4
4
  import React from 'react';
5
5
  const baseClass = 'login__form';
6
6
  const Link = LinkImport.default || LinkImport;
7
- import { EmailField, Form, FormSubmit, PasswordField, TextField, useConfig, useTranslation } from '@payloadcms/ui';
8
- import { email, password, text } from 'payload/shared';
9
- export const LoginForm = ({ searchParams })=>{
7
+ import { Form, FormSubmit, PasswordField, useConfig, useTranslation } from '@payloadcms/ui';
8
+ import { formatAdminURL } from '@payloadcms/ui/shared';
9
+ import { LoginField } from '../LoginField/index.js';
10
+ export const LoginForm = ({ prefillEmail, prefillPassword, prefillUsername, searchParams })=>{
10
11
  const config = useConfig();
11
- const { admin: { autoLogin, routes: { forgot: forgotRoute }, user: userSlug }, routes: { admin, api } } = config;
12
+ const { admin: { routes: { forgot: forgotRoute }, user: userSlug }, routes: { admin: adminRoute, api: apiRoute } } = config;
12
13
  const collectionConfig = config.collections?.find((collection)=>collection?.slug === userSlug);
13
- const loginWithUsername = collectionConfig?.auth?.loginWithUsername;
14
+ const { auth: authOptions } = collectionConfig;
15
+ const loginWithUsername = authOptions.loginWithUsername;
16
+ const canLoginWithEmail = !authOptions.loginWithUsername || authOptions.loginWithUsername.allowEmailLogin;
17
+ const canLoginWithUsername = authOptions.loginWithUsername;
18
+ const [loginType] = React.useState(()=>{
19
+ if (canLoginWithEmail && canLoginWithUsername) return 'emailOrUsername';
20
+ if (canLoginWithUsername) return 'username';
21
+ return 'email';
22
+ });
14
23
  const { t } = useTranslation();
15
- const prefillForm = autoLogin && autoLogin.prefillOnly;
16
24
  const initialState = {
17
25
  password: {
18
- initialValue: prefillForm ? autoLogin.password : undefined,
26
+ initialValue: prefillPassword ?? undefined,
19
27
  valid: true,
20
- value: prefillForm ? autoLogin.password : undefined
28
+ value: prefillPassword ?? undefined
21
29
  }
22
30
  };
23
31
  if (loginWithUsername) {
24
32
  initialState.username = {
25
- initialValue: prefillForm ? autoLogin.username : undefined,
33
+ initialValue: prefillUsername ?? undefined,
26
34
  valid: true,
27
- value: prefillForm ? autoLogin.username : undefined
35
+ value: prefillUsername ?? undefined
28
36
  };
29
37
  } else {
30
38
  initialState.email = {
31
- initialValue: prefillForm ? autoLogin.email : undefined,
39
+ initialValue: prefillEmail ?? undefined,
32
40
  valid: true,
33
- value: prefillForm ? autoLogin.email : undefined
41
+ value: prefillEmail ?? undefined
34
42
  };
35
43
  }
36
44
  return /*#__PURE__*/ _jsxs(Form, {
37
- action: `${api}/${userSlug}/login`,
45
+ action: `${apiRoute}/${userSlug}/login`,
38
46
  className: baseClass,
39
47
  disableSuccessStatus: true,
40
48
  initialState: initialState,
41
49
  method: "POST",
42
- redirect: typeof searchParams?.redirect === 'string' ? searchParams.redirect : admin,
50
+ redirect: typeof searchParams?.redirect === 'string' ? searchParams.redirect : adminRoute,
43
51
  waitForAutocomplete: true,
44
52
  children: [
45
53
  /*#__PURE__*/ _jsxs("div", {
46
54
  className: `${baseClass}__inputWrap`,
47
55
  children: [
48
- loginWithUsername ? /*#__PURE__*/ _jsx(TextField, {
49
- label: t('authentication:username'),
50
- name: "username",
51
- required: true,
52
- validate: (value)=>text(value, {
53
- name: 'username',
54
- type: 'text',
55
- data: {},
56
- preferences: {
57
- fields: {}
58
- },
59
- req: {
60
- payload: {
61
- config
62
- },
63
- t
64
- },
65
- required: true,
66
- siblingData: {}
67
- })
68
- }) : /*#__PURE__*/ _jsx(EmailField, {
69
- autoComplete: "email",
70
- label: t('general:email'),
71
- name: "email",
72
- required: true,
73
- validate: (value)=>email(value, {
74
- name: 'email',
75
- type: 'email',
76
- data: {},
77
- preferences: {
78
- fields: {}
79
- },
80
- req: {
81
- t
82
- },
83
- required: true,
84
- siblingData: {}
85
- })
56
+ /*#__PURE__*/ _jsx(LoginField, {
57
+ type: loginType
86
58
  }),
87
59
  /*#__PURE__*/ _jsx(PasswordField, {
88
- autoComplete: "off",
89
60
  label: t('general:password'),
90
61
  name: "password",
91
- required: true,
92
- validate: (value)=>password(value, {
93
- name: 'password',
94
- type: 'text',
95
- data: {},
96
- preferences: {
97
- fields: {}
98
- },
99
- req: {
100
- payload: {
101
- config
102
- },
103
- t
104
- },
105
- required: true,
106
- siblingData: {}
107
- })
62
+ required: true
108
63
  })
109
64
  ]
110
65
  }),
111
66
  /*#__PURE__*/ _jsx(Link, {
112
- href: `${admin}${forgotRoute}`,
67
+ href: formatAdminURL({
68
+ adminRoute,
69
+ path: forgotRoute
70
+ }),
113
71
  children: t('authentication:forgotPasswordQuestion')
114
72
  }),
115
73
  /*#__PURE__*/ _jsx(FormSubmit, {
74
+ size: "large",
116
75
  children: t('authentication:login')
117
76
  })
118
77
  ]
@@ -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, PayloadRequest } from 'payload'\n\nimport {\n EmailField,\n Form,\n FormSubmit,\n PasswordField,\n TextField,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { email, password, text } from 'payload/shared'\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: {\n autoLogin,\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin, api },\n } = config\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const loginWithUsername = collectionConfig?.auth?.loginWithUsername\n\n const { t } = useTranslation()\n\n const prefillForm = autoLogin && autoLogin.prefillOnly\n\n const initialState: FormState = {\n password: {\n initialValue: prefillForm ? autoLogin.password : undefined,\n valid: true,\n value: prefillForm ? autoLogin.password : undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillForm ? autoLogin.username : undefined,\n valid: true,\n value: prefillForm ? autoLogin.username : undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillForm ? autoLogin.email : undefined,\n valid: true,\n value: prefillForm ? autoLogin.email : 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 <div className={`${baseClass}__inputWrap`}>\n {loginWithUsername ? (\n <TextField\n label={t('authentication:username')}\n name=\"username\"\n required\n validate={(value) =>\n text(value, {\n name: 'username',\n type: 'text',\n data: {},\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as PayloadRequest,\n required: true,\n siblingData: {},\n })\n }\n />\n ) : (\n <EmailField\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 PayloadRequest,\n required: true,\n siblingData: {},\n })\n }\n />\n )}\n <PasswordField\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 PayloadRequest,\n required: true,\n siblingData: {},\n })\n }\n />\n </div>\n <Link href={`${admin}${forgotRoute}`}>{t('authentication:forgotPasswordQuestion')}</Link>\n <FormSubmit>{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["LinkImport","React","baseClass","Link","default","EmailField","Form","FormSubmit","PasswordField","TextField","useConfig","useTranslation","email","password","text","LoginForm","searchParams","config","admin","autoLogin","routes","forgot","forgotRoute","user","userSlug","api","collectionConfig","collections","find","collection","slug","loginWithUsername","auth","t","prefillForm","prefillOnly","initialState","initialValue","undefined","valid","value","username","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","div","label","name","required","validate","type","data","preferences","fields","req","payload","siblingData","autoComplete","href"],"mappings":"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"}
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'\n\nimport { Form, FormSubmit, PasswordField, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const config = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const canLoginWithEmail =\n !authOptions.loginWithUsername || authOptions.loginWithUsername.allowEmailLogin\n const canLoginWithUsername = authOptions.loginWithUsername\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) return 'emailOrUsername'\n if (canLoginWithUsername) return 'username'\n return 'email'\n })\n\n const { t } = useTranslation()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : adminRoute}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField label={t('general:password')} name=\"password\" required />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["LinkImport","React","baseClass","Link","default","Form","FormSubmit","PasswordField","useConfig","useTranslation","formatAdminURL","LoginField","LoginForm","prefillEmail","prefillPassword","prefillUsername","searchParams","config","admin","routes","forgot","forgotRoute","user","userSlug","adminRoute","api","apiRoute","collectionConfig","collections","find","collection","slug","auth","authOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","loginType","useState","t","initialState","password","initialValue","undefined","valid","value","username","email","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","div","type","label","name","required","href","path","size"],"mappings":"AAAA;;AAEA,OAAOA,gBAAgB,eAAc;AACrC,OAAOC,WAAW,QAAO;AAEzB,MAAMC,YAAY;AAClB,MAAMC,OAAQH,WAAWI,OAAO,IAAIJ;AAIpC,SAASK,IAAI,EAAEC,UAAU,EAAEC,aAAa,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AAC3F,SAASC,cAAc,QAAQ,wBAAuB;AAItD,SAASC,UAAU,QAAQ,yBAAwB;AAGnD,OAAO,MAAMC,YAKR,CAAC,EAAEC,YAAY,EAAEC,eAAe,EAAEC,eAAe,EAAEC,YAAY,EAAE;IACpE,MAAMC,SAAST;IAEf,MAAM,EACJU,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAC/BC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC7C,GAAGT;IAEJ,MAAMU,mBAAmBV,OAAOW,WAAW,EAAEC,KAAK,CAACC,aAAeA,YAAYC,SAASR;IACvF,MAAM,EAAES,MAAMC,WAAW,EAAE,GAAGN;IAC9B,MAAMO,oBAAoBD,YAAYC,iBAAiB;IACvD,MAAMC,oBACJ,CAACF,YAAYC,iBAAiB,IAAID,YAAYC,iBAAiB,CAACE,eAAe;IACjF,MAAMC,uBAAuBJ,YAAYC,iBAAiB;IAE1D,MAAM,CAACI,UAAU,GAAGrC,MAAMsC,QAAQ,CAA0B;QAC1D,IAAIJ,qBAAqBE,sBAAsB,OAAO;QACtD,IAAIA,sBAAsB,OAAO;QACjC,OAAO;IACT;IAEA,MAAM,EAAEG,CAAC,EAAE,GAAG/B;IAEd,MAAMgC,eAA0B;QAC9BC,UAAU;YACRC,cAAc7B,mBAAmB8B;YACjCC,OAAO;YACPC,OAAOhC,mBAAmB8B;QAC5B;IACF;IAEA,IAAIV,mBAAmB;QACrBO,aAAaM,QAAQ,GAAG;YACtBJ,cAAc5B,mBAAmB6B;YACjCC,OAAO;YACPC,OAAO/B,mBAAmB6B;QAC5B;IACF,OAAO;QACLH,aAAaO,KAAK,GAAG;YACnBL,cAAc9B,gBAAgB+B;YAC9BC,OAAO;YACPC,OAAOjC,gBAAgB+B;QACzB;IACF;IAEA,qBACE,MAACvC;QACC4C,QAAQ,CAAC,EAAEvB,SAAS,CAAC,EAAEH,SAAS,MAAM,CAAC;QACvC2B,WAAWhD;QACXiD,oBAAoB;QACpBV,cAAcA;QACdW,QAAO;QACPC,UAAU,OAAOrC,cAAcqC,aAAa,WAAWrC,aAAaqC,QAAQ,GAAG7B;QAC/E8B,mBAAmB;;0BAEnB,MAACC;gBAAIL,WAAW,CAAC,EAAEhD,UAAU,WAAW,CAAC;;kCACvC,KAACS;wBAAW6C,MAAMlB;;kCAClB,KAAC/B;wBAAckD,OAAOjB,EAAE;wBAAqBkB,MAAK;wBAAWC,QAAQ;;;;0BAEvE,KAACxD;gBACCyD,MAAMlD,eAAe;oBACnBc;oBACAqC,MAAMxC;gBACR;0BAECmB,EAAE;;0BAEL,KAAClC;gBAAWwD,MAAK;0BAAStB,EAAE;;;;AAGlC,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,SAAS,CAAA;AAI7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,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,CA4E9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Login/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,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,CAqG9C,CAAA"}
@@ -38,6 +38,10 @@ export const LoginView = ({ initPageResult, params, searchParams })=>{
38
38
  redirect(admin);
39
39
  }
40
40
  const collectionConfig = collections.find(({ slug })=>slug === userSlug);
41
+ const prefillAutoLogin = typeof config.admin?.autoLogin === 'object' && config.admin?.autoLogin.prefillOnly;
42
+ const prefillUsername = prefillAutoLogin && typeof config.admin?.autoLogin === 'object' ? config.admin?.autoLogin.username : undefined;
43
+ const prefillEmail = prefillAutoLogin && typeof config.admin?.autoLogin === 'object' ? config.admin?.autoLogin.email : undefined;
44
+ const prefillPassword = prefillAutoLogin && typeof config.admin?.autoLogin === 'object' ? config.admin?.autoLogin.password : undefined;
41
45
  return /*#__PURE__*/ _jsxs(Fragment, {
42
46
  children: [
43
47
  /*#__PURE__*/ _jsx("div", {
@@ -54,6 +58,9 @@ export const LoginView = ({ initPageResult, params, searchParams })=>{
54
58
  }),
55
59
  Array.isArray(BeforeLogins) && BeforeLogins.map((Component)=>Component),
56
60
  !collectionConfig?.auth?.disableLocalStrategy && /*#__PURE__*/ _jsx(LoginForm, {
61
+ prefillEmail: prefillEmail,
62
+ prefillPassword: prefillPassword,
63
+ prefillUsername: prefillUsername,
57
64
  searchParams: searchParams
58
65
  }),
59
66
  Array.isArray(AfterLogins) && AfterLogins.map((Component)=>Component)