@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,151 @@
1
+ import { logError } from '@ruya.sa/payload';
2
+ export const fetchVersion = async ({
3
+ id,
4
+ collectionSlug,
5
+ depth,
6
+ globalSlug,
7
+ locale,
8
+ overrideAccess,
9
+ req,
10
+ select,
11
+ user
12
+ }) => {
13
+ try {
14
+ if (collectionSlug) {
15
+ return await req.payload.findVersionByID({
16
+ id: String(id),
17
+ collection: collectionSlug,
18
+ depth,
19
+ locale,
20
+ overrideAccess,
21
+ req,
22
+ select,
23
+ user
24
+ });
25
+ } else if (globalSlug) {
26
+ return await req.payload.findGlobalVersionByID({
27
+ id: String(id),
28
+ slug: globalSlug,
29
+ depth,
30
+ locale,
31
+ overrideAccess,
32
+ req,
33
+ select,
34
+ user
35
+ });
36
+ }
37
+ } catch (err) {
38
+ logError({
39
+ err,
40
+ payload: req.payload
41
+ });
42
+ return null;
43
+ }
44
+ };
45
+ export const fetchVersions = async ({
46
+ collectionSlug,
47
+ depth,
48
+ draft,
49
+ globalSlug,
50
+ limit,
51
+ locale,
52
+ overrideAccess,
53
+ page,
54
+ parentID,
55
+ req,
56
+ select,
57
+ sort,
58
+ user,
59
+ where: whereFromArgs
60
+ }) => {
61
+ const where = {
62
+ and: [...(whereFromArgs ? [whereFromArgs] : [])]
63
+ };
64
+ try {
65
+ if (collectionSlug) {
66
+ if (parentID) {
67
+ where.and.push({
68
+ parent: {
69
+ equals: parentID
70
+ }
71
+ });
72
+ }
73
+ return await req.payload.findVersions({
74
+ collection: collectionSlug,
75
+ depth,
76
+ draft,
77
+ limit,
78
+ locale,
79
+ overrideAccess,
80
+ page,
81
+ req,
82
+ select,
83
+ sort,
84
+ user,
85
+ where
86
+ });
87
+ } else if (globalSlug) {
88
+ return await req.payload.findGlobalVersions({
89
+ slug: globalSlug,
90
+ depth,
91
+ limit,
92
+ locale,
93
+ overrideAccess,
94
+ page,
95
+ req,
96
+ select,
97
+ sort,
98
+ user,
99
+ where
100
+ });
101
+ }
102
+ } catch (err) {
103
+ logError({
104
+ err,
105
+ payload: req.payload
106
+ });
107
+ return null;
108
+ }
109
+ };
110
+ export const fetchLatestVersion = async ({
111
+ collectionSlug,
112
+ depth,
113
+ globalSlug,
114
+ locale,
115
+ overrideAccess,
116
+ parentID,
117
+ req,
118
+ select,
119
+ status,
120
+ user,
121
+ where
122
+ }) => {
123
+ // Get the entity config to check if drafts are enabled
124
+ const entityConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : globalSlug ? req.payload.globals[globalSlug]?.config : undefined;
125
+ // Only query by _status if drafts are enabled (since _status field only exists with drafts)
126
+ const draftsEnabled = entityConfig?.versions?.drafts;
127
+ const and = [...(draftsEnabled ? [{
128
+ 'version._status': {
129
+ equals: status
130
+ }
131
+ }] : []), ...(where ? [where] : [])];
132
+ const latest = await fetchVersions({
133
+ collectionSlug,
134
+ depth,
135
+ draft: true,
136
+ globalSlug,
137
+ limit: 1,
138
+ locale,
139
+ overrideAccess,
140
+ parentID,
141
+ req,
142
+ select,
143
+ sort: '-updatedAt',
144
+ user,
145
+ where: {
146
+ and
147
+ }
148
+ });
149
+ return latest?.docs?.length ? latest.docs[0] : null;
150
+ };
151
+ //# sourceMappingURL=fetchVersions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchVersions.js","names":["logError","fetchVersion","id","collectionSlug","depth","globalSlug","locale","overrideAccess","req","select","user","payload","findVersionByID","String","collection","findGlobalVersionByID","slug","err","fetchVersions","draft","limit","page","parentID","sort","where","whereFromArgs","and","push","parent","equals","findVersions","findGlobalVersions","fetchLatestVersion","status","entityConfig","collections","config","globals","undefined","draftsEnabled","versions","drafts","latest","docs","length"],"sources":["../../../src/views/Version/fetchVersions.ts"],"sourcesContent":["import {\n logError,\n type PaginatedDocs,\n type PayloadRequest,\n type SelectType,\n type Sort,\n type TypedUser,\n type TypeWithVersion,\n type Where,\n} from '@ruya.sa/payload'\n\nexport const fetchVersion = async <TVersionData extends object = object>({\n id,\n collectionSlug,\n depth,\n globalSlug,\n locale,\n overrideAccess,\n req,\n select,\n user,\n}: {\n collectionSlug?: string\n depth?: number\n globalSlug?: string\n id: number | string\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n req: PayloadRequest\n select?: SelectType\n user?: TypedUser\n}): Promise<null | TypeWithVersion<TVersionData>> => {\n try {\n if (collectionSlug) {\n return (await req.payload.findVersionByID({\n id: String(id),\n collection: collectionSlug,\n depth,\n locale,\n overrideAccess,\n req,\n select,\n user,\n })) as TypeWithVersion<TVersionData>\n } else if (globalSlug) {\n return (await req.payload.findGlobalVersionByID({\n id: String(id),\n slug: globalSlug,\n depth,\n locale,\n overrideAccess,\n req,\n select,\n user,\n })) as TypeWithVersion<TVersionData>\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n return null\n }\n}\n\nexport const fetchVersions = async <TVersionData extends object = object>({\n collectionSlug,\n depth,\n draft,\n globalSlug,\n limit,\n locale,\n overrideAccess,\n page,\n parentID,\n req,\n select,\n sort,\n user,\n where: whereFromArgs,\n}: {\n collectionSlug?: string\n depth?: number\n draft?: boolean\n globalSlug?: string\n limit?: number\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n page?: number\n parentID?: number | string\n req: PayloadRequest\n select?: SelectType\n sort?: Sort\n user?: TypedUser\n where?: Where\n}): Promise<null | PaginatedDocs<TypeWithVersion<TVersionData>>> => {\n const where: Where = { and: [...(whereFromArgs ? [whereFromArgs] : [])] }\n\n try {\n if (collectionSlug) {\n if (parentID) {\n where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n return (await req.payload.findVersions({\n collection: collectionSlug,\n depth,\n draft,\n limit,\n locale,\n overrideAccess,\n page,\n req,\n select,\n sort,\n user,\n where,\n })) as PaginatedDocs<TypeWithVersion<TVersionData>>\n } else if (globalSlug) {\n return (await req.payload.findGlobalVersions({\n slug: globalSlug,\n depth,\n limit,\n locale,\n overrideAccess,\n page,\n req,\n select,\n sort,\n user,\n where,\n })) as PaginatedDocs<TypeWithVersion<TVersionData>>\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n\n return null\n }\n}\n\nexport const fetchLatestVersion = async <TVersionData extends object = object>({\n collectionSlug,\n depth,\n globalSlug,\n locale,\n overrideAccess,\n parentID,\n req,\n select,\n status,\n user,\n where,\n}: {\n collectionSlug?: string\n depth?: number\n globalSlug?: string\n locale?: 'all' | ({} & string)\n overrideAccess?: boolean\n parentID?: number | string\n req: PayloadRequest\n select?: SelectType\n status: 'draft' | 'published'\n user?: TypedUser\n where?: Where\n}): Promise<null | TypeWithVersion<TVersionData>> => {\n // Get the entity config to check if drafts are enabled\n const entityConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.globals[globalSlug]?.config\n : undefined\n\n // Only query by _status if drafts are enabled (since _status field only exists with drafts)\n const draftsEnabled = entityConfig?.versions?.drafts\n\n const and: Where[] = [\n ...(draftsEnabled\n ? [\n {\n 'version._status': {\n equals: status,\n },\n },\n ]\n : []),\n ...(where ? [where] : []),\n ]\n\n const latest = await fetchVersions({\n collectionSlug,\n depth,\n draft: true,\n globalSlug,\n limit: 1,\n locale,\n overrideAccess,\n parentID,\n req,\n select,\n sort: '-updatedAt',\n user,\n where: { and },\n })\n\n return latest?.docs?.length ? (latest.docs[0] as TypeWithVersion<TVersionData>) : null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,349 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { formatDate } from '@ruya.sa/ui/shared';
3
+ import { getClientConfig } from '@ruya.sa/ui/utilities/getClientConfig';
4
+ import { getClientSchemaMap } from '@ruya.sa/ui/utilities/getClientSchemaMap';
5
+ import { getSchemaMap } from '@ruya.sa/ui/utilities/getSchemaMap';
6
+ import { notFound } from 'next/navigation.js';
7
+ import { hasDraftsEnabled } from '@ruya.sa/payload/shared';
8
+ import React from 'react';
9
+ import { DefaultVersionView } from './Default/index.js';
10
+ import { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js';
11
+ import { RenderDiff } from './RenderFieldsToDiff/index.js';
12
+ import { getVersionLabel } from './VersionPillLabel/getVersionLabel.js';
13
+ import { VersionPillLabel } from './VersionPillLabel/VersionPillLabel.js';
14
+ export async function VersionView(props) {
15
+ const {
16
+ hasPublishedDoc,
17
+ i18n,
18
+ initPageResult,
19
+ routeSegments,
20
+ searchParams
21
+ } = props;
22
+ const {
23
+ collectionConfig,
24
+ docID: id,
25
+ globalConfig,
26
+ permissions,
27
+ req,
28
+ req: {
29
+ payload,
30
+ payload: {
31
+ config,
32
+ config: {
33
+ localization
34
+ }
35
+ } = {},
36
+ user
37
+ } = {}
38
+ } = initPageResult;
39
+ const versionToID = routeSegments[routeSegments.length - 1];
40
+ const collectionSlug = collectionConfig?.slug;
41
+ const globalSlug = globalConfig?.slug;
42
+ const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig);
43
+ const localeCodesFromParams = searchParams.localeCodes ? JSON.parse(searchParams.localeCodes) : null;
44
+ const versionFromIDFromParams = searchParams.versionFrom;
45
+ const modifiedOnly = searchParams.modifiedOnly === 'false' ? false : true;
46
+ const docPermissions = collectionSlug ? permissions.collections[collectionSlug] : permissions.globals[globalSlug];
47
+ const versionTo = await fetchVersion({
48
+ id: versionToID,
49
+ collectionSlug,
50
+ depth: 1,
51
+ globalSlug,
52
+ locale: 'all',
53
+ overrideAccess: false,
54
+ req,
55
+ user
56
+ });
57
+ if (!versionTo) {
58
+ return notFound();
59
+ }
60
+ const [previousVersionResult, versionFromResult, currentlyPublishedVersion, latestDraftVersion, previousPublishedVersionResult] = await Promise.all([
61
+ // Previous version (the one before the versionTo)
62
+ fetchVersions({
63
+ collectionSlug,
64
+ // If versionFromIDFromParams is provided, the previous version is only used in the version comparison dropdown => depth 0 is enough.
65
+ // If it's not provided, this is used as `versionFrom` in the comparison, which expects populated data => depth 1 is needed.
66
+ depth: versionFromIDFromParams ? 0 : 1,
67
+ draft: true,
68
+ globalSlug,
69
+ limit: 1,
70
+ locale: 'all',
71
+ overrideAccess: false,
72
+ parentID: id,
73
+ req,
74
+ sort: '-updatedAt',
75
+ user,
76
+ where: {
77
+ and: [{
78
+ updatedAt: {
79
+ less_than: versionTo.updatedAt
80
+ }
81
+ }]
82
+ }
83
+ }),
84
+ // Version from ID from params
85
+ versionFromIDFromParams ? fetchVersion({
86
+ id: versionFromIDFromParams,
87
+ collectionSlug,
88
+ depth: 1,
89
+ globalSlug,
90
+ locale: 'all',
91
+ overrideAccess: false,
92
+ req,
93
+ user
94
+ }) : Promise.resolve(null),
95
+ // Currently published version - do note: currently published != latest published, as an unpublished version can be the latest published
96
+ hasPublishedDoc ? fetchLatestVersion({
97
+ collectionSlug,
98
+ depth: 0,
99
+ globalSlug,
100
+ locale: 'all',
101
+ overrideAccess: false,
102
+ parentID: id,
103
+ req,
104
+ status: 'published',
105
+ user
106
+ }) : Promise.resolve(null),
107
+ // Latest draft version
108
+ draftsEnabled ? fetchLatestVersion({
109
+ collectionSlug,
110
+ depth: 0,
111
+ globalSlug,
112
+ locale: 'all',
113
+ overrideAccess: false,
114
+ parentID: id,
115
+ req,
116
+ status: 'draft',
117
+ user
118
+ }) : Promise.resolve(null),
119
+ // Previous published version
120
+ // Only query for published versions if drafts are enabled (since _status field only exists with drafts)
121
+ draftsEnabled ? fetchVersions({
122
+ collectionSlug,
123
+ depth: 0,
124
+ draft: true,
125
+ globalSlug,
126
+ limit: 1,
127
+ locale: 'all',
128
+ overrideAccess: false,
129
+ parentID: id,
130
+ req,
131
+ sort: '-updatedAt',
132
+ user,
133
+ where: {
134
+ and: [{
135
+ updatedAt: {
136
+ less_than: versionTo.updatedAt
137
+ }
138
+ }, {
139
+ 'version._status': {
140
+ equals: 'published'
141
+ }
142
+ }]
143
+ }
144
+ }) : Promise.resolve(null)]);
145
+ const previousVersion = previousVersionResult?.docs?.[0] ?? null;
146
+ const versionFrom = versionFromResult ||
147
+ // By default, we'll compare the previous version. => versionFrom = version previous to versionTo
148
+ previousVersion;
149
+ // Previous published version before the versionTo
150
+ const previousPublishedVersion = previousPublishedVersionResult?.docs?.[0] ?? null;
151
+ let selectedLocales = [];
152
+ if (localization) {
153
+ let locales = [];
154
+ if (localeCodesFromParams) {
155
+ for (const code of localeCodesFromParams) {
156
+ const locale = localization.locales.find(locale => locale.code === code);
157
+ if (!locale) {
158
+ continue;
159
+ }
160
+ locales.push(locale);
161
+ }
162
+ } else {
163
+ locales = localization.locales;
164
+ }
165
+ if (localization.filterAvailableLocales) {
166
+ locales = (await localization.filterAvailableLocales({
167
+ locales,
168
+ req
169
+ })) || [];
170
+ }
171
+ selectedLocales = locales.map(locale => locale.code);
172
+ }
173
+ const schemaMap = getSchemaMap({
174
+ collectionSlug,
175
+ config,
176
+ globalSlug,
177
+ i18n
178
+ });
179
+ const clientSchemaMap = getClientSchemaMap({
180
+ collectionSlug,
181
+ config: getClientConfig({
182
+ config: payload.config,
183
+ i18n,
184
+ importMap: payload.importMap,
185
+ user
186
+ }),
187
+ globalSlug,
188
+ i18n,
189
+ payload,
190
+ schemaMap
191
+ });
192
+ const RenderedDiff = RenderDiff({
193
+ clientSchemaMap,
194
+ customDiffComponents: {},
195
+ entitySlug: collectionSlug || globalSlug,
196
+ fields: (collectionConfig || globalConfig)?.fields,
197
+ fieldsPermissions: docPermissions?.fields,
198
+ i18n,
199
+ modifiedOnly,
200
+ parentIndexPath: '',
201
+ parentIsLocalized: false,
202
+ parentPath: '',
203
+ parentSchemaPath: '',
204
+ req,
205
+ selectedLocales,
206
+ versionFromSiblingData: {
207
+ ...versionFrom?.version,
208
+ updatedAt: versionFrom?.updatedAt
209
+ },
210
+ versionToSiblingData: {
211
+ ...versionTo.version,
212
+ updatedAt: versionTo.updatedAt
213
+ }
214
+ });
215
+ const versionToCreatedAtFormatted = versionTo.updatedAt ? formatDate({
216
+ date: typeof versionTo.updatedAt === 'string' ? new Date(versionTo.updatedAt) : versionTo.updatedAt,
217
+ i18n,
218
+ pattern: config.admin.dateFormat
219
+ }) : '';
220
+ const formatPill = ({
221
+ doc,
222
+ labelOverride,
223
+ labelStyle,
224
+ labelSuffix
225
+ }) => {
226
+ return /*#__PURE__*/_jsx(VersionPillLabel, {
227
+ currentlyPublishedVersion: currentlyPublishedVersion,
228
+ doc: doc,
229
+ labelFirst: true,
230
+ labelOverride: labelOverride,
231
+ labelStyle: labelStyle ?? 'text',
232
+ labelSuffix: labelSuffix,
233
+ latestDraftVersion: latestDraftVersion
234
+ }, doc.id);
235
+ };
236
+ // SelectComparison Options:
237
+ //
238
+ // Previous version: always, unless doesn't exist. Can be the same as previously published
239
+ // Latest draft: only if no newer published exists (latestDraftVersion)
240
+ // Currently published: always, if exists
241
+ // Previously published: if there is a prior published version older than versionTo
242
+ // Specific Version: only if not already present under other label (= versionFrom)
243
+ let versionFromOptions = [];
244
+ // Previous version
245
+ if (previousVersion?.id) {
246
+ versionFromOptions.push({
247
+ doc: previousVersion,
248
+ labelOverride: i18n.t('version:previousVersion'),
249
+ updatedAt: new Date(previousVersion.updatedAt),
250
+ value: previousVersion.id
251
+ });
252
+ }
253
+ // Latest Draft
254
+ const publishedNewerThanDraft = currentlyPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt;
255
+ if (latestDraftVersion && !publishedNewerThanDraft) {
256
+ versionFromOptions.push({
257
+ doc: latestDraftVersion,
258
+ updatedAt: new Date(latestDraftVersion.updatedAt),
259
+ value: latestDraftVersion.id
260
+ });
261
+ }
262
+ // Currently Published
263
+ if (currentlyPublishedVersion) {
264
+ versionFromOptions.push({
265
+ doc: currentlyPublishedVersion,
266
+ updatedAt: new Date(currentlyPublishedVersion.updatedAt),
267
+ value: currentlyPublishedVersion.id
268
+ });
269
+ }
270
+ // Previous Published
271
+ if (previousPublishedVersion && currentlyPublishedVersion?.id !== previousPublishedVersion.id) {
272
+ versionFromOptions.push({
273
+ doc: previousPublishedVersion,
274
+ labelOverride: i18n.t('version:previouslyPublished'),
275
+ updatedAt: new Date(previousPublishedVersion.updatedAt),
276
+ value: previousPublishedVersion.id
277
+ });
278
+ }
279
+ // Specific Version
280
+ if (versionFrom?.id && !versionFromOptions.some(option => option.value === versionFrom.id)) {
281
+ // Only add "specific version" if it is not already in the options
282
+ versionFromOptions.push({
283
+ doc: versionFrom,
284
+ labelOverride: i18n.t('version:specificVersion'),
285
+ updatedAt: new Date(versionFrom.updatedAt),
286
+ value: versionFrom.id
287
+ });
288
+ }
289
+ versionFromOptions = versionFromOptions.sort((a, b) => {
290
+ // Sort by updatedAt, newest first
291
+ if (a && b) {
292
+ return b.updatedAt.getTime() - a.updatedAt.getTime();
293
+ }
294
+ return 0;
295
+ });
296
+ const versionToIsVersionFrom = versionFrom?.id === versionTo.id;
297
+ const versionFromComparisonOptions = [];
298
+ for (const option of versionFromOptions) {
299
+ const isVersionTo = option.value === versionTo.id;
300
+ if (isVersionTo && !versionToIsVersionFrom) {
301
+ continue;
302
+ }
303
+ const alreadyAdded = versionFromComparisonOptions.some(existingOption => existingOption.value === option.value);
304
+ if (alreadyAdded) {
305
+ continue;
306
+ }
307
+ const otherOptionsWithSameID = versionFromOptions.filter(existingOption => existingOption.value === option.value && existingOption !== option);
308
+ // Merge options with same ID to the same option
309
+ const labelSuffix = otherOptionsWithSameID?.length ? /*#__PURE__*/_jsxs("span", {
310
+ children: [' (', otherOptionsWithSameID.map((optionWithSameID, index) => {
311
+ const label = optionWithSameID.labelOverride || getVersionLabel({
312
+ currentlyPublishedVersion,
313
+ latestDraftVersion,
314
+ t: i18n.t,
315
+ version: optionWithSameID.doc
316
+ }).label;
317
+ return /*#__PURE__*/_jsxs(React.Fragment, {
318
+ children: [index > 0 ? ', ' : '', label]
319
+ }, `${optionWithSameID.value}-${index}`);
320
+ }), ')']
321
+ }, `${option.value}-suffix`) : undefined;
322
+ versionFromComparisonOptions.push({
323
+ label: formatPill({
324
+ doc: option.doc,
325
+ labelOverride: option.labelOverride,
326
+ labelSuffix
327
+ }),
328
+ value: option.value
329
+ });
330
+ }
331
+ return /*#__PURE__*/_jsx(DefaultVersionView, {
332
+ canUpdate: docPermissions?.update,
333
+ modifiedOnly: modifiedOnly,
334
+ RenderedDiff: RenderedDiff,
335
+ selectedLocales: selectedLocales,
336
+ versionFromCreatedAt: versionFrom?.createdAt,
337
+ versionFromID: versionFrom?.id,
338
+ versionFromOptions: versionFromComparisonOptions,
339
+ versionToCreatedAt: versionTo.createdAt,
340
+ versionToCreatedAtFormatted: versionToCreatedAtFormatted,
341
+ VersionToCreatedAtLabel: formatPill({
342
+ doc: versionTo,
343
+ labelStyle: 'pill'
344
+ }),
345
+ versionToID: versionTo.id,
346
+ versionToStatus: versionTo.version?._status
347
+ });
348
+ }
349
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["formatDate","getClientConfig","getClientSchemaMap","getSchemaMap","notFound","hasDraftsEnabled","React","DefaultVersionView","fetchLatestVersion","fetchVersion","fetchVersions","RenderDiff","getVersionLabel","VersionPillLabel","VersionView","props","hasPublishedDoc","i18n","initPageResult","routeSegments","searchParams","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","localization","user","versionToID","length","collectionSlug","slug","globalSlug","draftsEnabled","localeCodesFromParams","localeCodes","JSON","parse","versionFromIDFromParams","versionFrom","modifiedOnly","docPermissions","collections","globals","versionTo","depth","locale","overrideAccess","previousVersionResult","versionFromResult","currentlyPublishedVersion","latestDraftVersion","previousPublishedVersionResult","Promise","all","draft","limit","parentID","sort","where","and","updatedAt","less_than","resolve","status","equals","previousVersion","docs","previousPublishedVersion","selectedLocales","locales","code","find","push","filterAvailableLocales","map","schemaMap","clientSchemaMap","importMap","RenderedDiff","customDiffComponents","entitySlug","fields","fieldsPermissions","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","versionFromSiblingData","version","versionToSiblingData","versionToCreatedAtFormatted","date","Date","pattern","admin","dateFormat","formatPill","doc","labelOverride","labelStyle","labelSuffix","_jsx","labelFirst","versionFromOptions","t","value","publishedNewerThanDraft","some","option","a","b","getTime","versionToIsVersionFrom","versionFromComparisonOptions","isVersionTo","alreadyAdded","existingOption","otherOptionsWithSameID","filter","_jsxs","optionWithSameID","index","label","Fragment","undefined","canUpdate","update","versionFromCreatedAt","createdAt","versionFromID","versionToCreatedAt","VersionToCreatedAtLabel","versionToStatus","_status"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n DocumentViewServerProps,\n Locale,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n TypeWithVersion,\n} from '@ruya.sa/payload'\n\nimport { formatDate } from '@ruya.sa/ui/shared'\nimport { getClientConfig } from '@ruya.sa/ui/utilities/getClientConfig'\nimport { getClientSchemaMap } from '@ruya.sa/ui/utilities/getClientSchemaMap'\nimport { getSchemaMap } from '@ruya.sa/ui/utilities/getSchemaMap'\nimport { notFound } from 'next/navigation.js'\nimport { hasDraftsEnabled } from '@ruya.sa/payload/shared'\nimport React from 'react'\n\nimport type { CompareOption } from './Default/types.js'\n\nimport { DefaultVersionView } from './Default/index.js'\nimport { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js'\nimport { RenderDiff } from './RenderFieldsToDiff/index.js'\nimport { getVersionLabel } from './VersionPillLabel/getVersionLabel.js'\nimport { VersionPillLabel } from './VersionPillLabel/VersionPillLabel.js'\n\nexport async function VersionView(props: DocumentViewServerProps) {\n const { hasPublishedDoc, i18n, initPageResult, routeSegments, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config, config: { localization } } = {}, user } = {},\n } = initPageResult\n\n const versionToID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig)\n\n const localeCodesFromParams = searchParams.localeCodes\n ? JSON.parse(searchParams.localeCodes as string)\n : null\n\n const versionFromIDFromParams = searchParams.versionFrom as string\n\n const modifiedOnly: boolean = searchParams.modifiedOnly === 'false' ? false : true\n\n const docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission = collectionSlug\n ? permissions.collections[collectionSlug]\n : permissions.globals[globalSlug]\n\n const versionTo = await fetchVersion<{\n _status?: string\n }>({\n id: versionToID,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (!versionTo) {\n return notFound()\n }\n\n const [\n previousVersionResult,\n versionFromResult,\n currentlyPublishedVersion,\n latestDraftVersion,\n previousPublishedVersionResult,\n ] = await Promise.all([\n // Previous version (the one before the versionTo)\n fetchVersions({\n collectionSlug,\n // If versionFromIDFromParams is provided, the previous version is only used in the version comparison dropdown => depth 0 is enough.\n // If it's not provided, this is used as `versionFrom` in the comparison, which expects populated data => depth 1 is needed.\n depth: versionFromIDFromParams ? 0 : 1,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n ],\n },\n }),\n // Version from ID from params\n (versionFromIDFromParams\n ? fetchVersion({\n id: versionFromIDFromParams,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n : Promise.resolve(null)) as Promise<null | TypeWithVersion<object>>,\n // Currently published version - do note: currently published != latest published, as an unpublished version can be the latest published\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n // Latest draft version\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n // Previous published version\n // Only query for published versions if drafts are enabled (since _status field only exists with drafts)\n draftsEnabled\n ? fetchVersions({\n collectionSlug,\n depth: 0,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n })\n : Promise.resolve(null),\n ])\n\n const previousVersion: null | TypeWithVersion<object> = previousVersionResult?.docs?.[0] ?? null\n\n const versionFrom =\n versionFromResult ||\n // By default, we'll compare the previous version. => versionFrom = version previous to versionTo\n previousVersion\n\n // Previous published version before the versionTo\n const previousPublishedVersion = previousPublishedVersionResult?.docs?.[0] ?? null\n\n let selectedLocales: string[] = []\n if (localization) {\n let locales: Locale[] = []\n if (localeCodesFromParams) {\n for (const code of localeCodesFromParams) {\n const locale = localization.locales.find((locale) => locale.code === code)\n if (!locale) {\n continue\n }\n locales.push(locale)\n }\n } else {\n locales = localization.locales\n }\n\n if (localization.filterAvailableLocales) {\n locales = (await localization.filterAvailableLocales({ locales, req })) || []\n }\n\n selectedLocales = locales.map((locale) => locale.code)\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config: payload.config,\n i18n,\n importMap: payload.importMap,\n user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n const RenderedDiff = RenderDiff({\n clientSchemaMap,\n customDiffComponents: {},\n entitySlug: collectionSlug || globalSlug,\n fields: (collectionConfig || globalConfig)?.fields,\n fieldsPermissions: docPermissions?.fields,\n i18n,\n modifiedOnly,\n parentIndexPath: '',\n parentIsLocalized: false,\n parentPath: '',\n parentSchemaPath: '',\n req,\n selectedLocales,\n versionFromSiblingData: {\n ...versionFrom?.version,\n updatedAt: versionFrom?.updatedAt,\n },\n versionToSiblingData: {\n ...versionTo.version,\n updatedAt: versionTo.updatedAt,\n },\n })\n\n const versionToCreatedAtFormatted = versionTo.updatedAt\n ? formatDate({\n date:\n typeof versionTo.updatedAt === 'string'\n ? new Date(versionTo.updatedAt)\n : (versionTo.updatedAt as Date),\n i18n,\n pattern: config.admin.dateFormat,\n })\n : ''\n\n const formatPill = ({\n doc,\n labelOverride,\n labelStyle,\n labelSuffix,\n }: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n labelStyle?: 'pill' | 'text'\n labelSuffix?: React.ReactNode\n }): React.ReactNode => {\n return (\n <VersionPillLabel\n currentlyPublishedVersion={currentlyPublishedVersion}\n doc={doc}\n key={doc.id}\n labelFirst={true}\n labelOverride={labelOverride}\n labelStyle={labelStyle ?? 'text'}\n labelSuffix={labelSuffix}\n latestDraftVersion={latestDraftVersion}\n />\n )\n }\n\n // SelectComparison Options:\n //\n // Previous version: always, unless doesn't exist. Can be the same as previously published\n // Latest draft: only if no newer published exists (latestDraftVersion)\n // Currently published: always, if exists\n // Previously published: if there is a prior published version older than versionTo\n // Specific Version: only if not already present under other label (= versionFrom)\n\n let versionFromOptions: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n updatedAt: Date\n value: string\n }[] = []\n\n // Previous version\n if (previousVersion?.id) {\n versionFromOptions.push({\n doc: previousVersion,\n labelOverride: i18n.t('version:previousVersion'),\n updatedAt: new Date(previousVersion.updatedAt),\n value: previousVersion.id,\n })\n }\n\n // Latest Draft\n const publishedNewerThanDraft =\n currentlyPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n if (latestDraftVersion && !publishedNewerThanDraft) {\n versionFromOptions.push({\n doc: latestDraftVersion,\n updatedAt: new Date(latestDraftVersion.updatedAt),\n value: latestDraftVersion.id,\n })\n }\n\n // Currently Published\n if (currentlyPublishedVersion) {\n versionFromOptions.push({\n doc: currentlyPublishedVersion,\n updatedAt: new Date(currentlyPublishedVersion.updatedAt),\n value: currentlyPublishedVersion.id,\n })\n }\n\n // Previous Published\n if (previousPublishedVersion && currentlyPublishedVersion?.id !== previousPublishedVersion.id) {\n versionFromOptions.push({\n doc: previousPublishedVersion,\n labelOverride: i18n.t('version:previouslyPublished'),\n updatedAt: new Date(previousPublishedVersion.updatedAt),\n value: previousPublishedVersion.id,\n })\n }\n\n // Specific Version\n if (versionFrom?.id && !versionFromOptions.some((option) => option.value === versionFrom.id)) {\n // Only add \"specific version\" if it is not already in the options\n versionFromOptions.push({\n doc: versionFrom,\n labelOverride: i18n.t('version:specificVersion'),\n updatedAt: new Date(versionFrom.updatedAt),\n value: versionFrom.id,\n })\n }\n\n versionFromOptions = versionFromOptions.sort((a, b) => {\n // Sort by updatedAt, newest first\n if (a && b) {\n return b.updatedAt.getTime() - a.updatedAt.getTime()\n }\n return 0\n })\n\n const versionToIsVersionFrom = versionFrom?.id === versionTo.id\n\n const versionFromComparisonOptions: CompareOption[] = []\n\n for (const option of versionFromOptions) {\n const isVersionTo = option.value === versionTo.id\n\n if (isVersionTo && !versionToIsVersionFrom) {\n // Don't offer selecting a versionFrom that is the same as versionTo, unless it's already selected\n continue\n }\n\n const alreadyAdded = versionFromComparisonOptions.some(\n (existingOption) => existingOption.value === option.value,\n )\n if (alreadyAdded) {\n continue\n }\n\n const otherOptionsWithSameID = versionFromOptions.filter(\n (existingOption) => existingOption.value === option.value && existingOption !== option,\n )\n\n // Merge options with same ID to the same option\n const labelSuffix = otherOptionsWithSameID?.length ? (\n <span key={`${option.value}-suffix`}>\n {' ('}\n {otherOptionsWithSameID.map((optionWithSameID, index) => {\n const label =\n optionWithSameID.labelOverride ||\n getVersionLabel({\n currentlyPublishedVersion,\n latestDraftVersion,\n t: i18n.t,\n version: optionWithSameID.doc,\n }).label\n\n return (\n <React.Fragment key={`${optionWithSameID.value}-${index}`}>\n {index > 0 ? ', ' : ''}\n {label}\n </React.Fragment>\n )\n })}\n {')'}\n </span>\n ) : undefined\n\n versionFromComparisonOptions.push({\n label: formatPill({\n doc: option.doc,\n labelOverride: option.labelOverride,\n labelSuffix,\n }),\n value: option.value,\n })\n }\n\n return (\n <DefaultVersionView\n canUpdate={docPermissions?.update}\n modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionFromCreatedAt={versionFrom?.createdAt}\n versionFromID={versionFrom?.id}\n versionFromOptions={versionFromComparisonOptions}\n versionToCreatedAt={versionTo.createdAt}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n VersionToCreatedAtLabel={formatPill({ doc: versionTo, labelStyle: 'pill' })}\n versionToID={versionTo.id}\n versionToStatus={versionTo.version?._status}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ import { getTranslation } from '@ruya.sa/translations';
2
+ import { formatDate } from '@ruya.sa/ui/shared';
3
+ import { generateMetadata } from '../../utilities/meta.js';
4
+ /**
5
+ * @todo Remove the `MetaConfig` type assertions. They are currently required because of how the `Metadata` type from `next` consumes the `URL` type.
6
+ */
7
+ export const generateVersionViewMetadata = async ({
8
+ collectionConfig,
9
+ config,
10
+ globalConfig,
11
+ i18n
12
+ }) => {
13
+ const {
14
+ t
15
+ } = i18n;
16
+ let metaToUse = {
17
+ ...(config.admin.meta || {})
18
+ };
19
+ const doc = {} // TODO: figure this out
20
+ ;
21
+ const formattedCreatedAt = doc?.createdAt ? formatDate({
22
+ date: doc.createdAt,
23
+ i18n,
24
+ pattern: config?.admin?.dateFormat
25
+ }) : '';
26
+ if (collectionConfig) {
27
+ const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id';
28
+ const entityLabel = getTranslation(collectionConfig.labels.singular, i18n);
29
+ const titleFromData = doc?.[useAsTitle];
30
+ metaToUse = {
31
+ ...(config.admin.meta || {}),
32
+ description: t('version:viewingVersion', {
33
+ documentTitle: titleFromData,
34
+ entityLabel
35
+ }),
36
+ title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${titleFromData ? ` - ${titleFromData}` : ''} - ${entityLabel}`,
37
+ ...(collectionConfig?.admin?.meta || {}),
38
+ ...(collectionConfig?.admin?.components?.views?.edit?.version?.meta || {})
39
+ };
40
+ }
41
+ if (globalConfig) {
42
+ const entityLabel = getTranslation(globalConfig.label, i18n);
43
+ metaToUse = {
44
+ ...(config.admin.meta || {}),
45
+ description: t('version:viewingVersionGlobal', {
46
+ entityLabel
47
+ }),
48
+ title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${entityLabel}`,
49
+ ...(globalConfig?.admin?.meta || {}),
50
+ ...(globalConfig?.admin?.components?.views?.edit?.version?.meta || {})
51
+ };
52
+ }
53
+ return generateMetadata({
54
+ ...metaToUse,
55
+ serverURL: config.serverURL
56
+ });
57
+ };
58
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["getTranslation","formatDate","generateMetadata","generateVersionViewMetadata","collectionConfig","config","globalConfig","i18n","t","metaToUse","admin","meta","doc","formattedCreatedAt","createdAt","date","pattern","dateFormat","useAsTitle","entityLabel","labels","singular","titleFromData","description","documentTitle","title","components","views","edit","version","label","serverURL"],"sources":["../../../src/views/Version/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { MetaConfig } from '@ruya.sa/payload'\n\nimport { getTranslation } from '@ruya.sa/translations'\nimport { formatDate } from '@ruya.sa/ui/shared'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\n/**\n * @todo Remove the `MetaConfig` type assertions. They are currently required because of how the `Metadata` type from `next` consumes the `URL` type.\n */\nexport const generateVersionViewMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n}): Promise<Metadata> => {\n const { t } = i18n\n\n let metaToUse: MetaConfig = {\n ...(config.admin.meta || {}),\n }\n\n const doc: any = {} // TODO: figure this out\n\n const formattedCreatedAt = doc?.createdAt\n ? formatDate({ date: doc.createdAt, i18n, pattern: config?.admin?.dateFormat })\n : ''\n\n if (collectionConfig) {\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id'\n const entityLabel = getTranslation(collectionConfig.labels.singular, i18n)\n const titleFromData = doc?.[useAsTitle]\n\n metaToUse = {\n ...(config.admin.meta || {}),\n description: t('version:viewingVersion', { documentTitle: titleFromData, entityLabel }),\n title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${titleFromData ? ` - ${titleFromData}` : ''} - ${entityLabel}`,\n ...(collectionConfig?.admin?.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.version?.meta || {}),\n }\n }\n\n if (globalConfig) {\n const entityLabel = getTranslation(globalConfig.label, i18n)\n\n metaToUse = {\n ...(config.admin.meta || {}),\n description: t('version:viewingVersionGlobal', { entityLabel }),\n title: `${t('version:version')}${formattedCreatedAt ? ` - ${formattedCreatedAt}` : ''}${entityLabel}`,\n ...((globalConfig?.admin?.meta || {}) as MetaConfig),\n ...((globalConfig?.admin?.components?.views?.edit?.version?.meta || {}) as MetaConfig),\n }\n }\n\n return generateMetadata({\n ...metaToUse,\n serverURL: config.serverURL,\n })\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAI3B,SAASC,gBAAgB,QAAQ;AAEjC;;;AAGA,OAAO,MAAMC,2BAAA,GAAwD,MAAAA,CAAO;EAC1EC,gBAAgB;EAChBC,MAAM;EACNC,YAAY;EACZC;AAAI,CACL;EACC,MAAM;IAAEC;EAAC,CAAE,GAAGD,IAAA;EAEd,IAAIE,SAAA,GAAwB;IAC1B,IAAIJ,MAAA,CAAOK,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;EAC7B;EAEA,MAAMC,GAAA,GAAW,CAAC,EAAE;EAAA;EAEpB,MAAMC,kBAAA,GAAqBD,GAAA,EAAKE,SAAA,GAC5Bb,UAAA,CAAW;IAAEc,IAAA,EAAMH,GAAA,CAAIE,SAAS;IAAEP,IAAA;IAAMS,OAAA,EAASX,MAAA,EAAQK,KAAA,EAAOO;EAAW,KAC3E;EAEJ,IAAIb,gBAAA,EAAkB;IACpB,MAAMc,UAAA,GAAad,gBAAA,EAAkBM,KAAA,EAAOQ,UAAA,IAAc;IAC1D,MAAMC,WAAA,GAAcnB,cAAA,CAAeI,gBAAA,CAAiBgB,MAAM,CAACC,QAAQ,EAAEd,IAAA;IACrE,MAAMe,aAAA,GAAgBV,GAAA,GAAMM,UAAA,CAAW;IAEvCT,SAAA,GAAY;MACV,IAAIJ,MAAA,CAAOK,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;MAC3BY,WAAA,EAAaf,CAAA,CAAE,0BAA0B;QAAEgB,aAAA,EAAeF,aAAA;QAAeH;MAAY;MACrFM,KAAA,EAAO,GAAGjB,CAAA,CAAE,qBAAqBK,kBAAA,GAAqB,MAAMA,kBAAA,EAAoB,GAAG,KAAKS,aAAA,GAAgB,MAAMA,aAAA,EAAe,GAAG,QAAQH,WAAA,EAAa;MACrJ,IAAIf,gBAAA,EAAkBM,KAAA,EAAOC,IAAA,IAAQ,CAAC,CAAC;MACvC,IAAIP,gBAAA,EAAkBM,KAAA,EAAOgB,UAAA,EAAYC,KAAA,EAAOC,IAAA,EAAMC,OAAA,EAASlB,IAAA,IAAQ,CAAC,CAAC;IAC3E;EACF;EAEA,IAAIL,YAAA,EAAc;IAChB,MAAMa,WAAA,GAAcnB,cAAA,CAAeM,YAAA,CAAawB,KAAK,EAAEvB,IAAA;IAEvDE,SAAA,GAAY;MACV,IAAIJ,MAAA,CAAOK,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;MAC3BY,WAAA,EAAaf,CAAA,CAAE,gCAAgC;QAAEW;MAAY;MAC7DM,KAAA,EAAO,GAAGjB,CAAA,CAAE,qBAAqBK,kBAAA,GAAqB,MAAMA,kBAAA,EAAoB,GAAG,KAAKM,WAAA,EAAa;MACrG,IAAKb,YAAA,EAAcI,KAAA,EAAOC,IAAA,IAAQ,CAAC,CAAC;MACpC,IAAKL,YAAA,EAAcI,KAAA,EAAOgB,UAAA,EAAYC,KAAA,EAAOC,IAAA,EAAMC,OAAA,EAASlB,IAAA,IAAQ,CAAC,CAAC;IACxE;EACF;EAEA,OAAOT,gBAAA,CAAiB;IACtB,GAAGO,SAAS;IACZsB,SAAA,EAAW1B,MAAA,CAAO0B;EACpB;AACF","ignoreList":[]}