@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,52 @@
|
|
|
1
|
+
import { getTranslation } from '@ruya.sa/translations';
|
|
2
|
+
import { generateMetadata } from '../../utilities/meta.js';
|
|
3
|
+
/**
|
|
4
|
+
* @todo Remove the type assertion. This is currently required because of how the `Metadata` type from `next` consumes the `URL` type.
|
|
5
|
+
*/
|
|
6
|
+
export const generateEditViewMetadata = async ({
|
|
7
|
+
collectionConfig,
|
|
8
|
+
config,
|
|
9
|
+
globalConfig,
|
|
10
|
+
i18n,
|
|
11
|
+
isEditing,
|
|
12
|
+
isReadOnly = false,
|
|
13
|
+
view = 'default'
|
|
14
|
+
}) => {
|
|
15
|
+
const {
|
|
16
|
+
t
|
|
17
|
+
} = i18n;
|
|
18
|
+
const entityLabel = collectionConfig ? getTranslation(collectionConfig.labels.singular, i18n) : globalConfig ? getTranslation(globalConfig.label, i18n) : '';
|
|
19
|
+
const verb = isReadOnly ? t('general:viewing') : isEditing ? t('general:editing') : t('general:creating');
|
|
20
|
+
const metaToUse = {
|
|
21
|
+
...(config.admin.meta || {}),
|
|
22
|
+
description: `${verb} - ${entityLabel}`,
|
|
23
|
+
keywords: `${entityLabel}, Payload, CMS`,
|
|
24
|
+
title: `${verb} - ${entityLabel}`
|
|
25
|
+
};
|
|
26
|
+
const ogToUse = {
|
|
27
|
+
title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,
|
|
28
|
+
...(config.admin.meta.openGraph || {}),
|
|
29
|
+
...(collectionConfig ? {
|
|
30
|
+
...(collectionConfig?.admin.meta?.openGraph || {}),
|
|
31
|
+
...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {})
|
|
32
|
+
} : {}),
|
|
33
|
+
...(globalConfig ? {
|
|
34
|
+
...(globalConfig?.admin.meta?.openGraph || {}),
|
|
35
|
+
...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {})
|
|
36
|
+
} : {})
|
|
37
|
+
};
|
|
38
|
+
return generateMetadata({
|
|
39
|
+
...metaToUse,
|
|
40
|
+
openGraph: ogToUse,
|
|
41
|
+
...(collectionConfig ? {
|
|
42
|
+
...(collectionConfig?.admin.meta || {}),
|
|
43
|
+
...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta || {})
|
|
44
|
+
} : {}),
|
|
45
|
+
...(globalConfig ? {
|
|
46
|
+
...(globalConfig?.admin.meta || {}),
|
|
47
|
+
...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta || {})
|
|
48
|
+
} : {}),
|
|
49
|
+
serverURL: config.serverURL
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","names":["getTranslation","generateMetadata","generateEditViewMetadata","collectionConfig","config","globalConfig","i18n","isEditing","isReadOnly","view","t","entityLabel","labels","singular","label","verb","metaToUse","admin","meta","description","keywords","title","ogToUse","openGraph","components","views","edit","serverURL"],"sources":["../../../src/views/Edit/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { MetaConfig } from '@ruya.sa/payload'\n\nimport { getTranslation } from '@ruya.sa/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\n/**\n * @todo Remove the type assertion. This is currently required because of how the `Metadata` type from `next` consumes the `URL` type.\n */\nexport const generateEditViewMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n isReadOnly = false,\n view = 'default',\n}): Promise<Metadata> => {\n const { t } = i18n\n\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n const verb = isReadOnly\n ? t('general:viewing')\n : isEditing\n ? t('general:editing')\n : t('general:creating')\n\n const metaToUse: MetaConfig = {\n ...(config.admin.meta || {}),\n description: `${verb} - ${entityLabel}`,\n keywords: `${entityLabel}, Payload, CMS`,\n title: `${verb} - ${entityLabel}`,\n }\n\n const ogToUse: MetaConfig['openGraph'] = {\n title: `${isEditing ? t('general:edit') : t('general:edit')} - ${entityLabel}`,\n ...(config.admin.meta.openGraph || {}),\n ...((collectionConfig\n ? {\n ...(collectionConfig?.admin.meta?.openGraph || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}) as MetaConfig['openGraph']),\n ...((globalConfig\n ? {\n ...(globalConfig?.admin.meta?.openGraph || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta?.openGraph || {}),\n }\n : {}) as MetaConfig['openGraph']),\n }\n\n return generateMetadata({\n ...metaToUse,\n openGraph: ogToUse,\n ...((collectionConfig\n ? {\n ...(collectionConfig?.admin.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}) as MetaConfig),\n ...((globalConfig\n ? {\n ...(globalConfig?.admin.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.[view]?.meta || {}),\n }\n : {}) as MetaConfig),\n serverURL: config.serverURL,\n })\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAI/B,SAASC,gBAAgB,QAAQ;AAEjC;;;AAGA,OAAO,MAAMC,wBAAA,GAAqD,MAAAA,CAAO;EACvEC,gBAAgB;EAChBC,MAAM;EACNC,YAAY;EACZC,IAAI;EACJC,SAAS;EACTC,UAAA,GAAa,KAAK;EAClBC,IAAA,GAAO;AAAS,CACjB;EACC,MAAM;IAAEC;EAAC,CAAE,GAAGJ,IAAA;EAEd,MAAMK,WAAA,GAAcR,gBAAA,GAChBH,cAAA,CAAeG,gBAAA,CAAiBS,MAAM,CAACC,QAAQ,EAAEP,IAAA,IACjDD,YAAA,GACEL,cAAA,CAAeK,YAAA,CAAaS,KAAK,EAAER,IAAA,IACnC;EAEN,MAAMS,IAAA,GAAOP,UAAA,GACTE,CAAA,CAAE,qBACFH,SAAA,GACEG,CAAA,CAAE,qBACFA,CAAA,CAAE;EAER,MAAMM,SAAA,GAAwB;IAC5B,IAAIZ,MAAA,CAAOa,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BC,WAAA,EAAa,GAAGJ,IAAA,MAAUJ,WAAA,EAAa;IACvCS,QAAA,EAAU,GAAGT,WAAA,gBAA2B;IACxCU,KAAA,EAAO,GAAGN,IAAA,MAAUJ,WAAA;EACtB;EAEA,MAAMW,OAAA,GAAmC;IACvCD,KAAA,EAAO,GAAGd,SAAA,GAAYG,CAAA,CAAE,kBAAkBA,CAAA,CAAE,qBAAqBC,WAAA,EAAa;IAC9E,IAAIP,MAAA,CAAOa,KAAK,CAACC,IAAI,CAACK,SAAS,IAAI,CAAC,CAAC;IACrC,IAAKpB,gBAAA,GACD;MACE,IAAIA,gBAAA,EAAkBc,KAAA,CAAMC,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;MACjD,IAAIpB,gBAAA,EAAkBc,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;IACrF,IACA,CAAC,CAAC;IACN,IAAKlB,YAAA,GACD;MACE,IAAIA,YAAA,EAAcY,KAAA,CAAMC,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;MAC7C,IAAIlB,YAAA,EAAcY,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,EAAMK,SAAA,IAAa,CAAC,CAAC;IACjF,IACA,CAAC,CAAC;EACR;EAEA,OAAOtB,gBAAA,CAAiB;IACtB,GAAGe,SAAS;IACZO,SAAA,EAAWD,OAAA;IACX,IAAKnB,gBAAA,GACD;MACE,IAAIA,gBAAA,EAAkBc,KAAA,CAAMC,IAAA,IAAQ,CAAC,CAAC;MACtC,IAAIf,gBAAA,EAAkBc,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,IAAQ,CAAC,CAAC;IAC1E,IACA,CAAC,CAAC;IACN,IAAKb,YAAA,GACD;MACE,IAAIA,YAAA,EAAcY,KAAA,CAAMC,IAAA,IAAQ,CAAC,CAAC;MAClC,IAAIb,YAAA,EAAcY,KAAA,EAAOO,UAAA,EAAYC,KAAA,EAAOC,IAAA,GAAOjB,IAAA,CAAK,EAAES,IAAA,IAAQ,CAAC,CAAC;IACtE,IACA,CAAC,CAAC;IACNS,SAAA,EAAWvB,MAAA,CAAOuB;EACpB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { EmailField, Form, FormSubmit, TextField, useConfig, useTranslation } from '@ruya.sa/ui';
|
|
6
|
+
import { email, text } from '@ruya.sa/payload/shared';
|
|
7
|
+
import React, { useState } from 'react';
|
|
8
|
+
import { FormHeader } from '../../../elements/FormHeader/index.js';
|
|
9
|
+
export const ForgotPasswordForm = () => {
|
|
10
|
+
const $ = _c(17);
|
|
11
|
+
const {
|
|
12
|
+
config,
|
|
13
|
+
getEntityConfig
|
|
14
|
+
} = useConfig();
|
|
15
|
+
const {
|
|
16
|
+
admin: t0,
|
|
17
|
+
routes: t1
|
|
18
|
+
} = config;
|
|
19
|
+
const {
|
|
20
|
+
user: userSlug
|
|
21
|
+
} = t0;
|
|
22
|
+
const {
|
|
23
|
+
api
|
|
24
|
+
} = t1;
|
|
25
|
+
const {
|
|
26
|
+
t
|
|
27
|
+
} = useTranslation();
|
|
28
|
+
const [hasSubmitted, setHasSubmitted] = useState(false);
|
|
29
|
+
let t2;
|
|
30
|
+
if ($[0] !== getEntityConfig || $[1] !== userSlug) {
|
|
31
|
+
t2 = getEntityConfig({
|
|
32
|
+
collectionSlug: userSlug
|
|
33
|
+
});
|
|
34
|
+
$[0] = getEntityConfig;
|
|
35
|
+
$[1] = userSlug;
|
|
36
|
+
$[2] = t2;
|
|
37
|
+
} else {
|
|
38
|
+
t2 = $[2];
|
|
39
|
+
}
|
|
40
|
+
const collectionConfig = t2;
|
|
41
|
+
const loginWithUsername = collectionConfig?.auth?.loginWithUsername;
|
|
42
|
+
let t3;
|
|
43
|
+
if ($[3] !== loginWithUsername || $[4] !== t) {
|
|
44
|
+
t3 = (res, successToast, errorToast) => {
|
|
45
|
+
res.json().then(() => {
|
|
46
|
+
setHasSubmitted(true);
|
|
47
|
+
successToast(t("general:submissionSuccessful"));
|
|
48
|
+
}).catch(() => {
|
|
49
|
+
errorToast(loginWithUsername ? t("authentication:usernameNotValid") : t("authentication:emailNotValid"));
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
$[3] = loginWithUsername;
|
|
53
|
+
$[4] = t;
|
|
54
|
+
$[5] = t3;
|
|
55
|
+
} else {
|
|
56
|
+
t3 = $[5];
|
|
57
|
+
}
|
|
58
|
+
const handleResponse = t3;
|
|
59
|
+
let t4;
|
|
60
|
+
let t5;
|
|
61
|
+
if ($[6] !== api || $[7] !== config || $[8] !== handleResponse || $[9] !== hasSubmitted || $[10] !== loginWithUsername || $[11] !== t || $[12] !== userSlug) {
|
|
62
|
+
t5 = Symbol.for("react.early_return_sentinel");
|
|
63
|
+
bb0: {
|
|
64
|
+
const initialState = loginWithUsername ? {
|
|
65
|
+
username: {
|
|
66
|
+
initialValue: "",
|
|
67
|
+
valid: true,
|
|
68
|
+
value: undefined
|
|
69
|
+
}
|
|
70
|
+
} : {
|
|
71
|
+
email: {
|
|
72
|
+
initialValue: "",
|
|
73
|
+
valid: true,
|
|
74
|
+
value: undefined
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
if (hasSubmitted) {
|
|
78
|
+
let t6;
|
|
79
|
+
if ($[15] !== t) {
|
|
80
|
+
t6 = _jsx(FormHeader, {
|
|
81
|
+
description: t("authentication:checkYourEmailForPasswordReset"),
|
|
82
|
+
heading: t("authentication:emailSent")
|
|
83
|
+
});
|
|
84
|
+
$[15] = t;
|
|
85
|
+
$[16] = t6;
|
|
86
|
+
} else {
|
|
87
|
+
t6 = $[16];
|
|
88
|
+
}
|
|
89
|
+
t5 = t6;
|
|
90
|
+
break bb0;
|
|
91
|
+
}
|
|
92
|
+
t4 = _jsxs(Form, {
|
|
93
|
+
action: `${api}/${userSlug}/forgot-password`,
|
|
94
|
+
handleResponse,
|
|
95
|
+
initialState,
|
|
96
|
+
method: "POST",
|
|
97
|
+
children: [_jsx(FormHeader, {
|
|
98
|
+
description: loginWithUsername ? t("authentication:forgotPasswordUsernameInstructions") : t("authentication:forgotPasswordEmailInstructions"),
|
|
99
|
+
heading: t("authentication:forgotPassword")
|
|
100
|
+
}), loginWithUsername ? _jsx(TextField, {
|
|
101
|
+
field: {
|
|
102
|
+
name: "username",
|
|
103
|
+
label: t("authentication:username"),
|
|
104
|
+
required: true
|
|
105
|
+
},
|
|
106
|
+
path: "username",
|
|
107
|
+
validate: value => text(value, {
|
|
108
|
+
name: "username",
|
|
109
|
+
type: "text",
|
|
110
|
+
blockData: {},
|
|
111
|
+
data: {},
|
|
112
|
+
event: "onChange",
|
|
113
|
+
path: ["username"],
|
|
114
|
+
preferences: {
|
|
115
|
+
fields: {}
|
|
116
|
+
},
|
|
117
|
+
req: {
|
|
118
|
+
payload: {
|
|
119
|
+
config
|
|
120
|
+
},
|
|
121
|
+
t
|
|
122
|
+
},
|
|
123
|
+
required: true,
|
|
124
|
+
siblingData: {}
|
|
125
|
+
})
|
|
126
|
+
}) : _jsx(EmailField, {
|
|
127
|
+
field: {
|
|
128
|
+
name: "email",
|
|
129
|
+
admin: {
|
|
130
|
+
autoComplete: "email"
|
|
131
|
+
},
|
|
132
|
+
label: t("general:email"),
|
|
133
|
+
required: true
|
|
134
|
+
},
|
|
135
|
+
path: "email",
|
|
136
|
+
validate: value_0 => email(value_0, {
|
|
137
|
+
name: "email",
|
|
138
|
+
type: "email",
|
|
139
|
+
blockData: {},
|
|
140
|
+
data: {},
|
|
141
|
+
event: "onChange",
|
|
142
|
+
path: ["email"],
|
|
143
|
+
preferences: {
|
|
144
|
+
fields: {}
|
|
145
|
+
},
|
|
146
|
+
req: {
|
|
147
|
+
payload: {
|
|
148
|
+
config
|
|
149
|
+
},
|
|
150
|
+
t
|
|
151
|
+
},
|
|
152
|
+
required: true,
|
|
153
|
+
siblingData: {}
|
|
154
|
+
})
|
|
155
|
+
}), _jsx(FormSubmit, {
|
|
156
|
+
size: "large",
|
|
157
|
+
children: t("general:submit")
|
|
158
|
+
})]
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
$[6] = api;
|
|
162
|
+
$[7] = config;
|
|
163
|
+
$[8] = handleResponse;
|
|
164
|
+
$[9] = hasSubmitted;
|
|
165
|
+
$[10] = loginWithUsername;
|
|
166
|
+
$[11] = t;
|
|
167
|
+
$[12] = userSlug;
|
|
168
|
+
$[13] = t4;
|
|
169
|
+
$[14] = t5;
|
|
170
|
+
} else {
|
|
171
|
+
t4 = $[13];
|
|
172
|
+
t5 = $[14];
|
|
173
|
+
}
|
|
174
|
+
if (t5 !== Symbol.for("react.early_return_sentinel")) {
|
|
175
|
+
return t5;
|
|
176
|
+
}
|
|
177
|
+
return t4;
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","EmailField","Form","FormSubmit","TextField","useConfig","useTranslation","email","text","React","useState","FormHeader","ForgotPasswordForm","$","config","getEntityConfig","admin","t0","routes","t1","user","userSlug","api","t","hasSubmitted","setHasSubmitted","t2","collectionSlug","collectionConfig","loginWithUsername","auth","t3","res","successToast","errorToast","json","then","catch","handleResponse","t4","t5","Symbol","for","initialState","username","initialValue","valid","value","undefined","t6","_jsx","description","heading","_jsxs","action","method","children","field","name","label","required","path","validate","type","blockData","data","event","preferences","fields","req","payload","siblingData","autoComplete","value_0","size"],"sources":["../../../../src/views/ForgotPassword/ForgotPasswordForm/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormProps } from '@ruya.sa/ui'\nimport type { FormState, PayloadRequest } from '@ruya.sa/payload'\n\nimport { EmailField, Form, FormSubmit, TextField, useConfig, useTranslation } from '@ruya.sa/ui'\nimport { email, text } from '@ruya.sa/payload/shared'\nimport React, { useState } from 'react'\n\nimport { FormHeader } from '../../../elements/FormHeader/index.js'\n\nexport const ForgotPasswordForm: React.FC = () => {\n const { config, getEntityConfig } = useConfig()\n\n const {\n admin: { user: userSlug },\n routes: { api },\n } = config\n\n const { t } = useTranslation()\n const [hasSubmitted, setHasSubmitted] = useState(false)\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n const loginWithUsername = collectionConfig?.auth?.loginWithUsername\n\n const handleResponse: FormProps['handleResponse'] = (res, successToast, errorToast) => {\n res\n .json()\n .then(() => {\n setHasSubmitted(true)\n successToast(t('general:submissionSuccessful'))\n })\n .catch(() => {\n errorToast(\n loginWithUsername\n ? t('authentication:usernameNotValid')\n : t('authentication:emailNotValid'),\n )\n })\n }\n\n const initialState: FormState = loginWithUsername\n ? {\n username: {\n initialValue: '',\n valid: true,\n value: undefined,\n },\n }\n : {\n email: {\n initialValue: '',\n valid: true,\n value: undefined,\n },\n }\n\n if (hasSubmitted) {\n return (\n <FormHeader\n description={t('authentication:checkYourEmailForPasswordReset')}\n heading={t('authentication:emailSent')}\n />\n )\n }\n\n return (\n <Form\n action={`${api}/${userSlug}/forgot-password`}\n handleResponse={handleResponse}\n initialState={initialState}\n method=\"POST\"\n >\n <FormHeader\n description={\n loginWithUsername\n ? t('authentication:forgotPasswordUsernameInstructions')\n : t('authentication:forgotPasswordEmailInstructions')\n }\n heading={t('authentication:forgotPassword')}\n />\n\n {loginWithUsername ? (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:username'),\n required: true,\n }}\n path=\"username\"\n validate={(value) =>\n text(value, {\n name: 'username',\n type: 'text',\n blockData: {},\n data: {},\n event: 'onChange',\n path: ['username'],\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as unknown as PayloadRequest,\n required: true,\n siblingData: {},\n })\n }\n />\n ) : (\n <EmailField\n field={{\n name: 'email',\n admin: {\n autoComplete: 'email',\n },\n label: t('general:email'),\n required: true,\n }}\n path=\"email\"\n validate={(value) =>\n email(value, {\n name: 'email',\n type: 'email',\n blockData: {},\n data: {},\n event: 'onChange',\n path: ['email'],\n preferences: { fields: {} },\n req: { payload: { config }, t } as unknown as PayloadRequest,\n required: true,\n siblingData: {},\n })\n }\n />\n )}\n <FormSubmit size=\"large\">{t('general:submit')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Link } from '@ruya.sa/ui';
|
|
3
|
+
import { Translation } from '@ruya.sa/ui/shared';
|
|
4
|
+
import { formatAdminURL } from '@ruya.sa/payload/shared';
|
|
5
|
+
import React, { Fragment } from 'react';
|
|
6
|
+
import { FormHeader } from '../../elements/FormHeader/index.js';
|
|
7
|
+
import { ForgotPasswordForm } from './ForgotPasswordForm/index.js';
|
|
8
|
+
export const forgotPasswordBaseClass = 'forgot-password';
|
|
9
|
+
export function ForgotPasswordView({
|
|
10
|
+
initPageResult
|
|
11
|
+
}) {
|
|
12
|
+
const {
|
|
13
|
+
req: {
|
|
14
|
+
i18n,
|
|
15
|
+
payload: {
|
|
16
|
+
config
|
|
17
|
+
},
|
|
18
|
+
user
|
|
19
|
+
}
|
|
20
|
+
} = initPageResult;
|
|
21
|
+
const {
|
|
22
|
+
admin: {
|
|
23
|
+
routes: {
|
|
24
|
+
account: accountRoute,
|
|
25
|
+
login: loginRoute
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
routes: {
|
|
29
|
+
admin: adminRoute
|
|
30
|
+
}
|
|
31
|
+
} = config;
|
|
32
|
+
if (user) {
|
|
33
|
+
return /*#__PURE__*/_jsxs(Fragment, {
|
|
34
|
+
children: [/*#__PURE__*/_jsx(FormHeader, {
|
|
35
|
+
description: /*#__PURE__*/_jsx(Translation, {
|
|
36
|
+
elements: {
|
|
37
|
+
'0': ({
|
|
38
|
+
children
|
|
39
|
+
}) => /*#__PURE__*/_jsx(Link, {
|
|
40
|
+
href: formatAdminURL({
|
|
41
|
+
adminRoute,
|
|
42
|
+
path: accountRoute
|
|
43
|
+
}),
|
|
44
|
+
prefetch: false,
|
|
45
|
+
children: children
|
|
46
|
+
})
|
|
47
|
+
},
|
|
48
|
+
i18nKey: "authentication:loggedInChangePassword",
|
|
49
|
+
t: i18n.t
|
|
50
|
+
}),
|
|
51
|
+
heading: i18n.t('authentication:alreadyLoggedIn')
|
|
52
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
53
|
+
buttonStyle: "secondary",
|
|
54
|
+
el: "link",
|
|
55
|
+
size: "large",
|
|
56
|
+
to: adminRoute,
|
|
57
|
+
children: i18n.t('general:backToDashboard')
|
|
58
|
+
})]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return /*#__PURE__*/_jsxs(Fragment, {
|
|
62
|
+
children: [/*#__PURE__*/_jsx(ForgotPasswordForm, {}), /*#__PURE__*/_jsx(Link, {
|
|
63
|
+
href: formatAdminURL({
|
|
64
|
+
adminRoute,
|
|
65
|
+
path: loginRoute
|
|
66
|
+
}),
|
|
67
|
+
prefetch: false,
|
|
68
|
+
children: i18n.t('authentication:backToLogin')
|
|
69
|
+
})]
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Button","Link","Translation","formatAdminURL","React","Fragment","FormHeader","ForgotPasswordForm","forgotPasswordBaseClass","ForgotPasswordView","initPageResult","req","i18n","payload","config","user","admin","routes","account","accountRoute","login","loginRoute","adminRoute","_jsxs","_jsx","description","elements","0","children","href","path","prefetch","i18nKey","t","heading","buttonStyle","el","size","to"],"sources":["../../../src/views/ForgotPassword/index.tsx"],"sourcesContent":["import type { AdminViewServerProps } from '@ruya.sa/payload'\n\nimport { Button, Link } from '@ruya.sa/ui'\nimport { Translation } from '@ruya.sa/ui/shared'\nimport { formatAdminURL } from '@ruya.sa/payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { FormHeader } from '../../elements/FormHeader/index.js'\nimport { ForgotPasswordForm } from './ForgotPasswordForm/index.js'\n\nexport const forgotPasswordBaseClass = 'forgot-password'\n\nexport function ForgotPasswordView({ initPageResult }: AdminViewServerProps) {\n const {\n req: {\n i18n,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const {\n admin: {\n routes: { account: accountRoute, login: loginRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (user) {\n return (\n <Fragment>\n <FormHeader\n description={\n <Translation\n elements={{\n '0': ({ children }) => (\n <Link\n href={formatAdminURL({\n adminRoute,\n path: accountRoute,\n })}\n prefetch={false}\n >\n {children}\n </Link>\n ),\n }}\n i18nKey=\"authentication:loggedInChangePassword\"\n t={i18n.t}\n />\n }\n heading={i18n.t('authentication:alreadyLoggedIn')}\n />\n <Button buttonStyle=\"secondary\" el=\"link\" size=\"large\" to={adminRoute}>\n {i18n.t('general:backToDashboard')}\n </Button>\n </Fragment>\n )\n }\n\n return (\n <Fragment>\n <ForgotPasswordForm />\n <Link\n href={formatAdminURL({\n adminRoute,\n path: loginRoute,\n })}\n prefetch={false}\n >\n {i18n.t('authentication:backToLogin')}\n </Link>\n </Fragment>\n )\n}\n"],"mappings":";AAEA,SAASA,MAAM,EAAEC,IAAI,QAAQ;AAC7B,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,UAAU,QAAQ;AAC3B,SAASC,kBAAkB,QAAQ;AAEnC,OAAO,MAAMC,uBAAA,GAA0B;AAEvC,OAAO,SAASC,mBAAmB;EAAEC;AAAc,CAAwB;EACzE,MAAM;IACJC,GAAA,EAAK;MACHC,IAAI;MACJC,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBC;IAAI;EACL,CACF,GAAGL,cAAA;EAEJ,MAAM;IACJM,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,OAAA,EAASC,YAAY;QAAEC,KAAA,EAAOC;MAAU;IAAE,CACrD;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGR,MAAA;EAEJ,IAAIC,IAAA,EAAM;IACR,oBACEQ,KAAA,CAAClB,QAAA;8BACCmB,IAAA,CAAClB,UAAA;QACCmB,WAAA,eACED,IAAA,CAACtB,WAAA;UACCwB,QAAA,EAAU;YACR,KAAKC,CAAC;cAAEC;YAAQ,CAAE,kBAChBJ,IAAA,CAACvB,IAAA;cACC4B,IAAA,EAAM1B,cAAA,CAAe;gBACnBmB,UAAA;gBACAQ,IAAA,EAAMX;cACR;cACAY,QAAA,EAAU;wBAETH;;UAGP;UACAI,OAAA,EAAQ;UACRC,CAAA,EAAGrB,IAAA,CAAKqB;;QAGZC,OAAA,EAAStB,IAAA,CAAKqB,CAAC,CAAC;uBAElBT,IAAA,CAACxB,MAAA;QAAOmC,WAAA,EAAY;QAAYC,EAAA,EAAG;QAAOC,IAAA,EAAK;QAAQC,EAAA,EAAIhB,UAAA;kBACxDV,IAAA,CAAKqB,CAAC,CAAC;;;EAIhB;EAEA,oBACEV,KAAA,CAAClB,QAAA;4BACCmB,IAAA,CAACjB,kBAAA,O,aACDiB,IAAA,CAACvB,IAAA;MACC4B,IAAA,EAAM1B,cAAA,CAAe;QACnBmB,UAAA;QACAQ,IAAA,EAAMT;MACR;MACAU,QAAA,EAAU;gBAETnB,IAAA,CAAKqB,CAAC,CAAC;;;AAIhB","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { generateMetadata } from '../../utilities/meta.js';
|
|
2
|
+
export const generateForgotPasswordViewMetadata = async ({
|
|
3
|
+
config,
|
|
4
|
+
i18n: {
|
|
5
|
+
t
|
|
6
|
+
}
|
|
7
|
+
}) => generateMetadata({
|
|
8
|
+
description: t('authentication:forgotPassword'),
|
|
9
|
+
keywords: t('authentication:forgotPassword'),
|
|
10
|
+
title: t('authentication:forgotPassword'),
|
|
11
|
+
...(config.admin.meta || {}),
|
|
12
|
+
serverURL: config.serverURL
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","names":["generateMetadata","generateForgotPasswordViewMetadata","config","i18n","t","description","keywords","title","admin","meta","serverURL"],"sources":["../../../src/views/ForgotPassword/metadata.ts"],"sourcesContent":["import type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\nexport const generateForgotPasswordViewMetadata: GenerateViewMetadata = async ({\n config,\n i18n: { t },\n}) =>\n generateMetadata({\n description: t('authentication:forgotPassword'),\n keywords: t('authentication:forgotPassword'),\n title: t('authentication:forgotPassword'),\n ...(config.admin.meta || {}),\n serverURL: config.serverURL,\n })\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,kCAAA,GAA2D,MAAAA,CAAO;EAC7EC,MAAM;EACNC,IAAA,EAAM;IAAEC;EAAC;AAAE,CACZ,KACCJ,gBAAA,CAAiB;EACfK,WAAA,EAAaD,CAAA,CAAE;EACfE,QAAA,EAAUF,CAAA,CAAE;EACZG,KAAA,EAAOH,CAAA,CAAE;EACT,IAAIF,MAAA,CAAOM,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;EAC3BC,SAAA,EAAWR,MAAA,CAAOQ;AACpB","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Helper function to create serializable value for client components
|
|
2
|
+
export const createSerializableValue = value => {
|
|
3
|
+
if (value === null || value === undefined) {
|
|
4
|
+
return 'null';
|
|
5
|
+
}
|
|
6
|
+
if (typeof value === 'object' && value?.relationTo && value?.value) {
|
|
7
|
+
return `${value.relationTo}:${value.value}`;
|
|
8
|
+
}
|
|
9
|
+
if (typeof value === 'object' && value?.id) {
|
|
10
|
+
return String(value.id);
|
|
11
|
+
}
|
|
12
|
+
return String(value);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=createSerializableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSerializableValue.js","names":["createSerializableValue","value","undefined","relationTo","id","String"],"sources":["../../../src/views/List/createSerializableValue.ts"],"sourcesContent":["// Helper function to create serializable value for client components\nexport const createSerializableValue = (value: any): string => {\n if (value === null || value === undefined) {\n return 'null'\n }\n if (typeof value === 'object' && value?.relationTo && value?.value) {\n return `${value.relationTo}:${value.value}`\n }\n if (typeof value === 'object' && value?.id) {\n return String(value.id)\n }\n return String(value)\n}\n"],"mappings":"AAAA;AACA,OAAO,MAAMA,uBAAA,GAA2BC,KAAA;EACtC,IAAIA,KAAA,KAAU,QAAQA,KAAA,KAAUC,SAAA,EAAW;IACzC,OAAO;EACT;EACA,IAAI,OAAOD,KAAA,KAAU,YAAYA,KAAA,EAAOE,UAAA,IAAcF,KAAA,EAAOA,KAAA,EAAO;IAClE,OAAO,GAAGA,KAAA,CAAME,UAAU,IAAIF,KAAA,CAAMA,KAAK,EAAE;EAC7C;EACA,IAAI,OAAOA,KAAA,KAAU,YAAYA,KAAA,EAAOG,EAAA,EAAI;IAC1C,OAAOC,MAAA,CAAOJ,KAAA,CAAMG,EAAE;EACxB;EACA,OAAOC,MAAA,CAAOJ,KAAA;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enriches list view documents with correct draft status display.
|
|
3
|
+
* When draft=true is used in the query, Payload returns the latest draft version if it exists.
|
|
4
|
+
* This function checks if draft documents also have a published version to determine "changed" status.
|
|
5
|
+
*
|
|
6
|
+
* Performance: Uses a single query to find all documents with "changed" status instead of N queries.
|
|
7
|
+
*/export async function enrichDocsWithVersionStatus({
|
|
8
|
+
collectionConfig,
|
|
9
|
+
data,
|
|
10
|
+
req
|
|
11
|
+
}) {
|
|
12
|
+
const draftsEnabled = collectionConfig?.versions?.drafts;
|
|
13
|
+
if (!draftsEnabled || !data?.docs?.length) {
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
// Find all draft documents
|
|
17
|
+
// When querying with draft:true, we get the latest draft if it exists
|
|
18
|
+
// We need to check if these drafts have a published version
|
|
19
|
+
const draftDocs = data.docs.filter(doc => doc._status === 'draft');
|
|
20
|
+
if (draftDocs.length === 0) {
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
const draftDocIds = draftDocs.map(doc => doc.id).filter(Boolean);
|
|
24
|
+
if (draftDocIds.length === 0) {
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
// OPTIMIZATION: Single query to find all document IDs that have BOTH:
|
|
28
|
+
// 1. A draft version (latest=true, _status='draft')
|
|
29
|
+
// 2. A published version (_status='published')
|
|
30
|
+
// These are the documents with "changed" status
|
|
31
|
+
try {
|
|
32
|
+
// TODO: This could be more efficient with a findDistinctVersions() API:
|
|
33
|
+
// const { values } = await req.payload.findDistinctVersions({
|
|
34
|
+
// collection: collectionConfig.slug,
|
|
35
|
+
// field: 'parent',
|
|
36
|
+
// where: {
|
|
37
|
+
// and: [
|
|
38
|
+
// { parent: { in: draftDocIds } },
|
|
39
|
+
// { 'version._status': { equals: 'published' } },
|
|
40
|
+
// ],
|
|
41
|
+
// },
|
|
42
|
+
// })
|
|
43
|
+
// const hasPublishedVersionSet = new Set(values)
|
|
44
|
+
//
|
|
45
|
+
// For now, we query all published versions but only select the 'parent' field
|
|
46
|
+
// to minimize data transfer, then deduplicate with a Set
|
|
47
|
+
const publishedVersions = await req.payload.findVersions({
|
|
48
|
+
collection: collectionConfig.slug,
|
|
49
|
+
depth: 0,
|
|
50
|
+
limit: 0,
|
|
51
|
+
pagination: false,
|
|
52
|
+
select: {
|
|
53
|
+
parent: true
|
|
54
|
+
},
|
|
55
|
+
where: {
|
|
56
|
+
and: [{
|
|
57
|
+
parent: {
|
|
58
|
+
in: draftDocIds
|
|
59
|
+
}
|
|
60
|
+
}, {
|
|
61
|
+
'version._status': {
|
|
62
|
+
equals: 'published'
|
|
63
|
+
}
|
|
64
|
+
}]
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// Create a Set of document IDs that have published versions
|
|
68
|
+
const hasPublishedVersionSet = new Set(publishedVersions.docs.map(version => version.parent).filter(Boolean));
|
|
69
|
+
// Enrich documents with display status
|
|
70
|
+
const enrichedDocs = data.docs.map(doc => {
|
|
71
|
+
// If it's a draft and has a published version, show "changed"
|
|
72
|
+
if (doc._status === 'draft' && hasPublishedVersionSet.has(doc.id)) {
|
|
73
|
+
return {
|
|
74
|
+
...doc,
|
|
75
|
+
_displayStatus: 'changed'
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
...doc,
|
|
80
|
+
_displayStatus: doc._status
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
...data,
|
|
85
|
+
docs: enrichedDocs
|
|
86
|
+
};
|
|
87
|
+
} catch (error) {
|
|
88
|
+
// If there's an error querying versions, just return the original data
|
|
89
|
+
req.payload.logger.error({
|
|
90
|
+
err: error,
|
|
91
|
+
msg: `Error checking version status for collection ${collectionConfig.slug}`
|
|
92
|
+
});
|
|
93
|
+
return data;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=enrichDocsWithVersionStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichDocsWithVersionStatus.js","names":["enrichDocsWithVersionStatus","collectionConfig","data","req","draftsEnabled","versions","drafts","docs","length","draftDocs","filter","doc","_status","draftDocIds","map","id","Boolean","publishedVersions","payload","findVersions","collection","slug","depth","limit","pagination","select","parent","where","and","in","equals","hasPublishedVersionSet","Set","version","enrichedDocs","has","_displayStatus","error","logger","err","msg"],"sources":["../../../src/views/List/enrichDocsWithVersionStatus.ts"],"sourcesContent":["import type { PaginatedDocs, PayloadRequest, SanitizedCollectionConfig } from '@ruya.sa/payload'\n\n/**\n * Enriches list view documents with correct draft status display.\n * When draft=true is used in the query, Payload returns the latest draft version if it exists.\n * This function checks if draft documents also have a published version to determine \"changed\" status.\n *\n * Performance: Uses a single query to find all documents with \"changed\" status instead of N queries.\n */\nexport async function enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n}: {\n collectionConfig: SanitizedCollectionConfig\n data: PaginatedDocs\n req: PayloadRequest\n}): Promise<PaginatedDocs> {\n const draftsEnabled = collectionConfig?.versions?.drafts\n\n if (!draftsEnabled || !data?.docs?.length) {\n return data\n }\n\n // Find all draft documents\n // When querying with draft:true, we get the latest draft if it exists\n // We need to check if these drafts have a published version\n const draftDocs = data.docs.filter((doc) => doc._status === 'draft')\n\n if (draftDocs.length === 0) {\n return data\n }\n\n const draftDocIds = draftDocs.map((doc) => doc.id).filter(Boolean)\n\n if (draftDocIds.length === 0) {\n return data\n }\n\n // OPTIMIZATION: Single query to find all document IDs that have BOTH:\n // 1. A draft version (latest=true, _status='draft')\n // 2. A published version (_status='published')\n // These are the documents with \"changed\" status\n try {\n // TODO: This could be more efficient with a findDistinctVersions() API:\n // const { values } = await req.payload.findDistinctVersions({\n // collection: collectionConfig.slug,\n // field: 'parent',\n // where: {\n // and: [\n // { parent: { in: draftDocIds } },\n // { 'version._status': { equals: 'published' } },\n // ],\n // },\n // })\n // const hasPublishedVersionSet = new Set(values)\n //\n // For now, we query all published versions but only select the 'parent' field\n // to minimize data transfer, then deduplicate with a Set\n const publishedVersions = await req.payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 0,\n pagination: false,\n select: {\n parent: true,\n },\n where: {\n and: [\n {\n parent: {\n in: draftDocIds,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n })\n\n // Create a Set of document IDs that have published versions\n const hasPublishedVersionSet = new Set(\n publishedVersions.docs.map((version) => version.parent).filter(Boolean),\n )\n\n // Enrich documents with display status\n const enrichedDocs = data.docs.map((doc) => {\n // If it's a draft and has a published version, show \"changed\"\n if (doc._status === 'draft' && hasPublishedVersionSet.has(doc.id)) {\n return {\n ...doc,\n _displayStatus: 'changed' as const,\n }\n }\n\n return {\n ...doc,\n _displayStatus: doc._status as 'draft' | 'published',\n }\n })\n\n return {\n ...data,\n docs: enrichedDocs,\n }\n } catch (error) {\n // If there's an error querying versions, just return the original data\n req.payload.logger.error({\n err: error,\n msg: `Error checking version status for collection ${collectionConfig.slug}`,\n })\n return data\n }\n}\n"],"mappings":"AAEA;;;;;;GAOA,OAAO,eAAeA,4BAA4B;EAChDC,gBAAgB;EAChBC,IAAI;EACJC;AAAG,CAKJ;EACC,MAAMC,aAAA,GAAgBH,gBAAA,EAAkBI,QAAA,EAAUC,MAAA;EAElD,IAAI,CAACF,aAAA,IAAiB,CAACF,IAAA,EAAMK,IAAA,EAAMC,MAAA,EAAQ;IACzC,OAAON,IAAA;EACT;EAEA;EACA;EACA;EACA,MAAMO,SAAA,GAAYP,IAAA,CAAKK,IAAI,CAACG,MAAM,CAAEC,GAAA,IAAQA,GAAA,CAAIC,OAAO,KAAK;EAE5D,IAAIH,SAAA,CAAUD,MAAM,KAAK,GAAG;IAC1B,OAAON,IAAA;EACT;EAEA,MAAMW,WAAA,GAAcJ,SAAA,CAAUK,GAAG,CAAEH,GAAA,IAAQA,GAAA,CAAII,EAAE,EAAEL,MAAM,CAACM,OAAA;EAE1D,IAAIH,WAAA,CAAYL,MAAM,KAAK,GAAG;IAC5B,OAAON,IAAA;EACT;EAEA;EACA;EACA;EACA;EACA,IAAI;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMe,iBAAA,GAAoB,MAAMd,GAAA,CAAIe,OAAO,CAACC,YAAY,CAAC;MACvDC,UAAA,EAAYnB,gBAAA,CAAiBoB,IAAI;MACjCC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,UAAA,EAAY;MACZC,MAAA,EAAQ;QACNC,MAAA,EAAQ;MACV;MACAC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEF,MAAA,EAAQ;YACNG,EAAA,EAAIhB;UACN;QACF,GACA;UACE,mBAAmB;YACjBiB,MAAA,EAAQ;UACV;QACF;MAEJ;IACF;IAEA;IACA,MAAMC,sBAAA,GAAyB,IAAIC,GAAA,CACjCf,iBAAA,CAAkBV,IAAI,CAACO,GAAG,CAAEmB,OAAA,IAAYA,OAAA,CAAQP,MAAM,EAAEhB,MAAM,CAACM,OAAA;IAGjE;IACA,MAAMkB,YAAA,GAAehC,IAAA,CAAKK,IAAI,CAACO,GAAG,CAAEH,GAAA;MAClC;MACA,IAAIA,GAAA,CAAIC,OAAO,KAAK,WAAWmB,sBAAA,CAAuBI,GAAG,CAACxB,GAAA,CAAII,EAAE,GAAG;QACjE,OAAO;UACL,GAAGJ,GAAG;UACNyB,cAAA,EAAgB;QAClB;MACF;MAEA,OAAO;QACL,GAAGzB,GAAG;QACNyB,cAAA,EAAgBzB,GAAA,CAAIC;MACtB;IACF;IAEA,OAAO;MACL,GAAGV,IAAI;MACPK,IAAA,EAAM2B;IACR;EACF,EAAE,OAAOG,KAAA,EAAO;IACd;IACAlC,GAAA,CAAIe,OAAO,CAACoB,MAAM,CAACD,KAAK,CAAC;MACvBE,GAAA,EAAKF,KAAA;MACLG,GAAA,EAAK,gDAAgDvC,gBAAA,CAAiBoB,IAAI;IAC5E;IACA,OAAOnB,IAAA;EACT;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Helper function to extract display value from relationship
|
|
2
|
+
export const extractRelationshipDisplayValue = (relationship, clientConfig, relationshipConfig) => {
|
|
3
|
+
if (!relationship) {
|
|
4
|
+
return '';
|
|
5
|
+
}
|
|
6
|
+
// Handle polymorphic relationships
|
|
7
|
+
if (typeof relationship === 'object' && relationship?.relationTo && relationship?.value) {
|
|
8
|
+
const config = clientConfig.collections.find(c => c.slug === relationship.relationTo);
|
|
9
|
+
return relationship.value?.[config?.admin?.useAsTitle || 'id'] || '';
|
|
10
|
+
}
|
|
11
|
+
// Handle regular relationships
|
|
12
|
+
if (typeof relationship === 'object' && relationship?.id) {
|
|
13
|
+
return relationship[relationshipConfig?.admin?.useAsTitle || 'id'] || '';
|
|
14
|
+
}
|
|
15
|
+
return String(relationship);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=extractRelationshipDisplayValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractRelationshipDisplayValue.js","names":["extractRelationshipDisplayValue","relationship","clientConfig","relationshipConfig","relationTo","value","config","collections","find","c","slug","admin","useAsTitle","id","String"],"sources":["../../../src/views/List/extractRelationshipDisplayValue.ts"],"sourcesContent":["import type { ClientCollectionConfig, ClientConfig } from '@ruya.sa/payload'\n\n// Helper function to extract display value from relationship\nexport const extractRelationshipDisplayValue = (\n relationship: any,\n clientConfig: ClientConfig,\n relationshipConfig?: ClientCollectionConfig,\n): string => {\n if (!relationship) {\n return ''\n }\n\n // Handle polymorphic relationships\n if (typeof relationship === 'object' && relationship?.relationTo && relationship?.value) {\n const config = clientConfig.collections.find((c) => c.slug === relationship.relationTo)\n return relationship.value?.[config?.admin?.useAsTitle || 'id'] || ''\n }\n\n // Handle regular relationships\n if (typeof relationship === 'object' && relationship?.id) {\n return relationship[relationshipConfig?.admin?.useAsTitle || 'id'] || ''\n }\n\n return String(relationship)\n}\n"],"mappings":"AAEA;AACA,OAAO,MAAMA,+BAAA,GAAkCA,CAC7CC,YAAA,EACAC,YAAA,EACAC,kBAAA;EAEA,IAAI,CAACF,YAAA,EAAc;IACjB,OAAO;EACT;EAEA;EACA,IAAI,OAAOA,YAAA,KAAiB,YAAYA,YAAA,EAAcG,UAAA,IAAcH,YAAA,EAAcI,KAAA,EAAO;IACvF,MAAMC,MAAA,GAASJ,YAAA,CAAaK,WAAW,CAACC,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKT,YAAA,CAAaG,UAAU;IACtF,OAAOH,YAAA,CAAaI,KAAK,GAAGC,MAAA,EAAQK,KAAA,EAAOC,UAAA,IAAc,KAAK,IAAI;EACpE;EAEA;EACA,IAAI,OAAOX,YAAA,KAAiB,YAAYA,YAAA,EAAcY,EAAA,EAAI;IACxD,OAAOZ,YAAY,CAACE,kBAAA,EAAoBQ,KAAA,EAAOC,UAAA,IAAc,KAAK,IAAI;EACxE;EAEA,OAAOE,MAAA,CAAOb,YAAA;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Helper function to extract value or relationship ID for database queries
|
|
2
|
+
export const extractValueOrRelationshipID = relationship => {
|
|
3
|
+
if (!relationship || typeof relationship !== 'object') {
|
|
4
|
+
return relationship;
|
|
5
|
+
}
|
|
6
|
+
// For polymorphic relationships, preserve structure but ensure IDs are strings
|
|
7
|
+
if (relationship?.relationTo && relationship?.value) {
|
|
8
|
+
return {
|
|
9
|
+
relationTo: relationship.relationTo,
|
|
10
|
+
value: String(relationship.value?.id || relationship.value)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// For regular relationships, extract ID
|
|
14
|
+
if (relationship?.id) {
|
|
15
|
+
return String(relationship.id);
|
|
16
|
+
}
|
|
17
|
+
return relationship;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=extractValueOrRelationshipID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractValueOrRelationshipID.js","names":["extractValueOrRelationshipID","relationship","relationTo","value","String","id"],"sources":["../../../src/views/List/extractValueOrRelationshipID.ts"],"sourcesContent":["// Helper function to extract value or relationship ID for database queries\nexport const extractValueOrRelationshipID = (relationship: any): any => {\n if (!relationship || typeof relationship !== 'object') {\n return relationship\n }\n\n // For polymorphic relationships, preserve structure but ensure IDs are strings\n if (relationship?.relationTo && relationship?.value) {\n return {\n relationTo: relationship.relationTo,\n value: String(relationship.value?.id || relationship.value),\n }\n }\n\n // For regular relationships, extract ID\n if (relationship?.id) {\n return String(relationship.id)\n }\n\n return relationship\n}\n"],"mappings":"AAAA;AACA,OAAO,MAAMA,4BAAA,GAAgCC,YAAA;EAC3C,IAAI,CAACA,YAAA,IAAgB,OAAOA,YAAA,KAAiB,UAAU;IACrD,OAAOA,YAAA;EACT;EAEA;EACA,IAAIA,YAAA,EAAcC,UAAA,IAAcD,YAAA,EAAcE,KAAA,EAAO;IACnD,OAAO;MACLD,UAAA,EAAYD,YAAA,CAAaC,UAAU;MACnCC,KAAA,EAAOC,MAAA,CAAOH,YAAA,CAAaE,KAAK,EAAEE,EAAA,IAAMJ,YAAA,CAAaE,KAAK;IAC5D;EACF;EAEA;EACA,IAAIF,YAAA,EAAcI,EAAA,EAAI;IACpB,OAAOD,MAAA,CAAOH,YAAA,CAAaI,EAAE;EAC/B;EAEA,OAAOJ,YAAA;AACT","ignoreList":[]}
|