@payloadcms/next 3.24.0-canary.72057b1 → 3.24.0-canary.80e034e

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 (189) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -2
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +2 -2
  5. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/index.js +2 -0
  9. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  10. package/dist/elements/DocumentHeader/index.scss +0 -2
  11. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  12. package/dist/elements/Nav/index.client.js +1 -3
  13. package/dist/elements/Nav/index.client.js.map +1 -1
  14. package/dist/elements/Nav/index.d.ts.map +1 -1
  15. package/dist/elements/Nav/index.js.map +1 -1
  16. package/dist/layouts/Root/index.d.ts.map +1 -1
  17. package/dist/layouts/Root/index.js +4 -4
  18. package/dist/layouts/Root/index.js.map +1 -1
  19. package/dist/prod/styles.css +1 -1
  20. package/dist/views/API/index.client.d.ts.map +1 -1
  21. package/dist/views/API/index.client.js +1 -2
  22. package/dist/views/API/index.client.js.map +1 -1
  23. package/dist/views/API/index.d.ts +3 -2
  24. package/dist/views/API/index.d.ts.map +1 -1
  25. package/dist/views/API/index.js +2 -2
  26. package/dist/views/API/index.js.map +1 -1
  27. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  28. package/dist/views/Account/ResetPreferences/index.js +83 -56
  29. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  30. package/dist/views/Account/index.d.ts +2 -2
  31. package/dist/views/Account/index.d.ts.map +1 -1
  32. package/dist/views/Account/index.js +4 -3
  33. package/dist/views/Account/index.js.map +1 -1
  34. package/dist/views/CreateFirstUser/index.d.ts +2 -2
  35. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  36. package/dist/views/CreateFirstUser/index.js +3 -3
  37. package/dist/views/CreateFirstUser/index.js.map +1 -1
  38. package/dist/views/Dashboard/Default/index.d.ts +13 -6
  39. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  40. package/dist/views/Dashboard/Default/index.js +2 -5
  41. package/dist/views/Dashboard/Default/index.js.map +1 -1
  42. package/dist/views/Dashboard/index.d.ts +2 -2
  43. package/dist/views/Dashboard/index.d.ts.map +1 -1
  44. package/dist/views/Dashboard/index.js +3 -7
  45. package/dist/views/Dashboard/index.js.map +1 -1
  46. package/dist/views/Document/getVersions.d.ts +1 -1
  47. package/dist/views/Document/getVersions.d.ts.map +1 -1
  48. package/dist/views/Document/getVersions.js +9 -8
  49. package/dist/views/Document/getVersions.js.map +1 -1
  50. package/dist/views/Document/getViewsFromConfig.d.ts +4 -4
  51. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  52. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  53. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  54. package/dist/views/Document/handleServerFunction.js +2 -0
  55. package/dist/views/Document/handleServerFunction.js.map +1 -1
  56. package/dist/views/Document/index.d.ts +4 -3
  57. package/dist/views/Document/index.d.ts.map +1 -1
  58. package/dist/views/Document/index.js +7 -7
  59. package/dist/views/Document/index.js.map +1 -1
  60. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  61. package/dist/views/Document/renderDocumentSlots.js +6 -5
  62. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  63. package/dist/views/Edit/index.d.ts +2 -2
  64. package/dist/views/Edit/index.js.map +1 -1
  65. package/dist/views/ForgotPassword/index.d.ts +2 -2
  66. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  67. package/dist/views/ForgotPassword/index.js +4 -7
  68. package/dist/views/ForgotPassword/index.js.map +1 -1
  69. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  70. package/dist/views/List/handleServerFunction.js +2 -0
  71. package/dist/views/List/handleServerFunction.js.map +1 -1
  72. package/dist/views/List/index.d.ts +6 -5
  73. package/dist/views/List/index.d.ts.map +1 -1
  74. package/dist/views/List/index.js +30 -30
  75. package/dist/views/List/index.js.map +1 -1
  76. package/dist/views/List/renderListViewSlots.d.ts +3 -4
  77. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  78. package/dist/views/List/renderListViewSlots.js +20 -11
  79. package/dist/views/List/renderListViewSlots.js.map +1 -1
  80. package/dist/views/LivePreview/Context/index.d.ts.map +1 -1
  81. package/dist/views/LivePreview/Context/index.js +5 -1
  82. package/dist/views/LivePreview/Context/index.js.map +1 -1
  83. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  84. package/dist/views/LivePreview/index.client.js +6 -3
  85. package/dist/views/LivePreview/index.client.js.map +1 -1
  86. package/dist/views/LivePreview/index.d.ts +3 -2
  87. package/dist/views/LivePreview/index.d.ts.map +1 -1
  88. package/dist/views/LivePreview/index.js +2 -2
  89. package/dist/views/LivePreview/index.js.map +1 -1
  90. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  91. package/dist/views/Login/LoginForm/index.js +1 -3
  92. package/dist/views/Login/LoginForm/index.js.map +1 -1
  93. package/dist/views/Login/index.d.ts +2 -2
  94. package/dist/views/Login/index.d.ts.map +1 -1
  95. package/dist/views/Login/index.js +3 -4
  96. package/dist/views/Login/index.js.map +1 -1
  97. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  98. package/dist/views/Logout/LogoutClient.js +32 -30
  99. package/dist/views/Logout/LogoutClient.js.map +1 -1
  100. package/dist/views/Logout/index.d.ts +3 -3
  101. package/dist/views/Logout/index.d.ts.map +1 -1
  102. package/dist/views/Logout/index.js +2 -2
  103. package/dist/views/Logout/index.js.map +1 -1
  104. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  105. package/dist/views/NotFound/index.client.js +0 -3
  106. package/dist/views/NotFound/index.client.js.map +1 -1
  107. package/dist/views/NotFound/index.d.ts +2 -2
  108. package/dist/views/NotFound/index.d.ts.map +1 -1
  109. package/dist/views/NotFound/index.js +2 -2
  110. package/dist/views/NotFound/index.js.map +1 -1
  111. package/dist/views/ResetPassword/index.d.ts +2 -2
  112. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  113. package/dist/views/ResetPassword/index.js +4 -7
  114. package/dist/views/ResetPassword/index.js.map +1 -1
  115. package/dist/views/Root/getViewFromConfig.d.ts +3 -3
  116. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  117. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  118. package/dist/views/Root/index.d.ts.map +1 -1
  119. package/dist/views/Root/index.js.map +1 -1
  120. package/dist/views/Unauthorized/index.d.ts +3 -2
  121. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  122. package/dist/views/Unauthorized/index.js +3 -6
  123. package/dist/views/Unauthorized/index.js.map +1 -1
  124. package/dist/views/Verify/index.client.d.ts.map +1 -1
  125. package/dist/views/Verify/index.client.js +13 -9
  126. package/dist/views/Verify/index.client.js.map +1 -1
  127. package/dist/views/Verify/index.d.ts +2 -2
  128. package/dist/views/Verify/index.d.ts.map +1 -1
  129. package/dist/views/Verify/index.js +4 -4
  130. package/dist/views/Verify/index.js.map +1 -1
  131. package/dist/views/Version/Default/index.d.ts.map +1 -1
  132. package/dist/views/Version/Default/index.js +9 -5
  133. package/dist/views/Version/Default/index.js.map +1 -1
  134. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +2 -0
  135. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  136. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +126 -59
  137. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  138. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +2 -1
  139. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  140. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +18 -4
  141. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  142. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  143. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +12 -8
  144. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  145. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  146. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +12 -8
  147. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  148. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  149. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +20 -11
  150. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  151. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  152. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +30 -21
  153. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  154. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +13 -9
  155. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  156. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +7 -3
  157. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  158. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +36 -3
  159. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  160. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +3 -2
  161. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  162. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +7 -6
  163. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  164. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  165. package/dist/views/Version/Restore/index.js +12 -32
  166. package/dist/views/Version/Restore/index.js.map +1 -1
  167. package/dist/views/Version/index.d.ts +3 -2
  168. package/dist/views/Version/index.d.ts.map +1 -1
  169. package/dist/views/Version/index.js +3 -2
  170. package/dist/views/Version/index.js.map +1 -1
  171. package/dist/views/Versions/buildColumns.d.ts +1 -2
  172. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  173. package/dist/views/Versions/buildColumns.js.map +1 -1
  174. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  175. package/dist/views/Versions/cells/CreatedAt/index.js +1 -3
  176. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  177. package/dist/views/Versions/index.client.d.ts +1 -2
  178. package/dist/views/Versions/index.client.d.ts.map +1 -1
  179. package/dist/views/Versions/index.client.js.map +1 -1
  180. package/dist/views/Versions/index.d.ts +3 -2
  181. package/dist/views/Versions/index.d.ts.map +1 -1
  182. package/dist/views/Versions/index.js +2 -2
  183. package/dist/views/Versions/index.js.map +1 -1
  184. package/package.json +7 -8
  185. package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.d.ts +0 -6
  186. package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.d.ts.map +0 -1
  187. package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.js +0 -83
  188. package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.js.map +0 -1
  189. package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.scss +0 -40
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","Link","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, SanitizedPermissions, ServerProps, VisibleEntities } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, formatAdminURL } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardProps = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n Link: React.ComponentType<any>\n navGroups?: ReturnType<typeof groupNavItems>\n permissions: SanitizedPermissions\n visibleEntities: VisibleEntities\n} & ServerProps\n\nexport const DefaultDashboard: React.FC<DashboardProps> = (props) => {\n const {\n globalData,\n i18n,\n i18n: { t },\n Link,\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })}\n\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n Link={Link}\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n Link={Link}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })}\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","_jsx","className","_jsxs","Component","importMap","serverProps","length","map","entities","label","groupIndex","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","actions","id","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { ClientUser, Locale, ServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, formatAdminURL } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n navGroups?: ReturnType<typeof groupNavItems>\n} & ServerProps\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const {\n globalData,\n i18n,\n i18n: { t },\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n </Gutter>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import type { AdminViewProps } from 'payload';
1
+ import type { AdminViewServerProps } from 'payload';
2
2
  import React from 'react';
3
3
  export { generateDashboardMetadata } from './meta.js';
4
- export declare const Dashboard: React.FC<AdminViewProps>;
4
+ export declare function Dashboard({ initPageResult, params, searchParams }: AdminViewServerProps): Promise<React.JSX.Element>;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuH9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAErD,wBAAsB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,oBAAoB,8BAiH7F"}
@@ -2,16 +2,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui';
3
3
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
4
  import { EntityType, groupNavItems } from '@payloadcms/ui/shared';
5
- import LinkImport from 'next/link.js';
6
5
  import React, { Fragment } from 'react';
7
6
  import { DefaultDashboard } from './Default/index.js';
8
7
  export { generateDashboardMetadata } from './meta.js';
9
- const Link = LinkImport.default || LinkImport;
10
- export const Dashboard = async ({
8
+ export async function Dashboard({
11
9
  initPageResult,
12
10
  params,
13
11
  searchParams
14
- }) => {
12
+ }) {
15
13
  const {
16
14
  locale,
17
15
  permissions,
@@ -79,7 +77,6 @@ export const Dashboard = async ({
79
77
  nav: []
80
78
  }), RenderServerComponent({
81
79
  clientProps: {
82
- Link,
83
80
  locale
84
81
  },
85
82
  Component: config.admin?.components?.views?.dashboard?.Component,
@@ -88,7 +85,6 @@ export const Dashboard = async ({
88
85
  serverProps: {
89
86
  globalData,
90
87
  i18n,
91
- Link,
92
88
  locale,
93
89
  navGroups,
94
90
  params,
@@ -100,5 +96,5 @@ export const Dashboard = async ({
100
96
  }
101
97
  })]
102
98
  });
103
- };
99
+ }
104
100
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","LinkImport","React","Fragment","DefaultDashboard","generateDashboardMetadata","Link","default","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","collections","filter","collection","slug","read","includes","globals","global","globalData","length","lockedDocuments","find","depth","overrideAccess","pagination","where","globalSlug","exists","map","lockDurationDefault","lockDuration","lockDocuments","duration","lockedDoc","docs","doc","data","_isLocked","_lastEditedAt","updatedAt","_userEditing","value","navGroups","entityToGroup","type","entity","_jsxs","_jsx","nav","clientProps","Component","admin","components","views","dashboard","Fallback","importMap","serverProps"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewProps } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, groupNavItems } from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React, { Fragment } from 'react'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const Dashboard: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = initPageResult\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDurationDefault = 300\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : lockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: lockedDoc?.updatedAt ?? null,\n _userEditing: lockedDoc?.user?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n {RenderServerComponent({\n clientProps: {\n Link,\n locale,\n },\n Component: config.admin?.components?.views?.dashboard?.Component,\n Fallback: DefaultDashboard,\n importMap: payload.importMap,\n serverProps: {\n globalData,\n i18n,\n Link,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n },\n })}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","React","Fragment","DefaultDashboard","generateDashboardMetadata","Dashboard","initPageResult","params","searchParams","locale","permissions","req","i18n","payload","config","user","visibleEntities","collections","filter","collection","slug","read","includes","globals","global","globalData","length","lockedDocuments","find","depth","overrideAccess","pagination","where","globalSlug","exists","map","lockDurationDefault","lockDuration","lockDocuments","duration","lockedDoc","docs","doc","data","_isLocked","_lastEditedAt","updatedAt","_userEditing","value","navGroups","entityToGroup","type","entity","_jsxs","_jsx","nav","clientProps","Component","admin","components","views","dashboard","Fallback","importMap","serverProps"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewServerProps } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, groupNavItems } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DashboardViewClientProps, DashboardViewServerPropsOnly } from './Default/index.js'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport { generateDashboardMetadata } from './meta.js'\n\nexport async function Dashboard({ initPageResult, params, searchParams }: AdminViewServerProps) {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = initPageResult\n\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDurationDefault = 300\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : lockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: lockedDoc?.updatedAt ?? null,\n _userEditing: lockedDoc?.user?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n {RenderServerComponent({\n clientProps: {\n locale,\n } satisfies DashboardViewClientProps,\n Component: config.admin?.components?.views?.dashboard?.Component,\n Fallback: DefaultDashboard,\n importMap: payload.importMap,\n serverProps: {\n globalData,\n i18n,\n locale,\n navGroups,\n params,\n payload,\n permissions,\n searchParams,\n user,\n visibleEntities,\n } satisfies DashboardViewServerPropsOnly,\n })}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { Payload, SanitizedCollectionConfig, SanitizedDocumentPermissions, SanitizedGlobalConfig, TypedUser } from 'payload';
1
+ import { type Payload, type SanitizedCollectionConfig, type SanitizedDocumentPermissions, type SanitizedGlobalConfig, type TypedUser } from 'payload';
2
2
  type Args = {
3
3
  collectionConfig?: SanitizedCollectionConfig;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAIhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,cAAc,EAAE,4BAA4B,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,4BAA4B,EAAE,OAAO,CAAA;IACrC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAKF,eAAO,MAAM,WAAW,+FASrB,IAAI,KAAG,MAqOT,CAAA"}
1
+ {"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACf,MAAM,SAAS,CAAA;AAEhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,cAAc,EAAE,4BAA4B,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,4BAA4B,EAAE,OAAO,CAAA;IACrC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAKF,eAAO,MAAM,WAAW,+FASrB,IAAI,KAAG,MAiPT,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { sanitizeID } from '@payloadcms/ui/shared';
2
+ import { combineQueries, extractAccessFromPermission } from 'payload';
2
3
  // TODO: in the future, we can parallelize some of these queries
3
4
  // this will speed up the API by ~30-100ms or so
4
5
  // Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.
@@ -85,13 +86,13 @@ export const getVersions = async ({
85
86
  autosave: true
86
87
  },
87
88
  user,
88
- where: {
89
+ where: combineQueries({
89
90
  and: [{
90
91
  parent: {
91
92
  equals: id
92
93
  }
93
94
  }]
94
- }
95
+ }, extractAccessFromPermission(docPermissions.readVersions))
95
96
  });
96
97
  if (mostRecentVersion.docs[0] && 'autosave' in mostRecentVersion.docs[0] && mostRecentVersion.docs[0].autosave) {
97
98
  mostRecentVersionIsAutosaved = true;
@@ -103,7 +104,7 @@ export const getVersions = async ({
103
104
  } = await payload.countVersions({
104
105
  collection: collectionConfig.slug,
105
106
  user,
106
- where: {
107
+ where: combineQueries({
107
108
  and: [{
108
109
  parent: {
109
110
  equals: id
@@ -117,7 +118,7 @@ export const getVersions = async ({
117
118
  greater_than: publishedDoc.updatedAt
118
119
  }
119
120
  }]
120
- }
121
+ }, extractAccessFromPermission(docPermissions.readVersions))
121
122
  }));
122
123
  }
123
124
  }
@@ -127,13 +128,13 @@ export const getVersions = async ({
127
128
  collection: collectionConfig.slug,
128
129
  depth: 0,
129
130
  user,
130
- where: {
131
+ where: combineQueries({
131
132
  and: [{
132
133
  parent: {
133
134
  equals: id
134
135
  }
135
136
  }]
136
- }
137
+ }, extractAccessFromPermission(docPermissions.readVersions))
137
138
  }));
138
139
  }
139
140
  if (globalConfig) {
@@ -175,7 +176,7 @@ export const getVersions = async ({
175
176
  depth: 0,
176
177
  global: globalConfig.slug,
177
178
  user,
178
- where: {
179
+ where: combineQueries({
179
180
  and: [{
180
181
  'version._status': {
181
182
  equals: 'draft'
@@ -185,7 +186,7 @@ export const getVersions = async ({
185
186
  greater_than: publishedDoc.updatedAt
186
187
  }
187
188
  }]
188
- }
189
+ }, extractAccessFromPermission(docPermissions.readVersions))
189
190
  }));
190
191
  }
191
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getVersions.js","names":["sanitizeID","getVersions","id","idArg","collectionConfig","doc","docPermissions","globalConfig","locale","payload","user","publishedDoc","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","drafts","_status","find","collection","slug","depth","limit","undefined","pagination","select","updatedAt","where","and","or","equals","exists","docs","autosave","mostRecentVersion","findVersions","parent","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\n\nimport { sanitizeID } from '@payloadcms/ui/shared'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n /**\n * Optional - performance optimization.\n * If a document has been fetched before fetching versions, pass it here.\n * If this document is set to published, we can skip the query to find out if a published document exists,\n * as the passed in document is proof of its existence.\n */\n doc?: Record<string, any>\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: TypedUser\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\n// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedDoc\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n const hasPublishedDoc = Boolean((collectionConfig && id) || globalConfig)\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (versionsConfig?.drafts) {\n // Find out if a published document exists\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = (\n await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale: locale || undefined,\n pagination: false,\n select: {\n updatedAt: true,\n },\n user,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n )?.docs?.[0]\n }\n\n if (publishedDoc) {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n depth: 0,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n }))\n }\n\n if (globalConfig) {\n // Find out if a published document exists\n if (versionsConfig?.drafts) {\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n select: {\n updatedAt: true,\n },\n user,\n })\n }\n\n if (publishedDoc?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getVersions.js","names":["sanitizeID","combineQueries","extractAccessFromPermission","getVersions","id","idArg","collectionConfig","doc","docPermissions","globalConfig","locale","payload","user","publishedDoc","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","drafts","_status","find","collection","slug","depth","limit","undefined","pagination","select","updatedAt","where","and","or","equals","exists","docs","autosave","mostRecentVersion","findVersions","parent","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import { sanitizeID } from '@payloadcms/ui/shared'\nimport {\n combineQueries,\n extractAccessFromPermission,\n type Payload,\n type SanitizedCollectionConfig,\n type SanitizedDocumentPermissions,\n type SanitizedGlobalConfig,\n type TypedUser,\n} from 'payload'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n /**\n * Optional - performance optimization.\n * If a document has been fetched before fetching versions, pass it here.\n * If this document is set to published, we can skip the query to find out if a published document exists,\n * as the passed in document is proof of its existence.\n */\n doc?: Record<string, any>\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: TypedUser\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\n// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedDoc\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n const hasPublishedDoc = Boolean((collectionConfig && id) || globalConfig)\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (versionsConfig?.drafts) {\n // Find out if a published document exists\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = (\n await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale: locale || undefined,\n pagination: false,\n select: {\n updatedAt: true,\n },\n user,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n )?.docs?.[0]\n }\n\n if (publishedDoc) {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n depth: 0,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n\n if (globalConfig) {\n // Find out if a published document exists\n if (versionsConfig?.drafts) {\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n select: {\n updatedAt: true,\n },\n user,\n })\n }\n\n if (publishedDoc?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: combineQueries(\n {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { AdminViewProps, PayloadComponent, SanitizedCollectionConfig, SanitizedCollectionPermission, SanitizedConfig, SanitizedGlobalConfig, SanitizedGlobalPermission, ServerSideEditViewProps } from 'payload';
1
+ import type { AdminViewServerProps, DocumentViewServerProps, PayloadComponent, SanitizedCollectionConfig, SanitizedCollectionPermission, SanitizedConfig, SanitizedGlobalConfig, SanitizedGlobalPermission } from 'payload';
2
2
  import type React from 'react';
3
3
  export type ViewFromConfig<TProps extends object> = {
4
4
  Component?: React.FC<TProps>;
@@ -16,12 +16,12 @@ export declare const getViewsFromConfig: ({ collectionConfig, config, docPermiss
16
16
  docPermissions?: never;
17
17
  overrideDocPermissions: true;
18
18
  })) => {
19
- CustomView: ViewFromConfig<ServerSideEditViewProps>;
20
- DefaultView: ViewFromConfig<ServerSideEditViewProps>;
19
+ CustomView: ViewFromConfig<DocumentViewServerProps>;
20
+ DefaultView: ViewFromConfig<DocumentViewServerProps>;
21
21
  /**
22
22
  * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null
23
23
  */
24
- ErrorView: ViewFromConfig<AdminViewProps>;
24
+ ErrorView: ViewFromConfig<AdminViewServerProps>;
25
25
  viewKey: string;
26
26
  } | null;
27
27
  //# sourceMappingURL=getViewsFromConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,6BAA6B,GAAG,yBAAyB,CAAA;IACzE,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAsXH,CAAA"}
1
+ {"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,6BAA6B,GAAG,yBAAyB,CAAA;IACzE,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAA;IAC/C,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAsXH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getViewsFromConfig.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","Error","length","create","ComponentConfig","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","hideAPIURL","readVersions","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read) {\n throw new Error('not-found')\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (!overrideDocPermissions && 'create' in docPermissions && docPermissions.create) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n } else {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read) {\n throw new Error('not-found')\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getViewsFromConfig.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","Error","length","create","ComponentConfig","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","hideAPIURL","readVersions","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n DocumentViewServerProps,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedConfig,\n SanitizedGlobalConfig,\n SanitizedGlobalPermission,\n} from 'payload'\nimport type React from 'react'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<DocumentViewServerProps>\n DefaultView: ViewFromConfig<DocumentViewServerProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewServerProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<DocumentViewServerProps> = null\n let CustomView: ViewFromConfig<DocumentViewServerProps> = null\n let ErrorView: ViewFromConfig<AdminViewServerProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read) {\n throw new Error('not-found')\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (!overrideDocPermissions && 'create' in docPermissions && docPermissions.create) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n } else {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read) {\n throw new Error('not-found')\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"mappings":"AAYA,SAASA,OAAA,IAAWC,cAAc,QAAQ;AAC1C,SAASC,QAAA,IAAYC,eAAe,QAAQ;AAC5C,SAASC,eAAA,IAAmBC,sBAAsB,QAAQ;AAC1D,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAA,IAAeC,kBAAkB,QAAQ;AAClD,SAASC,YAAA,IAAgBC,mBAAmB,QAAQ;AACpD,SAASC,kBAAkB,QAAQ;AACnC,SAASC,oBAAoB,QAAQ;AAOrC,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,gBAAgB;EAChBC,MAAM;EACNC,cAAc;EACdC,YAAY;EACZC,sBAAsB;EACtBC;AAAa,CAed;EASC;EACA,IAAIC,WAAA,GAAuD;EAC3D,IAAIC,UAAA,GAAsD;EAC1D,IAAIC,SAAA,GAAkD;EACtD,IAAIC,OAAA;EAEJ,MAAM;IACJC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGX,MAAA;EAEJ,MAAMY,KAAA,GACJb,gBAAC,IAAoBA,gBAAA,EAAkBW,KAAA,EAAOG,UAAA,EAAYD,KAAA,IACzDV,YAAA,IAAgBA,YAAA,EAAcQ,KAAA,EAAOG,UAAA,EAAYD,KAAA;EAEpD,MAAME,kBAAA,GACJf,gBAAC,IAAoBA,gBAAA,EAAkBW,KAAA,EAAOK,WAAA,IAC9Cf,MAAA,EAAQU,KAAA,EAAOK,WAAA,EAAaC,WAAA,EAAaC,QAAA,CAASlB,gBAAA,EAAkBmB,IAAA,KACnEhB,YAAA,IAAgBA,YAAA,EAAcQ,KAAA,EAAOK,WAAA,IACtCf,MAAA,EAAQU,KAAA,EAAOK,WAAA,EAAaI,OAAA,EAASF,QAAA,CAASf,YAAA,EAAcgB,IAAA;EAE9D,IAAInB,gBAAA,EAAkB;IACpB,MAAM,CAACqB,gBAAA,EAAkBC,cAAA,EAAgBC,QAAA,EAAUC,QAAA,EAAUC,QAAA,EAAU,GAAGC,iBAAA,CAAkB,GAC1FrB,aAAA;IAEF,IAAI,CAACD,sBAAA,IAA0B,CAACF,cAAA,EAAgByB,IAAA,EAAM;MACpD,MAAM,IAAIC,KAAA,CAAM;IAClB,OAAO;MACL;MACA,QAAQvB,aAAA,CAAcwB,MAAM;QAC1B,KAAK;UAAG;YACN,QAAQN,QAAA;cACN,KAAK;gBAAU;kBACb,IAAI,CAACnB,sBAAA,IAA0B,YAAYF,cAAA,IAAkBA,cAAA,CAAe4B,MAAM,EAAE;oBAClFvB,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;oBACAP,WAAA,GAAc;sBACZ0B,SAAA,EAAW3C;oBACb;kBACF,OAAO;oBACLmB,SAAA,GAAY;sBACVwB,SAAA,EAAWxC;oBACb;kBACF;kBACA;gBACF;cAEA;gBAAS;kBACP,MAAMyC,SAAA,GAAY,CAChBrB,UAAA,KAAe,OAAOA,UAAA,EACtB,eACAU,cAAA,EACAC,QAAA,CACD,CACEW,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWT,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEQ,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAM;oBAAEJ,SAAA,EAAWM,mBAAmB;oBAAE7B,OAAA,EAAS8B;kBAAa,CAAE,GAC9DzC,oBAAA,CAAqB;oBACnBmC,SAAA;oBACAI,YAAA;oBACAxB;kBACF;kBAEF,IAAI0B,aAAA,EAAe;oBACjB9B,OAAA,GAAU8B,aAAA;oBAEVhC,UAAA,GAAa;sBACXwB,eAAA,EAAiBO;oBACnB;kBACF,OAAO;oBACL/B,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;oBAEAP,WAAA,GAAc;sBACZ0B,SAAA,EAAW3C;oBACb;kBACF;kBAEA;gBACF;YACF;YACA;UACF;QAEA;QACA,KAAK;UAAG;YACN,QAAQmC,QAAA;cACN,KAAK;gBAAO;kBACV,IAAIxB,gBAAA,EAAkBW,KAAA,EAAO6B,UAAA,KAAe,MAAM;oBAChDjC,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;oBACAP,WAAA,GAAc;sBACZ0B,SAAA,EAAW7C;oBACb;kBACF;kBACA;gBACF;cAEA,KAAK;gBAAW;kBACd,IAAI4B,kBAAA,EAAoB;oBACtBT,WAAA,GAAc;sBACZ0B,SAAA,EAAWzC;oBACb;oBACAgB,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;kBACF;kBACA;gBACF;cAEA,KAAK;gBAAY;kBACf,IAAI,CAACT,sBAAA,IAA0BF,cAAA,EAAgBuC,YAAA,EAAc;oBAC3DlC,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;oBACAP,WAAA,GAAc;sBACZ0B,SAAA,EAAWpC;oBACb;kBACF,OAAO;oBACLY,SAAA,GAAY;sBACVwB,SAAA,EAAWxC;oBACb;kBACF;kBACA;gBACF;cAEA;gBAAS;kBACP,MAAMyC,SAAA,GAAY,CAChBrB,UAAA,KAAe,OAAOA,UAAA,EACtB,eACAU,cAAA,EACAC,QAAA,CACD,CACEW,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWT,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEQ,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;kBAER,MAAM;oBAAEJ,SAAA,EAAWM,mBAAmB;oBAAE7B,OAAA,EAAS8B;kBAAa,CAAE,GAC9DzC,oBAAA,CAAqB;oBACnBmC,SAAA;oBACAI,YAAA;oBACAxB;kBACF;kBAEF,IAAI0B,aAAA,EAAe;oBACjB9B,OAAA,GAAU8B,aAAA;oBAEVhC,UAAA,GAAa;sBACXwB,eAAA,EAAiBO;oBACnB;kBACF;kBAEA;gBACF;YACF;YACA;UACF;QAEA;QACA;UAAS;YACP,IAAId,QAAA,KAAa,YAAY;cAC3B,IAAI,CAACpB,sBAAA,IAA0BF,cAAA,EAAgBuC,YAAA,EAAc;gBAC3DlC,UAAA,GAAa;kBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;gBAC7C;gBACAP,WAAA,GAAc;kBACZ0B,SAAA,EAAWtC;gBACb;cACF,OAAO;gBACLc,SAAA,GAAY;kBACVwB,SAAA,EAAWxC;gBACb;cACF;YACF,OAAO;cACL,MAAMyC,SAAA,GAAY,CAChBrB,UAAA,KAAe,OAAOA,UAAA,EACtBS,gBAAA,EACAC,cAAA,EACAC,QAAA,CACD,CACEW,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWT,QAAA,EAAUC,QAAA,E,GAAaC,iBAAA,CAAkB,CACvEQ,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cAER,MAAM;gBAAEJ,SAAA,EAAWM,mBAAmB;gBAAE7B,OAAA,EAAS8B;cAAa,CAAE,GAAGzC,oBAAA,CACjE;gBACEmC,SAAA;gBACAI,YAAA;gBACAxB;cACF;cAGF,IAAI0B,aAAA,EAAe;gBACjB9B,OAAA,GAAU8B,aAAA;gBAEVhC,UAAA,GAAa;kBACXwB,eAAA,EAAiBO;gBACnB;cACF;YACF;YAEA;UACF;MACF;IACF;EACF;EAEA,IAAInC,YAAA,EAAc;IAChB,MAAM,CAACuC,YAAA,EAAcC,UAAA,EAAYpB,QAAA,EAAU,GAAGG,iBAAA,CAAkB,GAAGrB,aAAA;IAEnE,IAAI,CAACD,sBAAA,IAA0B,CAACF,cAAA,EAAgByB,IAAA,EAAM;MACpD,MAAM,IAAIC,KAAA,CAAM;IAClB,OAAO;MACL,QAAQvB,aAAA,CAAcwB,MAAM;QAC1B,KAAK;UAAG;YACNtB,UAAA,GAAa;cACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;YAC7C;YACAP,WAAA,GAAc;cACZ0B,SAAA,EAAW3C;YACb;YACA;UACF;QAEA,KAAK;UAAG;YACN;YACA,QAAQkC,QAAA;cACN,KAAK;gBAAO;kBACV,IAAIpB,YAAA,EAAcQ,KAAA,EAAO6B,UAAA,KAAe,MAAM;oBAC5CjC,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;oBACAP,WAAA,GAAc;sBACZ0B,SAAA,EAAW7C;oBACb;kBACF;kBACA;gBACF;cAEA,KAAK;gBAAW;kBACd,IAAI4B,kBAAA,EAAoB;oBACtBT,WAAA,GAAc;sBACZ0B,SAAA,EAAWzC;oBACb;oBACAgB,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;kBACF;kBACA;gBACF;cAEA,KAAK;gBAAY;kBACf,IAAI,CAACT,sBAAA,IAA0BF,cAAA,EAAgBuC,YAAA,EAAc;oBAC3DlC,UAAA,GAAa;sBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;oBAC7C;oBAEAP,WAAA,GAAc;sBACZ0B,SAAA,EAAWpC;oBACb;kBACF,OAAO;oBACLY,SAAA,GAAY;sBACVwB,SAAA,EAAWxC;oBACb;kBACF;kBACA;gBACF;cAEA;gBAAS;kBACP,IAAI,CAACY,sBAAA,IAA0BF,cAAA,EAAgByB,IAAA,EAAM;oBACnD,MAAMM,SAAA,GAAY,CAACrB,UAAA,EAAY8B,YAAA,EAAcC,UAAA,EAAYpB,QAAA,CAAS,CAC/DW,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;oBAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWV,QAAA,E,GAAaG,iBAAA,CAAkB,CAC7DQ,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;oBAER,MAAM;sBAAEJ,SAAA,EAAWM,mBAAmB;sBAAE7B,OAAA,EAAS8B;oBAAa,CAAE,GAC9DzC,oBAAA,CAAqB;sBACnBmC,SAAA;sBACAI,YAAA;sBACAxB;oBACF;oBAEF,IAAI0B,aAAA,EAAe;sBACjB9B,OAAA,GAAU8B,aAAA;sBAEVhC,UAAA,GAAa;wBACXwB,eAAA,EAAiBO;sBACnB;oBACF,OAAO;sBACLhC,WAAA,GAAc;wBACZ0B,SAAA,EAAW3C;sBACb;oBACF;kBACF,OAAO;oBACLmB,SAAA,GAAY;sBACVwB,SAAA,EAAWxC;oBACb;kBACF;kBACA;gBACF;YACF;YACA;UACF;QAEA;UAAS;YACP;YACA,IAAI+B,QAAA,KAAa,YAAY;cAC3B,IAAI,CAACnB,sBAAA,IAA0BF,cAAA,EAAgBuC,YAAA,EAAc;gBAC3DlC,UAAA,GAAa;kBACXwB,eAAA,EAAiBlC,kBAAA,CAAmBgB,KAAA,EAAO;gBAC7C;gBACAP,WAAA,GAAc;kBACZ0B,SAAA,EAAWtC;gBACb;cACF,OAAO;gBACLc,SAAA,GAAY;kBACVwB,SAAA,EAAWxC;gBACb;cACF;YACF,OAAO;cACL,MAAMyC,SAAA,GAAY,CAACrB,UAAA,KAAe,OAAOA,UAAA,EAAY,WAAW+B,UAAA,CAAW,CACxET,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cAER,MAAMC,YAAA,GAAe,CAACJ,SAAA,EAAWV,QAAA,E,GAAaG,iBAAA,CAAkB,CAC7DQ,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cAER,MAAM;gBAAEJ,SAAA,EAAWM,mBAAmB;gBAAE7B,OAAA,EAAS8B;cAAa,CAAE,GAAGzC,oBAAA,CACjE;gBACEmC,SAAA;gBACAI,YAAA;gBACAxB;cACF;cAGF,IAAI0B,aAAA,EAAe;gBACjB9B,OAAA,GAAU8B,aAAA;gBAEVhC,UAAA,GAAa;kBACXwB,eAAA,EAAiBO;gBACnB;cACF;YACF;YAEA;UACF;MACF;IACF;EACF;EAEA,OAAO;IACL/B,UAAA;IACAD,WAAA;IACAE,SAAA;IACAC;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAA;AAQhB,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,qBAAqB,SAAgB;IAChD,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,oBAAoB,CA+I/B,CAAA"}
1
+ {"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAA;AAQhB,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,qBAAqB,SAAgB;IAChD,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,oBAAoB,CAiJ/B,CAAA"}
@@ -114,6 +114,7 @@ export const renderDocumentHandler = async args => {
114
114
  disableActions,
115
115
  documentSubViewType: 'default',
116
116
  drawerSlug,
117
+ i18n,
117
118
  importMap: payload.importMap,
118
119
  initialData,
119
120
  initPageResult: {
@@ -132,6 +133,7 @@ export const renderDocumentHandler = async args => {
132
133
  params: {
133
134
  segments: ['collections', collectionSlug, docID]
134
135
  },
136
+ payload,
135
137
  redirectAfterDelete,
136
138
  redirectAfterDuplicate,
137
139
  searchParams: {},
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunction.js","names":["getClientConfig","headers","getHeaders","getAccessResults","isEntityHidden","parseCookies","renderDocument","renderDocumentHandler","args","collectionSlug","disableActions","docID","drawerSlug","initialData","locale","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","req","i18n","payload","config","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","importMap","preferences","preferencesKey","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","data","Document","documentSubViewType","initPageResult","collectionConfig","globalConfig","global","languageOptions","undefined","translations","params","segments","searchParams","viewType"],"sources":["../../../src/views/Document/handleServerFunction.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n FormState,\n Locale,\n PayloadRequest,\n VisibleEntities,\n} from 'payload'\n\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { getAccessResults, isEntityHidden, parseCookies } from 'payload'\n\nimport { renderDocument } from './index.js'\n\ntype RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\nexport const renderDocumentHandler = async (args: {\n collectionSlug: string\n disableActions?: boolean\n docID: string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n locale?: Locale\n overrideEntityVisibility?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n req: PayloadRequest\n}): Promise<RenderDocumentResult> => {\n const {\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = args\n\n const headers = await getHeaders()\n\n const cookies = parseCookies(headers)\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n })\n\n let preferences: DocumentPreferences\n\n if (docID) {\n const preferencesKey = `${collectionSlug}-edit-${docID}`\n\n preferences = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })\n .then((res) => res.docs[0]?.value as DocumentPreferences)\n }\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const permissions = await getAccessResults({\n req,\n })\n\n const { data, Document } = await renderDocument({\n clientConfig,\n disableActions,\n documentSubViewType: 'default',\n drawerSlug,\n importMap: payload.importMap,\n initialData,\n initPageResult: {\n collectionConfig: payload?.collections?.[collectionSlug]?.config,\n cookies,\n docID,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n locale,\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n overrideEntityVisibility,\n params: {\n segments: ['collections', collectionSlug, docID],\n },\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams: {},\n viewType: 'document',\n })\n\n return {\n data,\n Document,\n preferences,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"handleServerFunction.js","names":["getClientConfig","headers","getHeaders","getAccessResults","isEntityHidden","parseCookies","renderDocument","renderDocumentHandler","args","collectionSlug","disableActions","docID","drawerSlug","initialData","locale","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","req","i18n","payload","config","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","importMap","preferences","preferencesKey","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","data","Document","documentSubViewType","initPageResult","collectionConfig","globalConfig","global","languageOptions","undefined","translations","params","segments","searchParams","viewType"],"sources":["../../../src/views/Document/handleServerFunction.tsx"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n FormState,\n Locale,\n PayloadRequest,\n VisibleEntities,\n} from 'payload'\n\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { getAccessResults, isEntityHidden, parseCookies } from 'payload'\n\nimport { renderDocument } from './index.js'\n\ntype RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\nexport const renderDocumentHandler = async (args: {\n collectionSlug: string\n disableActions?: boolean\n docID: string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n locale?: Locale\n overrideEntityVisibility?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n req: PayloadRequest\n}): Promise<RenderDocumentResult> => {\n const {\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = args\n\n const headers = await getHeaders()\n\n const cookies = parseCookies(headers)\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n })\n\n let preferences: DocumentPreferences\n\n if (docID) {\n const preferencesKey = `${collectionSlug}-edit-${docID}`\n\n preferences = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })\n .then((res) => res.docs[0]?.value as DocumentPreferences)\n }\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const permissions = await getAccessResults({\n req,\n })\n\n const { data, Document } = await renderDocument({\n clientConfig,\n disableActions,\n documentSubViewType: 'default',\n drawerSlug,\n i18n,\n importMap: payload.importMap,\n initialData,\n initPageResult: {\n collectionConfig: payload?.collections?.[collectionSlug]?.config,\n cookies,\n docID,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n locale,\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n overrideEntityVisibility,\n params: {\n segments: ['collections', collectionSlug, docID],\n },\n payload,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams: {},\n viewType: 'document',\n })\n\n return {\n data,\n Document,\n preferences,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,13 @@
1
- import type { AdminViewProps, Data } from 'payload';
1
+ import type { AdminViewServerProps, Data } from 'payload';
2
2
  import React from 'react';
3
3
  import type { GenerateEditViewMetadata } from './getMetaBySegment.js';
4
4
  export declare const generateMetadata: GenerateEditViewMetadata;
5
5
  export declare const renderDocument: ({ disableActions, documentSubViewType, drawerSlug, importMap, initialData, initPageResult, overrideEntityVisibility, params, redirectAfterDelete, redirectAfterDuplicate, searchParams, viewType, }: {
6
+ drawerSlug?: string;
6
7
  overrideEntityVisibility?: boolean;
7
- } & AdminViewProps) => Promise<{
8
+ } & AdminViewServerProps) => Promise<{
8
9
  data: Data;
9
10
  Document: React.ReactNode;
10
11
  }>;
11
- export declare const Document: React.FC<AdminViewProps>;
12
+ export declare function Document(props: AdminViewServerProps): Promise<React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | (string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>)>;
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAA6C,MAAM,SAAS,CAAA;AAQ9F,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAKhG,eAAO,MAAM,cAAc,wMAaxB;IACD,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,GAAG,cAAc,KAAG,OAAO,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA8UA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAe7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EAKL,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAKhG,eAAO,MAAM,cAAc,wMAaxB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAqVA,CAAA;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,+QAezD"}
@@ -148,7 +148,7 @@ export const renderDocument = async ({
148
148
  schemaPath: collectionSlug || globalSlug,
149
149
  skipValidation: true
150
150
  })]);
151
- const serverProps = {
151
+ const documentViewServerProps = {
152
152
  doc,
153
153
  i18n,
154
154
  initPageResult,
@@ -310,22 +310,22 @@ export const renderDocument = async ({
310
310
  clientProps,
311
311
  Component: ErrorView.ComponentConfig || ErrorView.Component,
312
312
  importMap,
313
- serverProps
313
+ serverProps: documentViewServerProps
314
314
  }) : RenderServerComponent({
315
315
  clientProps,
316
316
  Component: RootViewOverride ? RootViewOverride : CustomView?.ComponentConfig || CustomView?.Component ? CustomView?.ComponentConfig || CustomView?.Component : DefaultView?.ComponentConfig || DefaultView?.Component,
317
317
  importMap,
318
- serverProps
318
+ serverProps: documentViewServerProps
319
319
  })
320
320
  })]
321
321
  }, locale?.code)
322
322
  };
323
323
  };
324
- export const Document = async args => {
324
+ export async function Document(props) {
325
325
  try {
326
326
  const {
327
327
  Document: RenderedDocument
328
- } = await renderDocument(args);
328
+ } = await renderDocument(props);
329
329
  return RenderedDocument;
330
330
  } catch (error) {
331
331
  if (error?.message === 'NEXT_REDIRECT') {
@@ -333,11 +333,11 @@ export const Document = async args => {
333
333
  }
334
334
  logError({
335
335
  err: error,
336
- payload: args.initPageResult.req.payload
336
+ payload: props.initPageResult.req.payload
337
337
  });
338
338
  if (error.message === 'not-found') {
339
339
  notFound();
340
340
  }
341
341
  }
342
- };
342
+ }
343
343
  //# sourceMappingURL=index.js.map