@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.
- package/LICENSE.md +22 -0
- package/dist/auth/login.js +67 -0
- package/dist/auth/login.js.map +1 -0
- package/dist/auth/logout.js +52 -0
- package/dist/auth/logout.js.map +1 -0
- package/dist/auth/refresh.js +56 -0
- package/dist/auth/refresh.js.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/dummy.css +0 -0
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +19 -0
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +81 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +66 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/index.js +78 -0
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +29 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +72 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -0
- package/dist/elements/DocumentHeader/index.js +36 -0
- package/dist/elements/DocumentHeader/index.js.map +1 -0
- package/dist/elements/FormHeader/index.js +20 -0
- package/dist/elements/FormHeader/index.js.map +1 -0
- package/dist/elements/Logo/index.js +39 -0
- package/dist/elements/Logo/index.js.map +1 -0
- package/dist/elements/Nav/NavHamburger/index.js +51 -0
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -0
- package/dist/elements/Nav/NavWrapper/index.js +61 -0
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -0
- package/dist/elements/Nav/SettingsMenuButton/index.js +45 -0
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -0
- package/dist/elements/Nav/getNavPrefs.js +26 -0
- package/dist/elements/Nav/getNavPrefs.js.map +1 -0
- package/dist/elements/Nav/index.client.js +133 -0
- package/dist/elements/Nav/index.client.js.map +1 -0
- package/dist/elements/Nav/index.js +145 -0
- package/dist/elements/Nav/index.js.map +1 -0
- package/dist/esbuildEntry.js +5 -0
- package/dist/esbuildEntry.js.map +1 -0
- package/dist/exports/auth.js +4 -0
- package/dist/exports/auth.js.map +1 -0
- package/dist/exports/client.js +6 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/layouts.js +3 -0
- package/dist/exports/layouts.js.map +1 -0
- package/dist/exports/routes.js +3 -0
- package/dist/exports/routes.js.map +1 -0
- package/dist/exports/rsc.js +4 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/exports/templates.js +3 -0
- package/dist/exports/templates.js.map +1 -0
- package/dist/exports/utilities.js +53 -0
- package/dist/exports/utilities.js.map +1 -0
- package/dist/exports/views.js +10 -0
- package/dist/exports/views.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/Root/NestProviders.js +24 -0
- package/dist/layouts/Root/NestProviders.js.map +1 -0
- package/dist/layouts/Root/checkDependencies.js +49 -0
- package/dist/layouts/Root/checkDependencies.js.map +1 -0
- package/dist/layouts/Root/index.js +120 -0
- package/dist/layouts/Root/index.js.map +1 -0
- package/dist/routes/graphql/handler.js +137 -0
- package/dist/routes/graphql/handler.js.map +1 -0
- package/dist/routes/graphql/index.js +3 -0
- package/dist/routes/graphql/index.js.map +1 -0
- package/dist/routes/graphql/playground.js +31 -0
- package/dist/routes/graphql/playground.js.map +1 -0
- package/dist/routes/index.js +3 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/rest/index.js +33 -0
- package/dist/routes/rest/index.js.map +1 -0
- package/dist/routes/rest/og/image.js +86 -0
- package/dist/routes/rest/og/image.js.map +1 -0
- package/dist/routes/rest/og/index.js +70 -0
- package/dist/routes/rest/og/index.js.map +1 -0
- package/dist/routes/rest/og/roboto-regular.woff +0 -0
- package/dist/templates/Default/NavHamburger/index.js +25 -0
- package/dist/templates/Default/NavHamburger/index.js.map +1 -0
- package/dist/templates/Default/Wrapper/index.js +49 -0
- package/dist/templates/Default/Wrapper/index.js.map +1 -0
- package/dist/templates/Default/index.js +129 -0
- package/dist/templates/Default/index.js.map +1 -0
- package/dist/templates/Minimal/index.js +21 -0
- package/dist/templates/Minimal/index.js.map +1 -0
- package/dist/utilities/getExistingAuthToken.js +6 -0
- package/dist/utilities/getExistingAuthToken.js.map +1 -0
- package/dist/utilities/getNextRequestI18n.js +22 -0
- package/dist/utilities/getNextRequestI18n.js.map +1 -0
- package/dist/utilities/getPayloadHMR.js +15 -0
- package/dist/utilities/getPayloadHMR.js.map +1 -0
- package/dist/utilities/getPreferences.js +26 -0
- package/dist/utilities/getPreferences.js.map +1 -0
- package/dist/utilities/getRequestLocale.js +20 -0
- package/dist/utilities/getRequestLocale.js.map +1 -0
- package/dist/utilities/getRequestTheme.js +22 -0
- package/dist/utilities/getRequestTheme.js.map +1 -0
- package/dist/utilities/getRouteWithoutAdmin.js +7 -0
- package/dist/utilities/getRouteWithoutAdmin.js.map +1 -0
- package/dist/utilities/handleAuthRedirect.js +41 -0
- package/dist/utilities/handleAuthRedirect.js.map +1 -0
- package/dist/utilities/handleServerFunctions.js +57 -0
- package/dist/utilities/handleServerFunctions.js.map +1 -0
- package/dist/utilities/initReq.js +110 -0
- package/dist/utilities/initReq.js.map +1 -0
- package/dist/utilities/isCustomAdminView.js +31 -0
- package/dist/utilities/isCustomAdminView.js.map +1 -0
- package/dist/utilities/isPublicAdminRoute.js +25 -0
- package/dist/utilities/isPublicAdminRoute.js.map +1 -0
- package/dist/utilities/meta.js +69 -0
- package/dist/utilities/meta.js.map +1 -0
- package/dist/utilities/selectiveCache.js +38 -0
- package/dist/utilities/selectiveCache.js.map +1 -0
- package/dist/utilities/setPayloadAuthCookie.js +27 -0
- package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
- package/dist/utilities/slugify.js +47 -0
- package/dist/utilities/slugify.js.map +1 -0
- package/dist/utilities/timestamp.js +8 -0
- package/dist/utilities/timestamp.js.map +1 -0
- package/dist/views/API/LocaleSelector/index.js +44 -0
- package/dist/views/API/LocaleSelector/index.js.map +1 -0
- package/dist/views/API/RenderJSON/index.js +135 -0
- package/dist/views/API/RenderJSON/index.js.map +1 -0
- package/dist/views/API/index.client.js +209 -0
- package/dist/views/API/index.client.js.map +1 -0
- package/dist/views/API/index.js +7 -0
- package/dist/views/API/index.js.map +1 -0
- package/dist/views/API/metadata.js +29 -0
- package/dist/views/API/metadata.js.map +1 -0
- package/dist/views/Account/ResetPreferences/index.js +112 -0
- package/dist/views/Account/ResetPreferences/index.js.map +1 -0
- package/dist/views/Account/Settings/LanguageSelector.js +52 -0
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -0
- package/dist/views/Account/Settings/index.js +33 -0
- package/dist/views/Account/Settings/index.js.map +1 -0
- package/dist/views/Account/ToggleTheme/index.js +60 -0
- package/dist/views/Account/ToggleTheme/index.js.map +1 -0
- package/dist/views/Account/index.client.js +37 -0
- package/dist/views/Account/index.client.js.map +1 -0
- package/dist/views/Account/index.js +178 -0
- package/dist/views/Account/index.js.map +1 -0
- package/dist/views/Account/metadata.js +14 -0
- package/dist/views/Account/metadata.js.map +1 -0
- package/dist/views/BrowseByFolder/buildView.js +169 -0
- package/dist/views/BrowseByFolder/buildView.js.map +1 -0
- package/dist/views/BrowseByFolder/index.js +20 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/metadata.js +18 -0
- package/dist/views/BrowseByFolder/metadata.js.map +1 -0
- package/dist/views/CollectionFolders/buildView.js +156 -0
- package/dist/views/CollectionFolders/buildView.js.map +1 -0
- package/dist/views/CollectionFolders/index.js +20 -0
- package/dist/views/CollectionFolders/index.js.map +1 -0
- package/dist/views/CollectionFolders/metadata.js +25 -0
- package/dist/views/CollectionFolders/metadata.js.map +1 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
- package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
- package/dist/views/CollectionTrash/index.js +21 -0
- package/dist/views/CollectionTrash/index.js.map +1 -0
- package/dist/views/CollectionTrash/metadata.js +25 -0
- package/dist/views/CollectionTrash/metadata.js.map +1 -0
- package/dist/views/CreateFirstUser/index.client.js +112 -0
- package/dist/views/CreateFirstUser/index.client.js.map +1 -0
- package/dist/views/CreateFirstUser/index.js +88 -0
- package/dist/views/CreateFirstUser/index.js.map +1 -0
- package/dist/views/CreateFirstUser/metadata.js +14 -0
- package/dist/views/CreateFirstUser/metadata.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +147 -0
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +431 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.js +87 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +99 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +58 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +72 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +158 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +38 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +264 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -0
- package/dist/views/Dashboard/Default/index.js +52 -0
- package/dist/views/Dashboard/Default/index.js.map +1 -0
- package/dist/views/Dashboard/index.js +50 -0
- package/dist/views/Dashboard/index.js.map +1 -0
- package/dist/views/Dashboard/metadata.js +16 -0
- package/dist/views/Dashboard/metadata.js.map +1 -0
- package/dist/views/Document/getCustomDocumentViewByKey.js +4 -0
- package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -0
- package/dist/views/Document/getCustomViewByRoute.js +35 -0
- package/dist/views/Document/getCustomViewByRoute.js.map +1 -0
- package/dist/views/Document/getDocPreferences.js +45 -0
- package/dist/views/Document/getDocPreferences.js.map +1 -0
- package/dist/views/Document/getDocumentData.js +60 -0
- package/dist/views/Document/getDocumentData.js.map +1 -0
- package/dist/views/Document/getDocumentPermissions.js +87 -0
- package/dist/views/Document/getDocumentPermissions.js.map +1 -0
- package/dist/views/Document/getDocumentView.js +310 -0
- package/dist/views/Document/getDocumentView.js.map +1 -0
- package/dist/views/Document/getIsLocked.js +79 -0
- package/dist/views/Document/getIsLocked.js.map +1 -0
- package/dist/views/Document/getMetaBySegment.js +150 -0
- package/dist/views/Document/getMetaBySegment.js.map +1 -0
- package/dist/views/Document/getVersions.js +210 -0
- package/dist/views/Document/getVersions.js.map +1 -0
- package/dist/views/Document/handleServerFunction.js +135 -0
- package/dist/views/Document/handleServerFunction.js.map +1 -0
- package/dist/views/Document/index.js +390 -0
- package/dist/views/Document/index.js.map +1 -0
- package/dist/views/Document/metadata.js +3 -0
- package/dist/views/Document/metadata.js.map +1 -0
- package/dist/views/Document/renderDocumentSlots.js +154 -0
- package/dist/views/Document/renderDocumentSlots.js.map +1 -0
- package/dist/views/Edit/index.js +11 -0
- package/dist/views/Edit/index.js.map +1 -0
- package/dist/views/Edit/metadata.js +52 -0
- package/dist/views/Edit/metadata.js.map +1 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +179 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -0
- package/dist/views/ForgotPassword/index.js +72 -0
- package/dist/views/ForgotPassword/index.js.map +1 -0
- package/dist/views/ForgotPassword/metadata.js +14 -0
- package/dist/views/ForgotPassword/metadata.js.map +1 -0
- package/dist/views/List/createSerializableValue.js +14 -0
- package/dist/views/List/createSerializableValue.js.map +1 -0
- package/dist/views/List/enrichDocsWithVersionStatus.js +96 -0
- package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -0
- package/dist/views/List/extractRelationshipDisplayValue.js +17 -0
- package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -0
- package/dist/views/List/extractValueOrRelationshipID.js +19 -0
- package/dist/views/List/extractValueOrRelationshipID.js.map +1 -0
- package/dist/views/List/handleGroupBy.js +160 -0
- package/dist/views/List/handleGroupBy.js.map +1 -0
- package/dist/views/List/handleServerFunction.js +130 -0
- package/dist/views/List/handleServerFunction.js.map +1 -0
- package/dist/views/List/index.js +356 -0
- package/dist/views/List/index.js.map +1 -0
- package/dist/views/List/metadata.js +24 -0
- package/dist/views/List/metadata.js.map +1 -0
- package/dist/views/List/renderListViewSlots.js +80 -0
- package/dist/views/List/renderListViewSlots.js.map +1 -0
- package/dist/views/List/resolveAllFilterOptions.js +49 -0
- package/dist/views/List/resolveAllFilterOptions.js.map +1 -0
- package/dist/views/List/transformColumnsToSelect.js +11 -0
- package/dist/views/List/transformColumnsToSelect.js.map +1 -0
- package/dist/views/Login/LoginField/index.js +98 -0
- package/dist/views/Login/LoginField/index.js.map +1 -0
- package/dist/views/Login/LoginForm/index.js +177 -0
- package/dist/views/Login/LoginForm/index.js.map +1 -0
- package/dist/views/Login/index.js +95 -0
- package/dist/views/Login/index.js.map +1 -0
- package/dist/views/Login/metadata.js +14 -0
- package/dist/views/Login/metadata.js.map +1 -0
- package/dist/views/Logout/LogoutClient.js +140 -0
- package/dist/views/Logout/LogoutClient.js.map +1 -0
- package/dist/views/Logout/index.js +36 -0
- package/dist/views/Logout/index.js.map +1 -0
- package/dist/views/Logout/metadata.js +13 -0
- package/dist/views/Logout/metadata.js.map +1 -0
- package/dist/views/NotFound/index.client.js +88 -0
- package/dist/views/NotFound/index.client.js.map +1 -0
- package/dist/views/NotFound/index.js +87 -0
- package/dist/views/NotFound/index.js.map +1 -0
- package/dist/views/NotFound/metadata.js +11 -0
- package/dist/views/NotFound/metadata.js.map +1 -0
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +117 -0
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
- package/dist/views/ResetPassword/index.js +83 -0
- package/dist/views/ResetPassword/index.js.map +1 -0
- package/dist/views/ResetPassword/metadata.js +14 -0
- package/dist/views/ResetPassword/metadata.js.map +1 -0
- package/dist/views/Root/attachViewActions.js +27 -0
- package/dist/views/Root/attachViewActions.js.map +1 -0
- package/dist/views/Root/generateCustomViewMetadata.js +25 -0
- package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
- package/dist/views/Root/getCustomViewByKey.js +16 -0
- package/dist/views/Root/getCustomViewByKey.js.map +1 -0
- package/dist/views/Root/getCustomViewByRoute.js +48 -0
- package/dist/views/Root/getCustomViewByRoute.js.map +1 -0
- package/dist/views/Root/getDocumentViewInfo.js +28 -0
- package/dist/views/Root/getDocumentViewInfo.js.map +1 -0
- package/dist/views/Root/getRouteData.js +359 -0
- package/dist/views/Root/getRouteData.js.map +1 -0
- package/dist/views/Root/index.js +300 -0
- package/dist/views/Root/index.js.map +1 -0
- package/dist/views/Root/isPathMatchingRoute.js +29 -0
- package/dist/views/Root/isPathMatchingRoute.js.map +1 -0
- package/dist/views/Root/metadata.js +209 -0
- package/dist/views/Root/metadata.js.map +1 -0
- package/dist/views/Unauthorized/index.js +54 -0
- package/dist/views/Unauthorized/index.js.map +1 -0
- package/dist/views/Unauthorized/metadata.js +14 -0
- package/dist/views/Unauthorized/metadata.js.map +1 -0
- package/dist/views/Verify/index.client.js +50 -0
- package/dist/views/Verify/index.client.js.map +1 -0
- package/dist/views/Verify/index.js +71 -0
- package/dist/views/Verify/index.js.map +1 -0
- package/dist/views/Verify/metadata.js +14 -0
- package/dist/views/Verify/metadata.js.map +1 -0
- package/dist/views/Version/Default/SelectedLocalesContext.js +8 -0
- package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -0
- package/dist/views/Version/Default/SetStepNav.js +135 -0
- package/dist/views/Version/Default/SetStepNav.js.map +1 -0
- package/dist/views/Version/Default/index.js +253 -0
- package/dist/views/Version/Default/index.js.map +1 -0
- package/dist/views/Version/Default/types.js +2 -0
- package/dist/views/Version/Default/types.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +130 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +80 -0
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +439 -0
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +61 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +75 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +66 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +129 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +45 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +188 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +87 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +155 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +100 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +222 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +35 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/index.js +13 -0
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +242 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +861 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +47 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +45 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +135 -0
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
- package/dist/views/Version/Restore/index.js +106 -0
- package/dist/views/Version/Restore/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +56 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +240 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/index.js +57 -0
- package/dist/views/Version/SelectComparison/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/types.js +2 -0
- package/dist/views/Version/SelectComparison/types.js.map +1 -0
- package/dist/views/Version/SelectLocales/index.js +39 -0
- package/dist/views/Version/SelectLocales/index.js.map +1 -0
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +110 -0
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -0
- package/dist/views/Version/VersionPillLabel/getVersionLabel.js +34 -0
- package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -0
- package/dist/views/Version/fetchVersions.js +151 -0
- package/dist/views/Version/fetchVersions.js.map +1 -0
- package/dist/views/Version/index.js +349 -0
- package/dist/views/Version/index.js.map +1 -0
- package/dist/views/Version/metadata.js +58 -0
- package/dist/views/Version/metadata.js.map +1 -0
- package/dist/views/Versions/buildColumns.js +88 -0
- package/dist/views/Versions/buildColumns.js.map +1 -0
- package/dist/views/Versions/cells/AutosaveCell/index.js +45 -0
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -0
- package/dist/views/Versions/cells/CreatedAt/index.js +60 -0
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -0
- package/dist/views/Versions/cells/ID/index.js +12 -0
- package/dist/views/Versions/cells/ID/index.js.map +1 -0
- package/dist/views/Versions/index.client.js +89 -0
- package/dist/views/Versions/index.client.js.map +1 -0
- package/dist/views/Versions/index.js +157 -0
- package/dist/views/Versions/index.js.map +1 -0
- package/dist/views/Versions/metadata.js +51 -0
- package/dist/views/Versions/metadata.js.map +1 -0
- package/dist/views/Versions/types.js +2 -0
- package/dist/views/Versions/types.js.map +1 -0
- package/dist/withPayload/withPayload.js +162 -0
- package/dist/withPayload/withPayload.js.map +1 -0
- package/dist/withPayload/withPayload.spec.js +40 -0
- package/dist/withPayload/withPayload.spec.js.map +1 -0
- package/dist/withPayload/withPayload.utils.js +133 -0
- package/dist/withPayload/withPayload.utils.js.map +1 -0
- package/dist/withPayload/withPayloadLegacy.js +47 -0
- package/dist/withPayload/withPayloadLegacy.js.map +1 -0
- 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":[]}
|