@payloadcms/next 3.68.0-internal-debug.e9b66ee → 3.68.0-internal.10bf491

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 (398) hide show
  1. package/dist/auth/login.js +58 -52
  2. package/dist/auth/login.js.map +1 -1
  3. package/dist/auth/logout.js +44 -39
  4. package/dist/auth/logout.js.map +1 -1
  5. package/dist/auth/refresh.js +47 -45
  6. package/dist/auth/refresh.js.map +1 -1
  7. package/dist/cjs/withPayload.cjs +41 -65
  8. package/dist/cjs/withPayload.cjs.map +1 -1
  9. package/dist/config.js +0 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +15 -9
  12. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +72 -26
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +54 -36
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/index.js +64 -42
  18. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +24 -8
  20. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  21. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +69 -61
  22. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  23. package/dist/elements/DocumentHeader/index.js +29 -11
  24. package/dist/elements/DocumentHeader/index.js.map +1 -1
  25. package/dist/elements/FormHeader/index.js +17 -10
  26. package/dist/elements/FormHeader/index.js.map +1 -1
  27. package/dist/elements/Logo/index.js +34 -19
  28. package/dist/elements/Logo/index.js.map +1 -1
  29. package/dist/elements/Nav/NavHamburger/index.js +45 -8
  30. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  31. package/dist/elements/Nav/NavWrapper/index.js +55 -15
  32. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  33. package/dist/elements/Nav/SettingsMenuButton/index.js +40 -11
  34. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  35. package/dist/elements/Nav/getNavPrefs.js +22 -27
  36. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  37. package/dist/elements/Nav/index.client.js +111 -42
  38. package/dist/elements/Nav/index.client.js.map +1 -1
  39. package/dist/elements/Nav/index.js +121 -90
  40. package/dist/elements/Nav/index.js.map +1 -1
  41. package/dist/exports/auth.js +0 -1
  42. package/dist/exports/auth.js.map +1 -1
  43. package/dist/exports/client.js +1 -1
  44. package/dist/exports/client.js.map +1 -1
  45. package/dist/exports/layouts.js +0 -1
  46. package/dist/exports/layouts.js.map +1 -1
  47. package/dist/exports/routes.js +0 -1
  48. package/dist/exports/routes.js.map +1 -1
  49. package/dist/exports/rsc.js +0 -1
  50. package/dist/exports/rsc.js.map +1 -1
  51. package/dist/exports/templates.js +0 -1
  52. package/dist/exports/templates.js.map +1 -1
  53. package/dist/exports/utilities.js +12 -7
  54. package/dist/exports/utilities.js.map +1 -1
  55. package/dist/exports/views.js +0 -1
  56. package/dist/exports/views.js.map +1 -1
  57. package/dist/index.js +0 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/layouts/Root/NestProviders.js +21 -13
  60. package/dist/layouts/Root/NestProviders.js.map +1 -1
  61. package/dist/layouts/Root/checkDependencies.js +41 -49
  62. package/dist/layouts/Root/checkDependencies.js.map +1 -1
  63. package/dist/layouts/Root/index.js +104 -64
  64. package/dist/layouts/Root/index.js.map +1 -1
  65. package/dist/prod/styles.css +1 -5
  66. package/dist/routes/graphql/handler.js +122 -114
  67. package/dist/routes/graphql/handler.js.map +1 -1
  68. package/dist/routes/graphql/index.js +0 -1
  69. package/dist/routes/graphql/index.js.map +1 -1
  70. package/dist/routes/graphql/playground.js +23 -24
  71. package/dist/routes/graphql/playground.js.map +1 -1
  72. package/dist/routes/index.js +0 -1
  73. package/dist/routes/index.js.map +1 -1
  74. package/dist/routes/rest/index.js +19 -20
  75. package/dist/routes/rest/index.js.map +1 -1
  76. package/dist/routes/rest/og/image.js +72 -60
  77. package/dist/routes/rest/og/image.js.map +1 -1
  78. package/dist/routes/rest/og/index.js +55 -46
  79. package/dist/routes/rest/og/index.js.map +1 -1
  80. package/dist/templates/Default/NavHamburger/index.js +21 -4
  81. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  82. package/dist/templates/Default/Wrapper/index.js +45 -14
  83. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  84. package/dist/templates/Default/index.js +133 -115
  85. package/dist/templates/Default/index.js.map +1 -1
  86. package/dist/templates/Minimal/index.js +18 -12
  87. package/dist/templates/Minimal/index.js.map +1 -1
  88. package/dist/utilities/getExistingAuthToken.js +2 -3
  89. package/dist/utilities/getExistingAuthToken.js.map +1 -1
  90. package/dist/utilities/getNextRequestI18n.js +13 -12
  91. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  92. package/dist/utilities/getPayloadHMR.js +5 -5
  93. package/dist/utilities/getPayloadHMR.js.map +1 -1
  94. package/dist/utilities/getPreferences.js +22 -27
  95. package/dist/utilities/getPreferences.js.map +1 -1
  96. package/dist/utilities/getRequestLocale.js +14 -13
  97. package/dist/utilities/getRequestLocale.js.map +1 -1
  98. package/dist/utilities/getRequestTheme.js +19 -19
  99. package/dist/utilities/getRequestTheme.js.map +1 -1
  100. package/dist/utilities/getRouteWithoutAdmin.js +5 -3
  101. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -1
  102. package/dist/utilities/getVisibleEntities.js +23 -12
  103. package/dist/utilities/getVisibleEntities.js.map +1 -1
  104. package/dist/utilities/handleAuthRedirect.js +36 -22
  105. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  106. package/dist/utilities/handleServerFunctions.js +39 -32
  107. package/dist/utilities/handleServerFunctions.js.map +1 -1
  108. package/dist/utilities/initReq.js +96 -78
  109. package/dist/utilities/initReq.js.map +1 -1
  110. package/dist/utilities/isCustomAdminView.js +26 -22
  111. package/dist/utilities/isCustomAdminView.js.map +1 -1
  112. package/dist/utilities/isPublicAdminRoute.js +20 -26
  113. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  114. package/dist/utilities/meta.js +63 -68
  115. package/dist/utilities/meta.js.map +1 -1
  116. package/dist/utilities/selectiveCache.js +26 -25
  117. package/dist/utilities/selectiveCache.js.map +1 -1
  118. package/dist/utilities/setPayloadAuthCookie.js +22 -19
  119. package/dist/utilities/setPayloadAuthCookie.js.map +1 -1
  120. package/dist/utilities/slugify.js +33 -24
  121. package/dist/utilities/slugify.js.map +1 -1
  122. package/dist/utilities/timestamp.js +6 -7
  123. package/dist/utilities/timestamp.js.map +1 -1
  124. package/dist/views/API/LocaleSelector/index.js +39 -7
  125. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  126. package/dist/views/API/RenderJSON/index.js +119 -67
  127. package/dist/views/API/RenderJSON/index.js.map +1 -1
  128. package/dist/views/API/index.client.js +184 -132
  129. package/dist/views/API/index.client.js.map +1 -1
  130. package/dist/views/API/index.js +3 -2
  131. package/dist/views/API/index.js.map +1 -1
  132. package/dist/views/API/metadata.js +23 -18
  133. package/dist/views/API/metadata.js.map +1 -1
  134. package/dist/views/Account/ResetPreferences/index.js +91 -47
  135. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  136. package/dist/views/Account/Settings/LanguageSelector.js +48 -7
  137. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  138. package/dist/views/Account/Settings/index.js +29 -17
  139. package/dist/views/Account/Settings/index.js.map +1 -1
  140. package/dist/views/Account/ToggleTheme/index.js +56 -28
  141. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  142. package/dist/views/Account/index.client.js +32 -16
  143. package/dist/views/Account/index.client.js.map +1 -1
  144. package/dist/views/Account/index.js +156 -87
  145. package/dist/views/Account/index.js.map +1 -1
  146. package/dist/views/Account/metadata.js +12 -8
  147. package/dist/views/Account/metadata.js.map +1 -1
  148. package/dist/views/BrowseByFolder/buildView.js +159 -130
  149. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  150. package/dist/views/BrowseByFolder/index.js +16 -16
  151. package/dist/views/BrowseByFolder/index.js.map +1 -1
  152. package/dist/views/BrowseByFolder/metadata.js +15 -13
  153. package/dist/views/BrowseByFolder/metadata.js.map +1 -1
  154. package/dist/views/CollectionFolders/buildView.js +144 -114
  155. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  156. package/dist/views/CollectionFolders/index.js +16 -16
  157. package/dist/views/CollectionFolders/index.js.map +1 -1
  158. package/dist/views/CollectionFolders/metadata.js +21 -18
  159. package/dist/views/CollectionFolders/metadata.js.map +1 -1
  160. package/dist/views/CollectionFolders/renderFolderViewSlots.js +61 -58
  161. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -1
  162. package/dist/views/CollectionTrash/index.js +17 -17
  163. package/dist/views/CollectionTrash/index.js.map +1 -1
  164. package/dist/views/CollectionTrash/metadata.js +21 -18
  165. package/dist/views/CollectionTrash/metadata.js.map +1 -1
  166. package/dist/views/CreateFirstUser/index.client.js +98 -56
  167. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  168. package/dist/views/CreateFirstUser/index.js +82 -57
  169. package/dist/views/CreateFirstUser/index.js.map +1 -1
  170. package/dist/views/CreateFirstUser/metadata.js +12 -8
  171. package/dist/views/CreateFirstUser/metadata.js.map +1 -1
  172. package/dist/views/Dashboard/Default/index.js +128 -77
  173. package/dist/views/Dashboard/Default/index.js.map +1 -1
  174. package/dist/views/Dashboard/index.js +90 -78
  175. package/dist/views/Dashboard/index.js.map +1 -1
  176. package/dist/views/Dashboard/metadata.js +14 -10
  177. package/dist/views/Dashboard/metadata.js.map +1 -1
  178. package/dist/views/Document/getCustomDocumentViewByKey.js +2 -3
  179. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -1
  180. package/dist/views/Document/getCustomViewByRoute.js +30 -27
  181. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  182. package/dist/views/Document/getDocPreferences.js +41 -40
  183. package/dist/views/Document/getDocPreferences.js.map +1 -1
  184. package/dist/views/Document/getDocumentData.js +55 -44
  185. package/dist/views/Document/getDocumentData.js.map +1 -1
  186. package/dist/views/Document/getDocumentPermissions.js +80 -77
  187. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  188. package/dist/views/Document/getDocumentView.js +283 -313
  189. package/dist/views/Document/getDocumentView.js.map +1 -1
  190. package/dist/views/Document/getIsLocked.js +66 -66
  191. package/dist/views/Document/getIsLocked.js.map +1 -1
  192. package/dist/views/Document/getMetaBySegment.js +136 -130
  193. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  194. package/dist/views/Document/getVersions.js +194 -204
  195. package/dist/views/Document/getVersions.js.map +1 -1
  196. package/dist/views/Document/handleServerFunction.js +128 -103
  197. package/dist/views/Document/handleServerFunction.js.map +1 -1
  198. package/dist/views/Document/index.js +351 -250
  199. package/dist/views/Document/index.js.map +1 -1
  200. package/dist/views/Document/metadata.js +1 -2
  201. package/dist/views/Document/metadata.js.map +1 -1
  202. package/dist/views/Document/renderDocumentSlots.js +132 -121
  203. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  204. package/dist/views/Edit/index.js +7 -3
  205. package/dist/views/Edit/index.js.map +1 -1
  206. package/dist/views/Edit/metadata.js +46 -36
  207. package/dist/views/Edit/metadata.js.map +1 -1
  208. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +151 -70
  209. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  210. package/dist/views/ForgotPassword/index.js +61 -26
  211. package/dist/views/ForgotPassword/index.js.map +1 -1
  212. package/dist/views/ForgotPassword/metadata.js +12 -8
  213. package/dist/views/ForgotPassword/metadata.js.map +1 -1
  214. package/dist/views/List/createSerializableValue.js +11 -12
  215. package/dist/views/List/createSerializableValue.js.map +1 -1
  216. package/dist/views/List/enrichDocsWithVersionStatus.js +86 -86
  217. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  218. package/dist/views/List/extractRelationshipDisplayValue.js +14 -15
  219. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -1
  220. package/dist/views/List/extractValueOrRelationshipID.js +15 -16
  221. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -1
  222. package/dist/views/List/handleGroupBy.js +150 -133
  223. package/dist/views/List/handleGroupBy.js.map +1 -1
  224. package/dist/views/List/handleServerFunction.js +119 -96
  225. package/dist/views/List/handleServerFunction.js.map +1 -1
  226. package/dist/views/List/index.js +324 -284
  227. package/dist/views/List/index.js.map +1 -1
  228. package/dist/views/List/metadata.js +20 -17
  229. package/dist/views/List/metadata.js.map +1 -1
  230. package/dist/views/List/renderListViewSlots.js +75 -70
  231. package/dist/views/List/renderListViewSlots.js.map +1 -1
  232. package/dist/views/List/resolveAllFilterOptions.js +45 -43
  233. package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
  234. package/dist/views/List/transformColumnsToSelect.js +8 -9
  235. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  236. package/dist/views/Login/LoginField/index.js +90 -32
  237. package/dist/views/Login/LoginField/index.js.map +1 -1
  238. package/dist/views/Login/LoginForm/index.js +156 -55
  239. package/dist/views/Login/LoginForm/index.js.map +1 -1
  240. package/dist/views/Login/index.js +86 -50
  241. package/dist/views/Login/index.js.map +1 -1
  242. package/dist/views/Login/metadata.js +12 -8
  243. package/dist/views/Login/metadata.js.map +1 -1
  244. package/dist/views/Logout/LogoutClient.js +119 -54
  245. package/dist/views/Logout/LogoutClient.js.map +1 -1
  246. package/dist/views/Logout/index.js +30 -8
  247. package/dist/views/Logout/index.js.map +1 -1
  248. package/dist/views/Logout/metadata.js +11 -7
  249. package/dist/views/Logout/metadata.js.map +1 -1
  250. package/dist/views/NotFound/index.client.js +83 -32
  251. package/dist/views/NotFound/index.client.js.map +1 -1
  252. package/dist/views/NotFound/index.js +73 -44
  253. package/dist/views/NotFound/index.js.map +1 -1
  254. package/dist/views/NotFound/metadata.js +9 -7
  255. package/dist/views/NotFound/metadata.js.map +1 -1
  256. package/dist/views/ResetPassword/ResetPasswordForm/index.js +107 -49
  257. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  258. package/dist/views/ResetPassword/index.js +72 -29
  259. package/dist/views/ResetPassword/index.js.map +1 -1
  260. package/dist/views/ResetPassword/metadata.js +12 -8
  261. package/dist/views/ResetPassword/metadata.js.map +1 -1
  262. package/dist/views/Root/attachViewActions.js +23 -18
  263. package/dist/views/Root/attachViewActions.js.map +1 -1
  264. package/dist/views/Root/generateCustomViewMetadata.js +21 -19
  265. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  266. package/dist/views/Root/getCustomViewByKey.js +14 -12
  267. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  268. package/dist/views/Root/getCustomViewByRoute.js +42 -31
  269. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  270. package/dist/views/Root/getDocumentViewInfo.js +23 -24
  271. package/dist/views/Root/getDocumentViewInfo.js.map +1 -1
  272. package/dist/views/Root/getRouteData.js +325 -333
  273. package/dist/views/Root/getRouteData.js.map +1 -1
  274. package/dist/views/Root/index.js +265 -203
  275. package/dist/views/Root/index.js.map +1 -1
  276. package/dist/views/Root/isPathMatchingRoute.js +26 -21
  277. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  278. package/dist/views/Root/metadata.js +181 -176
  279. package/dist/views/Root/metadata.js.map +1 -1
  280. package/dist/views/Unauthorized/index.js +45 -18
  281. package/dist/views/Unauthorized/index.js.map +1 -1
  282. package/dist/views/Unauthorized/metadata.js +12 -8
  283. package/dist/views/Unauthorized/metadata.js.map +1 -1
  284. package/dist/views/Verify/index.client.js +43 -25
  285. package/dist/views/Verify/index.client.js.map +1 -1
  286. package/dist/views/Verify/index.js +62 -31
  287. package/dist/views/Verify/index.js.map +1 -1
  288. package/dist/views/Verify/metadata.js +12 -8
  289. package/dist/views/Verify/metadata.js.map +1 -1
  290. package/dist/views/Version/Default/SelectedLocalesContext.js +4 -4
  291. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  292. package/dist/views/Version/Default/SetStepNav.js +127 -86
  293. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  294. package/dist/views/Version/Default/index.js +236 -174
  295. package/dist/views/Version/Default/index.js.map +1 -1
  296. package/dist/views/Version/Default/types.js +1 -2
  297. package/dist/views/Version/Default/types.js.map +1 -1
  298. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +120 -54
  299. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  300. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +74 -37
  301. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  302. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +408 -363
  303. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  304. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +52 -12
  305. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  306. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +66 -21
  307. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  308. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +57 -15
  309. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  310. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +118 -55
  311. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  312. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +41 -36
  313. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  314. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +179 -65
  315. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  316. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +12 -5
  317. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  318. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +72 -34
  319. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  320. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +139 -57
  321. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  322. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +80 -42
  323. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  324. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +211 -103
  325. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  326. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +22 -23
  327. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  328. package/dist/views/Version/RenderFieldsToDiff/index.js +9 -4
  329. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  330. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +228 -213
  331. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  332. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +826 -1005
  333. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  334. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +1 -2
  335. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -1
  336. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +43 -44
  337. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
  338. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +22 -25
  339. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -1
  340. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +36 -32
  341. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  342. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +129 -145
  343. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  344. package/dist/views/Version/Restore/index.js +92 -77
  345. package/dist/views/Version/Restore/index.js.map +1 -1
  346. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +50 -25
  347. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  348. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +227 -140
  349. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  350. package/dist/views/Version/SelectComparison/index.js +51 -44
  351. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  352. package/dist/views/Version/SelectComparison/types.js +1 -2
  353. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  354. package/dist/views/Version/SelectLocales/index.js +30 -16
  355. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  356. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +95 -37
  357. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  358. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +27 -23
  359. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -1
  360. package/dist/views/Version/fetchVersions.js +138 -113
  361. package/dist/views/Version/fetchVersions.js.map +1 -1
  362. package/dist/views/Version/index.js +323 -283
  363. package/dist/views/Version/index.js.map +1 -1
  364. package/dist/views/Version/metadata.js +50 -43
  365. package/dist/views/Version/metadata.js.map +1 -1
  366. package/dist/views/Versions/buildColumns.js +80 -47
  367. package/dist/views/Versions/buildColumns.js.map +1 -1
  368. package/dist/views/Versions/cells/AutosaveCell/index.js +39 -8
  369. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  370. package/dist/views/Versions/cells/CreatedAt/index.js +54 -25
  371. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  372. package/dist/views/Versions/cells/ID/index.js +9 -4
  373. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  374. package/dist/views/Versions/index.client.js +83 -28
  375. package/dist/views/Versions/index.client.js.map +1 -1
  376. package/dist/views/Versions/index.js +140 -94
  377. package/dist/views/Versions/index.js.map +1 -1
  378. package/dist/views/Versions/metadata.js +44 -37
  379. package/dist/views/Versions/metadata.js.map +1 -1
  380. package/dist/views/Versions/types.js +1 -2
  381. package/dist/views/Versions/types.js.map +1 -1
  382. package/dist/withPayload.d.ts +8 -2
  383. package/dist/withPayload.d.ts.map +1 -1
  384. package/dist/withPayload.js +145 -219
  385. package/dist/withPayload.js.map +1 -1
  386. package/dist/withPayload.utils.d.ts +58 -0
  387. package/dist/withPayload.utils.d.ts.map +1 -0
  388. package/dist/withPayload.utils.js +101 -0
  389. package/dist/withPayload.utils.js.map +1 -0
  390. package/dist/withPayloadLegacy.d.ts +6 -0
  391. package/dist/withPayloadLegacy.d.ts.map +1 -0
  392. package/dist/withPayloadLegacy.js +44 -0
  393. package/dist/withPayloadLegacy.js.map +1 -0
  394. package/package.json +15 -17
  395. package/dist/esbuildEntry.d.ts +0 -5
  396. package/dist/esbuildEntry.d.ts.map +0 -1
  397. package/dist/esbuildEntry.js +0 -6
  398. package/dist/esbuildEntry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Root/getRouteData.ts"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n CollectionSlug,\n CustomComponent,\n DocumentSubViewTypes,\n Payload,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ViewTypes,\n} from 'payload'\nimport type React from 'react'\n\nimport { parseDocumentID } from 'payload'\nimport { formatAdminURL, isNumber } from 'payload/shared'\n\nimport { AccountView } from '../Account/index.js'\nimport { BrowseByFolder } from '../BrowseByFolder/index.js'\nimport { CollectionFolderView } from '../CollectionFolders/index.js'\nimport { TrashView } from '../CollectionTrash/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { DashboardView } from '../Dashboard/index.js'\nimport { DocumentView } from '../Document/index.js'\nimport { forgotPasswordBaseClass, ForgotPasswordView } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { loginBaseClass, LoginView } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { getSubViewActions, getViewActions } from './attachViewActions.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { getDocumentViewInfo } from './getDocumentViewInfo.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n folders: 'folders',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewServerProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewServerProps>\n payloadComponent?: PayloadComponent<AdminViewServerProps>\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: AccountView,\n browseByFolder: BrowseByFolder,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\ntype GetRouteDataResult = {\n browseByFolderSlugs: CollectionSlug[]\n collectionConfig?: SanitizedCollectionConfig\n DefaultView: ViewFromConfig\n documentSubViewType?: DocumentSubViewTypes\n globalConfig?: SanitizedGlobalConfig\n routeParams: {\n collection?: string\n folderCollection?: string\n folderID?: number | string\n global?: string\n id?: number | string\n token?: string\n versionID?: number | string\n }\n templateClassName: string\n templateType: 'default' | 'minimal'\n viewActions?: CustomComponent[]\n viewType?: ViewTypes\n}\n\ntype GetRouteDataArgs = {\n adminRoute: string\n collectionConfig?: SanitizedCollectionConfig\n /**\n * User preferences for a collection.\n *\n * These preferences are normally undefined\n * unless the user is on the list view and the\n * collection is folder enabled.\n */\n collectionPreferences?: CollectionPreferences\n currentRoute: string\n globalConfig?: SanitizedGlobalConfig\n payload: Payload\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}\n\nexport const getRouteData = ({\n adminRoute,\n collectionConfig,\n collectionPreferences = undefined,\n currentRoute,\n globalConfig,\n payload,\n segments,\n}: GetRouteDataArgs): GetRouteDataResult => {\n const { config } = payload\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n let documentSubViewType: DocumentSubViewTypes\n let viewType: ViewTypes\n const routeParams: GetRouteDataResult['routeParams'] = {}\n\n const [segmentOne, segmentTwo, segmentThree, segmentFour, segmentFive, segmentSix] = segments\n\n const isBrowseByFolderEnabled = config.folders && config.folders.browseByFolder\n const browseByFolderSlugs =\n (isBrowseByFolderEnabled &&\n config.collections.reduce((acc, { slug, folders }) => {\n if (folders && folders.browseByFolder) {\n return [...acc, slug]\n }\n return acc\n }, [])) ||\n []\n\n const viewActions: CustomComponent[] = [...(config?.admin?.components?.actions || [])]\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: DashboardView,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n viewType = 'dashboard'\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewKey: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewKey = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n // Check if a custom view is configured for this viewKey\n // First try to get custom view by the known viewKey, then fallback to route matching\n const customView =\n (viewKey && getCustomViewByKey({ config, viewKey })) ||\n getCustomViewByRoute({ config, currentRoute })\n\n if (customView?.view?.payloadComponent || customView?.view?.Component) {\n // User has configured a custom view (either overriding a built-in or a new custom view)\n ViewToRender = customView.view\n\n // If this custom view is overriding a built-in view (viewKey matches a built-in),\n // use the built-in's template settings and viewType\n if (viewKey && oneSegmentViews[viewKey]) {\n viewType = viewKey as ViewTypes\n templateClassName = baseClasses[viewKey] || viewKey\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n templateType = 'default'\n }\n\n if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {\n templateType = 'default'\n viewType = 'folders'\n }\n }\n } else if (oneSegmentViews[viewKey]) {\n // --> /account\n // --> /create-first-user\n // --> /browse-by-folder\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewKey],\n }\n\n viewType = viewKey as ViewTypes\n\n templateClassName = baseClasses[viewKey]\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n templateType = 'default'\n }\n\n if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {\n templateType = 'default'\n viewType = 'folders'\n }\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n viewType = 'reset'\n } else if (\n isBrowseByFolderEnabled &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n routeParams.folderID = segmentTwo\n\n ViewToRender = {\n Component: oneSegmentViews.browseByFolder,\n }\n templateClassName = baseClasses.folders\n templateType = 'default'\n viewType = 'folders'\n } else if (collectionConfig) {\n // --> /collections/:collectionSlug'\n routeParams.collection = collectionConfig.slug\n\n if (\n collectionPreferences?.listViewType &&\n collectionPreferences.listViewType === 'folders'\n ) {\n // Render folder view by default if set in preferences\n ViewToRender = {\n Component: CollectionFolderView,\n }\n\n templateClassName = `collection-folders`\n templateType = 'default'\n viewType = 'collection-folders'\n } else {\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n viewType = 'list'\n }\n\n viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []))\n } else if (globalConfig) {\n // --> /globals/:globalSlug\n routeParams.global = globalConfig.slug\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n viewType = 'document'\n\n // add default view actions\n viewActions.push(\n ...getViewActions({\n editConfig: globalConfig.admin?.components?.views?.edit,\n viewKey: 'default',\n }),\n )\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n routeParams.collection = segmentOne\n routeParams.token = segmentThree\n\n ViewToRender = {\n Component: Verify,\n }\n\n templateClassName = 'verify'\n templateType = 'minimal'\n viewType = 'verify'\n } else if (collectionConfig) {\n routeParams.collection = collectionConfig.slug\n\n if (segmentThree === 'trash' && typeof segmentFour === 'string') {\n // --> /collections/:collectionSlug/trash/:id (read-only)\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/preview\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/versions/:versionID\n routeParams.id = segmentFour\n routeParams.versionID = segmentSix\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentFive, segmentSix])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n viewActions.push(\n ...getSubViewActions({\n collectionOrGlobal: collectionConfig,\n viewKeyArg: documentSubViewType,\n }),\n )\n } else if (segmentThree === 'trash') {\n // --> /collections/:collectionSlug/trash\n ViewToRender = {\n Component: TrashView,\n }\n\n templateClassName = `${segmentTwo}-trash`\n templateType = 'default'\n viewType = 'trash'\n\n viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []))\n } else {\n if (config.folders && segmentThree === config.folders.slug && collectionConfig.folders) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:folderID\n routeParams.folderCollection = segmentThree\n routeParams.folderID = segmentFour\n\n ViewToRender = {\n Component: CollectionFolderView,\n }\n\n templateClassName = `collection-folders`\n templateType = 'default'\n viewType = 'collection-folders'\n\n viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []))\n } else {\n // Collection Edit Views\n // --> /collections/:collectionSlug/create\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionID\n routeParams.id = segmentThree === 'create' ? undefined : segmentThree\n routeParams.versionID = segmentFive\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentFour, segmentFive])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n viewActions.push(\n ...getSubViewActions({\n collectionOrGlobal: collectionConfig,\n viewKeyArg: documentSubViewType,\n }),\n )\n }\n }\n } else if (globalConfig) {\n // Global Edit Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:versionID\n // --> /globals/:globalSlug/api\n routeParams.global = globalConfig.slug\n routeParams.versionID = segmentFour\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentThree, segmentFour])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n viewActions.push(\n ...getSubViewActions({\n collectionOrGlobal: globalConfig,\n viewKeyArg: documentSubViewType,\n }),\n )\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n if (collectionConfig) {\n if (routeParams.id) {\n routeParams.id = parseDocumentID({\n id: routeParams.id,\n collectionSlug: collectionConfig.slug,\n payload,\n })\n }\n\n if (routeParams.versionID) {\n routeParams.versionID = parseDocumentID({\n id: routeParams.versionID,\n collectionSlug: collectionConfig.slug,\n payload,\n })\n }\n }\n\n if (config.folders && routeParams.folderID) {\n routeParams.folderID = parseDocumentID({\n id: routeParams.folderID,\n collectionSlug: config.folders.slug,\n payload,\n })\n }\n\n if (globalConfig && routeParams.versionID) {\n routeParams.versionID =\n payload.db.defaultIDType === 'number' && isNumber(routeParams.versionID)\n ? Number(routeParams.versionID)\n : routeParams.versionID\n }\n\n if (viewActions.length) {\n viewActions.reverse()\n }\n\n return {\n browseByFolderSlugs,\n collectionConfig,\n DefaultView: ViewToRender,\n documentSubViewType,\n globalConfig,\n routeParams,\n templateClassName,\n templateType,\n viewActions: viewActions.length ? viewActions : undefined,\n viewType,\n }\n}\n"],"names":["parseDocumentID","formatAdminURL","isNumber","AccountView","BrowseByFolder","CollectionFolderView","TrashView","CreateFirstUserView","DashboardView","DocumentView","forgotPasswordBaseClass","ForgotPasswordView","ListView","loginBaseClass","LoginView","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getSubViewActions","getViewActions","getCustomViewByKey","getCustomViewByRoute","getDocumentViewInfo","isPathMatchingRoute","baseClasses","account","folders","forgot","login","reset","verify","oneSegmentViews","browseByFolder","createFirstUser","inactivity","logout","unauthorized","getRouteData","adminRoute","collectionConfig","collectionPreferences","undefined","currentRoute","globalConfig","payload","segments","config","ViewToRender","templateClassName","templateType","documentSubViewType","viewType","routeParams","segmentOne","segmentTwo","segmentThree","segmentFour","segmentFive","segmentSix","isBrowseByFolderEnabled","browseByFolderSlugs","collections","reduce","acc","slug","viewActions","admin","components","actions","length","Component","viewKey","routes","matchedRoute","Object","entries","find","route","exact","path","customView","view","payloadComponent","folderID","collection","listViewType","push","views","list","global","editConfig","edit","token","id","versionID","viewInfo","collectionOrGlobal","viewKeyArg","folderCollection","collectionSlug","db","defaultIDType","Number","reverse","DefaultView"],"mappings":"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"}
