@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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","page","admin","pagination","defaultLimit","defaultSort","routes","adminRoute","includes","baseFilterConstraint","baseFilter","baseListFilter","queryPreset","queryPresetPermissions","whereWithMergedSearch","search","where","and","deletedAt","exists","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","delete","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from '@ruya.sa/payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@ruya.sa/ui'\nimport { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@ruya.sa/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from '@ruya.sa/payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n query.preset = collectionPreferences?.preset\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n query.groupBy = collectionPreferences?.groupBy\n\n query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || [])\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: collectionPreferences?.columns,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n const hasDeletePermission = permissions?.collections?.[collectionSlug]?.delete\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getTranslation } from '@ruya.sa/translations';
|
|
2
|
+
import { generateMetadata } from '../../utilities/meta.js';
|
|
3
|
+
export const generateListViewMetadata = async args => {
|
|
4
|
+
const {
|
|
5
|
+
collectionConfig,
|
|
6
|
+
config,
|
|
7
|
+
i18n
|
|
8
|
+
} = args;
|
|
9
|
+
let title = '';
|
|
10
|
+
const description = '';
|
|
11
|
+
const keywords = '';
|
|
12
|
+
if (collectionConfig) {
|
|
13
|
+
title = getTranslation(collectionConfig.labels.plural, i18n);
|
|
14
|
+
}
|
|
15
|
+
return generateMetadata({
|
|
16
|
+
...(config.admin.meta || {}),
|
|
17
|
+
description,
|
|
18
|
+
keywords,
|
|
19
|
+
serverURL: config.serverURL,
|
|
20
|
+
title,
|
|
21
|
+
...(collectionConfig?.admin?.meta || {})
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","names":["getTranslation","generateMetadata","generateListViewMetadata","args","collectionConfig","config","i18n","title","description","keywords","labels","plural","admin","meta","serverURL"],"sources":["../../../src/views/List/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedCollectionConfig } from '@ruya.sa/payload'\n\nimport { getTranslation } from '@ruya.sa/translations'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { generateMetadata } from '../../utilities/meta.js'\n\nexport const generateListViewMetadata = async (\n args: {\n collectionConfig: SanitizedCollectionConfig\n } & Parameters<GenerateViewMetadata>[0],\n): Promise<Metadata> => {\n const { collectionConfig, config, i18n } = args\n\n let title: string = ''\n const description: string = ''\n const keywords: string = ''\n\n if (collectionConfig) {\n title = getTranslation(collectionConfig.labels.plural, i18n)\n }\n\n return generateMetadata({\n ...(config.admin.meta || {}),\n description,\n keywords,\n serverURL: config.serverURL,\n title,\n ...(collectionConfig?.admin?.meta || {}),\n })\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAI/B,SAASC,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,wBAAA,GAA2B,MACtCC,IAAA;EAIA,MAAM;IAAEC,gBAAgB;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAGH,IAAA;EAE3C,IAAII,KAAA,GAAgB;EACpB,MAAMC,WAAA,GAAsB;EAC5B,MAAMC,QAAA,GAAmB;EAEzB,IAAIL,gBAAA,EAAkB;IACpBG,KAAA,GAAQP,cAAA,CAAeI,gBAAA,CAAiBM,MAAM,CAACC,MAAM,EAAEL,IAAA;EACzD;EAEA,OAAOL,gBAAA,CAAiB;IACtB,IAAII,MAAA,CAAOO,KAAK,CAACC,IAAI,IAAI,CAAC,CAAC;IAC3BL,WAAA;IACAC,QAAA;IACAK,SAAA,EAAWT,MAAA,CAAOS,SAAS;IAC3BP,KAAA;IACA,IAAIH,gBAAA,EAAkBQ,KAAA,EAAOC,IAAA,IAAQ,CAAC,CAAC;EACzC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Banner } from '@ruya.sa/ui/elements/Banner';
|
|
3
|
+
import { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
export const renderListViewSlots = ({
|
|
6
|
+
clientProps,
|
|
7
|
+
collectionConfig,
|
|
8
|
+
description,
|
|
9
|
+
notFoundDocId,
|
|
10
|
+
payload,
|
|
11
|
+
serverProps
|
|
12
|
+
}) => {
|
|
13
|
+
const result = {};
|
|
14
|
+
if (collectionConfig.admin.components?.afterList) {
|
|
15
|
+
result.AfterList = RenderServerComponent({
|
|
16
|
+
clientProps: clientProps,
|
|
17
|
+
Component: collectionConfig.admin.components.afterList,
|
|
18
|
+
importMap: payload.importMap,
|
|
19
|
+
serverProps: serverProps
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const listMenuItems = collectionConfig.admin.components?.listMenuItems;
|
|
23
|
+
if (Array.isArray(listMenuItems)) {
|
|
24
|
+
result.listMenuItems = [RenderServerComponent({
|
|
25
|
+
clientProps,
|
|
26
|
+
Component: listMenuItems,
|
|
27
|
+
importMap: payload.importMap,
|
|
28
|
+
serverProps
|
|
29
|
+
})];
|
|
30
|
+
}
|
|
31
|
+
if (collectionConfig.admin.components?.afterListTable) {
|
|
32
|
+
result.AfterListTable = RenderServerComponent({
|
|
33
|
+
clientProps: clientProps,
|
|
34
|
+
Component: collectionConfig.admin.components.afterListTable,
|
|
35
|
+
importMap: payload.importMap,
|
|
36
|
+
serverProps: serverProps
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (collectionConfig.admin.components?.beforeList) {
|
|
40
|
+
result.BeforeList = RenderServerComponent({
|
|
41
|
+
clientProps: clientProps,
|
|
42
|
+
Component: collectionConfig.admin.components.beforeList,
|
|
43
|
+
importMap: payload.importMap,
|
|
44
|
+
serverProps: serverProps
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Handle beforeListTable with optional banner
|
|
48
|
+
const existingBeforeListTable = collectionConfig.admin.components?.beforeListTable ? RenderServerComponent({
|
|
49
|
+
clientProps: clientProps,
|
|
50
|
+
Component: collectionConfig.admin.components.beforeListTable,
|
|
51
|
+
importMap: payload.importMap,
|
|
52
|
+
serverProps: serverProps
|
|
53
|
+
}) : null;
|
|
54
|
+
// Create banner for document not found
|
|
55
|
+
const notFoundBanner = notFoundDocId ? /*#__PURE__*/_jsx(Banner, {
|
|
56
|
+
type: "error",
|
|
57
|
+
children: serverProps.i18n.t('error:documentNotFound', {
|
|
58
|
+
id: notFoundDocId
|
|
59
|
+
})
|
|
60
|
+
}) : null;
|
|
61
|
+
// Combine banner and existing component
|
|
62
|
+
if (notFoundBanner || existingBeforeListTable) {
|
|
63
|
+
result.BeforeListTable = /*#__PURE__*/_jsxs(React.Fragment, {
|
|
64
|
+
children: [notFoundBanner, existingBeforeListTable]
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
if (collectionConfig.admin.components?.Description) {
|
|
68
|
+
result.Description = RenderServerComponent({
|
|
69
|
+
clientProps: {
|
|
70
|
+
collectionSlug: collectionConfig.slug,
|
|
71
|
+
description
|
|
72
|
+
},
|
|
73
|
+
Component: collectionConfig.admin.components.Description,
|
|
74
|
+
importMap: payload.importMap,
|
|
75
|
+
serverProps: serverProps
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return result;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=renderListViewSlots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderListViewSlots.js","names":["Banner","RenderServerComponent","React","renderListViewSlots","clientProps","collectionConfig","description","notFoundDocId","payload","serverProps","result","admin","components","afterList","AfterList","Component","importMap","listMenuItems","Array","isArray","afterListTable","AfterListTable","beforeList","BeforeList","existingBeforeListTable","beforeListTable","notFoundBanner","_jsx","type","i18n","t","id","BeforeListTable","_jsxs","Fragment","Description","collectionSlug","slug"],"sources":["../../../src/views/List/renderListViewSlots.tsx"],"sourcesContent":["import type {\n AfterListClientProps,\n AfterListTableClientProps,\n AfterListTableServerPropsOnly,\n BeforeListClientProps,\n BeforeListServerPropsOnly,\n BeforeListTableClientProps,\n BeforeListTableServerPropsOnly,\n ListViewServerPropsOnly,\n ListViewSlots,\n ListViewSlotSharedClientProps,\n Payload,\n SanitizedCollectionConfig,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from '@ruya.sa/payload'\n\nimport { Banner } from '@ruya.sa/ui/elements/Banner'\nimport { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent'\nimport React from 'react'\n\ntype Args = {\n clientProps: ListViewSlotSharedClientProps\n collectionConfig: SanitizedCollectionConfig\n description?: StaticDescription\n notFoundDocId?: null | string\n payload: Payload\n serverProps: ListViewServerPropsOnly\n}\n\nexport const renderListViewSlots = ({\n clientProps,\n collectionConfig,\n description,\n notFoundDocId,\n payload,\n serverProps,\n}: Args): ListViewSlots => {\n const result: ListViewSlots = {} as ListViewSlots\n\n if (collectionConfig.admin.components?.afterList) {\n result.AfterList = RenderServerComponent({\n clientProps: clientProps satisfies AfterListClientProps,\n Component: collectionConfig.admin.components.afterList,\n importMap: payload.importMap,\n serverProps: serverProps satisfies AfterListTableServerPropsOnly,\n })\n }\n\n const listMenuItems = collectionConfig.admin.components?.listMenuItems\n\n if (Array.isArray(listMenuItems)) {\n result.listMenuItems = [\n RenderServerComponent({\n clientProps,\n Component: listMenuItems,\n importMap: payload.importMap,\n serverProps,\n }),\n ]\n }\n\n if (collectionConfig.admin.components?.afterListTable) {\n result.AfterListTable = RenderServerComponent({\n clientProps: clientProps satisfies AfterListTableClientProps,\n Component: collectionConfig.admin.components.afterListTable,\n importMap: payload.importMap,\n serverProps: serverProps satisfies AfterListTableServerPropsOnly,\n })\n }\n\n if (collectionConfig.admin.components?.beforeList) {\n result.BeforeList = RenderServerComponent({\n clientProps: clientProps satisfies BeforeListClientProps,\n Component: collectionConfig.admin.components.beforeList,\n importMap: payload.importMap,\n serverProps: serverProps satisfies BeforeListServerPropsOnly,\n })\n }\n\n // Handle beforeListTable with optional banner\n const existingBeforeListTable = collectionConfig.admin.components?.beforeListTable\n ? RenderServerComponent({\n clientProps: clientProps satisfies BeforeListTableClientProps,\n Component: collectionConfig.admin.components.beforeListTable,\n importMap: payload.importMap,\n serverProps: serverProps satisfies BeforeListTableServerPropsOnly,\n })\n : null\n\n // Create banner for document not found\n const notFoundBanner = notFoundDocId ? (\n <Banner type=\"error\">\n {serverProps.i18n.t('error:documentNotFound', { id: notFoundDocId })}\n </Banner>\n ) : null\n\n // Combine banner and existing component\n if (notFoundBanner || existingBeforeListTable) {\n result.BeforeListTable = (\n <React.Fragment>\n {notFoundBanner}\n {existingBeforeListTable}\n </React.Fragment>\n )\n }\n\n if (collectionConfig.admin.components?.Description) {\n result.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig.slug,\n description,\n } satisfies ViewDescriptionClientProps,\n Component: collectionConfig.admin.components.Description,\n importMap: payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { resolveFilterOptions } from '@ruya.sa/ui/rsc';
|
|
2
|
+
import { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled, tabHasName } from '@ruya.sa/payload/shared';
|
|
3
|
+
export const resolveAllFilterOptions = async ({
|
|
4
|
+
fields,
|
|
5
|
+
pathPrefix,
|
|
6
|
+
req,
|
|
7
|
+
result
|
|
8
|
+
}) => {
|
|
9
|
+
const resolvedFilterOptions = !result ? new Map() : result;
|
|
10
|
+
await Promise.all(fields.map(async field => {
|
|
11
|
+
if (fieldIsHiddenOrDisabled(field)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const fieldPath = fieldAffectsData(field) ? pathPrefix ? `${pathPrefix}.${field.name}` : field.name : pathPrefix;
|
|
15
|
+
if ((field.type === 'relationship' || field.type === 'upload') && 'filterOptions' in field && field.filterOptions) {
|
|
16
|
+
const options = await resolveFilterOptions(field.filterOptions, {
|
|
17
|
+
id: undefined,
|
|
18
|
+
blockData: undefined,
|
|
19
|
+
data: {},
|
|
20
|
+
relationTo: field.relationTo,
|
|
21
|
+
req,
|
|
22
|
+
siblingData: {},
|
|
23
|
+
user: req.user
|
|
24
|
+
});
|
|
25
|
+
resolvedFilterOptions.set(fieldPath, options);
|
|
26
|
+
}
|
|
27
|
+
if (fieldHasSubFields(field)) {
|
|
28
|
+
await resolveAllFilterOptions({
|
|
29
|
+
fields: field.fields,
|
|
30
|
+
pathPrefix: fieldPath,
|
|
31
|
+
req,
|
|
32
|
+
result: resolvedFilterOptions
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (field.type === 'tabs') {
|
|
36
|
+
await Promise.all(field.tabs.map(async tab => {
|
|
37
|
+
const tabPath = tabHasName(tab) ? fieldPath ? `${fieldPath}.${tab.name}` : tab.name : fieldPath;
|
|
38
|
+
await resolveAllFilterOptions({
|
|
39
|
+
fields: tab.fields,
|
|
40
|
+
pathPrefix: tabPath,
|
|
41
|
+
req,
|
|
42
|
+
result: resolvedFilterOptions
|
|
43
|
+
});
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
return resolvedFilterOptions;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=resolveAllFilterOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveAllFilterOptions.js","names":["resolveFilterOptions","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","tabHasName","resolveAllFilterOptions","fields","pathPrefix","req","result","resolvedFilterOptions","Map","Promise","all","map","field","fieldPath","name","type","filterOptions","options","id","undefined","blockData","data","relationTo","siblingData","user","set","tabs","tab","tabPath"],"sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"sourcesContent":["import type { Field, PayloadRequest, ResolvedFilterOptions } from '@ruya.sa/payload'\n\nimport { resolveFilterOptions } from '@ruya.sa/ui/rsc'\nimport {\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n tabHasName,\n} from '@ruya.sa/payload/shared'\n\nexport const resolveAllFilterOptions = async ({\n fields,\n pathPrefix,\n req,\n result,\n}: {\n fields: Field[]\n pathPrefix?: string\n req: PayloadRequest\n result?: Map<string, ResolvedFilterOptions>\n}): Promise<Map<string, ResolvedFilterOptions>> => {\n const resolvedFilterOptions = !result ? new Map<string, ResolvedFilterOptions>() : result\n\n await Promise.all(\n fields.map(async (field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return\n }\n\n const fieldPath = fieldAffectsData(field)\n ? pathPrefix\n ? `${pathPrefix}.${field.name}`\n : field.name\n : pathPrefix\n\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n 'filterOptions' in field &&\n field.filterOptions\n ) {\n const options = await resolveFilterOptions(field.filterOptions, {\n id: undefined,\n blockData: undefined,\n data: {}, // use empty object to prevent breaking queries when accessing properties of `data`\n relationTo: field.relationTo,\n req,\n siblingData: {}, // use empty object to prevent breaking queries when accessing properties of `siblingData`\n user: req.user,\n })\n\n resolvedFilterOptions.set(fieldPath, options)\n }\n\n if (fieldHasSubFields(field)) {\n await resolveAllFilterOptions({\n fields: field.fields,\n pathPrefix: fieldPath,\n req,\n result: resolvedFilterOptions,\n })\n }\n\n if (field.type === 'tabs') {\n await Promise.all(\n field.tabs.map(async (tab) => {\n const tabPath = tabHasName(tab)\n ? fieldPath\n ? `${fieldPath}.${tab.name}`\n : tab.name\n : fieldPath\n\n await resolveAllFilterOptions({\n fields: tab.fields,\n pathPrefix: tabPath,\n req,\n result: resolvedFilterOptions,\n })\n }),\n )\n }\n }),\n )\n\n return resolvedFilterOptions\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AACrC,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,uBAAuB,EACvBC,UAAU,QACL;AAEP,OAAO,MAAMC,uBAAA,GAA0B,MAAAA,CAAO;EAC5CC,MAAM;EACNC,UAAU;EACVC,GAAG;EACHC;AAAM,CAMP;EACC,MAAMC,qBAAA,GAAwB,CAACD,MAAA,GAAS,IAAIE,GAAA,KAAuCF,MAAA;EAEnF,MAAMG,OAAA,CAAQC,GAAG,CACfP,MAAA,CAAOQ,GAAG,CAAC,MAAOC,KAAA;IAChB,IAAIZ,uBAAA,CAAwBY,KAAA,GAAQ;MAClC;IACF;IAEA,MAAMC,SAAA,GAAYf,gBAAA,CAAiBc,KAAA,IAC/BR,UAAA,GACE,GAAGA,UAAA,IAAcQ,KAAA,CAAME,IAAI,EAAE,GAC7BF,KAAA,CAAME,IAAI,GACZV,UAAA;IAEJ,IACE,CAACQ,KAAA,CAAMG,IAAI,KAAK,kBAAkBH,KAAA,CAAMG,IAAI,KAAK,QAAO,KACxD,mBAAmBH,KAAA,IACnBA,KAAA,CAAMI,aAAa,EACnB;MACA,MAAMC,OAAA,GAAU,MAAMpB,oBAAA,CAAqBe,KAAA,CAAMI,aAAa,EAAE;QAC9DE,EAAA,EAAIC,SAAA;QACJC,SAAA,EAAWD,SAAA;QACXE,IAAA,EAAM,CAAC;QACPC,UAAA,EAAYV,KAAA,CAAMU,UAAU;QAC5BjB,GAAA;QACAkB,WAAA,EAAa,CAAC;QACdC,IAAA,EAAMnB,GAAA,CAAImB;MACZ;MAEAjB,qBAAA,CAAsBkB,GAAG,CAACZ,SAAA,EAAWI,OAAA;IACvC;IAEA,IAAIlB,iBAAA,CAAkBa,KAAA,GAAQ;MAC5B,MAAMV,uBAAA,CAAwB;QAC5BC,MAAA,EAAQS,KAAA,CAAMT,MAAM;QACpBC,UAAA,EAAYS,SAAA;QACZR,GAAA;QACAC,MAAA,EAAQC;MACV;IACF;IAEA,IAAIK,KAAA,CAAMG,IAAI,KAAK,QAAQ;MACzB,MAAMN,OAAA,CAAQC,GAAG,CACfE,KAAA,CAAMc,IAAI,CAACf,GAAG,CAAC,MAAOgB,GAAA;QACpB,MAAMC,OAAA,GAAU3B,UAAA,CAAW0B,GAAA,IACvBd,SAAA,GACE,GAAGA,SAAA,IAAac,GAAA,CAAIb,IAAI,EAAE,GAC1Ba,GAAA,CAAIb,IAAI,GACVD,SAAA;QAEJ,MAAMX,uBAAA,CAAwB;UAC5BC,MAAA,EAAQwB,GAAA,CAAIxB,MAAM;UAClBC,UAAA,EAAYwB,OAAA;UACZvB,GAAA;UACAC,MAAA,EAAQC;QACV;MACF;IAEJ;EACF;EAGF,OAAOA,qBAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { unflatten } from '@ruya.sa/payload/shared';
|
|
2
|
+
export const transformColumnsToSelect = columns => {
|
|
3
|
+
const columnsSelect = columns.reduce((acc, column) => {
|
|
4
|
+
if (column.active) {
|
|
5
|
+
acc[column.accessor] = true;
|
|
6
|
+
}
|
|
7
|
+
return acc;
|
|
8
|
+
}, {});
|
|
9
|
+
return unflatten(columnsSelect);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=transformColumnsToSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformColumnsToSelect.js","names":["unflatten","transformColumnsToSelect","columns","columnsSelect","reduce","acc","column","active","accessor"],"sources":["../../../src/views/List/transformColumnsToSelect.ts"],"sourcesContent":["import type { ColumnPreference, SelectType } from '@ruya.sa/payload'\n\nimport { unflatten } from '@ruya.sa/payload/shared'\n\nexport const transformColumnsToSelect = (columns: ColumnPreference[]): SelectType => {\n const columnsSelect = columns.reduce((acc, column) => {\n if (column.active) {\n acc[column.accessor] = true\n }\n return acc\n }, {} as SelectType)\n\n return unflatten(columnsSelect)\n}\n"],"mappings":"AAEA,SAASA,SAAS,QAAQ;AAE1B,OAAO,MAAMC,wBAAA,GAA4BC,OAAA;EACvC,MAAMC,aAAA,GAAgBD,OAAA,CAAQE,MAAM,CAAC,CAACC,GAAA,EAAKC,MAAA;IACzC,IAAIA,MAAA,CAAOC,MAAM,EAAE;MACjBF,GAAG,CAACC,MAAA,CAAOE,QAAQ,CAAC,GAAG;IACzB;IACA,OAAOH,GAAA;EACT,GAAG,CAAC;EAEJ,OAAOL,SAAA,CAAUG,aAAA;AACnB","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { EmailField, TextField, useTranslation } from '@ruya.sa/ui';
|
|
6
|
+
import { email, username } from '@ruya.sa/payload/shared';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
export const LoginField = t0 => {
|
|
9
|
+
const $ = _c(11);
|
|
10
|
+
const {
|
|
11
|
+
type,
|
|
12
|
+
required: t1
|
|
13
|
+
} = t0;
|
|
14
|
+
const required = t1 === undefined ? true : t1;
|
|
15
|
+
const {
|
|
16
|
+
t
|
|
17
|
+
} = useTranslation();
|
|
18
|
+
if (type === "email") {
|
|
19
|
+
let t2;
|
|
20
|
+
if ($[0] !== required || $[1] !== t) {
|
|
21
|
+
t2 = _jsx(EmailField, {
|
|
22
|
+
field: {
|
|
23
|
+
name: "email",
|
|
24
|
+
admin: {
|
|
25
|
+
autoComplete: "email"
|
|
26
|
+
},
|
|
27
|
+
label: t("general:email"),
|
|
28
|
+
required
|
|
29
|
+
},
|
|
30
|
+
path: "email",
|
|
31
|
+
validate: email
|
|
32
|
+
});
|
|
33
|
+
$[0] = required;
|
|
34
|
+
$[1] = t;
|
|
35
|
+
$[2] = t2;
|
|
36
|
+
} else {
|
|
37
|
+
t2 = $[2];
|
|
38
|
+
}
|
|
39
|
+
return t2;
|
|
40
|
+
}
|
|
41
|
+
if (type === "username") {
|
|
42
|
+
let t2;
|
|
43
|
+
if ($[3] !== required || $[4] !== t) {
|
|
44
|
+
t2 = _jsx(TextField, {
|
|
45
|
+
field: {
|
|
46
|
+
name: "username",
|
|
47
|
+
label: t("authentication:username"),
|
|
48
|
+
required
|
|
49
|
+
},
|
|
50
|
+
path: "username",
|
|
51
|
+
validate: username
|
|
52
|
+
});
|
|
53
|
+
$[3] = required;
|
|
54
|
+
$[4] = t;
|
|
55
|
+
$[5] = t2;
|
|
56
|
+
} else {
|
|
57
|
+
t2 = $[5];
|
|
58
|
+
}
|
|
59
|
+
return t2;
|
|
60
|
+
}
|
|
61
|
+
if (type === "emailOrUsername") {
|
|
62
|
+
let t2;
|
|
63
|
+
if ($[6] !== required || $[7] !== t) {
|
|
64
|
+
let t3;
|
|
65
|
+
if ($[9] !== t) {
|
|
66
|
+
t3 = (value, options) => {
|
|
67
|
+
const passesUsername = username(value, options);
|
|
68
|
+
const passesEmail = email(value, options);
|
|
69
|
+
if (!passesEmail && !passesUsername) {
|
|
70
|
+
return `${t("general:email")}: ${passesEmail} ${t("general:username")}: ${passesUsername}`;
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
};
|
|
74
|
+
$[9] = t;
|
|
75
|
+
$[10] = t3;
|
|
76
|
+
} else {
|
|
77
|
+
t3 = $[10];
|
|
78
|
+
}
|
|
79
|
+
t2 = _jsx(TextField, {
|
|
80
|
+
field: {
|
|
81
|
+
name: "username",
|
|
82
|
+
label: t("authentication:emailOrUsername"),
|
|
83
|
+
required
|
|
84
|
+
},
|
|
85
|
+
path: "username",
|
|
86
|
+
validate: t3
|
|
87
|
+
});
|
|
88
|
+
$[6] = required;
|
|
89
|
+
$[7] = t;
|
|
90
|
+
$[8] = t2;
|
|
91
|
+
} else {
|
|
92
|
+
t2 = $[8];
|
|
93
|
+
}
|
|
94
|
+
return t2;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","EmailField","TextField","useTranslation","email","username","React","LoginField","t0","$","type","required","t1","undefined","t","t2","_jsx","field","name","admin","autoComplete","label","path","validate","t3","value","options","passesUsername","passesEmail"],"sources":["../../../../src/views/Login/LoginField/index.tsx"],"sourcesContent":["'use client'\nimport type { Validate, ValidateOptions } from '@ruya.sa/payload'\n\nimport { EmailField, TextField, useTranslation } from '@ruya.sa/ui'\nimport { email, username } from '@ruya.sa/payload/shared'\nimport React from 'react'\n\nexport type LoginFieldProps = {\n readonly required?: boolean\n readonly type: 'email' | 'emailOrUsername' | 'username'\n readonly validate?: Validate\n}\n\nexport const LoginField: React.FC<LoginFieldProps> = ({ type, required = true }) => {\n const { t } = useTranslation()\n\n if (type === 'email') {\n return (\n <EmailField\n field={{\n name: 'email',\n admin: {\n autoComplete: 'email',\n },\n label: t('general:email'),\n required,\n }}\n path=\"email\"\n validate={email}\n />\n )\n }\n\n if (type === 'username') {\n return (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:username'),\n required,\n }}\n path=\"username\"\n validate={username}\n />\n )\n }\n\n if (type === 'emailOrUsername') {\n return (\n <TextField\n field={{\n name: 'username',\n label: t('authentication:emailOrUsername'),\n required,\n }}\n path=\"username\"\n validate={(value, options) => {\n const passesUsername = username(value, options)\n const passesEmail = email(\n value,\n options as ValidateOptions<any, { username?: string }, any, any>,\n )\n\n if (!passesEmail && !passesUsername) {\n return `${t('general:email')}: ${passesEmail} ${t('general:username')}: ${passesUsername}`\n }\n\n return true\n }}\n />\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,UAAU,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AACtD,SAASC,KAAK,EAAEC,QAAQ,QAAQ;AAChC,OAAOC,KAAA,MAAW;AAQlB,OAAO,MAAMC,UAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,IAAA;IAAAC,QAAA,EAAAC;EAAA,IAAAJ,EAAyB;EAAjB,MAAAG,QAAA,GAAAC,EAAe,KAAAC,SAAA,UAAfD,EAAe;EAC3E;IAAAE;EAAA,IAAcX,cAAA;EAAA,IAEVO,IAAA,KAAS;IAAA,IAAAK,EAAA;IAAA,IAAAN,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAK,CAAA;MAETC,EAAA,GAAAC,IAAA,CAAAf,UAAA;QAAAgB,KAAA;UAAAC,IAAA,EAEU;UAAAC,KAAA;YAAAC,YAAA,EAEU;UAAA;UAAAC,KAAA,EAETP,CAAA,CAAE;UAAAH;QAAA;QAAAW,IAAA,EAGN;QAAAC,QAAA,EAAAnB;MAAA,C;;;;;;;WATPW,E;;MAeAL,IAAA,KAAS;IAAA,IAAAK,EAAA;IAAA,IAAAN,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAK,CAAA;MAETC,EAAA,GAAAC,IAAA,CAAAd,SAAA;QAAAe,KAAA;UAAAC,IAAA,EAEU;UAAAG,KAAA,EACCP,CAAA,CAAE;UAAAH;QAAA;QAAAW,IAAA,EAGN;QAAAC,QAAA,EAAAlB;MAAA,C;;;;;;;WANPU,E;;MAYAL,IAAA,KAAS;IAAA,IAAAK,EAAA;IAAA,IAAAN,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAK,CAAA;MAAA,IAAAU,EAAA;MAAA,IAAAf,CAAA,QAAAK,CAAA;QASGU,EAAA,GAAAA,CAAAC,KAAA,EAAAC,OAAA;UACR,MAAAC,cAAA,GAAuBtB,QAAA,CAASoB,KAAA,EAAOC,OAAA;UACvC,MAAAE,WAAA,GAAoBxB,KAAA,CAClBqB,KAAA,EACAC,OAAA;UAAA,IAGE,CAACE,WAAA,KAAgBD,cAAA;YAAA,OACZ,GAAGb,CAAA,CAAE,qBAAqBc,WAAA,IAAed,CAAA,CAAE,wBAAwBa,cAAA,EAAgB;UAAA;UAAA;QAAA;QAI9FlB,CAAA,MAAAK,CAAA;QAAAL,CAAA,OAAAe,EAAA;MAAA;QAAAA,EAAA,GAAAf,CAAA;MAAA;MAnBFM,EAAA,GAAAC,IAAA,CAAAd,SAAA;QAAAe,KAAA;UAAAC,IAAA,EAEU;UAAAG,KAAA,EACCP,CAAA,CAAE;UAAAH;QAAA;QAAAW,IAAA,EAGN;QAAAC,QAAA,EACKC;MAYV,C;;;;;;;WAnBFT,E;;;CAyBN","ignoreList":[]}
|
|
@@ -0,0 +1,177 @@
|
|
|
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 React from 'react';
|
|
6
|
+
const baseClass = 'login__form';
|
|
7
|
+
import { Form, FormSubmit, Link, PasswordField, useAuth, useConfig, useTranslation } from '@ruya.sa/ui';
|
|
8
|
+
import { formatAdminURL, getLoginOptions, getSafeRedirect } from '@ruya.sa/payload/shared';
|
|
9
|
+
import { LoginField } from '../LoginField/index.js';
|
|
10
|
+
export const LoginForm = t0 => {
|
|
11
|
+
const $ = _c(23);
|
|
12
|
+
const {
|
|
13
|
+
prefillEmail,
|
|
14
|
+
prefillPassword,
|
|
15
|
+
prefillUsername,
|
|
16
|
+
searchParams
|
|
17
|
+
} = t0;
|
|
18
|
+
const {
|
|
19
|
+
config,
|
|
20
|
+
getEntityConfig
|
|
21
|
+
} = useConfig();
|
|
22
|
+
const {
|
|
23
|
+
admin: t1,
|
|
24
|
+
routes: t2
|
|
25
|
+
} = config;
|
|
26
|
+
const {
|
|
27
|
+
routes: t3,
|
|
28
|
+
user: userSlug
|
|
29
|
+
} = t1;
|
|
30
|
+
const {
|
|
31
|
+
forgot: forgotRoute
|
|
32
|
+
} = t3;
|
|
33
|
+
const {
|
|
34
|
+
admin: adminRoute,
|
|
35
|
+
api: apiRoute
|
|
36
|
+
} = t2;
|
|
37
|
+
let loginWithUsername;
|
|
38
|
+
let t4;
|
|
39
|
+
if ($[0] !== getEntityConfig || $[1] !== userSlug) {
|
|
40
|
+
const collectionConfig = getEntityConfig({
|
|
41
|
+
collectionSlug: userSlug
|
|
42
|
+
});
|
|
43
|
+
const {
|
|
44
|
+
auth: authOptions
|
|
45
|
+
} = collectionConfig;
|
|
46
|
+
loginWithUsername = authOptions.loginWithUsername;
|
|
47
|
+
t4 = getLoginOptions(loginWithUsername);
|
|
48
|
+
$[0] = getEntityConfig;
|
|
49
|
+
$[1] = userSlug;
|
|
50
|
+
$[2] = loginWithUsername;
|
|
51
|
+
$[3] = t4;
|
|
52
|
+
} else {
|
|
53
|
+
loginWithUsername = $[2];
|
|
54
|
+
t4 = $[3];
|
|
55
|
+
}
|
|
56
|
+
const {
|
|
57
|
+
canLoginWithEmail,
|
|
58
|
+
canLoginWithUsername
|
|
59
|
+
} = t4;
|
|
60
|
+
let t5;
|
|
61
|
+
if ($[4] !== canLoginWithEmail || $[5] !== canLoginWithUsername) {
|
|
62
|
+
t5 = () => {
|
|
63
|
+
if (canLoginWithEmail && canLoginWithUsername) {
|
|
64
|
+
return "emailOrUsername";
|
|
65
|
+
}
|
|
66
|
+
if (canLoginWithUsername) {
|
|
67
|
+
return "username";
|
|
68
|
+
}
|
|
69
|
+
return "email";
|
|
70
|
+
};
|
|
71
|
+
$[4] = canLoginWithEmail;
|
|
72
|
+
$[5] = canLoginWithUsername;
|
|
73
|
+
$[6] = t5;
|
|
74
|
+
} else {
|
|
75
|
+
t5 = $[6];
|
|
76
|
+
}
|
|
77
|
+
const [loginType] = React.useState(t5);
|
|
78
|
+
const {
|
|
79
|
+
t
|
|
80
|
+
} = useTranslation();
|
|
81
|
+
const {
|
|
82
|
+
setUser
|
|
83
|
+
} = useAuth();
|
|
84
|
+
const t6 = prefillPassword ?? undefined;
|
|
85
|
+
const t7 = prefillPassword ?? undefined;
|
|
86
|
+
let t8;
|
|
87
|
+
if ($[7] !== adminRoute || $[8] !== apiRoute || $[9] !== forgotRoute || $[10] !== loginType || $[11] !== loginWithUsername || $[12] !== prefillEmail || $[13] !== prefillUsername || $[14] !== searchParams?.redirect || $[15] !== setUser || $[16] !== t || $[17] !== t6 || $[18] !== t7 || $[19] !== userSlug) {
|
|
88
|
+
const initialState = {
|
|
89
|
+
password: {
|
|
90
|
+
initialValue: t6,
|
|
91
|
+
valid: true,
|
|
92
|
+
value: t7
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
if (loginWithUsername) {
|
|
96
|
+
initialState.username = {
|
|
97
|
+
initialValue: prefillUsername ?? undefined,
|
|
98
|
+
valid: true,
|
|
99
|
+
value: prefillUsername ?? undefined
|
|
100
|
+
};
|
|
101
|
+
} else {
|
|
102
|
+
initialState.email = {
|
|
103
|
+
initialValue: prefillEmail ?? undefined,
|
|
104
|
+
valid: true,
|
|
105
|
+
value: prefillEmail ?? undefined
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
let t9;
|
|
109
|
+
if ($[21] !== setUser) {
|
|
110
|
+
t9 = data => {
|
|
111
|
+
setUser(data);
|
|
112
|
+
};
|
|
113
|
+
$[21] = setUser;
|
|
114
|
+
$[22] = t9;
|
|
115
|
+
} else {
|
|
116
|
+
t9 = $[22];
|
|
117
|
+
}
|
|
118
|
+
const handleLogin = t9;
|
|
119
|
+
t8 = _jsxs(Form, {
|
|
120
|
+
action: formatAdminURL({
|
|
121
|
+
apiRoute,
|
|
122
|
+
path: `/${userSlug}/login`
|
|
123
|
+
}),
|
|
124
|
+
className: baseClass,
|
|
125
|
+
disableSuccessStatus: true,
|
|
126
|
+
initialState,
|
|
127
|
+
method: "POST",
|
|
128
|
+
onSuccess: handleLogin,
|
|
129
|
+
redirect: getSafeRedirect({
|
|
130
|
+
fallbackTo: adminRoute,
|
|
131
|
+
redirectTo: searchParams?.redirect
|
|
132
|
+
}),
|
|
133
|
+
waitForAutocomplete: true,
|
|
134
|
+
children: [_jsxs("div", {
|
|
135
|
+
className: `${baseClass}__inputWrap`,
|
|
136
|
+
children: [_jsx(LoginField, {
|
|
137
|
+
type: loginType
|
|
138
|
+
}), _jsx(PasswordField, {
|
|
139
|
+
field: {
|
|
140
|
+
name: "password",
|
|
141
|
+
label: t("general:password"),
|
|
142
|
+
required: true
|
|
143
|
+
},
|
|
144
|
+
path: "password"
|
|
145
|
+
})]
|
|
146
|
+
}), _jsx(Link, {
|
|
147
|
+
href: formatAdminURL({
|
|
148
|
+
adminRoute,
|
|
149
|
+
path: forgotRoute
|
|
150
|
+
}),
|
|
151
|
+
prefetch: false,
|
|
152
|
+
children: t("authentication:forgotPasswordQuestion")
|
|
153
|
+
}), _jsx(FormSubmit, {
|
|
154
|
+
size: "large",
|
|
155
|
+
children: t("authentication:login")
|
|
156
|
+
})]
|
|
157
|
+
});
|
|
158
|
+
$[7] = adminRoute;
|
|
159
|
+
$[8] = apiRoute;
|
|
160
|
+
$[9] = forgotRoute;
|
|
161
|
+
$[10] = loginType;
|
|
162
|
+
$[11] = loginWithUsername;
|
|
163
|
+
$[12] = prefillEmail;
|
|
164
|
+
$[13] = prefillUsername;
|
|
165
|
+
$[14] = searchParams?.redirect;
|
|
166
|
+
$[15] = setUser;
|
|
167
|
+
$[16] = t;
|
|
168
|
+
$[17] = t6;
|
|
169
|
+
$[18] = t7;
|
|
170
|
+
$[19] = userSlug;
|
|
171
|
+
$[20] = t8;
|
|
172
|
+
} else {
|
|
173
|
+
t8 = $[20];
|
|
174
|
+
}
|
|
175
|
+
return t8;
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","baseClass","Form","FormSubmit","Link","PasswordField","useAuth","useConfig","useTranslation","formatAdminURL","getLoginOptions","getSafeRedirect","LoginField","LoginForm","t0","$","prefillEmail","prefillPassword","prefillUsername","searchParams","config","getEntityConfig","admin","t1","routes","t2","t3","user","userSlug","forgot","forgotRoute","adminRoute","api","apiRoute","loginWithUsername","t4","collectionConfig","collectionSlug","auth","authOptions","canLoginWithEmail","canLoginWithUsername","t5","loginType","useState","t","setUser","t6","undefined","t7","t8","redirect","initialState","password","initialValue","valid","value","username","email","t9","data","handleLogin","_jsxs","action","path","className","disableSuccessStatus","method","onSuccess","fallbackTo","redirectTo","waitForAutocomplete","children","_jsx","type","field","name","label","required","href","prefetch","size"],"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nconst baseClass = 'login__form'\n\nimport type { UserWithToken } from '@ruya.sa/ui'\nimport type { FormState } from '@ruya.sa/payload'\n\nimport {\n Form,\n FormSubmit,\n Link,\n PasswordField,\n useAuth,\n useConfig,\n useTranslation,\n} from '@ruya.sa/ui'\nimport { formatAdminURL, getLoginOptions, getSafeRedirect } from '@ruya.sa/payload/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config, getEntityConfig } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(loginWithUsername)\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) {\n return 'emailOrUsername'\n }\n if (canLoginWithUsername) {\n return 'username'\n }\n return 'email'\n })\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n const handleLogin = (data: UserWithToken) => {\n setUser(data)\n }\n\n return (\n <Form\n action={formatAdminURL({\n apiRoute,\n path: `/${userSlug}/login`,\n })}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n onSuccess={handleLogin}\n redirect={getSafeRedirect({ fallbackTo: adminRoute, redirectTo: searchParams?.redirect })}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n path=\"password\"\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n prefetch={false}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|