@ruya.sa/next 3.71.3

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 (406) hide show
  1. package/LICENSE.md +22 -0
  2. package/dist/auth/login.js +67 -0
  3. package/dist/auth/login.js.map +1 -0
  4. package/dist/auth/logout.js +52 -0
  5. package/dist/auth/logout.js.map +1 -0
  6. package/dist/auth/refresh.js +56 -0
  7. package/dist/auth/refresh.js.map +1 -0
  8. package/dist/config.js +2 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/dummy.css +0 -0
  11. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +19 -0
  12. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -0
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +81 -0
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -0
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +66 -0
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -0
  17. package/dist/elements/DocumentHeader/Tabs/index.js +78 -0
  18. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +29 -0
  20. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -0
  21. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +72 -0
  22. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -0
  23. package/dist/elements/DocumentHeader/index.js +36 -0
  24. package/dist/elements/DocumentHeader/index.js.map +1 -0
  25. package/dist/elements/FormHeader/index.js +20 -0
  26. package/dist/elements/FormHeader/index.js.map +1 -0
  27. package/dist/elements/Logo/index.js +39 -0
  28. package/dist/elements/Logo/index.js.map +1 -0
  29. package/dist/elements/Nav/NavHamburger/index.js +51 -0
  30. package/dist/elements/Nav/NavHamburger/index.js.map +1 -0
  31. package/dist/elements/Nav/NavWrapper/index.js +61 -0
  32. package/dist/elements/Nav/NavWrapper/index.js.map +1 -0
  33. package/dist/elements/Nav/SettingsMenuButton/index.js +45 -0
  34. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -0
  35. package/dist/elements/Nav/getNavPrefs.js +26 -0
  36. package/dist/elements/Nav/getNavPrefs.js.map +1 -0
  37. package/dist/elements/Nav/index.client.js +133 -0
  38. package/dist/elements/Nav/index.client.js.map +1 -0
  39. package/dist/elements/Nav/index.js +145 -0
  40. package/dist/elements/Nav/index.js.map +1 -0
  41. package/dist/esbuildEntry.js +5 -0
  42. package/dist/esbuildEntry.js.map +1 -0
  43. package/dist/exports/auth.js +4 -0
  44. package/dist/exports/auth.js.map +1 -0
  45. package/dist/exports/client.js +6 -0
  46. package/dist/exports/client.js.map +1 -0
  47. package/dist/exports/layouts.js +3 -0
  48. package/dist/exports/layouts.js.map +1 -0
  49. package/dist/exports/routes.js +3 -0
  50. package/dist/exports/routes.js.map +1 -0
  51. package/dist/exports/rsc.js +4 -0
  52. package/dist/exports/rsc.js.map +1 -0
  53. package/dist/exports/templates.js +3 -0
  54. package/dist/exports/templates.js.map +1 -0
  55. package/dist/exports/utilities.js +53 -0
  56. package/dist/exports/utilities.js.map +1 -0
  57. package/dist/exports/views.js +10 -0
  58. package/dist/exports/views.js.map +1 -0
  59. package/dist/index.js +2 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/layouts/Root/NestProviders.js +24 -0
  62. package/dist/layouts/Root/NestProviders.js.map +1 -0
  63. package/dist/layouts/Root/checkDependencies.js +49 -0
  64. package/dist/layouts/Root/checkDependencies.js.map +1 -0
  65. package/dist/layouts/Root/index.js +120 -0
  66. package/dist/layouts/Root/index.js.map +1 -0
  67. package/dist/routes/graphql/handler.js +137 -0
  68. package/dist/routes/graphql/handler.js.map +1 -0
  69. package/dist/routes/graphql/index.js +3 -0
  70. package/dist/routes/graphql/index.js.map +1 -0
  71. package/dist/routes/graphql/playground.js +31 -0
  72. package/dist/routes/graphql/playground.js.map +1 -0
  73. package/dist/routes/index.js +3 -0
  74. package/dist/routes/index.js.map +1 -0
  75. package/dist/routes/rest/index.js +33 -0
  76. package/dist/routes/rest/index.js.map +1 -0
  77. package/dist/routes/rest/og/image.js +86 -0
  78. package/dist/routes/rest/og/image.js.map +1 -0
  79. package/dist/routes/rest/og/index.js +70 -0
  80. package/dist/routes/rest/og/index.js.map +1 -0
  81. package/dist/routes/rest/og/roboto-regular.woff +0 -0
  82. package/dist/templates/Default/NavHamburger/index.js +25 -0
  83. package/dist/templates/Default/NavHamburger/index.js.map +1 -0
  84. package/dist/templates/Default/Wrapper/index.js +49 -0
  85. package/dist/templates/Default/Wrapper/index.js.map +1 -0
  86. package/dist/templates/Default/index.js +129 -0
  87. package/dist/templates/Default/index.js.map +1 -0
  88. package/dist/templates/Minimal/index.js +21 -0
  89. package/dist/templates/Minimal/index.js.map +1 -0
  90. package/dist/utilities/getExistingAuthToken.js +6 -0
  91. package/dist/utilities/getExistingAuthToken.js.map +1 -0
  92. package/dist/utilities/getNextRequestI18n.js +22 -0
  93. package/dist/utilities/getNextRequestI18n.js.map +1 -0
  94. package/dist/utilities/getPayloadHMR.js +15 -0
  95. package/dist/utilities/getPayloadHMR.js.map +1 -0
  96. package/dist/utilities/getPreferences.js +26 -0
  97. package/dist/utilities/getPreferences.js.map +1 -0
  98. package/dist/utilities/getRequestLocale.js +20 -0
  99. package/dist/utilities/getRequestLocale.js.map +1 -0
  100. package/dist/utilities/getRequestTheme.js +22 -0
  101. package/dist/utilities/getRequestTheme.js.map +1 -0
  102. package/dist/utilities/getRouteWithoutAdmin.js +7 -0
  103. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -0
  104. package/dist/utilities/handleAuthRedirect.js +41 -0
  105. package/dist/utilities/handleAuthRedirect.js.map +1 -0
  106. package/dist/utilities/handleServerFunctions.js +57 -0
  107. package/dist/utilities/handleServerFunctions.js.map +1 -0
  108. package/dist/utilities/initReq.js +110 -0
  109. package/dist/utilities/initReq.js.map +1 -0
  110. package/dist/utilities/isCustomAdminView.js +31 -0
  111. package/dist/utilities/isCustomAdminView.js.map +1 -0
  112. package/dist/utilities/isPublicAdminRoute.js +25 -0
  113. package/dist/utilities/isPublicAdminRoute.js.map +1 -0
  114. package/dist/utilities/meta.js +69 -0
  115. package/dist/utilities/meta.js.map +1 -0
  116. package/dist/utilities/selectiveCache.js +38 -0
  117. package/dist/utilities/selectiveCache.js.map +1 -0
  118. package/dist/utilities/setPayloadAuthCookie.js +27 -0
  119. package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
  120. package/dist/utilities/slugify.js +47 -0
  121. package/dist/utilities/slugify.js.map +1 -0
  122. package/dist/utilities/timestamp.js +8 -0
  123. package/dist/utilities/timestamp.js.map +1 -0
  124. package/dist/views/API/LocaleSelector/index.js +44 -0
  125. package/dist/views/API/LocaleSelector/index.js.map +1 -0
  126. package/dist/views/API/RenderJSON/index.js +135 -0
  127. package/dist/views/API/RenderJSON/index.js.map +1 -0
  128. package/dist/views/API/index.client.js +209 -0
  129. package/dist/views/API/index.client.js.map +1 -0
  130. package/dist/views/API/index.js +7 -0
  131. package/dist/views/API/index.js.map +1 -0
  132. package/dist/views/API/metadata.js +29 -0
  133. package/dist/views/API/metadata.js.map +1 -0
  134. package/dist/views/Account/ResetPreferences/index.js +112 -0
  135. package/dist/views/Account/ResetPreferences/index.js.map +1 -0
  136. package/dist/views/Account/Settings/LanguageSelector.js +52 -0
  137. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -0
  138. package/dist/views/Account/Settings/index.js +33 -0
  139. package/dist/views/Account/Settings/index.js.map +1 -0
  140. package/dist/views/Account/ToggleTheme/index.js +60 -0
  141. package/dist/views/Account/ToggleTheme/index.js.map +1 -0
  142. package/dist/views/Account/index.client.js +37 -0
  143. package/dist/views/Account/index.client.js.map +1 -0
  144. package/dist/views/Account/index.js +178 -0
  145. package/dist/views/Account/index.js.map +1 -0
  146. package/dist/views/Account/metadata.js +14 -0
  147. package/dist/views/Account/metadata.js.map +1 -0
  148. package/dist/views/BrowseByFolder/buildView.js +169 -0
  149. package/dist/views/BrowseByFolder/buildView.js.map +1 -0
  150. package/dist/views/BrowseByFolder/index.js +20 -0
  151. package/dist/views/BrowseByFolder/index.js.map +1 -0
  152. package/dist/views/BrowseByFolder/metadata.js +18 -0
  153. package/dist/views/BrowseByFolder/metadata.js.map +1 -0
  154. package/dist/views/CollectionFolders/buildView.js +156 -0
  155. package/dist/views/CollectionFolders/buildView.js.map +1 -0
  156. package/dist/views/CollectionFolders/index.js +20 -0
  157. package/dist/views/CollectionFolders/index.js.map +1 -0
  158. package/dist/views/CollectionFolders/metadata.js +25 -0
  159. package/dist/views/CollectionFolders/metadata.js.map +1 -0
  160. package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
  161. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
  162. package/dist/views/CollectionTrash/index.js +21 -0
  163. package/dist/views/CollectionTrash/index.js.map +1 -0
  164. package/dist/views/CollectionTrash/metadata.js +25 -0
  165. package/dist/views/CollectionTrash/metadata.js.map +1 -0
  166. package/dist/views/CreateFirstUser/index.client.js +112 -0
  167. package/dist/views/CreateFirstUser/index.client.js.map +1 -0
  168. package/dist/views/CreateFirstUser/index.js +88 -0
  169. package/dist/views/CreateFirstUser/index.js.map +1 -0
  170. package/dist/views/CreateFirstUser/metadata.js +14 -0
  171. package/dist/views/CreateFirstUser/metadata.js.map +1 -0
  172. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +147 -0
  173. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -0
  174. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +431 -0
  175. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -0
  176. package/dist/views/Dashboard/Default/ModularDashboard/index.js +87 -0
  177. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -0
  178. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +99 -0
  179. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -0
  180. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +58 -0
  181. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -0
  182. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +72 -0
  183. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -0
  184. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +158 -0
  185. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -0
  186. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +38 -0
  187. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -0
  188. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +264 -0
  189. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -0
  190. package/dist/views/Dashboard/Default/index.js +52 -0
  191. package/dist/views/Dashboard/Default/index.js.map +1 -0
  192. package/dist/views/Dashboard/index.js +50 -0
  193. package/dist/views/Dashboard/index.js.map +1 -0
  194. package/dist/views/Dashboard/metadata.js +16 -0
  195. package/dist/views/Dashboard/metadata.js.map +1 -0
  196. package/dist/views/Document/getCustomDocumentViewByKey.js +4 -0
  197. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -0
  198. package/dist/views/Document/getCustomViewByRoute.js +35 -0
  199. package/dist/views/Document/getCustomViewByRoute.js.map +1 -0
  200. package/dist/views/Document/getDocPreferences.js +45 -0
  201. package/dist/views/Document/getDocPreferences.js.map +1 -0
  202. package/dist/views/Document/getDocumentData.js +60 -0
  203. package/dist/views/Document/getDocumentData.js.map +1 -0
  204. package/dist/views/Document/getDocumentPermissions.js +87 -0
  205. package/dist/views/Document/getDocumentPermissions.js.map +1 -0
  206. package/dist/views/Document/getDocumentView.js +310 -0
  207. package/dist/views/Document/getDocumentView.js.map +1 -0
  208. package/dist/views/Document/getIsLocked.js +79 -0
  209. package/dist/views/Document/getIsLocked.js.map +1 -0
  210. package/dist/views/Document/getMetaBySegment.js +150 -0
  211. package/dist/views/Document/getMetaBySegment.js.map +1 -0
  212. package/dist/views/Document/getVersions.js +210 -0
  213. package/dist/views/Document/getVersions.js.map +1 -0
  214. package/dist/views/Document/handleServerFunction.js +135 -0
  215. package/dist/views/Document/handleServerFunction.js.map +1 -0
  216. package/dist/views/Document/index.js +390 -0
  217. package/dist/views/Document/index.js.map +1 -0
  218. package/dist/views/Document/metadata.js +3 -0
  219. package/dist/views/Document/metadata.js.map +1 -0
  220. package/dist/views/Document/renderDocumentSlots.js +154 -0
  221. package/dist/views/Document/renderDocumentSlots.js.map +1 -0
  222. package/dist/views/Edit/index.js +11 -0
  223. package/dist/views/Edit/index.js.map +1 -0
  224. package/dist/views/Edit/metadata.js +52 -0
  225. package/dist/views/Edit/metadata.js.map +1 -0
  226. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +179 -0
  227. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -0
  228. package/dist/views/ForgotPassword/index.js +72 -0
  229. package/dist/views/ForgotPassword/index.js.map +1 -0
  230. package/dist/views/ForgotPassword/metadata.js +14 -0
  231. package/dist/views/ForgotPassword/metadata.js.map +1 -0
  232. package/dist/views/List/createSerializableValue.js +14 -0
  233. package/dist/views/List/createSerializableValue.js.map +1 -0
  234. package/dist/views/List/enrichDocsWithVersionStatus.js +96 -0
  235. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -0
  236. package/dist/views/List/extractRelationshipDisplayValue.js +17 -0
  237. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -0
  238. package/dist/views/List/extractValueOrRelationshipID.js +19 -0
  239. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -0
  240. package/dist/views/List/handleGroupBy.js +160 -0
  241. package/dist/views/List/handleGroupBy.js.map +1 -0
  242. package/dist/views/List/handleServerFunction.js +130 -0
  243. package/dist/views/List/handleServerFunction.js.map +1 -0
  244. package/dist/views/List/index.js +356 -0
  245. package/dist/views/List/index.js.map +1 -0
  246. package/dist/views/List/metadata.js +24 -0
  247. package/dist/views/List/metadata.js.map +1 -0
  248. package/dist/views/List/renderListViewSlots.js +80 -0
  249. package/dist/views/List/renderListViewSlots.js.map +1 -0
  250. package/dist/views/List/resolveAllFilterOptions.js +49 -0
  251. package/dist/views/List/resolveAllFilterOptions.js.map +1 -0
  252. package/dist/views/List/transformColumnsToSelect.js +11 -0
  253. package/dist/views/List/transformColumnsToSelect.js.map +1 -0
  254. package/dist/views/Login/LoginField/index.js +98 -0
  255. package/dist/views/Login/LoginField/index.js.map +1 -0
  256. package/dist/views/Login/LoginForm/index.js +177 -0
  257. package/dist/views/Login/LoginForm/index.js.map +1 -0
  258. package/dist/views/Login/index.js +95 -0
  259. package/dist/views/Login/index.js.map +1 -0
  260. package/dist/views/Login/metadata.js +14 -0
  261. package/dist/views/Login/metadata.js.map +1 -0
  262. package/dist/views/Logout/LogoutClient.js +140 -0
  263. package/dist/views/Logout/LogoutClient.js.map +1 -0
  264. package/dist/views/Logout/index.js +36 -0
  265. package/dist/views/Logout/index.js.map +1 -0
  266. package/dist/views/Logout/metadata.js +13 -0
  267. package/dist/views/Logout/metadata.js.map +1 -0
  268. package/dist/views/NotFound/index.client.js +88 -0
  269. package/dist/views/NotFound/index.client.js.map +1 -0
  270. package/dist/views/NotFound/index.js +87 -0
  271. package/dist/views/NotFound/index.js.map +1 -0
  272. package/dist/views/NotFound/metadata.js +11 -0
  273. package/dist/views/NotFound/metadata.js.map +1 -0
  274. package/dist/views/ResetPassword/ResetPasswordForm/index.js +117 -0
  275. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  276. package/dist/views/ResetPassword/index.js +83 -0
  277. package/dist/views/ResetPassword/index.js.map +1 -0
  278. package/dist/views/ResetPassword/metadata.js +14 -0
  279. package/dist/views/ResetPassword/metadata.js.map +1 -0
  280. package/dist/views/Root/attachViewActions.js +27 -0
  281. package/dist/views/Root/attachViewActions.js.map +1 -0
  282. package/dist/views/Root/generateCustomViewMetadata.js +25 -0
  283. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
  284. package/dist/views/Root/getCustomViewByKey.js +16 -0
  285. package/dist/views/Root/getCustomViewByKey.js.map +1 -0
  286. package/dist/views/Root/getCustomViewByRoute.js +48 -0
  287. package/dist/views/Root/getCustomViewByRoute.js.map +1 -0
  288. package/dist/views/Root/getDocumentViewInfo.js +28 -0
  289. package/dist/views/Root/getDocumentViewInfo.js.map +1 -0
  290. package/dist/views/Root/getRouteData.js +359 -0
  291. package/dist/views/Root/getRouteData.js.map +1 -0
  292. package/dist/views/Root/index.js +300 -0
  293. package/dist/views/Root/index.js.map +1 -0
  294. package/dist/views/Root/isPathMatchingRoute.js +29 -0
  295. package/dist/views/Root/isPathMatchingRoute.js.map +1 -0
  296. package/dist/views/Root/metadata.js +209 -0
  297. package/dist/views/Root/metadata.js.map +1 -0
  298. package/dist/views/Unauthorized/index.js +54 -0
  299. package/dist/views/Unauthorized/index.js.map +1 -0
  300. package/dist/views/Unauthorized/metadata.js +14 -0
  301. package/dist/views/Unauthorized/metadata.js.map +1 -0
  302. package/dist/views/Verify/index.client.js +50 -0
  303. package/dist/views/Verify/index.client.js.map +1 -0
  304. package/dist/views/Verify/index.js +71 -0
  305. package/dist/views/Verify/index.js.map +1 -0
  306. package/dist/views/Verify/metadata.js +14 -0
  307. package/dist/views/Verify/metadata.js.map +1 -0
  308. package/dist/views/Version/Default/SelectedLocalesContext.js +8 -0
  309. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -0
  310. package/dist/views/Version/Default/SetStepNav.js +135 -0
  311. package/dist/views/Version/Default/SetStepNav.js.map +1 -0
  312. package/dist/views/Version/Default/index.js +253 -0
  313. package/dist/views/Version/Default/index.js.map +1 -0
  314. package/dist/views/Version/Default/types.js +2 -0
  315. package/dist/views/Version/Default/types.js.map +1 -0
  316. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +130 -0
  317. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
  318. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +80 -0
  319. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -0
  320. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +439 -0
  321. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -0
  322. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +61 -0
  323. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
  324. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +75 -0
  325. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -0
  326. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +66 -0
  327. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
  328. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +129 -0
  329. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -0
  330. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +45 -0
  331. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -0
  332. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +188 -0
  333. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -0
  334. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -0
  335. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
  336. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +87 -0
  337. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -0
  338. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +155 -0
  339. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -0
  340. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +100 -0
  341. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -0
  342. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +222 -0
  343. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -0
  344. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +35 -0
  345. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -0
  346. package/dist/views/Version/RenderFieldsToDiff/index.js +13 -0
  347. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -0
  348. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +242 -0
  349. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
  350. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +861 -0
  351. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
  352. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
  353. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
  354. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +47 -0
  355. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
  356. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +45 -0
  357. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
  358. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +135 -0
  359. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
  360. package/dist/views/Version/Restore/index.js +106 -0
  361. package/dist/views/Version/Restore/index.js.map +1 -0
  362. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +56 -0
  363. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -0
  364. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +240 -0
  365. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -0
  366. package/dist/views/Version/SelectComparison/index.js +57 -0
  367. package/dist/views/Version/SelectComparison/index.js.map +1 -0
  368. package/dist/views/Version/SelectComparison/types.js +2 -0
  369. package/dist/views/Version/SelectComparison/types.js.map +1 -0
  370. package/dist/views/Version/SelectLocales/index.js +39 -0
  371. package/dist/views/Version/SelectLocales/index.js.map +1 -0
  372. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +110 -0
  373. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -0
  374. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +34 -0
  375. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -0
  376. package/dist/views/Version/fetchVersions.js +151 -0
  377. package/dist/views/Version/fetchVersions.js.map +1 -0
  378. package/dist/views/Version/index.js +349 -0
  379. package/dist/views/Version/index.js.map +1 -0
  380. package/dist/views/Version/metadata.js +58 -0
  381. package/dist/views/Version/metadata.js.map +1 -0
  382. package/dist/views/Versions/buildColumns.js +88 -0
  383. package/dist/views/Versions/buildColumns.js.map +1 -0
  384. package/dist/views/Versions/cells/AutosaveCell/index.js +45 -0
  385. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -0
  386. package/dist/views/Versions/cells/CreatedAt/index.js +60 -0
  387. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -0
  388. package/dist/views/Versions/cells/ID/index.js +12 -0
  389. package/dist/views/Versions/cells/ID/index.js.map +1 -0
  390. package/dist/views/Versions/index.client.js +89 -0
  391. package/dist/views/Versions/index.client.js.map +1 -0
  392. package/dist/views/Versions/index.js +157 -0
  393. package/dist/views/Versions/index.js.map +1 -0
  394. package/dist/views/Versions/metadata.js +51 -0
  395. package/dist/views/Versions/metadata.js.map +1 -0
  396. package/dist/views/Versions/types.js +2 -0
  397. package/dist/views/Versions/types.js.map +1 -0
  398. package/dist/withPayload/withPayload.js +162 -0
  399. package/dist/withPayload/withPayload.js.map +1 -0
  400. package/dist/withPayload/withPayload.spec.js +40 -0
  401. package/dist/withPayload/withPayload.spec.js.map +1 -0
  402. package/dist/withPayload/withPayload.utils.js +133 -0
  403. package/dist/withPayload/withPayload.utils.js.map +1 -0
  404. package/dist/withPayload/withPayloadLegacy.js +47 -0
  405. package/dist/withPayload/withPayloadLegacy.js.map +1 -0
  406. package/package.json +153 -0
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { FieldLabel } from '@ruya.sa/ui';
3
+ import React from 'react';
4
+ import { ResetPreferences } from '../ResetPreferences/index.js';
5
+ import { ToggleTheme } from '../ToggleTheme/index.js';
6
+ import { LanguageSelector } from './LanguageSelector.js';
7
+ const baseClass = 'payload-settings';
8
+ export const Settings = props => {
9
+ const {
10
+ className,
11
+ i18n,
12
+ languageOptions,
13
+ theme,
14
+ user
15
+ } = props;
16
+ return /*#__PURE__*/_jsxs("div", {
17
+ className: [baseClass, className].filter(Boolean).join(' '),
18
+ children: [/*#__PURE__*/_jsx("h3", {
19
+ children: i18n.t('general:payloadSettings')
20
+ }), /*#__PURE__*/_jsxs("div", {
21
+ className: `${baseClass}__language`,
22
+ children: [/*#__PURE__*/_jsx(FieldLabel, {
23
+ htmlFor: "language-select",
24
+ label: i18n.t('general:language')
25
+ }), /*#__PURE__*/_jsx(LanguageSelector, {
26
+ languageOptions: languageOptions
27
+ })]
28
+ }), theme === 'all' && /*#__PURE__*/_jsx(ToggleTheme, {}), /*#__PURE__*/_jsx(ResetPreferences, {
29
+ user: user
30
+ })]
31
+ });
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["FieldLabel","React","ResetPreferences","ToggleTheme","LanguageSelector","baseClass","Settings","props","className","i18n","languageOptions","theme","user","_jsxs","filter","Boolean","join","_jsx","t","htmlFor","label"],"sources":["../../../../src/views/Account/Settings/index.tsx"],"sourcesContent":["import type { I18n } from '@ruya.sa/translations'\nimport type { BasePayload, Config, LanguageOptions, TypedUser } from '@ruya.sa/payload'\n\nimport { FieldLabel } from '@ruya.sa/ui'\nimport React from 'react'\n\nimport { ResetPreferences } from '../ResetPreferences/index.js'\nimport './index.scss'\nimport { ToggleTheme } from '../ToggleTheme/index.js'\nimport { LanguageSelector } from './LanguageSelector.js'\n\nconst baseClass = 'payload-settings'\n\nexport const Settings: React.FC<{\n readonly className?: string\n readonly i18n: I18n\n readonly languageOptions: LanguageOptions\n readonly payload: BasePayload\n readonly theme: Config['admin']['theme']\n readonly user?: TypedUser\n}> = (props) => {\n const { className, i18n, languageOptions, theme, user } = props\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <h3>{i18n.t('general:payloadSettings')}</h3>\n <div className={`${baseClass}__language`}>\n <FieldLabel htmlFor=\"language-select\" label={i18n.t('general:language')} />\n <LanguageSelector languageOptions={languageOptions} />\n </div>\n {theme === 'all' && <ToggleTheme />}\n <ResetPreferences user={user} />\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AAEjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAOPC,KAAA;EACJ,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,eAAe;IAAEC,KAAK;IAAEC;EAAI,CAAE,GAAGL,KAAA;EAE1D,oBACEM,KAAA,CAAC;IAAIL,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACM,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;4BAC1DC,IAAA,CAAC;gBAAIR,IAAA,CAAKS,CAAC,CAAC;qBACZL,KAAA,CAAC;MAAIL,SAAA,EAAW,GAAGH,SAAA,YAAqB;8BACtCY,IAAA,CAACjB,UAAA;QAAWmB,OAAA,EAAQ;QAAkBC,KAAA,EAAOX,IAAA,CAAKS,CAAC,CAAC;uBACpDD,IAAA,CAACb,gBAAA;QAAiBM,eAAA,EAAiBA;;QAEpCC,KAAA,KAAU,sBAASM,IAAA,CAACd,WAAA,O,aACrBc,IAAA,CAACf,gBAAA;MAAiBU,IAAA,EAAMA;;;AAG9B","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { RadioGroupField, useTheme, useTranslation } from '@ruya.sa/ui';
6
+ import React, { useCallback } from 'react';
7
+ export const ToggleTheme = () => {
8
+ const $ = _c(7);
9
+ const {
10
+ autoMode,
11
+ setTheme,
12
+ theme
13
+ } = useTheme();
14
+ const {
15
+ t
16
+ } = useTranslation();
17
+ let t0;
18
+ if ($[0] !== setTheme) {
19
+ t0 = newTheme => {
20
+ setTheme(newTheme);
21
+ };
22
+ $[0] = setTheme;
23
+ $[1] = t0;
24
+ } else {
25
+ t0 = $[1];
26
+ }
27
+ const onChange = t0;
28
+ let t1;
29
+ if ($[2] !== autoMode || $[3] !== onChange || $[4] !== t || $[5] !== theme) {
30
+ t1 = _jsx(RadioGroupField, {
31
+ disableModifyingForm: true,
32
+ field: {
33
+ name: "theme",
34
+ label: t("general:adminTheme"),
35
+ options: [{
36
+ label: t("general:automatic"),
37
+ value: "auto"
38
+ }, {
39
+ label: t("general:light"),
40
+ value: "light"
41
+ }, {
42
+ label: t("general:dark"),
43
+ value: "dark"
44
+ }]
45
+ },
46
+ onChange,
47
+ path: "theme",
48
+ value: autoMode ? "auto" : theme
49
+ });
50
+ $[2] = autoMode;
51
+ $[3] = onChange;
52
+ $[4] = t;
53
+ $[5] = theme;
54
+ $[6] = t1;
55
+ } else {
56
+ t1 = $[6];
57
+ }
58
+ return t1;
59
+ };
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","RadioGroupField","useTheme","useTranslation","React","useCallback","ToggleTheme","$","autoMode","setTheme","theme","t","t0","newTheme","onChange","t1","_jsx","disableModifyingForm","field","name","label","options","value","path"],"sources":["../../../../src/views/Account/ToggleTheme/index.tsx"],"sourcesContent":["'use client'\n\nimport { RadioGroupField, useTheme, useTranslation } from '@ruya.sa/ui'\nimport React, { useCallback } from 'react'\n\nexport const ToggleTheme: React.FC = () => {\n const { autoMode, setTheme, theme } = useTheme()\n const { t } = useTranslation()\n\n const onChange = useCallback(\n (newTheme) => {\n setTheme(newTheme)\n },\n [setTheme],\n )\n\n return (\n <RadioGroupField\n disableModifyingForm={true}\n field={{\n name: 'theme',\n label: t('general:adminTheme'),\n options: [\n {\n label: t('general:automatic'),\n value: 'auto',\n },\n {\n label: t('general:light'),\n value: 'light',\n },\n {\n label: t('general:dark'),\n value: 'dark',\n },\n ],\n }}\n onChange={onChange}\n path=\"theme\"\n value={autoMode ? 'auto' : theme}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,eAAe,EAAEC,QAAQ,EAAEC,cAAc,QAAQ;AAC1D,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAEnC,OAAO,MAAMC,WAAA,GAAwBA,CAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACnC;IAAAQ,QAAA;IAAAC,QAAA;IAAAC;EAAA,IAAsCR,QAAA;EACtC;IAAAS;EAAA,IAAcR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAL,CAAA,QAAAE,QAAA;IAGZG,EAAA,GAAAC,QAAA;MACEJ,QAAA,CAASI,QAAA;IAAA;IACXN,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAHF,MAAAO,QAAA,GAAiBF,EAIL;EAAA,IAAAG,EAAA;EAAA,IAAAR,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAO,QAAA,IAAAP,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAG,KAAA;IAIVK,EAAA,GAAAC,IAAA,CAAAf,eAAA;MAAAgB,oBAAA;MAAAC,KAAA;QAAAC,IAAA,EAGU;QAAAC,KAAA,EACCT,CAAA,CAAE;QAAAU,OAAA;UAAAD,KAAA,EAGET,CAAA,CAAE;UAAAW,KAAA,EACF;QAAA;UAAAF,KAAA,EAGAT,CAAA,CAAE;UAAAW,KAAA,EACF;QAAA;UAAAF,KAAA,EAGAT,CAAA,CAAE;UAAAW,KAAA,EACF;QAAA;MAAA;MAAAR,QAAA;MAAAS,IAAA,EAKR;MAAAD,KAAA,EACEd,QAAA,GAAW,SAASE;IAAA,C;;;;;;;;;SAtB7BK,E;CAyBJ","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { useStepNav, useTranslation } from '@ruya.sa/ui';
5
+ import React from 'react';
6
+ export const AccountClient = () => {
7
+ const $ = _c(4);
8
+ const {
9
+ setStepNav
10
+ } = useStepNav();
11
+ const {
12
+ t
13
+ } = useTranslation();
14
+ let t0;
15
+ let t1;
16
+ if ($[0] !== setStepNav || $[1] !== t) {
17
+ t0 = () => {
18
+ const nav = [];
19
+ nav.push({
20
+ label: t("authentication:account"),
21
+ url: "/account"
22
+ });
23
+ setStepNav(nav);
24
+ };
25
+ t1 = [setStepNav, t];
26
+ $[0] = setStepNav;
27
+ $[1] = t;
28
+ $[2] = t0;
29
+ $[3] = t1;
30
+ } else {
31
+ t0 = $[2];
32
+ t1 = $[3];
33
+ }
34
+ React.useEffect(t0, t1);
35
+ return null;
36
+ };
37
+ //# sourceMappingURL=index.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.client.js","names":["c","_c","useStepNav","useTranslation","React","AccountClient","$","setStepNav","t","t0","t1","nav","push","label","url","useEffect"],"sources":["../../../src/views/Account/index.client.tsx"],"sourcesContent":["'use client'\nimport { type StepNavItem, useStepNav, useTranslation } from '@ruya.sa/ui'\nimport React from 'react'\n\nexport const AccountClient: React.FC = () => {\n const { setStepNav } = useStepNav()\n const { t } = useTranslation()\n\n React.useEffect(() => {\n const nav: StepNavItem[] = []\n\n nav.push({\n label: t('authentication:account'),\n url: '/account',\n })\n\n setStepNav(nav)\n }, [setStepNav, t])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAA2BC,UAAU,EAAEC,cAAc,QAAQ;AAC7D,OAAOC,KAAA,MAAW;AAElB,OAAO,MAAMC,aAAA,GAA0BA,CAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACrC;IAAAM;EAAA,IAAuBL,UAAA;EACvB;IAAAM;EAAA,IAAcL,cAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAE,CAAA;IAEEC,EAAA,GAAAA,CAAA;MACd,MAAAE,GAAA;MAEAA,GAAA,CAAAC,IAAA;QAAAC,KAAA,EACSL,CAAA,CAAE;QAAAM,GAAA,EACJ;MAAA,CACP;MAEAP,UAAA,CAAWI,GAAA;IAAA;IACVD,EAAA,IAACH,UAAA,EAAYC,CAAA;IAAEF,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAE,CAAA;IAAAF,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EATlBF,KAAA,CAAAW,SAAA,CAAgBN,EAShB,EAAGC,EAAe;EAAA;AAAA,CAGpB","ignoreList":[]}
@@ -0,0 +1,178 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@ruya.sa/ui';
3
+ import { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent';
4
+ import { buildFormState } from '@ruya.sa/ui/utilities/buildFormState';
5
+ import { notFound } from 'next/navigation.js';
6
+ import { formatAdminURL } from '@ruya.sa/payload/shared';
7
+ import React from 'react';
8
+ import { DocumentHeader } from '../../elements/DocumentHeader/index.js';
9
+ import { getDocPreferences } from '../Document/getDocPreferences.js';
10
+ import { getDocumentData } from '../Document/getDocumentData.js';
11
+ import { getDocumentPermissions } from '../Document/getDocumentPermissions.js';
12
+ import { getIsLocked } from '../Document/getIsLocked.js';
13
+ import { getVersions } from '../Document/getVersions.js';
14
+ import { EditView } from '../Edit/index.js';
15
+ import { AccountClient } from './index.client.js';
16
+ import { Settings } from './Settings/index.js';
17
+ export async function AccountView({
18
+ initPageResult,
19
+ params,
20
+ searchParams
21
+ }) {
22
+ const {
23
+ languageOptions,
24
+ locale,
25
+ permissions,
26
+ req,
27
+ req: {
28
+ i18n,
29
+ payload,
30
+ payload: {
31
+ config
32
+ },
33
+ user
34
+ }
35
+ } = initPageResult;
36
+ const {
37
+ admin: {
38
+ theme,
39
+ user: userSlug
40
+ },
41
+ routes: {
42
+ api
43
+ },
44
+ serverURL
45
+ } = config;
46
+ const collectionConfig = payload?.collections?.[userSlug]?.config;
47
+ if (collectionConfig && user?.id) {
48
+ // Fetch the data required for the view
49
+ const data = await getDocumentData({
50
+ id: user.id,
51
+ collectionSlug: collectionConfig.slug,
52
+ locale,
53
+ payload,
54
+ req,
55
+ user
56
+ });
57
+ if (!data) {
58
+ throw new Error('not-found');
59
+ }
60
+ // Get document preferences
61
+ const docPreferences = await getDocPreferences({
62
+ id: user.id,
63
+ collectionSlug: collectionConfig.slug,
64
+ payload,
65
+ user
66
+ });
67
+ // Get permissions
68
+ const {
69
+ docPermissions,
70
+ hasPublishPermission,
71
+ hasSavePermission
72
+ } = await getDocumentPermissions({
73
+ id: user.id,
74
+ collectionConfig,
75
+ data,
76
+ req
77
+ });
78
+ // Build initial form state from data
79
+ const {
80
+ state: formState
81
+ } = await buildFormState({
82
+ id: user.id,
83
+ collectionSlug: collectionConfig.slug,
84
+ data,
85
+ docPermissions,
86
+ docPreferences,
87
+ locale: locale?.code,
88
+ operation: 'update',
89
+ renderAllFields: true,
90
+ req,
91
+ schemaPath: collectionConfig.slug,
92
+ skipValidation: true
93
+ });
94
+ // Fetch document lock state
95
+ const {
96
+ currentEditor,
97
+ isLocked,
98
+ lastUpdateTime
99
+ } = await getIsLocked({
100
+ id: user.id,
101
+ collectionConfig,
102
+ isEditing: true,
103
+ req
104
+ });
105
+ // Get all versions required for UI
106
+ const {
107
+ hasPublishedDoc,
108
+ mostRecentVersionIsAutosaved,
109
+ unpublishedVersionCount,
110
+ versionCount
111
+ } = await getVersions({
112
+ id: user.id,
113
+ collectionConfig,
114
+ doc: data,
115
+ docPermissions,
116
+ locale: locale?.code,
117
+ payload,
118
+ user
119
+ });
120
+ return /*#__PURE__*/_jsx(DocumentInfoProvider, {
121
+ AfterFields: /*#__PURE__*/_jsx(Settings, {
122
+ i18n: i18n,
123
+ languageOptions: languageOptions,
124
+ payload: payload,
125
+ theme: theme,
126
+ user: user
127
+ }),
128
+ apiURL: formatAdminURL({
129
+ apiRoute: api,
130
+ path: `/${userSlug}${user?.id ? `/${user.id}` : ''}`
131
+ }),
132
+ collectionSlug: userSlug,
133
+ currentEditor: currentEditor,
134
+ docPermissions: docPermissions,
135
+ hasPublishedDoc: hasPublishedDoc,
136
+ hasPublishPermission: hasPublishPermission,
137
+ hasSavePermission: hasSavePermission,
138
+ id: user?.id,
139
+ initialData: data,
140
+ initialState: formState,
141
+ isEditing: true,
142
+ isLocked: isLocked,
143
+ lastUpdateTime: lastUpdateTime,
144
+ mostRecentVersionIsAutosaved: mostRecentVersionIsAutosaved,
145
+ unpublishedVersionCount: unpublishedVersionCount,
146
+ versionCount: versionCount,
147
+ children: /*#__PURE__*/_jsxs(EditDepthProvider, {
148
+ children: [/*#__PURE__*/_jsx(DocumentHeader, {
149
+ collectionConfig: collectionConfig,
150
+ hideTabs: true,
151
+ permissions: permissions,
152
+ req: req
153
+ }), /*#__PURE__*/_jsx(HydrateAuthProvider, {
154
+ permissions: permissions
155
+ }), RenderServerComponent({
156
+ Component: config.admin?.components?.views?.account?.Component,
157
+ Fallback: EditView,
158
+ importMap: payload.importMap,
159
+ serverProps: {
160
+ doc: data,
161
+ hasPublishedDoc,
162
+ i18n,
163
+ initPageResult,
164
+ locale,
165
+ params,
166
+ payload,
167
+ permissions,
168
+ routeSegments: [],
169
+ searchParams,
170
+ user
171
+ }
172
+ }), /*#__PURE__*/_jsx(AccountClient, {})]
173
+ })
174
+ });
175
+ }
176
+ return notFound();
177
+ }
178
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","RenderServerComponent","buildFormState","notFound","formatAdminURL","React","DocumentHeader","getDocPreferences","getDocumentData","getDocumentPermissions","getIsLocked","getVersions","EditView","AccountClient","Settings","AccountView","initPageResult","params","searchParams","languageOptions","locale","permissions","req","i18n","payload","config","user","admin","theme","userSlug","routes","api","serverURL","collectionConfig","collections","id","data","collectionSlug","slug","Error","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","state","formState","code","operation","renderAllFields","schemaPath","skipValidation","currentEditor","isLocked","lastUpdateTime","isEditing","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","doc","_jsx","AfterFields","apiURL","apiRoute","path","initialData","initialState","_jsxs","hideTabs","Component","components","views","account","Fallback","importMap","serverProps","routeSegments"],"sources":["../../../src/views/Account/index.tsx"],"sourcesContent":["import type { AdminViewServerProps, DocumentViewServerPropsOnly } from '@ruya.sa/payload'\n\nimport { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@ruya.sa/ui'\nimport { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent'\nimport { buildFormState } from '@ruya.sa/ui/utilities/buildFormState'\nimport { notFound } from 'next/navigation.js'\nimport { formatAdminURL } from '@ruya.sa/payload/shared'\nimport React from 'react'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getDocPreferences } from '../Document/getDocPreferences.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { getIsLocked } from '../Document/getIsLocked.js'\nimport { getVersions } from '../Document/getVersions.js'\nimport { EditView } from '../Edit/index.js'\nimport { AccountClient } from './index.client.js'\nimport { Settings } from './Settings/index.js'\n\nexport async function AccountView({ initPageResult, params, searchParams }: AdminViewServerProps) {\n const {\n languageOptions,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: { theme, user: userSlug },\n routes: { api },\n serverURL,\n } = config\n\n const collectionConfig = payload?.collections?.[userSlug]?.config\n\n if (collectionConfig && user?.id) {\n // Fetch the data required for the view\n const data = await getDocumentData({\n id: user.id,\n collectionSlug: collectionConfig.slug,\n locale,\n payload,\n req,\n user,\n })\n\n if (!data) {\n throw new Error('not-found')\n }\n\n // Get document preferences\n const docPreferences = await getDocPreferences({\n id: user.id,\n collectionSlug: collectionConfig.slug,\n payload,\n user,\n })\n\n // Get permissions\n const { docPermissions, hasPublishPermission, hasSavePermission } =\n await getDocumentPermissions({\n id: user.id,\n collectionConfig,\n data,\n req,\n })\n\n // Build initial form state from data\n const { state: formState } = await buildFormState({\n id: user.id,\n collectionSlug: collectionConfig.slug,\n data,\n docPermissions,\n docPreferences,\n locale: locale?.code,\n operation: 'update',\n renderAllFields: true,\n req,\n schemaPath: collectionConfig.slug,\n skipValidation: true,\n })\n\n // Fetch document lock state\n const { currentEditor, isLocked, lastUpdateTime } = await getIsLocked({\n id: user.id,\n collectionConfig,\n isEditing: true,\n req,\n })\n\n // Get all versions required for UI\n const { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount } =\n await getVersions({\n id: user.id,\n collectionConfig,\n doc: data,\n docPermissions,\n locale: locale?.code,\n payload,\n user,\n })\n\n return (\n <DocumentInfoProvider\n AfterFields={\n <Settings\n i18n={i18n}\n languageOptions={languageOptions}\n payload={payload}\n theme={theme}\n user={user}\n />\n }\n apiURL={formatAdminURL({\n apiRoute: api,\n path: `/${userSlug}${user?.id ? `/${user.id}` : ''}`,\n })}\n collectionSlug={userSlug}\n currentEditor={currentEditor}\n docPermissions={docPermissions}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={user?.id}\n initialData={data}\n initialState={formState}\n isEditing\n isLocked={isLocked}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <EditDepthProvider>\n <DocumentHeader\n collectionConfig={collectionConfig}\n hideTabs\n permissions={permissions}\n req={req}\n />\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n Component: config.admin?.components?.views?.account?.Component,\n Fallback: EditView,\n importMap: payload.importMap,\n serverProps: {\n doc: data,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: [],\n searchParams,\n user,\n } satisfies DocumentViewServerPropsOnly,\n })}\n <AccountClient />\n </EditDepthProvider>\n </DocumentInfoProvider>\n )\n }\n\n return notFound()\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { generateMetadata } from '../../utilities/meta.js';
2
+ export const generateAccountViewMetadata = async ({
3
+ config,
4
+ i18n: {
5
+ t
6
+ }
7
+ }) => generateMetadata({
8
+ description: `${t('authentication:accountOfCurrentUser')}`,
9
+ keywords: `${t('authentication:account')}`,
10
+ serverURL: config.serverURL,
11
+ title: t('authentication:account'),
12
+ ...(config.admin.meta || {})
13
+ });
14
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["generateMetadata","generateAccountViewMetadata","config","i18n","t","description","keywords","serverURL","title","admin","meta"],"sources":["../../../src/views/Account/metadata.ts"],"sourcesContent":["import type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\nexport const generateAccountViewMetadata: GenerateViewMetadata = async ({ config, i18n: { t } }) =>\n generateMetadata({\n description: `${t('authentication:accountOfCurrentUser')}`,\n keywords: `${t('authentication:account')}`,\n serverURL: config.serverURL,\n title: t('authentication:account'),\n ...(config.admin.meta || {}),\n })\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,2BAAA,GAAoD,MAAAA,CAAO;EAAEC,MAAM;EAAEC,IAAA,EAAM;IAAEC;EAAC;AAAE,CAAE,KAC7FJ,gBAAA,CAAiB;EACfK,WAAA,EAAa,GAAGD,CAAA,CAAE,wCAAwC;EAC1DE,QAAA,EAAU,GAAGF,CAAA,CAAE,2BAA2B;EAC1CG,SAAA,EAAWL,MAAA,CAAOK,SAAS;EAC3BC,KAAA,EAAOJ,CAAA,CAAE;EACT,IAAIF,MAAA,CAAOO,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;AAC7B","ignoreList":[]}
@@ -0,0 +1,169 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { DefaultBrowseByFolderView, HydrateAuthProvider } from '@ruya.sa/ui';
3
+ import { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent';
4
+ import { getFolderResultsComponentAndData, upsertPreferences } from '@ruya.sa/ui/rsc';
5
+ import { formatAdminURL } from '@ruya.sa/ui/shared';
6
+ import { redirect } from 'next/navigation.js';
7
+ import React from 'react';
8
+ export const buildBrowseByFolderView = async args => {
9
+ const {
10
+ browseByFolderSlugs: browseByFolderSlugsFromArgs = [],
11
+ disableBulkDelete,
12
+ disableBulkEdit,
13
+ enableRowSelections,
14
+ folderID,
15
+ initPageResult,
16
+ isInDrawer,
17
+ params,
18
+ query: queryFromArgs,
19
+ searchParams
20
+ } = args;
21
+ const {
22
+ locale: fullLocale,
23
+ permissions,
24
+ req: {
25
+ i18n,
26
+ payload,
27
+ payload: {
28
+ config
29
+ },
30
+ query: queryFromReq,
31
+ user
32
+ },
33
+ visibleEntities
34
+ } = initPageResult;
35
+ if (config.folders === false || config.folders.browseByFolder === false) {
36
+ throw new Error('not-found');
37
+ }
38
+ const foldersSlug = config.folders.slug;
39
+ /**
40
+ * All visiible folder enabled collection slugs that the user has read permissions for.
41
+ */
42
+ const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(collectionSlug => permissions?.collections?.[collectionSlug]?.read && visibleEntities.collections.includes(collectionSlug));
43
+ const query = queryFromArgs || (queryFromReq ? {
44
+ ...queryFromReq,
45
+ relationTo: typeof queryFromReq?.relationTo === 'string' ? JSON.parse(queryFromReq.relationTo) : undefined
46
+ } : {});
47
+ /**
48
+ * If a folderID is provided and the relationTo query param exists,
49
+ * we filter the collection slugs to only those that are allowed to be read.
50
+ *
51
+ * If no folderID is provided, only folders should be active and displayed (the root view).
52
+ */
53
+ let collectionsToDisplay = [];
54
+ if (folderID && Array.isArray(query?.relationTo)) {
55
+ collectionsToDisplay = query.relationTo.filter(slug => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug);
56
+ } else if (folderID) {
57
+ collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug];
58
+ } else {
59
+ collectionsToDisplay = [foldersSlug];
60
+ }
61
+ const {
62
+ routes: {
63
+ admin: adminRoute
64
+ }
65
+ } = config;
66
+ /**
67
+ * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.
68
+ * This will ensure that prefs are only updated when explicitly set by the user
69
+ * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie
70
+ */
71
+ const browseByFolderPreferences = await upsertPreferences({
72
+ key: 'browse-by-folder',
73
+ req: initPageResult.req,
74
+ value: {
75
+ sort: query?.sort
76
+ }
77
+ });
78
+ const sortPreference = browseByFolderPreferences?.sort || 'name';
79
+ const viewPreference = browseByFolderPreferences?.viewPreference || 'grid';
80
+ const {
81
+ breadcrumbs,
82
+ documents,
83
+ folderAssignedCollections,
84
+ FolderResultsComponent,
85
+ subfolders
86
+ } = await getFolderResultsComponentAndData({
87
+ browseByFolder: true,
88
+ collectionsToDisplay,
89
+ displayAs: viewPreference,
90
+ folderAssignedCollections: collectionsToDisplay.filter(slug => slug !== foldersSlug) || [],
91
+ folderID,
92
+ req: initPageResult.req,
93
+ sort: sortPreference
94
+ });
95
+ const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
96
+ if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
97
+ redirect(formatAdminURL({
98
+ adminRoute,
99
+ path: config.admin.routes.browseByFolder
100
+ }));
101
+ }
102
+ const serverProps = {
103
+ documents,
104
+ i18n,
105
+ locale: fullLocale,
106
+ params,
107
+ payload,
108
+ permissions,
109
+ searchParams,
110
+ subfolders,
111
+ user
112
+ };
113
+ // const folderViewSlots = renderFolderViewSlots({
114
+ // clientProps: {
115
+ // },
116
+ // description: staticDescription,
117
+ // payload,
118
+ // serverProps,
119
+ // })
120
+ // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to
121
+ const allAvailableCollectionSlugs = folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length ? allowReadCollectionSlugs.filter(slug => folderAssignedCollections.includes(slug)) : allowReadCollectionSlugs;
122
+ // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to
123
+ const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter(slug => {
124
+ if (slug === foldersSlug) {
125
+ return permissions?.collections?.[foldersSlug]?.read;
126
+ } else {
127
+ return !folderAssignedCollections || folderAssignedCollections.includes(slug);
128
+ }
129
+ });
130
+ // Documents cannot be created without a parent folder in this view
131
+ const allowCreateCollectionSlugs = (resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]).filter(collectionSlug => {
132
+ if (collectionSlug === foldersSlug) {
133
+ return permissions?.collections?.[foldersSlug]?.create;
134
+ }
135
+ return permissions?.collections?.[collectionSlug]?.create && visibleEntities.collections.includes(collectionSlug);
136
+ });
137
+ return {
138
+ View: /*#__PURE__*/_jsxs(_Fragment, {
139
+ children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
140
+ permissions: permissions
141
+ }), RenderServerComponent({
142
+ clientProps: {
143
+ // ...folderViewSlots,
144
+ activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,
145
+ allCollectionFolderSlugs: allAvailableCollectionSlugs,
146
+ allowCreateCollectionSlugs,
147
+ baseFolderPath: `/browse-by-folder`,
148
+ breadcrumbs,
149
+ disableBulkDelete,
150
+ disableBulkEdit,
151
+ documents,
152
+ enableRowSelections,
153
+ folderAssignedCollections,
154
+ folderFieldName: config.folders.fieldName,
155
+ folderID: resolvedFolderID || null,
156
+ FolderResultsComponent,
157
+ sort: sortPreference,
158
+ subfolders,
159
+ viewPreference
160
+ },
161
+ // Component:config.folders?.components?.views?.BrowseByFolders?.Component,
162
+ Fallback: DefaultBrowseByFolderView,
163
+ importMap: payload.importMap,
164
+ serverProps
165
+ })]
166
+ })
167
+ };
168
+ };
169
+ //# sourceMappingURL=buildView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","browseByFolder","Error","foldersSlug","slug","allowReadCollectionSlugs","filter","collectionSlug","collections","read","includes","relationTo","JSON","parse","undefined","collectionsToDisplay","Array","isArray","routes","admin","adminRoute","browseByFolderPreferences","key","value","sort","sortPreference","viewPreference","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","displayAs","resolvedFolderID","length","id","path","serverProps","allAvailableCollectionSlugs","availableActiveCollectionFolderSlugs","allowCreateCollectionSlugs","create","View","_jsxs","_Fragment","_jsx","clientProps","activeCollectionFolderSlugs","allCollectionFolderSlugs","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from '@ruya.sa/payload'\n\nimport { DefaultBrowseByFolderView, HydrateAuthProvider } from '@ruya.sa/ui'\nimport { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@ruya.sa/ui/rsc'\nimport { formatAdminURL } from '@ruya.sa/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n browseByFolderSlugs: browseByFolderSlugsFromArgs = [],\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const foldersSlug = config.folders.slug\n\n /**\n * All visiible folder enabled collection slugs that the user has read permissions for.\n */\n const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n const query =\n queryFromArgs ||\n ((queryFromReq\n ? {\n ...queryFromReq,\n relationTo:\n typeof queryFromReq?.relationTo === 'string'\n ? JSON.parse(queryFromReq.relationTo)\n : undefined,\n }\n : {}) as ListQuery)\n\n /**\n * If a folderID is provided and the relationTo query param exists,\n * we filter the collection slugs to only those that are allowed to be read.\n *\n * If no folderID is provided, only folders should be active and displayed (the root view).\n */\n let collectionsToDisplay: string[] = []\n if (folderID && Array.isArray(query?.relationTo)) {\n collectionsToDisplay = query.relationTo.filter(\n (slug) => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug,\n )\n } else if (folderID) {\n collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug]\n } else {\n collectionsToDisplay = [foldersSlug]\n }\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const browseByFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: 'browse-by-folder',\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = browseByFolderPreferences?.sort || 'name'\n const viewPreference = browseByFolderPreferences?.viewPreference || 'grid'\n\n const { breadcrumbs, documents, folderAssignedCollections, FolderResultsComponent, subfolders } =\n await getFolderResultsComponentAndData({\n browseByFolder: true,\n collectionsToDisplay,\n displayAs: viewPreference,\n folderAssignedCollections: collectionsToDisplay.filter((slug) => slug !== foldersSlug) || [],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n }),\n )\n }\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to\n const allAvailableCollectionSlugs =\n folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length\n ? allowReadCollectionSlugs.filter((slug) => folderAssignedCollections.includes(slug))\n : allowReadCollectionSlugs\n\n // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to\n const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter((slug) => {\n if (slug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.read\n } else {\n return !folderAssignedCollections || folderAssignedCollections.includes(slug)\n }\n })\n\n // Documents cannot be created without a parent folder in this view\n const allowCreateCollectionSlugs = (\n resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]\n ).filter((collectionSlug) => {\n if (collectionSlug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.create\n }\n return (\n permissions?.collections?.[collectionSlug]?.create &&\n visibleEntities.collections.includes(collectionSlug)\n )\n })\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,\n allCollectionFolderSlugs: allAvailableCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath: `/browse-by-folder`,\n breadcrumbs,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component:config.folders?.components?.views?.BrowseByFolders?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import { notFound } from 'next/navigation.js';
2
+ import { buildBrowseByFolderView } from './buildView.js';
3
+ export const BrowseByFolder = async args => {
4
+ try {
5
+ const {
6
+ View
7
+ } = await buildBrowseByFolderView(args);
8
+ return View;
9
+ } catch (error) {
10
+ if (error?.message === 'NEXT_REDIRECT') {
11
+ throw error;
12
+ }
13
+ if (error.message === 'not-found') {
14
+ notFound();
15
+ } else {
16
+ console.error(error); // eslint-disable-line no-console
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["notFound","buildBrowseByFolderView","BrowseByFolder","args","View","error","message","console"],"sources":["../../../src/views/BrowseByFolder/index.tsx"],"sourcesContent":["import type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport type { BuildFolderViewArgs } from './buildView.js'\n\nimport { buildBrowseByFolderView } from './buildView.js'\n\nexport const BrowseByFolder: React.FC<BuildFolderViewArgs> = async (args) => {\n try {\n const { View } = await buildBrowseByFolderView(args)\n return View\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ;AAIzB,SAASC,uBAAuB,QAAQ;AAExC,OAAO,MAAMC,cAAA,GAAgD,MAAOC,IAAA;EAClE,IAAI;IACF,MAAM;MAAEC;IAAI,CAAE,GAAG,MAAMH,uBAAA,CAAwBE,IAAA;IAC/C,OAAOC,IAAA;EACT,EAAE,OAAOC,KAAA,EAAO;IACd,IAAIA,KAAA,EAAOC,OAAA,KAAY,iBAAiB;MACtC,MAAMD,KAAA;IACR;IACA,IAAIA,KAAA,CAAMC,OAAO,KAAK,aAAa;MACjCN,QAAA;IACF,OAAO;MACLO,OAAA,CAAQF,KAAK,CAACA,KAAA,GAAO;IACvB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import { generateMetadata } from '../../utilities/meta.js';
2
+ export const generateBrowseByFolderMetadata = async args => {
3
+ const {
4
+ config,
5
+ i18n
6
+ } = args;
7
+ const title = i18n.t('folder:browseByFolder');
8
+ const description = '';
9
+ const keywords = '';
10
+ return generateMetadata({
11
+ ...(config.admin.meta || {}),
12
+ description,
13
+ keywords,
14
+ serverURL: config.serverURL,
15
+ title
16
+ });
17
+ };
18
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["generateMetadata","generateBrowseByFolderMetadata","args","config","i18n","title","t","description","keywords","admin","meta","serverURL"],"sources":["../../../src/views/BrowseByFolder/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\nexport const generateBrowseByFolderMetadata = async (\n args: Parameters<GenerateViewMetadata>[0],\n): Promise<Metadata> => {\n const { config, i18n } = args\n\n const title: string = i18n.t('folder:browseByFolder')\n const description: string = ''\n const keywords: string = ''\n\n return generateMetadata({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n })\n}\n"],"mappings":"AAIA,SAASA,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,8BAAA,GAAiC,MAC5CC,IAAA;EAEA,MAAM;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAGF,IAAA;EAEzB,MAAMG,KAAA,GAAgBD,IAAA,CAAKE,CAAC,CAAC;EAC7B,MAAMC,WAAA,GAAsB;EAC5B,MAAMC,QAAA,GAAmB;EAEzB,OAAOR,gBAAA,CAAiB;IACtB,IAAIG,MAAA,CAAOM,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BH,WAAA;IACAC,QAAA;IACAG,SAAA,EAAWR,MAAA,CAAOQ,SAAS;IAC3BN;EACF;AACF","ignoreList":[]}