1
+ {"version":3,"file":"getRouteData.js","names":["parseDocumentID","formatAdminURL","isNumber","AccountView","BrowseByFolder","CollectionFolderView","TrashView","CreateFirstUserView","DashboardView","DocumentView","forgotPasswordBaseClass","ForgotPasswordView","ListView","loginBaseClass","LoginView","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","getSubViewActions","getViewActions","getCustomViewByKey","getCustomViewByRoute","getDocumentViewInfo","isPathMatchingRoute","baseClasses","account","folders","forgot","login","reset","verify","oneSegmentViews","browseByFolder","createFirstUser","inactivity","logout","unauthorized","getRouteData","adminRoute","collectionConfig","collectionPreferences","undefined","currentRoute","globalConfig","payload","segments","config","ViewToRender","templateClassName","templateType","documentSubViewType","viewType","routeParams","segmentOne","segmentTwo","segmentThree","segmentFour","segmentFive","segmentSix","isBrowseByFolderEnabled","browseByFolderSlugs","collections","reduce","acc","slug","viewActions","admin","components","actions","length","Component","viewKey","routes","matchedRoute","Object","entries","find","route","exact","path","customView","view","payloadComponent","folderID","collection","listViewType","push","views","list","global","editConfig","edit","token","id","versionID","viewInfo","collectionOrGlobal","viewKeyArg","folderCollection","collectionSlug","db","defaultIDType","Number","reverse","DefaultView"],"sources":["../../../src/views/Root/getRouteData.ts"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n CollectionSlug,\n CustomComponent,\n DocumentSubViewTypes,\n Payload,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ViewTypes,\n} from 'payload'\nimport type React from 'react'\n\nimport { parseDocumentID } from 'payload'\nimport { formatAdminURL, isNumber } from 'payload/shared'\n\nimport { AccountView } from '../Account/index.js'\nimport { BrowseByFolder } from '../BrowseByFolder/index.js'\nimport { CollectionFolderView } from '../CollectionFolders/index.js'\nimport { TrashView } from '../CollectionTrash/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { DashboardView } from '../Dashboard/index.js'\nimport { DocumentView } from '../Document/index.js'\nimport { forgotPasswordBaseClass, ForgotPasswordView } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { loginBaseClass, LoginView } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { getSubViewActions, getViewActions } from './attachViewActions.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { getDocumentViewInfo } from './getDocumentViewInfo.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n folders: 'folders',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewServerProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewServerProps>\n payloadComponent?: PayloadComponent<AdminViewServerProps>\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: AccountView,\n browseByFolder: BrowseByFolder,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\ntype GetRouteDataResult = {\n browseByFolderSlugs: CollectionSlug[]\n collectionConfig?: SanitizedCollectionConfig\n DefaultView: ViewFromConfig\n documentSubViewType?: DocumentSubViewTypes\n globalConfig?: SanitizedGlobalConfig\n routeParams: {\n collection?: string\n folderCollection?: string\n folderID?: number | string\n global?: string\n id?: number | string\n token?: string\n versionID?: number | string\n }\n templateClassName: string\n templateType: 'default' | 'minimal'\n viewActions?: CustomComponent[]\n viewType?: ViewTypes\n}\n\ntype GetRouteDataArgs = {\n adminRoute: string\n collectionConfig?: SanitizedCollectionConfig\n /**\n * User preferences for a collection.\n *\n * These preferences are normally undefined\n * unless the user is on the list view and the\n * collection is folder enabled.\n */\n collectionPreferences?: CollectionPreferences\n currentRoute: string\n globalConfig?: SanitizedGlobalConfig\n payload: Payload\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}\n\nexport const getRouteData = ({\n adminRoute,\n collectionConfig,\n collectionPreferences = undefined,\n currentRoute,\n globalConfig,\n payload,\n segments,\n}: GetRouteDataArgs): GetRouteDataResult => {\n const { config } = payload\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n let documentSubViewType: DocumentSubViewTypes\n let viewType: ViewTypes\n const routeParams: GetRouteDataResult['routeParams'] = {}\n\n const [segmentOne, segmentTwo, segmentThree, segmentFour, segmentFive, segmentSix] = segments\n\n const isBrowseByFolderEnabled = config.folders && config.folders.browseByFolder\n const browseByFolderSlugs =\n (isBrowseByFolderEnabled &&\n config.collections.reduce((acc, { slug, folders }) => {\n if (folders && folders.browseByFolder) {\n return [...acc, slug]\n }\n return acc\n }, [])) ||\n []\n\n const viewActions: CustomComponent[] = [...(config?.admin?.components?.actions || [])]\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: DashboardView,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n viewType = 'dashboard'\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewKey: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewKey = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n // Check if a custom view is configured for this viewKey\n // First try to get custom view by the known viewKey, then fallback to route matching\n const customView =\n (viewKey && getCustomViewByKey({ config, viewKey })) ||\n getCustomViewByRoute({ config, currentRoute })\n\n if (customView?.view?.payloadComponent || customView?.view?.Component) {\n // User has configured a custom view (either overriding a built-in or a new custom view)\n ViewToRender = customView.view\n\n // If this custom view is overriding a built-in view (viewKey matches a built-in),\n // use the built-in's template settings and viewType\n if (viewKey && oneSegmentViews[viewKey]) {\n viewType = viewKey as ViewTypes\n templateClassName = baseClasses[viewKey] || viewKey\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n templateType = 'default'\n }\n\n if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {\n templateType = 'default'\n viewType = 'folders'\n }\n }\n } else if (oneSegmentViews[viewKey]) {\n // --> /account\n // --> /create-first-user\n // --> /browse-by-folder\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewKey],\n }\n\n viewType = viewKey as ViewTypes\n\n templateClassName = baseClasses[viewKey]\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n templateType = 'default'\n }\n\n if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {\n templateType = 'default'\n viewType = 'folders'\n }\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n viewType = 'reset'\n } else if (\n isBrowseByFolderEnabled &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n routeParams.folderID = segmentTwo\n\n ViewToRender = {\n Component: oneSegmentViews.browseByFolder,\n }\n templateClassName = baseClasses.folders\n templateType = 'default'\n viewType = 'folders'\n } else if (collectionConfig) {\n // --> /collections/:collectionSlug'\n routeParams.collection = collectionConfig.slug\n\n if (\n collectionPreferences?.listViewType &&\n collectionPreferences.listViewType === 'folders'\n ) {\n // Render folder view by default if set in preferences\n ViewToRender = {\n Component: CollectionFolderView,\n }\n\n templateClassName = `collection-folders`\n templateType = 'default'\n viewType = 'collection-folders'\n } else {\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n viewType = 'list'\n }\n\n viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []))\n } else if (globalConfig) {\n // --> /globals/:globalSlug\n routeParams.global = globalConfig.slug\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n viewType = 'document'\n\n // add default view actions\n viewActions.push(\n ...getViewActions({\n editConfig: globalConfig.admin?.components?.views?.edit,\n viewKey: 'default',\n }),\n )\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n routeParams.collection = segmentOne\n routeParams.token = segmentThree\n\n ViewToRender = {\n Component: Verify,\n }\n\n templateClassName = 'verify'\n templateType = 'minimal'\n viewType = 'verify'\n } else if (collectionConfig) {\n routeParams.collection = collectionConfig.slug\n\n if (segmentThree === 'trash' && typeof segmentFour === 'string') {\n // --> /collections/:collectionSlug/trash/:id (read-only)\n // --> /collections/:collectionSlug/trash/:id/api\n // --> /collections/:collectionSlug/trash/:id/preview\n // --> /collections/:collectionSlug/trash/:id/versions\n // --> /collections/:collectionSlug/trash/:id/versions/:versionID\n routeParams.id = segmentFour\n routeParams.versionID = segmentSix\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentFive, segmentSix])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n viewActions.push(\n ...getSubViewActions({\n collectionOrGlobal: collectionConfig,\n viewKeyArg: documentSubViewType,\n }),\n )\n } else if (segmentThree === 'trash') {\n // --> /collections/:collectionSlug/trash\n ViewToRender = {\n Component: TrashView,\n }\n\n templateClassName = `${segmentTwo}-trash`\n templateType = 'default'\n viewType = 'trash'\n\n viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []))\n } else {\n if (config.folders && segmentThree === config.folders.slug && collectionConfig.folders) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:folderID\n routeParams.folderCollection = segmentThree\n routeParams.folderID = segmentFour\n\n ViewToRender = {\n Component: CollectionFolderView,\n }\n\n templateClassName = `collection-folders`\n templateType = 'default'\n viewType = 'collection-folders'\n\n viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []))\n } else {\n // Collection Edit Views\n // --> /collections/:collectionSlug/create\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionID\n routeParams.id = segmentThree === 'create' ? undefined : segmentThree\n routeParams.versionID = segmentFive\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentFour, segmentFive])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n viewActions.push(\n ...getSubViewActions({\n collectionOrGlobal: collectionConfig,\n viewKeyArg: documentSubViewType,\n }),\n )\n }\n }\n } else if (globalConfig) {\n // Global Edit Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:versionID\n // --> /globals/:globalSlug/api\n routeParams.global = globalConfig.slug\n routeParams.versionID = segmentFour\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentThree, segmentFour])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n viewActions.push(\n ...getSubViewActions({\n collectionOrGlobal: globalConfig,\n viewKeyArg: documentSubViewType,\n }),\n )\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n if (collectionConfig) {\n if (routeParams.id) {\n routeParams.id = parseDocumentID({\n id: routeParams.id,\n collectionSlug: collectionConfig.slug,\n payload,\n })\n }\n\n if (routeParams.versionID) {\n routeParams.versionID = parseDocumentID({\n id: routeParams.versionID,\n collectionSlug: collectionConfig.slug,\n payload,\n })\n }\n }\n\n if (config.folders && routeParams.folderID) {\n routeParams.folderID = parseDocumentID({\n id: routeParams.folderID,\n collectionSlug: config.folders.slug,\n payload,\n })\n }\n\n if (globalConfig && routeParams.versionID) {\n routeParams.versionID =\n payload.db.defaultIDType === 'number' && isNumber(routeParams.versionID)\n ? Number(routeParams.versionID)\n : routeParams.versionID\n }\n\n if (viewActions.length) {\n viewActions.reverse()\n }\n\n return {\n browseByFolderSlugs,\n collectionConfig,\n DefaultView: ViewToRender,\n documentSubViewType,\n globalConfig,\n routeParams,\n templateClassName,\n templateType,\n viewActions: viewActions.length ? viewActions : undefined,\n viewType,\n }\n}\n"],"mappings":"AAeA,SAASA,eAAe,QAAQ;AAChC,SAASC,cAAc,EAAEC,QAAQ,QAAQ;AAEzC,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,SAAS,QAAQ;AAC1B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,SAASC,uBAAuB,EAAEC,kBAAkB,QAAQ;AAC5D,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,EAAEC,SAAS,QAAQ;AAC1C,SAASC,gBAAgB,EAAEC,UAAU,QAAQ;AAC7C,SAASC,aAAa,EAAEC,sBAAsB,QAAQ;AACtD,SAASC,gBAAgB,QAAQ;AACjC,SAASC,MAAM,EAAEC,eAAe,QAAQ;AACxC,SAASC,iBAAiB,EAAEC,cAAc,QAAQ;AAClD,SAASC,kBAAkB,QAAQ;AACnC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,mBAAmB,QAAQ;AAEpC,MAAMC,WAAA,GAAc;EAClBC,OAAA,EAAS;EACTC,OAAA,EAAS;EACTC,MAAA,EAAQrB,uBAAA;EACRsB,KAAA,EAAOnB,cAAA;EACPoB,KAAA,EAAOf,sBAAA;EACPgB,MAAA,EAAQb;AACV;AAWA,MAAMc,eAAA,GAAmC;EACvCN,OAAA,EAAS1B,WAAA;EACTiC,cAAA,EAAgBhC,cAAA;EAChBiC,eAAA,EAAiB9B,mBAAA;EACjBwB,MAAA,EAAQpB,kBAAA;EACR2B,UAAA,EAAYvB,gBAAA;EACZiB,KAAA,EAAOlB,SAAA;EACPyB,MAAA,EAAQvB,UAAA;EACRwB,YAAA,EAAcrB;AAChB;AA2CA,OAAO,MAAMsB,YAAA,GAAeA,CAAC;EAC3BC,UAAU;EACVC,gBAAgB;EAChBC,qBAAA,GAAwBC,SAAS;EACjCC,YAAY;EACZC,YAAY;EACZC,OAAO;EACPC;AAAQ,CACS;EACjB,MAAM;IAAEC;EAAM,CAAE,GAAGF,OAAA;EACnB,IAAIG,YAAA,GAA+B;EACnC,IAAIC,iBAAA;EACJ,IAAIC,YAAA;EACJ,IAAIC,mBAAA;EACJ,IAAIC,QAAA;EACJ,MAAMC,WAAA,GAAiD,CAAC;EAExD,MAAM,CAACC,UAAA,EAAYC,UAAA,EAAYC,YAAA,EAAcC,WAAA,EAAaC,WAAA,EAAaC,UAAA,CAAW,GAAGb,QAAA;EAErF,MAAMc,uBAAA,GAA0Bb,MAAA,CAAOpB,OAAO,IAAIoB,MAAA,CAAOpB,OAAO,CAACM,cAAc;EAC/E,MAAM4B,mBAAA,GACJD,uBAAC,IACCb,MAAA,CAAOe,WAAW,CAACC,MAAM,CAAC,CAACC,GAAA,EAAK;IAAEC,IAAI;IAAEtC;EAAO,CAAE;IAC/C,IAAIA,OAAA,IAAWA,OAAA,CAAQM,cAAc,EAAE;MACrC,OAAO,C,GAAI+B,GAAA,EAAKC,IAAA,CAAK;IACvB;IACA,OAAOD,GAAA;EACT,GAAG,EAAE,KACP,EAAE;EAEJ,MAAME,WAAA,GAAiC,C,IAAKnB,MAAA,EAAQoB,KAAA,EAAOC,UAAA,EAAYC,OAAA,IAAW,EAAE,EAAE;EAEtF,QAAQvB,QAAA,CAASwB,MAAM;IACrB,KAAK;MAAG;QACN,IAAI3B,YAAA,KAAiBJ,UAAA,EAAY;UAC/BS,YAAA,GAAe;YACbuB,SAAA,EAAWlE;UACb;UACA4C,iBAAA,GAAoB;UACpBC,YAAA,GAAe;UACfE,QAAA,GAAW;QACb;QACA;MACF;IACA,KAAK;MAAG;QACN;QACA;QACA,IAAIoB,OAAA;QAEJ,IAAIzB,MAAA,CAAOoB,KAAK,CAACM,MAAM,EAAE;UACvB,MAAMC,YAAA,GAAeC,MAAA,CAAOC,OAAO,CAAC7B,MAAA,CAAOoB,KAAK,CAACM,MAAM,EAAEI,IAAI,CAAC,CAAC,GAAGC,KAAA,CAAM;YACtE,OAAOtD,mBAAA,CAAoB;cACzBmB,YAAA;cACAoC,KAAA,EAAO;cACPC,IAAA,EAAMlF,cAAA,CAAe;gBAAEyC,UAAA;gBAAYyC,IAAA,EAAMF;cAAM;YACjD;UACF;UAEA,IAAIJ,YAAA,EAAc;YAChBF,OAAA,GAAUE,YAAY,CAAC,EAAE;UAC3B;QACF;QAEA;QACA;QACA,MAAMO,UAAA,GACJT,OAAC,IAAWnD,kBAAA,CAAmB;UAAE0B,MAAA;UAAQyB;QAAQ,MACjDlD,oBAAA,CAAqB;UAAEyB,MAAA;UAAQJ;QAAa;QAE9C,IAAIsC,UAAA,EAAYC,IAAA,EAAMC,gBAAA,IAAoBF,UAAA,EAAYC,IAAA,EAAMX,SAAA,EAAW;UACrE;UACAvB,YAAA,GAAeiC,UAAA,CAAWC,IAAI;UAE9B;UACA;UACA,IAAIV,OAAA,IAAWxC,eAAe,CAACwC,OAAA,CAAQ,EAAE;YACvCpB,QAAA,GAAWoB,OAAA;YACXvB,iBAAA,GAAoBxB,WAAW,CAAC+C,OAAA,CAAQ,IAAIA,OAAA;YAC5CtB,YAAA,GAAe;YAEf,IAAIsB,OAAA,KAAY,WAAW;cACzBtB,YAAA,GAAe;YACjB;YAEA,IAAIU,uBAAA,IAA2BY,OAAA,KAAY,kBAAkB;cAC3DtB,YAAA,GAAe;cACfE,QAAA,GAAW;YACb;UACF;QACF,OAAO,IAAIpB,eAAe,CAACwC,OAAA,CAAQ,EAAE;UACnC;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UAEAxB,YAAA,GAAe;YACbuB,SAAA,EAAWvC,eAAe,CAACwC,OAAA;UAC7B;UAEApB,QAAA,GAAWoB,OAAA;UAEXvB,iBAAA,GAAoBxB,WAAW,CAAC+C,OAAA,CAAQ;UACxCtB,YAAA,GAAe;UAEf,IAAIsB,OAAA,KAAY,WAAW;YACzBtB,YAAA,GAAe;UACjB;UAEA,IAAIU,uBAAA,IAA2BY,OAAA,KAAY,kBAAkB;YAC3DtB,YAAA,GAAe;YACfE,QAAA,GAAW;UACb;QACF;QACA;MACF;IACA,KAAK;MAAG;QACN,IAAI,IAAIE,UAAA,EAAY,KAAKP,MAAA,CAAOoB,KAAK,CAACM,MAAM,CAAC3C,KAAK,EAAE;UAClD;UACAkB,YAAA,GAAe;YACbuB,SAAA,EAAWzD;UACb;UACAmC,iBAAA,GAAoBxB,WAAW,CAAC8B,UAAA,CAAW;UAC3CL,YAAA,GAAe;UACfE,QAAA,GAAW;QACb,OAAO,IACLQ,uBAAA,IACA,IAAIN,UAAA,EAAY,KAAKP,MAAA,CAAOoB,KAAK,CAACM,MAAM,CAACxC,cAAc,EACvD;UACA;UACAoB,WAAA,CAAY+B,QAAQ,GAAG7B,UAAA;UAEvBP,YAAA,GAAe;YACbuB,SAAA,EAAWvC,eAAA,CAAgBC;UAC7B;UACAgB,iBAAA,GAAoBxB,WAAA,CAAYE,OAAO;UACvCuB,YAAA,GAAe;UACfE,QAAA,GAAW;QACb,OAAO,IAAIZ,gBAAA,EAAkB;UAC3B;UACAa,WAAA,CAAYgC,UAAU,GAAG7C,gBAAA,CAAiByB,IAAI;UAE9C,IACExB,qBAAA,EAAuB6C,YAAA,IACvB7C,qBAAA,CAAsB6C,YAAY,KAAK,WACvC;YACA;YACAtC,YAAA,GAAe;cACbuB,SAAA,EAAWrE;YACb;YAEA+C,iBAAA,GAAoB,oBAAoB;YACxCC,YAAA,GAAe;YACfE,QAAA,GAAW;UACb,OAAO;YACLJ,YAAA,GAAe;cACbuB,SAAA,EAAW9D;YACb;YAEAwC,iBAAA,GAAoB,GAAGM,UAAA,OAAiB;YACxCL,YAAA,GAAe;YACfE,QAAA,GAAW;UACb;UAEAc,WAAA,CAAYqB,IAAI,KAAK/C,gBAAA,CAAiB2B,KAAK,CAACC,UAAU,EAAEoB,KAAA,EAAOC,IAAA,EAAMpB,OAAA,IAAW,EAAE;QACpF,OAAO,IAAIzB,YAAA,EAAc;UACvB;UACAS,WAAA,CAAYqC,MAAM,GAAG9C,YAAA,CAAaqB,IAAI;UAEtCjB,YAAA,GAAe;YACbuB,SAAA,EAAWjE;UACb;UAEA2C,iBAAA,GAAoB;UACpBC,YAAA,GAAe;UACfE,QAAA,GAAW;UAEX;UACAc,WAAA,CAAYqB,IAAI,IACXnE,cAAA,CAAe;YAChBuE,UAAA,EAAY/C,YAAA,CAAauB,KAAK,EAAEC,UAAA,EAAYoB,KAAA,EAAOI,IAAA;YACnDpB,OAAA,EAAS;UACX;QAEJ;QACA;MACF;IACA;MACE,IAAIjB,UAAA,KAAe,UAAU;QAC3B;QACAF,WAAA,CAAYgC,UAAU,GAAG/B,UAAA;QACzBD,WAAA,CAAYwC,KAAK,GAAGrC,YAAA;QAEpBR,YAAA,GAAe;UACbuB,SAAA,EAAWtD;QACb;QAEAgC,iBAAA,GAAoB;QACpBC,YAAA,GAAe;QACfE,QAAA,GAAW;MACb,OAAO,IAAIZ,gBAAA,EAAkB;QAC3Ba,WAAA,CAAYgC,UAAU,GAAG7C,gBAAA,CAAiByB,IAAI;QAE9C,IAAIT,YAAA,KAAiB,WAAW,OAAOC,WAAA,KAAgB,UAAU;UAC/D;UACA;UACA;UACA;UACA;UACAJ,WAAA,CAAYyC,EAAE,GAAGrC,WAAA;UACjBJ,WAAA,CAAY0C,SAAS,GAAGpC,UAAA;UAExBX,YAAA,GAAe;YACbuB,SAAA,EAAWjE;UACb;UAEA2C,iBAAA,GAAoB,yBAAyB;UAC7CC,YAAA,GAAe;UAEf,MAAM8C,QAAA,GAAWzE,mBAAA,CAAoB,CAACmC,WAAA,EAAaC,UAAA,CAAW;UAC9DP,QAAA,GAAW4C,QAAA,CAAS5C,QAAQ;UAC5BD,mBAAA,GAAsB6C,QAAA,CAAS7C,mBAAmB;UAElDe,WAAA,CAAYqB,IAAI,IACXpE,iBAAA,CAAkB;YACnB8E,kBAAA,EAAoBzD,gBAAA;YACpB0D,UAAA,EAAY/C;UACd;QAEJ,OAAO,IAAIK,YAAA,KAAiB,SAAS;UACnC;UACAR,YAAA,GAAe;YACbuB,SAAA,EAAWpE;UACb;UAEA8C,iBAAA,GAAoB,GAAGM,UAAA,QAAkB;UACzCL,YAAA,GAAe;UACfE,QAAA,GAAW;UAEXc,WAAA,CAAYqB,IAAI,KAAK/C,gBAAA,CAAiB2B,KAAK,CAACC,UAAU,EAAEoB,KAAA,EAAOC,IAAA,EAAMpB,OAAA,IAAW,EAAE;QACpF,OAAO;UACL,IAAItB,MAAA,CAAOpB,OAAO,IAAI6B,YAAA,KAAiBT,MAAA,CAAOpB,OAAO,CAACsC,IAAI,IAAIzB,gBAAA,CAAiBb,OAAO,EAAE;YACtF;YACA;YACA;YACA0B,WAAA,CAAY8C,gBAAgB,GAAG3C,YAAA;YAC/BH,WAAA,CAAY+B,QAAQ,GAAG3B,WAAA;YAEvBT,YAAA,GAAe;cACbuB,SAAA,EAAWrE;YACb;YAEA+C,iBAAA,GAAoB,oBAAoB;YACxCC,YAAA,GAAe;YACfE,QAAA,GAAW;YAEXc,WAAA,CAAYqB,IAAI,KAAK/C,gBAAA,CAAiB2B,KAAK,CAACC,UAAU,EAAEoB,KAAA,EAAOC,IAAA,EAAMpB,OAAA,IAAW,EAAE;UACpF,OAAO;YACL;YACA;YACA;YACA;YACA;YACA;YACAhB,WAAA,CAAYyC,EAAE,GAAGtC,YAAA,KAAiB,WAAWd,SAAA,GAAYc,YAAA;YACzDH,WAAA,CAAY0C,SAAS,GAAGrC,WAAA;YAExBV,YAAA,GAAe;cACbuB,SAAA,EAAWjE;YACb;YAEA2C,iBAAA,GAAoB,yBAAyB;YAC7CC,YAAA,GAAe;YAEf,MAAM8C,QAAA,GAAWzE,mBAAA,CAAoB,CAACkC,WAAA,EAAaC,WAAA,CAAY;YAC/DN,QAAA,GAAW4C,QAAA,CAAS5C,QAAQ;YAC5BD,mBAAA,GAAsB6C,QAAA,CAAS7C,mBAAmB;YAElDe,WAAA,CAAYqB,IAAI,IACXpE,iBAAA,CAAkB;cACnB8E,kBAAA,EAAoBzD,gBAAA;cACpB0D,UAAA,EAAY/C;YACd;UAEJ;QACF;MACF,OAAO,IAAIP,YAAA,EAAc;QACvB;QACA;QACA;QACA;QACAS,WAAA,CAAYqC,MAAM,GAAG9C,YAAA,CAAaqB,IAAI;QACtCZ,WAAA,CAAY0C,SAAS,GAAGtC,WAAA;QAExBT,YAAA,GAAe;UACbuB,SAAA,EAAWjE;QACb;QAEA2C,iBAAA,GAAoB,aAAa;QACjCC,YAAA,GAAe;QAEf,MAAM8C,QAAA,GAAWzE,mBAAA,CAAoB,CAACiC,YAAA,EAAcC,WAAA,CAAY;QAChEL,QAAA,GAAW4C,QAAA,CAAS5C,QAAQ;QAC5BD,mBAAA,GAAsB6C,QAAA,CAAS7C,mBAAmB;QAElDe,WAAA,CAAYqB,IAAI,IACXpE,iBAAA,CAAkB;UACnB8E,kBAAA,EAAoBrD,YAAA;UACpBsD,UAAA,EAAY/C;QACd;MAEJ;MACA;EACJ;EAEA,IAAI,CAACH,YAAA,EAAc;IACjBA,YAAA,GAAe1B,oBAAA,CAAqB;MAAEyB,MAAA;MAAQJ;IAAa,IAAIuC,IAAA;EACjE;EAEA,IAAI1C,gBAAA,EAAkB;IACpB,IAAIa,WAAA,CAAYyC,EAAE,EAAE;MAClBzC,WAAA,CAAYyC,EAAE,GAAGjG,eAAA,CAAgB;QAC/BiG,EAAA,EAAIzC,WAAA,CAAYyC,EAAE;QAClBM,cAAA,EAAgB5D,gBAAA,CAAiByB,IAAI;QACrCpB;MACF;IACF;IAEA,IAAIQ,WAAA,CAAY0C,SAAS,EAAE;MACzB1C,WAAA,CAAY0C,SAAS,GAAGlG,eAAA,CAAgB;QACtCiG,EAAA,EAAIzC,WAAA,CAAY0C,SAAS;QACzBK,cAAA,EAAgB5D,gBAAA,CAAiByB,IAAI;QACrCpB;MACF;IACF;EACF;EAEA,IAAIE,MAAA,CAAOpB,OAAO,IAAI0B,WAAA,CAAY+B,QAAQ,EAAE;IAC1C/B,WAAA,CAAY+B,QAAQ,GAAGvF,eAAA,CAAgB;MACrCiG,EAAA,EAAIzC,WAAA,CAAY+B,QAAQ;MACxBgB,cAAA,EAAgBrD,MAAA,CAAOpB,OAAO,CAACsC,IAAI;MACnCpB;IACF;EACF;EAEA,IAAID,YAAA,IAAgBS,WAAA,CAAY0C,SAAS,EAAE;IACzC1C,WAAA,CAAY0C,SAAS,GACnBlD,OAAA,CAAQwD,EAAE,CAACC,aAAa,KAAK,YAAYvG,QAAA,CAASsD,WAAA,CAAY0C,SAAS,IACnEQ,MAAA,CAAOlD,WAAA,CAAY0C,SAAS,IAC5B1C,WAAA,CAAY0C,SAAS;EAC7B;EAEA,IAAI7B,WAAA,CAAYI,MAAM,EAAE;IACtBJ,WAAA,CAAYsC,OAAO;EACrB;EAEA,OAAO;IACL3C,mBAAA;IACArB,gBAAA;IACAiE,WAAA,EAAazD,YAAA;IACbG,mBAAA;IACAP,YAAA;IACAS,WAAA;IACAJ,iBAAA;IACAC,YAAA;IACAgB,WAAA,EAAaA,WAAA,CAAYI,MAAM,GAAGJ,WAAA,GAAcxB,SAAA;IAChDU;EACF;AACF","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import { PageConfigProvider } from '@payloadcms/ui';
2
3
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
3
4
  import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
@@ -15,223 +16,284 @@ import { isCustomAdminView } from '../../utilities/isCustomAdminView.js';
15
16
  import { isPublicAdminRoute } from '../../utilities/isPublicAdminRoute.js';
16
17
  import { getCustomViewByRoute } from './getCustomViewByRoute.js';
17
18
  import { getRouteData } from './getRouteData.js';
18
- export const RootPage = async ({ config: configPromise, importMap, params: paramsPromise, searchParams: searchParamsPromise })=>{
19
- const config = await configPromise;
20
- const { admin: { routes: { createFirstUser: _createFirstUserRoute }, user: userSlug }, routes: { admin: adminRoute } } = config;
21
- const params = await paramsPromise;
22
- const currentRoute = formatAdminURL({
23
- adminRoute,
24
- path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null
25
- });
26
- const segments = Array.isArray(params.segments) ? params.segments : [];
27
- const isCollectionRoute = segments[0] === 'collections';
28
- const isGlobalRoute = segments[0] === 'globals';
29
- let collectionConfig = undefined;
30
- let globalConfig = undefined;
31
- const searchParams = await searchParamsPromise;
32
- // Redirect `${adminRoute}/collections` to `${adminRoute}`
33
- if (isCollectionRoute) {
34
- if (segments.length === 1) {
35
- const { viewKey } = getCustomViewByRoute({
36
- config,
37
- currentRoute: '/collections'
38
- });
39
- // Only redirect if there's NO custom view configured for /collections
40
- if (!viewKey) {
41
- redirect(adminRoute);
42
- }
43
- }
44
- if (segments[1]) {
45
- collectionConfig = config.collections.find(({ slug })=>slug === segments[1]);
46
- }
19
+ export const RootPage = async ({
20
+ config: configPromise,
21
+ importMap,
22
+ params: paramsPromise,
23
+ searchParams: searchParamsPromise
24
+ }) => {
25
+ const config = await configPromise;
26
+ const {
27
+ admin: {
28
+ routes: {
29
+ createFirstUser: _createFirstUserRoute
30
+ },
31
+ user: userSlug
32
+ },
33
+ routes: {
34
+ admin: adminRoute
47
35
  }
48
- // Redirect `${adminRoute}/globals` to `${adminRoute}`
49
- if (isGlobalRoute) {
50
- if (segments.length === 1) {
51
- const { viewKey } = getCustomViewByRoute({
52
- config,
53
- currentRoute: '/globals'
54
- });
55
- // Only redirect if there's NO custom view configured for /globals
56
- if (!viewKey) {
57
- redirect(adminRoute);
58
- }
59
- }
60
- if (segments[1]) {
61
- globalConfig = config.globals.find(({ slug })=>slug === segments[1]);
62
- }
36
+ } = config;
37
+ const params = await paramsPromise;
38
+ const currentRoute = formatAdminURL({
39
+ adminRoute,
40
+ path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null
41
+ });
42
+ const segments = Array.isArray(params.segments) ? params.segments : [];
43
+ const isCollectionRoute = segments[0] === 'collections';
44
+ const isGlobalRoute = segments[0] === 'globals';
45
+ let collectionConfig = undefined;
46
+ let globalConfig = undefined;
47
+ const searchParams = await searchParamsPromise;
48
+ // Redirect `${adminRoute}/collections` to `${adminRoute}`
49
+ if (isCollectionRoute) {
50
+ if (segments.length === 1) {
51
+ const {
52
+ viewKey
53
+ } = getCustomViewByRoute({
54
+ config,
55
+ currentRoute: '/collections'
56
+ });
57
+ // Only redirect if there's NO custom view configured for /collections
58
+ if (!viewKey) {
59
+ redirect(adminRoute);
60
+ }
63
61
  }
64
- if (isCollectionRoute && !collectionConfig || isGlobalRoute && !globalConfig) {
65
- return notFound();
62
+ if (segments[1]) {
63
+ collectionConfig = config.collections.find(({
64
+ slug
65
+ }) => slug === segments[1]);
66
66
  }
67
- const queryString = `${qs.stringify(searchParams ?? {}, {
68
- addQueryPrefix: true
69
- })}`;
70
- const { cookies, locale, permissions, req, req: { payload } } = await initReq({
71
- configPromise: config,
72
- importMap,
73
- key: 'initPage',
74
- overrides: {
75
- fallbackLocale: false,
76
- req: {
77
- query: qs.parse(queryString, {
78
- depth: 10,
79
- ignoreQueryPrefix: true
80
- })
81
- },
82
- urlSuffix: `${currentRoute}${searchParams ? queryString : ''}`
83
- }
84
- });
85
- if (!permissions.canAccessAdmin && !isPublicAdminRoute({
86
- adminRoute,
87
- config: payload.config,
88
- route: currentRoute
89
- }) && !isCustomAdminView({
90
- adminRoute,
91
- config: payload.config,
92
- route: currentRoute
93
- })) {
94
- redirect(handleAuthRedirect({
95
- config: payload.config,
96
- route: currentRoute,
97
- searchParams,
98
- user: req.user
99
- }));
67
+ }
68
+ // Redirect `${adminRoute}/globals` to `${adminRoute}`
69
+ if (isGlobalRoute) {
70
+ if (segments.length === 1) {
71
+ const {
72
+ viewKey
73
+ } = getCustomViewByRoute({
74
+ config,
75
+ currentRoute: '/globals'
76
+ });
77
+ // Only redirect if there's NO custom view configured for /globals
78
+ if (!viewKey) {
79
+ redirect(adminRoute);
80
+ }
100
81
  }
101
- let collectionPreferences = undefined;
102
- if (collectionConfig && segments.length === 2) {
103
- if (config.folders && collectionConfig.folders && segments[1] !== config.folders.slug) {
104
- await getPreferences(`collection-${collectionConfig.slug}`, req.payload, req.user.id, config.admin.user).then((res)=>{
105
- if (res && res.value) {
106
- collectionPreferences = res.value;
107
- }
108
- });
109
- }
82
+ if (segments[1]) {
83
+ globalConfig = config.globals.find(({
84
+ slug
85
+ }) => slug === segments[1]);
110
86
  }
111
- const { browseByFolderSlugs, DefaultView, documentSubViewType, routeParams, templateClassName, templateType, viewActions, viewType } = getRouteData({
112
- adminRoute,
113
- collectionConfig,
114
- collectionPreferences,
115
- currentRoute,
116
- globalConfig,
117
- payload,
118
- searchParams,
119
- segments
120
- });
121
- req.routeParams = routeParams;
122
- const dbHasUser = req.user || await req.payload.db.findOne({
123
- collection: userSlug,
124
- req
125
- })?.then((doc)=>!!doc);
126
- /**
127
- * This function is responsible for handling the case where the view is not found.
128
- * The current route did not match any default views or custom route views.
129
- */ if (!DefaultView?.Component && !DefaultView?.payloadComponent) {
130
- if (req?.user) {
131
- notFound();
132
- }
133
- if (dbHasUser) {
134
- redirect(adminRoute);
135
- }
87
+ }
88
+ if (isCollectionRoute && !collectionConfig || isGlobalRoute && !globalConfig) {
89
+ return notFound();
90
+ }
91
+ const queryString = `${qs.stringify(searchParams ?? {}, {
92
+ addQueryPrefix: true
93
+ })}`;
94
+ const {
95
+ cookies,
96
+ locale,
97
+ permissions,
98
+ req,
99
+ req: {
100
+ payload
136
101
  }
137
- const createFirstUserRoute = formatAdminURL({
138
- adminRoute,
139
- path: _createFirstUserRoute
140
- });
141
- const usersCollection = config.collections.find(({ slug })=>slug === userSlug);
142
- const disableLocalStrategy = usersCollection?.auth?.disableLocalStrategy;
143
- if (disableLocalStrategy && currentRoute === createFirstUserRoute) {
144
- redirect(adminRoute);
102
+ } = await initReq({
103
+ configPromise: config,
104
+ importMap,
105
+ key: 'initPage',
106
+ overrides: {
107
+ fallbackLocale: false,
108
+ req: {
109
+ query: qs.parse(queryString, {
110
+ depth: 10,
111
+ ignoreQueryPrefix: true
112
+ })
113
+ },
114
+ urlSuffix: `${currentRoute}${searchParams ? queryString : ''}`
145
115
  }
146
- if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {
147
- redirect(createFirstUserRoute);
116
+ });
117
+ if (!permissions.canAccessAdmin && !isPublicAdminRoute({
118
+ adminRoute,
119
+ config: payload.config,
120
+ route: currentRoute
121
+ }) && !isCustomAdminView({
122
+ adminRoute,
123
+ config: payload.config,
124
+ route: currentRoute
125
+ })) {
126
+ redirect(handleAuthRedirect({
127
+ config: payload.config,
128
+ route: currentRoute,
129
+ searchParams,
130
+ user: req.user
131
+ }));
132
+ }
133
+ let collectionPreferences = undefined;
134
+ if (collectionConfig && segments.length === 2) {
135
+ if (config.folders && collectionConfig.folders && segments[1] !== config.folders.slug) {
136
+ await getPreferences(`collection-${collectionConfig.slug}`, req.payload, req.user.id, config.admin.user).then(res => {
137
+ if (res && res.value) {
138
+ collectionPreferences = res.value;
139
+ }
140
+ });
148
141
  }
149
- if (dbHasUser && currentRoute === createFirstUserRoute) {
150
- redirect(adminRoute);
142
+ }
143
+ const {
144
+ browseByFolderSlugs,
145
+ DefaultView,
146
+ documentSubViewType,
147
+ routeParams,
148
+ templateClassName,
149
+ templateType,
150
+ viewActions,
151
+ viewType
152
+ } = getRouteData({
153
+ adminRoute,
154
+ collectionConfig,
155
+ collectionPreferences,
156
+ currentRoute,
157
+ globalConfig,
158
+ payload,
159
+ searchParams,
160
+ segments
161
+ });
162
+ req.routeParams = routeParams;
163
+ const dbHasUser = req.user || (await req.payload.db.findOne({
164
+ collection: userSlug,
165
+ req
166
+ })?.then(doc => !!doc));
167
+ /**
168
+ * This function is responsible for handling the case where the view is not found.
169
+ * The current route did not match any default views or custom route views.
170
+ */
171
+ if (!DefaultView?.Component && !DefaultView?.payloadComponent) {
172
+ if (req?.user) {
173
+ notFound();
151
174
  }
152
- if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {
153
- redirect(adminRoute);
175
+ if (dbHasUser) {
176
+ redirect(adminRoute);
154
177
  }
155
- const clientConfig = getClientConfig({
156
- config,
157
- i18n: req.i18n,
158
- importMap,
159
- user: viewType === 'createFirstUser' ? true : req.user
160
- });
161
- await applyLocaleFiltering({
162
- clientConfig,
163
- config,
164
- req
165
- });
166
- // Ensure locale on req is still valid after filtering locales
167
- if (clientConfig.localization && req.locale && !clientConfig.localization.localeCodes.includes(req.locale)) {
168
- redirect(`${currentRoute}${qs.stringify({
169
- ...searchParams,
170
- locale: clientConfig.localization.localeCodes.includes(clientConfig.localization.defaultLocale) ? clientConfig.localization.defaultLocale : clientConfig.localization.localeCodes[0]
171
- }, {
172
- addQueryPrefix: true
173
- })}`);
178
+ }
179
+ const createFirstUserRoute = formatAdminURL({
180
+ adminRoute,
181
+ path: _createFirstUserRoute
182
+ });
183
+ const usersCollection = config.collections.find(({
184
+ slug
185
+ }) => slug === userSlug);
186
+ const disableLocalStrategy = usersCollection?.auth?.disableLocalStrategy;
187
+ if (disableLocalStrategy && currentRoute === createFirstUserRoute) {
188
+ redirect(adminRoute);
189
+ }
190
+ if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {
191
+ redirect(createFirstUserRoute);
192
+ }
193
+ if (dbHasUser && currentRoute === createFirstUserRoute) {
194
+ redirect(adminRoute);
195
+ }
196
+ if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {
197
+ redirect(adminRoute);
198
+ }
199
+ const clientConfig = getClientConfig({
200
+ config,
201
+ i18n: req.i18n,
202
+ importMap,
203
+ user: viewType === 'createFirstUser' ? true : req.user
204
+ });
205
+ await applyLocaleFiltering({
206
+ clientConfig,
207
+ config,
208
+ req
209
+ });
210
+ // Ensure locale on req is still valid after filtering locales
211
+ if (clientConfig.localization && req.locale && !clientConfig.localization.localeCodes.includes(req.locale)) {
212
+ redirect(`${currentRoute}${qs.stringify({
213
+ ...searchParams,
214
+ locale: clientConfig.localization.localeCodes.includes(clientConfig.localization.defaultLocale) ? clientConfig.localization.defaultLocale : clientConfig.localization.localeCodes[0]
215
+ }, {
216
+ addQueryPrefix: true
217
+ })}`);
218
+ }
219
+ const visibleEntities = getVisibleEntities({
220
+ req
221
+ });
222
+ const folderID = routeParams.folderID;
223
+ const RenderedView = RenderServerComponent({
224
+ clientProps: {
225
+ browseByFolderSlugs,
226
+ clientConfig,
227
+ documentSubViewType,
228
+ viewType
229
+ },
230
+ Component: DefaultView.payloadComponent,
231
+ Fallback: DefaultView.Component,
232
+ importMap,
233
+ serverProps: {
234
+ clientConfig,
235
+ collectionConfig,
236
+ docID: routeParams.id,
237
+ folderID,
238
+ globalConfig,
239
+ i18n: req.i18n,
240
+ importMap,
241
+ initPageResult: {
242
+ collectionConfig,
243
+ cookies,
244
+ docID: routeParams.id,
245
+ globalConfig,
246
+ languageOptions: Object.entries(req.payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
247
+ if (Object.keys(req.payload.config.i18n.supportedLanguages).includes(language)) {
248
+ acc.push({
249
+ label: languageConfig.translations.general.thisLanguage,
250
+ value: language
251
+ });
252
+ }
253
+ return acc;
254
+ }, []),
255
+ locale,
256
+ permissions,
257
+ req,
258
+ translations: req.i18n.translations,
259
+ visibleEntities
260
+ },
261
+ params,
262
+ payload: req.payload,
263
+ searchParams,
264
+ viewActions
174
265
  }
175
- const visibleEntities = getVisibleEntities({
176
- req
177
- });
178
- const folderID = routeParams.folderID;
179
- const RenderedView = RenderServerComponent({
180
- clientProps: {
181
- browseByFolderSlugs,
182
- clientConfig,
183
- documentSubViewType,
184
- viewType
185
- },
186
- Component: DefaultView.payloadComponent,
187
- Fallback: DefaultView.Component,
188
- importMap,
189
- serverProps: {
190
- clientConfig,
191
- collectionConfig,
192
- docID: routeParams.id,
193
- folderID,
194
- globalConfig,
195
- i18n: req.i18n,
196
- importMap,
197
- initPageResult: {
198
- collectionConfig,
199
- cookies,
200
- docID: routeParams.id,
201
- globalConfig,
202
- languageOptions: Object.entries(req.payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig])=>{
203
- if (Object.keys(req.payload.config.i18n.supportedLanguages).includes(language)) {
204
- acc.push({
205
- label: languageConfig.translations.general.thisLanguage,
206
- value: language
207
- });
208
- }
209
- return acc;
210
- }, []),
211
- locale,
212
- permissions,
213
- req,
214
- translations: req.i18n.translations,
215
- visibleEntities
216
- },
217
- params,
218
- payload: req.payload,
219
- searchParams,
220
- viewActions
221
- }
222
- });
223
- return <PageConfigProvider config={clientConfig}>
224
- {!templateType && <React.Fragment>{RenderedView}</React.Fragment>}
225
- {templateType === 'minimal' && <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>}
226
- {templateType === 'default' && <DefaultTemplate collectionSlug={collectionConfig?.slug} docID={routeParams.id} documentSubViewType={documentSubViewType} globalSlug={globalConfig?.slug} i18n={req.i18n} locale={locale} params={params} payload={req.payload} permissions={permissions} req={req} searchParams={searchParams} user={req.user} viewActions={viewActions} viewType={viewType} visibleEntities={{
266
+ });
267
+ return /*#__PURE__*/_jsxs(PageConfigProvider, {
268
+ config: clientConfig,
269
+ children: [!templateType && /*#__PURE__*/_jsx(React.Fragment, {
270
+ children: RenderedView
271
+ }), templateType === 'minimal' && /*#__PURE__*/_jsx(MinimalTemplate, {
272
+ className: templateClassName,
273
+ children: RenderedView
274
+ }), templateType === 'default' && /*#__PURE__*/_jsx(DefaultTemplate, {
275
+ collectionSlug: collectionConfig?.slug,
276
+ docID: routeParams.id,
277
+ documentSubViewType: documentSubViewType,
278
+ globalSlug: globalConfig?.slug,
279
+ i18n: req.i18n,
280
+ locale: locale,
281
+ params: params,
282
+ payload: req.payload,
283
+ permissions: permissions,
284
+ req: req,
285
+ searchParams: searchParams,
286
+ user: req.user,
287
+ viewActions: viewActions,
288
+ viewType: viewType,
289
+ visibleEntities: {
227
290
  // The reason we are not passing in initPageResult.visibleEntities directly is due to a "Cannot assign to read only property of object '#<Object>" error introduced in React 19
228
291
  // which this caused as soon as initPageResult.visibleEntities is passed in
229
292
  collections: visibleEntities?.collections,
230
293
  globals: visibleEntities?.globals
231
- }}>
232
- {RenderedView}
233
- </DefaultTemplate>}
234
- </PageConfigProvider>;
294
+ },
295
+ children: RenderedView
296
+ })]
297
+ });
235
298
  };
236
-
237
299
  //# sourceMappingURL=index.js.map