@plumile/backoffice-react 0.1.72 → 0.1.74
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/lib/esm/{auth/pages/AcceptInvitationScreen.js → AcceptInvitationScreen-CNLlSbdx.js} +25 -29
- package/lib/esm/AcceptInvitationScreen-CNLlSbdx.js.map +1 -0
- package/lib/esm/{auth/login/AuthPanel.js → AuthPanel-ttoH9YxE.js} +7 -7
- package/lib/esm/AuthPanel-ttoH9YxE.js.map +1 -0
- package/lib/esm/BackofficeAcceptInvitationPage-DRxM1Z-U.js +30 -0
- package/lib/esm/BackofficeAcceptInvitationPage-DRxM1Z-U.js.map +1 -0
- package/lib/esm/BackofficeDashboardPage-GKyT60qb.js +195 -0
- package/lib/esm/BackofficeDashboardPage-GKyT60qb.js.map +1 -0
- package/lib/esm/BackofficeDetailPayload-B-qs8Fai.js +94 -0
- package/lib/esm/BackofficeDetailPayload-B-qs8Fai.js.map +1 -0
- package/lib/esm/{components/backoffice/actions/BackofficeEntityActionFormDialog.js → BackofficeEntityActionFormDialog-FHlW0vys.js} +120 -131
- package/lib/esm/BackofficeEntityActionFormDialog-FHlW0vys.js.map +1 -0
- package/lib/esm/{pages/detail/BackofficeEntityDetailLayoutContext.js → BackofficeEntityDetailLayoutContext-C_tBqkVq.js} +2 -2
- package/lib/esm/BackofficeEntityDetailLayoutContext-C_tBqkVq.js.map +1 -0
- package/lib/esm/BackofficeEntityDetailLayoutPage-DXjRqvcZ.js +18 -0
- package/lib/esm/BackofficeEntityDetailLayoutPage-DXjRqvcZ.js.map +1 -0
- package/lib/esm/BackofficeEntityDetailPage-CdrMXu5a.js +991 -0
- package/lib/esm/BackofficeEntityDetailPage-CdrMXu5a.js.map +1 -0
- package/lib/esm/{pages/BackofficeEntityDetailUnknownPageRedirect.js → BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js} +3 -3
- package/lib/esm/BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js.map +1 -0
- package/lib/esm/BackofficeEntityListPage-BxgqdFpL.js +385 -0
- package/lib/esm/BackofficeEntityListPage-BxgqdFpL.js.map +1 -0
- package/lib/esm/BackofficeLayoutPage-k9OkLfXb.js +485 -0
- package/lib/esm/BackofficeLayoutPage-k9OkLfXb.js.map +1 -0
- package/lib/esm/BackofficeLoginPage-C64BcxMw.js +50 -0
- package/lib/esm/BackofficeLoginPage-C64BcxMw.js.map +1 -0
- package/lib/esm/BackofficePasswordResetCompletePage-BA7kkUxN.js +60 -0
- package/lib/esm/BackofficePasswordResetCompletePage-BA7kkUxN.js.map +1 -0
- package/lib/esm/{pages/BackofficePasswordResetRequestPage.js → BackofficePasswordResetRequestPage-B9wSZcyn.js} +15 -13
- package/lib/esm/BackofficePasswordResetRequestPage-B9wSZcyn.js.map +1 -0
- package/lib/esm/BackofficeRightPageLayout-ktdlvTZJ.js +107 -0
- package/lib/esm/BackofficeRightPageLayout-ktdlvTZJ.js.map +1 -0
- package/lib/esm/{components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js → BackofficeTopbarPortalContext-iD7dm4_h.js} +2 -2
- package/lib/esm/BackofficeTopbarPortalContext-iD7dm4_h.js.map +1 -0
- package/lib/esm/BackofficeVerifyEmailPage-CAzMqo2K.js +59 -0
- package/lib/esm/BackofficeVerifyEmailPage-CAzMqo2K.js.map +1 -0
- package/lib/esm/EntityFilterValue-SC_jkj4O.js +77 -0
- package/lib/esm/EntityFilterValue-SC_jkj4O.js.map +1 -0
- package/lib/esm/EntityIdPickerDialog-FMC5Hx_I.js +308 -0
- package/lib/esm/EntityIdPickerDialog-FMC5Hx_I.js.map +1 -0
- package/lib/esm/LazyBackofficeEntityActionFormDialog-DOEgoIfT.js +486 -0
- package/lib/esm/LazyBackofficeEntityActionFormDialog-DOEgoIfT.js.map +1 -0
- package/lib/esm/{auth/pages/PasswordResetCompleteScreen.js → PasswordResetCompleteScreen-C4GQdavL.js} +21 -25
- package/lib/esm/PasswordResetCompleteScreen-C4GQdavL.js.map +1 -0
- package/lib/esm/{auth/pages/PasswordResetRequestScreen.js → PasswordResetRequestScreen-aUY_yDqM.js} +19 -23
- package/lib/esm/PasswordResetRequestScreen-aUY_yDqM.js.map +1 -0
- package/lib/esm/VerifyEmailScreen-2DuHJgdY.js +62 -0
- package/lib/esm/VerifyEmailScreen-2DuHJgdY.js.map +1 -0
- package/lib/esm/backoffice-react.js +1804 -0
- package/lib/esm/backoffice-react.js.map +1 -0
- package/lib/esm/{router/backofficeAuthPaths.js → backofficeAuthPaths-BiJvoI5Q.js} +2 -2
- package/lib/esm/backofficeAuthPaths-BiJvoI5Q.js.map +1 -0
- package/lib/esm/{components/backoffice/layout/breadcrumb/buildBreadcrumbs.js → buildBreadcrumbs-CqF9Nh6x.js} +3 -7
- package/lib/esm/buildBreadcrumbs-CqF9Nh6x.js.map +1 -0
- package/lib/esm/{relay/environment.js → environment-BJeJTbIN.js} +91 -71
- package/lib/esm/environment-BJeJTbIN.js.map +1 -0
- package/lib/esm/loginPage.css-BDQJNcSr.js +12 -0
- package/lib/esm/loginPage.css-BDQJNcSr.js.map +1 -0
- package/lib/esm/{relay/mutationResult.js → mutationResult-CcQMY13J.js} +2 -2
- package/lib/esm/mutationResult-CcQMY13J.js.map +1 -0
- package/lib/esm/{pages/detail/pageResolution.js → pageResolution-hAQA5C6S.js} +2 -2
- package/lib/esm/pageResolution-hAQA5C6S.js.map +1 -0
- package/lib/esm/{components/backoffice/layout/sidebarUtils.js → sidebarUtils-CuwJ_3mD.js} +2 -12
- package/lib/esm/{components/backoffice/layout/sidebarUtils.js.map → sidebarUtils-CuwJ_3mD.js.map} +1 -1
- package/lib/esm/{provider/BackofficeConfigContext.js → sprinkles.css.ts.vanilla-n-NK_DwW.js} +2 -2
- package/lib/esm/sprinkles.css.ts.vanilla-n-NK_DwW.js.map +1 -0
- package/lib/esm/style.css +1 -1
- package/lib/esm/synchronizeAuthStatusQuery-lLR0XFew.js +323 -0
- package/lib/esm/synchronizeAuthStatusQuery-lLR0XFew.js.map +1 -0
- package/lib/esm/{components/backoffice/actions/toastViewAction.js → toastViewAction-BGTS7vqm.js} +2 -2
- package/lib/esm/{components/backoffice/actions/toastViewAction.js.map → toastViewAction-BGTS7vqm.js.map} +1 -1
- package/lib/esm/useAuth-AczFS-oL.js +543 -0
- package/lib/esm/useAuth-AczFS-oL.js.map +1 -0
- package/lib/esm/useBackofficeAuth-BHteJQzA.js +89 -0
- package/lib/esm/useBackofficeAuth-BHteJQzA.js.map +1 -0
- package/lib/esm/{provider/useBackofficeLazyValue.js → useBackofficeLazyValue-B0-ckL6e.js} +7 -15
- package/lib/esm/useBackofficeLazyValue-B0-ckL6e.js.map +1 -0
- package/lib/esm/{hooks/useBackofficeListUrlState.js → useBackofficeListUrlState-D4fx5O7u.js} +2 -2
- package/lib/esm/useBackofficeListUrlState-D4fx5O7u.js.map +1 -0
- package/lib/esm/{components/backoffice/errors/BackofficeErrorBoundary.js → useBackofficeReactTranslation-WfXU8kCf.js} +9 -3
- package/lib/esm/useBackofficeReactTranslation-WfXU8kCf.js.map +1 -0
- package/lib/esm/{relay/useRelayEnvironment.js → useRelayEnvironment-vQ86aW-n.js} +2 -2
- package/lib/esm/useRelayEnvironment-vQ86aW-n.js.map +1 -0
- package/lib/types/auth/login/EmailCapturePanel.d.ts.map +1 -1
- package/lib/types/auth/login/MethodChooser.d.ts.map +1 -1
- package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -1
- package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -1
- package/lib/types/auth/login/PasswordLoginPanel.d.ts +1 -1
- package/lib/types/auth/login/PasswordLoginPanel.d.ts.map +1 -1
- package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -1
- package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts.map +1 -1
- package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts.map +1 -1
- package/lib/types/auth/pages/VerifyEmailScreen.d.ts.map +1 -1
- package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts.map +1 -1
- package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts.map +1 -1
- package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -1
- package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +1 -1
- package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -1
- package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
- package/lib/types/filters/filterHelpers.d.ts +1 -1
- package/lib/types/filters/filterHelpers.d.ts.map +1 -1
- package/lib/types/index.d.ts +5 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
- package/lib/types/provider/BackofficeConfigContext.d.ts +1 -0
- package/lib/types/provider/BackofficeConfigContext.d.ts.map +1 -1
- package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
- package/lib/types/provider/types.d.ts +2 -0
- package/lib/types/provider/types.d.ts.map +1 -1
- package/lib/types/relay/environment.d.ts +1 -0
- package/lib/types/relay/environment.d.ts.map +1 -1
- package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
- package/package.json +9 -9
- package/lib/esm/auth/login/AuthPanel.js.map +0 -1
- package/lib/esm/auth/login/EmailCapturePanel.js +0 -52
- package/lib/esm/auth/login/EmailCapturePanel.js.map +0 -1
- package/lib/esm/auth/login/LoginFlow.js +0 -130
- package/lib/esm/auth/login/LoginFlow.js.map +0 -1
- package/lib/esm/auth/login/MethodChooser.js +0 -51
- package/lib/esm/auth/login/MethodChooser.js.map +0 -1
- package/lib/esm/auth/login/MfaChallengeForm.js +0 -83
- package/lib/esm/auth/login/MfaChallengeForm.js.map +0 -1
- package/lib/esm/auth/login/OidcButtons.js +0 -29
- package/lib/esm/auth/login/OidcButtons.js.map +0 -1
- package/lib/esm/auth/login/PasskeyLoginForm.js +0 -84
- package/lib/esm/auth/login/PasskeyLoginForm.js.map +0 -1
- package/lib/esm/auth/login/PasswordLoginPanel.js +0 -37
- package/lib/esm/auth/login/PasswordLoginPanel.js.map +0 -1
- package/lib/esm/auth/login/loginPage.css.js +0 -8
- package/lib/esm/auth/login/loginPage.css.js.map +0 -1
- package/lib/esm/auth/login/synchronizeAuthStatusQuery.js +0 -10
- package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +0 -1
- package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +0 -1
- package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +0 -1
- package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +0 -1
- package/lib/esm/auth/pages/VerifyEmailScreen.js +0 -65
- package/lib/esm/auth/pages/VerifyEmailScreen.js.map +0 -1
- package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +0 -1
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +0 -11
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +0 -1
- package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +0 -8
- package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +0 -1
- package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +0 -59
- package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js +0 -22
- package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +0 -41
- package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +0 -31
- package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js +0 -8
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js +0 -24
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js +0 -20
- package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js +0 -18
- package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js +0 -49
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js +0 -11
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +0 -115
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js +0 -33
- package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js.map +0 -1
- package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js +0 -18
- package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js +0 -15
- package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js +0 -8
- package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js.map +0 -1
- package/lib/esm/components/backoffice/detail/detailPayloadUtils.js +0 -17
- package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +0 -1
- package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js.map +0 -1
- package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +0 -43
- package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +0 -1
- package/lib/esm/components/backoffice/filters/EntityFilterValue.js +0 -46
- package/lib/esm/components/backoffice/filters/EntityFilterValue.js.map +0 -1
- package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +0 -51
- package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +0 -1
- package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +0 -8
- package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +0 -1
- package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +0 -8
- package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +0 -1
- package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +0 -8
- package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js +0 -10
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +0 -38
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js +0 -12
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js +0 -16
- package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +0 -8
- package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +0 -1
- package/lib/esm/components/backoffice/layout/breadcrumb/types.js +0 -0
- package/lib/esm/components/backoffice/layout/buildSidebarSections.js +0 -183
- package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +0 -1
- package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js +0 -18
- package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +0 -1
- package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +0 -7
- package/lib/esm/components/backoffice/list/RowFlagsCell.css.js.map +0 -1
- package/lib/esm/components/backoffice/list/RowFlagsCell.js +0 -37
- package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +0 -1
- package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +0 -31
- package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +0 -1
- package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +0 -8
- package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +0 -1
- package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +0 -106
- package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +0 -1
- package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +0 -8
- package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +0 -1
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +0 -23
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js.map +0 -1
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js +0 -23
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js.map +0 -1
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js +0 -24
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js.map +0 -1
- package/lib/esm/components/backoffice/pickers/types.js +0 -0
- package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js +0 -35
- package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js.map +0 -1
- package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +0 -54
- package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +0 -1
- package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +0 -8
- package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +0 -1
- package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +0 -8
- package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +0 -1
- package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js +0 -24
- package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +0 -1
- package/lib/esm/components/backoffice/routing/BackofficeContentError.js +0 -38
- package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +0 -1
- package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js +0 -47
- package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +0 -1
- package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +0 -22
- package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +0 -1
- package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js +0 -12
- package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js.map +0 -1
- package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +0 -8
- package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +0 -1
- package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +0 -8
- package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +0 -1
- package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +0 -8
- package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +0 -1
- package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +0 -8
- package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +0 -1
- package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +0 -8
- package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +0 -1
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +0 -11
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +0 -1
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +0 -438
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +0 -1
- package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js +0 -40
- package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js.map +0 -1
- package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +0 -24
- package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +0 -1
- package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +0 -8
- package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +0 -1
- package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +0 -8
- package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +0 -1
- package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +0 -12
- package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +0 -1
- package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +0 -8
- package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +0 -1
- package/lib/esm/filters/filterHelpers.js +0 -36
- package/lib/esm/filters/filterHelpers.js.map +0 -1
- package/lib/esm/hooks/useAuth.js +0 -439
- package/lib/esm/hooks/useAuth.js.map +0 -1
- package/lib/esm/hooks/useBackofficeAuth.js +0 -89
- package/lib/esm/hooks/useBackofficeAuth.js.map +0 -1
- package/lib/esm/hooks/useBackofficeListRefetch.js +0 -40
- package/lib/esm/hooks/useBackofficeListRefetch.js.map +0 -1
- package/lib/esm/hooks/useBackofficeListUrlState.js.map +0 -1
- package/lib/esm/hooks/useBackofficeLoadMore.js +0 -18
- package/lib/esm/hooks/useBackofficeLoadMore.js.map +0 -1
- package/lib/esm/hooks/useBackofficeSessionAuth.js +0 -28
- package/lib/esm/hooks/useBackofficeSessionAuth.js.map +0 -1
- package/lib/esm/hooks/useBackofficeSidebarPins.js +0 -70
- package/lib/esm/hooks/useBackofficeSidebarPins.js.map +0 -1
- package/lib/esm/hooks/useConditionalSubscription.js +0 -57
- package/lib/esm/hooks/useConditionalSubscription.js.map +0 -1
- package/lib/esm/hooks/useCopyToClipboard.js +0 -31
- package/lib/esm/hooks/useCopyToClipboard.js.map +0 -1
- package/lib/esm/hooks/useRefetchNeededReload.js +0 -23
- package/lib/esm/hooks/useRefetchNeededReload.js.map +0 -1
- package/lib/esm/hooks/useSidebarGroupCollapse.js +0 -35
- package/lib/esm/hooks/useSidebarGroupCollapse.js.map +0 -1
- package/lib/esm/i18n/createI18nInstance.js +0 -62
- package/lib/esm/i18n/createI18nInstance.js.map +0 -1
- package/lib/esm/i18n/locales/en/backofficeReact.js +0 -249
- package/lib/esm/i18n/locales/en/backofficeReact.js.map +0 -1
- package/lib/esm/i18n/locales/en/shared.js +0 -201
- package/lib/esm/i18n/locales/en/shared.js.map +0 -1
- package/lib/esm/i18n/locales/fr/backofficeReact.js +0 -251
- package/lib/esm/i18n/locales/fr/backofficeReact.js.map +0 -1
- package/lib/esm/i18n/locales/fr/shared.js +0 -201
- package/lib/esm/i18n/locales/fr/shared.js.map +0 -1
- package/lib/esm/i18n/mergeResourceLanguages.js +0 -19
- package/lib/esm/i18n/mergeResourceLanguages.js.map +0 -1
- package/lib/esm/i18n/resources.js +0 -19
- package/lib/esm/i18n/resources.js.map +0 -1
- package/lib/esm/i18n/useBackofficeFormats.js +0 -23
- package/lib/esm/i18n/useBackofficeFormats.js.map +0 -1
- package/lib/esm/i18n/useBackofficeReactTranslation.js +0 -9
- package/lib/esm/i18n/useBackofficeReactTranslation.js.map +0 -1
- package/lib/esm/i18n/useReviewStatusLabel.js +0 -19
- package/lib/esm/i18n/useReviewStatusLabel.js.map +0 -1
- package/lib/esm/i18n/useSharedTranslation.js +0 -9
- package/lib/esm/i18n/useSharedTranslation.js.map +0 -1
- package/lib/esm/index.js +0 -37
- package/lib/esm/modules/base64.js +0 -23
- package/lib/esm/modules/base64.js.map +0 -1
- package/lib/esm/modules/formatFileSize.js +0 -28
- package/lib/esm/modules/formatFileSize.js.map +0 -1
- package/lib/esm/modules/sharedSchemaTypes.js +0 -0
- package/lib/esm/modules/webauthn.js +0 -33
- package/lib/esm/modules/webauthn.js.map +0 -1
- package/lib/esm/pages/BackofficeAcceptInvitationPage.js +0 -24
- package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +0 -1
- package/lib/esm/pages/BackofficeDashboardPage.js +0 -197
- package/lib/esm/pages/BackofficeDashboardPage.js.map +0 -1
- package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +0 -18
- package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +0 -1
- package/lib/esm/pages/BackofficeEntityDetailPage.js +0 -837
- package/lib/esm/pages/BackofficeEntityDetailPage.js.map +0 -1
- package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +0 -1
- package/lib/esm/pages/BackofficeEntityListPage.js +0 -363
- package/lib/esm/pages/BackofficeEntityListPage.js.map +0 -1
- package/lib/esm/pages/BackofficeLayoutPage.js +0 -137
- package/lib/esm/pages/BackofficeLayoutPage.js.map +0 -1
- package/lib/esm/pages/BackofficeLoginPage.js +0 -46
- package/lib/esm/pages/BackofficeLoginPage.js.map +0 -1
- package/lib/esm/pages/BackofficePasswordResetCompletePage.js +0 -59
- package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +0 -1
- package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +0 -1
- package/lib/esm/pages/BackofficeVerifyEmailPage.js +0 -59
- package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +0 -1
- package/lib/esm/pages/backofficeDashboardPage.css.js +0 -8
- package/lib/esm/pages/backofficeDashboardPage.css.js.map +0 -1
- package/lib/esm/pages/backofficeEntityDetailPage.css.js +0 -8
- package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +0 -1
- package/lib/esm/pages/backofficeEntityListPage.css.js +0 -8
- package/lib/esm/pages/backofficeEntityListPage.css.js.map +0 -1
- package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +0 -1
- package/lib/esm/pages/detail/buildTabsItems.js +0 -10
- package/lib/esm/pages/detail/buildTabsItems.js.map +0 -1
- package/lib/esm/pages/detail/pageResolution.js.map +0 -1
- package/lib/esm/provider/BackofficeConfigContext.js.map +0 -1
- package/lib/esm/provider/BackofficeProvider.js +0 -152
- package/lib/esm/provider/BackofficeProvider.js.map +0 -1
- package/lib/esm/provider/entityRegistry.js +0 -91
- package/lib/esm/provider/entityRegistry.js.map +0 -1
- package/lib/esm/provider/lazyValue.js +0 -14
- package/lib/esm/provider/lazyValue.js.map +0 -1
- package/lib/esm/provider/types.js +0 -0
- package/lib/esm/provider/useBackofficeEntityLoader.js +0 -137
- package/lib/esm/provider/useBackofficeEntityLoader.js.map +0 -1
- package/lib/esm/provider/useBackofficeLazyValue.js.map +0 -1
- package/lib/esm/relay/RelayProvider.js +0 -12
- package/lib/esm/relay/RelayProvider.js.map +0 -1
- package/lib/esm/relay/createInlineDataReader.js +0 -2
- package/lib/esm/relay/createInlineReader.js +0 -7
- package/lib/esm/relay/createInlineReader.js.map +0 -1
- package/lib/esm/relay/envHelpers.js +0 -46
- package/lib/esm/relay/envHelpers.js.map +0 -1
- package/lib/esm/relay/environment.js.map +0 -1
- package/lib/esm/relay/identityView.js +0 -6
- package/lib/esm/relay/identityView.js.map +0 -1
- package/lib/esm/relay/mutationResult.js.map +0 -1
- package/lib/esm/relay/useRelayEnvironment.js.map +0 -1
- package/lib/esm/router/backofficeAuthPaths.js.map +0 -1
- package/lib/esm/router/createBackofficeRoutes.js +0 -273
- package/lib/esm/router/createBackofficeRoutes.js.map +0 -1
- package/lib/esm/style.js +0 -1
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { useBackofficeReactTranslation as e } from "../i18n/useBackofficeReactTranslation.js";
|
|
2
|
-
import { useBackofficeConfig as t } from "../provider/BackofficeConfigContext.js";
|
|
3
|
-
import { BackofficeTopbarPortalContextProvider as n } from "../components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js";
|
|
4
|
-
import { resolveSidebarGroups as r, resolveVisibleEntityIds as i } from "../components/backoffice/layout/sidebarUtils.js";
|
|
5
|
-
import { buildSidebarSections as a } from "../components/backoffice/layout/buildSidebarSections.js";
|
|
6
|
-
import o from "../components/backoffice/layout/mapViewerToSidebarProfileView.js";
|
|
7
|
-
import { BackofficeContentBoundary as ee } from "../components/backoffice/routing/BackofficeContentBoundary.js";
|
|
8
|
-
import { resetRelayStore as s } from "../relay/environment.js";
|
|
9
|
-
import { useRelayEnvironment as c } from "../relay/useRelayEnvironment.js";
|
|
10
|
-
import l from "../hooks/useBackofficeSidebarPins.js";
|
|
11
|
-
import u from "../hooks/useSidebarGroupCollapse.js";
|
|
12
|
-
import { getBackofficeLoginPath as d } from "../router/backofficeAuthPaths.js";
|
|
13
|
-
import { jsx as f } from "react/jsx-runtime";
|
|
14
|
-
import { useTranslation as p } from "react-i18next";
|
|
15
|
-
import { AdminShellLayout as m, BackofficeSidebarProfileMenu as h, EnvironmentBadge as g, GlobalSearchInput as _, ToastProvider as v } from "@plumile/ui";
|
|
16
|
-
import { useCallback as te, useContext as y, useMemo as b, useState as x } from "react";
|
|
17
|
-
import { commitMutation as ne, usePreloadedQuery as S } from "react-relay";
|
|
18
|
-
import { RoutingContext as C, useLocation as w } from "@plumile/router";
|
|
19
|
-
//#region src/pages/BackofficeLayoutPage.tsx
|
|
20
|
-
var T = ({ children: S, permissions: T, authStatus: E, activeGroupId: D }) => {
|
|
21
|
-
let { t: O } = p(), { t: k } = e(), { pathname: A } = w(), j = y(C), M = c(), { auth: N, basePath: P, entities: F, sidebar: I } = t(), [L, R] = x(""), [z, B] = x(!1), [V, H] = x(!1), [U, W] = x(null), G = b(() => r(F, I), [F, I]), K = b(() => Object.keys(G), [G]), { pins: q, toggle: J, reorder: Y } = l({ visibleEntityIds: b(() => i(G, F, I, T), [
|
|
22
|
-
F,
|
|
23
|
-
G,
|
|
24
|
-
T,
|
|
25
|
-
I
|
|
26
|
-
]) }), { collapsedByGroupId: X, setCollapsed: Z } = u({
|
|
27
|
-
groupIds: K,
|
|
28
|
-
activeGroupId: D
|
|
29
|
-
}), re = b(() => a({
|
|
30
|
-
basePath: P,
|
|
31
|
-
pathname: A,
|
|
32
|
-
entities: F,
|
|
33
|
-
sidebar: I,
|
|
34
|
-
permissions: T,
|
|
35
|
-
searchQuery: L,
|
|
36
|
-
tApp: O,
|
|
37
|
-
t: k,
|
|
38
|
-
pinnedEntityIds: q,
|
|
39
|
-
onTogglePin: J,
|
|
40
|
-
onReorderPin: Y,
|
|
41
|
-
collapsedByGroupId: X,
|
|
42
|
-
onGroupCollapsedChange: Z
|
|
43
|
-
}), [
|
|
44
|
-
P,
|
|
45
|
-
X,
|
|
46
|
-
F,
|
|
47
|
-
A,
|
|
48
|
-
T,
|
|
49
|
-
q,
|
|
50
|
-
Y,
|
|
51
|
-
Z,
|
|
52
|
-
I,
|
|
53
|
-
L,
|
|
54
|
-
k,
|
|
55
|
-
O,
|
|
56
|
-
J
|
|
57
|
-
]), ie = b(() => import.meta.env?.DEV === !0 ? "dev" : "prod", []), ae = te(() => {
|
|
58
|
-
V || (H(!0), (async () => {
|
|
59
|
-
try {
|
|
60
|
-
let e = await N.logout.load();
|
|
61
|
-
await new Promise((t, n) => {
|
|
62
|
-
ne(M, {
|
|
63
|
-
mutation: e.logoutMutation,
|
|
64
|
-
variables: {},
|
|
65
|
-
onCompleted: () => {
|
|
66
|
-
t();
|
|
67
|
-
},
|
|
68
|
-
onError: (e) => {
|
|
69
|
-
n(e);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}), localStorage.removeItem("auth_token"), localStorage.removeItem("remember_me"), s(), j?.history.push({ pathname: d(P) });
|
|
73
|
-
} finally {
|
|
74
|
-
H(!1);
|
|
75
|
-
}
|
|
76
|
-
})().catch(() => {}));
|
|
77
|
-
}, [
|
|
78
|
-
N.logout,
|
|
79
|
-
P,
|
|
80
|
-
V,
|
|
81
|
-
M,
|
|
82
|
-
j
|
|
83
|
-
]), Q = E?.me ?? null, oe = /* @__PURE__ */ f(h, {
|
|
84
|
-
collapsed: z,
|
|
85
|
-
viewer: b(() => o({
|
|
86
|
-
viewer: Q,
|
|
87
|
-
unknownUserLabel: k("sidebar.profile.unknownUser")
|
|
88
|
-
}), [k, Q]),
|
|
89
|
-
labels: {
|
|
90
|
-
sectionTitle: k("sidebar.profile.title"),
|
|
91
|
-
menuAriaLabel: k("sidebar.profile.menuAriaLabel"),
|
|
92
|
-
signOut: k("sidebar.profile.actions.signOut")
|
|
93
|
-
},
|
|
94
|
-
onSignOut: ae,
|
|
95
|
-
isSigningOut: V
|
|
96
|
-
}), $ = null;
|
|
97
|
-
return U != null && ($ = /* @__PURE__ */ f(ee, { children: S })), /* @__PURE__ */ f(v, { children: /* @__PURE__ */ f(m, {
|
|
98
|
-
sidebar: {
|
|
99
|
-
sections: re,
|
|
100
|
-
header: /* @__PURE__ */ f(g, { environment: ie }),
|
|
101
|
-
search: /* @__PURE__ */ f(_, {
|
|
102
|
-
value: L,
|
|
103
|
-
onChange: R,
|
|
104
|
-
placeholder: k("sidebar.search.placeholder"),
|
|
105
|
-
ariaLabel: k("sidebar.search.placeholder")
|
|
106
|
-
}),
|
|
107
|
-
footer: oe,
|
|
108
|
-
isCollapsed: z,
|
|
109
|
-
onCollapsedChange: B
|
|
110
|
-
},
|
|
111
|
-
topbar: { breadcrumb: /* @__PURE__ */ f("div", { ref: W }) },
|
|
112
|
-
children: /* @__PURE__ */ f(n, {
|
|
113
|
-
value: { target: U },
|
|
114
|
-
children: $
|
|
115
|
-
})
|
|
116
|
-
}) });
|
|
117
|
-
}, E = ({ children: e, permissionsQuery: t, prepared: n, authStatus: r, activeGroupId: i }) => /* @__PURE__ */ f(T, {
|
|
118
|
-
permissions: S(t, n),
|
|
119
|
-
authStatus: r,
|
|
120
|
-
activeGroupId: i,
|
|
121
|
-
children: e
|
|
122
|
-
}), D = ({ children: e, permissionsQuery: t, prepared: n, authStatus: r, activeGroupId: i }) => t != null && n != null ? /* @__PURE__ */ f(E, {
|
|
123
|
-
permissionsQuery: t,
|
|
124
|
-
prepared: n,
|
|
125
|
-
authStatus: r,
|
|
126
|
-
activeGroupId: i,
|
|
127
|
-
children: e
|
|
128
|
-
}) : /* @__PURE__ */ f(T, {
|
|
129
|
-
permissions: null,
|
|
130
|
-
authStatus: r,
|
|
131
|
-
activeGroupId: i,
|
|
132
|
-
children: e
|
|
133
|
-
});
|
|
134
|
-
//#endregion
|
|
135
|
-
export { D as BackofficeLayoutPage, D as default };
|
|
136
|
-
|
|
137
|
-
//# sourceMappingURL=BackofficeLayoutPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeLayoutPage.js","names":[],"sources":["../../../src/pages/BackofficeLayoutPage.tsx"],"sourcesContent":["import {\n useMemo,\n type JSX,\n type ReactNode,\n useCallback,\n useContext,\n useState,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n commitMutation,\n usePreloadedQuery,\n type PreloadedQuery,\n} from 'react-relay';\nimport type {\n GraphQLTaggedNode,\n MutationParameters,\n OperationType,\n} from 'relay-runtime';\nimport { RoutingContext, useLocation } from '@plumile/router';\n\nimport {\n AdminShellLayout,\n BackofficeSidebarProfileMenu,\n EnvironmentBadge,\n GlobalSearchInput,\n ToastProvider,\n} from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport type { LogoutResponse, LogoutVariables } from '../hooks/useAuth.js';\nimport { useBackofficeSidebarPins } from '../hooks/useBackofficeSidebarPins.js';\nimport { useSidebarGroupCollapse } from '../hooks/useSidebarGroupCollapse.js';\nimport { buildSidebarSections } from '../components/backoffice/layout/buildSidebarSections.js';\nimport { BackofficeContentBoundary } from '../components/backoffice/routing/BackofficeContentBoundary.js';\nimport {\n resolveSidebarGroups,\n resolveVisibleEntityIds,\n} from '../components/backoffice/layout/sidebarUtils.js';\nimport { BackofficeTopbarPortalContextProvider } from '../components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js';\nimport {\n mapViewerToSidebarProfileView,\n type BackofficeViewerIdentity,\n} from '../components/backoffice/layout/mapViewerToSidebarProfileView.js';\nimport { resetRelayStore } from '../relay/environment.js';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { getBackofficeLoginPath } from '../router/backofficeAuthPaths.js';\n\nexport type BackofficeLayoutPageProps = {\n children: ReactNode;\n permissionsQuery?: GraphQLTaggedNode;\n prepared?: PreloadedQuery<OperationType> | null;\n authStatus?: {\n isLoggedIn?: boolean | null;\n me?: BackofficeViewerIdentity | null;\n } | null;\n activeGroupId?: string | null;\n};\n\ntype LayoutShellProps = {\n children: ReactNode;\n permissions: unknown;\n authStatus?: {\n isLoggedIn?: boolean | null;\n me?: BackofficeViewerIdentity | null;\n } | null;\n activeGroupId?: string | null;\n};\n\nconst BackofficeLayoutShell = ({\n children,\n permissions,\n authStatus,\n activeGroupId,\n}: LayoutShellProps): JSX.Element => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { pathname } = useLocation();\n const routing = useContext(RoutingContext);\n const relayEnvironment = useRelayEnvironment();\n const {\n auth: authConfig,\n basePath,\n entities,\n sidebar,\n } = useBackofficeConfig();\n const [sidebarQuery, setSidebarQuery] = useState('');\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false);\n const [isSigningOut, setIsSigningOut] = useState(false);\n const [topbarTarget, setTopbarTarget] = useState<HTMLDivElement | null>(null);\n\n const groups = useMemo(() => {\n return resolveSidebarGroups(entities, sidebar);\n }, [entities, sidebar]);\n\n const groupIds = useMemo(() => {\n return Object.keys(groups);\n }, [groups]);\n\n const visibleEntityIds = useMemo(() => {\n return resolveVisibleEntityIds(groups, entities, sidebar, permissions);\n }, [entities, groups, permissions, sidebar]);\n\n const {\n pins,\n toggle: togglePin,\n reorder: reorderPin,\n } = useBackofficeSidebarPins({ visibleEntityIds });\n\n const { collapsedByGroupId, setCollapsed } = useSidebarGroupCollapse({\n groupIds,\n activeGroupId,\n });\n\n const sections = useMemo(() => {\n return buildSidebarSections({\n basePath,\n pathname,\n entities,\n sidebar,\n permissions,\n searchQuery: sidebarQuery,\n tApp,\n t,\n pinnedEntityIds: pins,\n onTogglePin: togglePin,\n onReorderPin: reorderPin,\n collapsedByGroupId,\n onGroupCollapsedChange: setCollapsed,\n });\n }, [\n basePath,\n collapsedByGroupId,\n entities,\n pathname,\n permissions,\n pins,\n reorderPin,\n setCollapsed,\n sidebar,\n sidebarQuery,\n t,\n tApp,\n togglePin,\n ]);\n\n const environment = useMemo(() => {\n const meta = import.meta as unknown as { env?: Record<string, unknown> };\n if (meta.env?.DEV === true) {\n return 'dev' as const;\n }\n return 'prod' as const;\n }, []);\n\n const handleSignOut = useCallback(() => {\n if (isSigningOut) {\n return;\n }\n\n type LogoutMutation = MutationParameters & {\n response: LogoutResponse;\n variables: LogoutVariables;\n };\n\n setIsSigningOut(true);\n\n const runSignOut = async (): Promise<void> => {\n try {\n const config = await authConfig.logout.load();\n await new Promise<void>((resolve, reject) => {\n commitMutation<LogoutMutation>(relayEnvironment, {\n mutation: config.logoutMutation,\n variables: {},\n onCompleted: () => {\n resolve();\n },\n onError: (error) => {\n reject(error);\n },\n });\n });\n localStorage.removeItem('auth_token');\n localStorage.removeItem('remember_me');\n resetRelayStore();\n routing?.history.push({ pathname: getBackofficeLoginPath(basePath) });\n } finally {\n setIsSigningOut(false);\n }\n };\n\n runSignOut().catch(() => {\n /* noop */\n });\n }, [authConfig.logout, basePath, isSigningOut, relayEnvironment, routing]);\n\n const viewer = authStatus?.me ?? null;\n const sidebarProfile = useMemo(() => {\n return mapViewerToSidebarProfileView({\n viewer,\n unknownUserLabel: t('sidebar.profile.unknownUser'),\n });\n }, [t, viewer]);\n\n const sidebarFooter = (\n <BackofficeSidebarProfileMenu\n collapsed={isSidebarCollapsed}\n viewer={sidebarProfile}\n labels={{\n sectionTitle: t('sidebar.profile.title'),\n menuAriaLabel: t('sidebar.profile.menuAriaLabel'),\n signOut: t('sidebar.profile.actions.signOut'),\n }}\n onSignOut={handleSignOut}\n isSigningOut={isSigningOut}\n />\n );\n\n let contentNode: JSX.Element | null = null;\n if (topbarTarget != null) {\n contentNode = (\n <BackofficeContentBoundary>{children}</BackofficeContentBoundary>\n );\n }\n\n return (\n <ToastProvider>\n <AdminShellLayout\n sidebar={{\n sections,\n header: <EnvironmentBadge environment={environment} />,\n search: (\n <GlobalSearchInput\n value={sidebarQuery}\n onChange={setSidebarQuery}\n placeholder={t('sidebar.search.placeholder')}\n ariaLabel={t('sidebar.search.placeholder')}\n />\n ),\n footer: sidebarFooter,\n isCollapsed: isSidebarCollapsed,\n onCollapsedChange: setIsSidebarCollapsed,\n }}\n topbar={{\n breadcrumb: <div ref={setTopbarTarget} />,\n }}\n >\n <BackofficeTopbarPortalContextProvider value={{ target: topbarTarget }}>\n {contentNode}\n </BackofficeTopbarPortalContextProvider>\n </AdminShellLayout>\n </ToastProvider>\n );\n};\n\ntype LayoutWithPermissionsProps = {\n children: ReactNode;\n permissionsQuery: GraphQLTaggedNode;\n prepared: PreloadedQuery<OperationType>;\n authStatus?: {\n isLoggedIn?: boolean | null;\n me?: BackofficeViewerIdentity | null;\n } | null;\n activeGroupId?: string | null;\n};\n\nconst LayoutWithPermissions = ({\n children,\n permissionsQuery,\n prepared,\n authStatus,\n activeGroupId,\n}: LayoutWithPermissionsProps): JSX.Element => {\n const permissions = usePreloadedQuery(permissionsQuery, prepared);\n\n return (\n <BackofficeLayoutShell\n permissions={permissions}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </BackofficeLayoutShell>\n );\n};\n\nexport const BackofficeLayoutPage = ({\n children,\n permissionsQuery,\n prepared,\n authStatus,\n activeGroupId,\n}: BackofficeLayoutPageProps): JSX.Element => {\n if (permissionsQuery != null && prepared != null) {\n return (\n <LayoutWithPermissions\n permissionsQuery={permissionsQuery}\n prepared={prepared}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </LayoutWithPermissions>\n );\n }\n\n return (\n <BackofficeLayoutShell\n permissions={null}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </BackofficeLayoutShell>\n );\n};\n\nexport default BackofficeLayoutPage;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAsEA,IAAM,KAAyB,EAC7B,aACA,gBACA,eACA,uBACmC;CACnC,IAAM,EAAE,GAAG,MAAS,GAAgB,EAC9B,EAAE,SAAM,GAA+B,EACvC,EAAE,gBAAa,GAAa,EAC5B,IAAU,EAAW,EAAe,EACpC,IAAmB,GAAqB,EACxC,EACJ,MAAM,GACN,aACA,aACA,eACE,GAAqB,EACnB,CAAC,GAAc,KAAmB,EAAS,GAAG,EAC9C,CAAC,GAAoB,KAAyB,EAAS,GAAM,EAC7D,CAAC,GAAc,KAAmB,EAAS,GAAM,EACjD,CAAC,GAAc,KAAmB,EAAgC,KAAK,EAEvE,IAAS,QACN,EAAqB,GAAU,EAAQ,EAC7C,CAAC,GAAU,EAAQ,CAAC,EAEjB,IAAW,QACR,OAAO,KAAK,EAAO,EACzB,CAAC,EAAO,CAAC,EAMN,EACJ,SACA,QAAQ,GACR,SAAS,MACP,EAAyB,EAAE,kBARN,QAChB,EAAwB,GAAQ,GAAU,GAAS,EAAY,EACrE;EAAC;EAAU;EAAQ;EAAa;EAAQ,CAAC,EAMK,CAAC,EAE5C,EAAE,uBAAoB,oBAAiB,EAAwB;EACnE;EACA;EACD,CAAC,EAEI,KAAW,QACR,EAAqB;EAC1B;EACA;EACA;EACA;EACA;EACA,aAAa;EACb;EACA;EACA,iBAAiB;EACjB,aAAa;EACb,cAAc;EACd;EACA,wBAAwB;EACzB,CAAC,EACD;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAEI,KAAc,QACL,OAAO,KACX,KAAK,QAAQ,KACb,QAEF,QACN,EAAE,CAAC,EAEA,KAAgB,SAAkB;AAClC,QASJ,EAAgB,GAAK,GAEF,YAA2B;AAC5C,OAAI;IACF,IAAM,IAAS,MAAM,EAAW,OAAO,MAAM;AAgB7C,IAfA,MAAM,IAAI,SAAe,GAAS,MAAW;AAC3C,QAA+B,GAAkB;MAC/C,UAAU,EAAO;MACjB,WAAW,EAAE;MACb,mBAAmB;AACjB,UAAS;;MAEX,UAAU,MAAU;AAClB,SAAO,EAAM;;MAEhB,CAAC;MACF,EACF,aAAa,WAAW,aAAa,EACrC,aAAa,WAAW,cAAc,EACtC,GAAiB,EACjB,GAAS,QAAQ,KAAK,EAAE,UAAU,EAAuB,EAAS,EAAE,CAAC;aAC7D;AACR,MAAgB,GAAM;;MAId,CAAC,YAAY,GAEvB;IACD;EAAC,EAAW;EAAQ;EAAU;EAAc;EAAkB;EAAQ,CAAC,EAEpE,IAAS,GAAY,MAAM,MAQ3B,KACJ,kBAAC,GAAD;EACE,WAAW;EACX,QAVmB,QACd,EAA8B;GACnC;GACA,kBAAkB,EAAE,8BAA8B;GACnD,CAAC,EACD,CAAC,GAAG,EAAO,CAAC;EAMX,QAAQ;GACN,cAAc,EAAE,wBAAwB;GACxC,eAAe,EAAE,gCAAgC;GACjD,SAAS,EAAE,kCAAkC;GAC9C;EACD,WAAW;EACG;EACd,CAAA,EAGA,IAAkC;AAOtC,QANI,KAAgB,SAClB,IACE,kBAAC,IAAD,EAA4B,aAAqC,CAAA,GAKnE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EACE,SAAS;GACP;GACA,QAAQ,kBAAC,GAAD,EAA+B,iBAAe,CAAA;GACtD,QACE,kBAAC,GAAD;IACE,OAAO;IACP,UAAU;IACV,aAAa,EAAE,6BAA6B;IAC5C,WAAW,EAAE,6BAA6B;IAC1C,CAAA;GAEJ,QAAQ;GACR,aAAa;GACb,mBAAmB;GACpB;EACD,QAAQ,EACN,YAAY,kBAAC,OAAD,EAAK,KAAK,GAAmB,CAAA,EAC1C;YAED,kBAAC,GAAD;GAAuC,OAAO,EAAE,QAAQ,GAAc;aACnE;GACqC,CAAA;EACvB,CAAA,EACL,CAAA;GAed,KAAyB,EAC7B,aACA,qBACA,aACA,eACA,uBAKE,kBAAC,GAAD;CACe,aAJG,EAAkB,GAAkB,EAAS;CAKjD;CACG;CAEd;CACqB,CAAA,EAIf,KAAwB,EACnC,aACA,qBACA,aACA,eACA,uBAEI,KAAoB,QAAQ,KAAY,OAExC,kBAAC,GAAD;CACoB;CACR;CACE;CACG;CAEd;CACqB,CAAA,GAK1B,kBAAC,GAAD;CACE,aAAa;CACD;CACG;CAEd;CACqB,CAAA"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { LoginFlow as e } from "../auth/login/LoginFlow.js";
|
|
2
|
-
import { synchronizeAuthStatusQuery as t } from "../auth/login/synchronizeAuthStatusQuery.js";
|
|
3
|
-
import { useBackofficeConfig as n } from "../provider/BackofficeConfigContext.js";
|
|
4
|
-
import { useRelayEnvironment as r } from "../relay/useRelayEnvironment.js";
|
|
5
|
-
import { useBackofficeAuth as i } from "../hooks/useBackofficeAuth.js";
|
|
6
|
-
import { useBackofficeAuthLoginConfig as a } from "../provider/useBackofficeLazyValue.js";
|
|
7
|
-
import { getBackofficePasswordResetPath as o } from "../router/backofficeAuthPaths.js";
|
|
8
|
-
import { jsx as s } from "react/jsx-runtime";
|
|
9
|
-
import { useCallback as c, useContext as l, useRef as u } from "react";
|
|
10
|
-
import * as d from "react-relay";
|
|
11
|
-
import { RoutingContext as f } from "@plumile/router";
|
|
12
|
-
//#region src/pages/BackofficeLoginPage.tsx
|
|
13
|
-
var { usePreloadedQuery: p } = d, m = ({ prepared: d }) => {
|
|
14
|
-
let m = l(f), { auth: h, basePath: g } = n(), _ = a(), v = i(), y = r(), b = u(!1);
|
|
15
|
-
return /* @__PURE__ */ s(e, {
|
|
16
|
-
auth: v,
|
|
17
|
-
oidcProviders: p(_.loginQuery, d.query).oidcProviders ?? [],
|
|
18
|
-
onLoginSuccess: c(() => {
|
|
19
|
-
b.current || (b.current = !0, (async () => {
|
|
20
|
-
try {
|
|
21
|
-
let e = await h.session.load();
|
|
22
|
-
if (e.authStatusQuery == null) {
|
|
23
|
-
m?.history.push({ pathname: g });
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (!await t(y, e.authStatusQuery)) return;
|
|
27
|
-
m?.history.push({ pathname: g });
|
|
28
|
-
} catch {} finally {
|
|
29
|
-
b.current = !1;
|
|
30
|
-
}
|
|
31
|
-
})().catch(() => {}));
|
|
32
|
-
}, [
|
|
33
|
-
h.session,
|
|
34
|
-
g,
|
|
35
|
-
y,
|
|
36
|
-
m?.history
|
|
37
|
-
]),
|
|
38
|
-
onForgotPassword: c(() => {
|
|
39
|
-
m?.history.push({ pathname: o(g) });
|
|
40
|
-
}, [g, m?.history])
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
//#endregion
|
|
44
|
-
export { m as BackofficeLoginPage, m as default };
|
|
45
|
-
|
|
46
|
-
//# sourceMappingURL=BackofficeLoginPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeLoginPage.js","names":[],"sources":["../../../src/pages/BackofficeLoginPage.tsx"],"sourcesContent":["import { useCallback, useContext, useRef, type JSX } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { PreloadedQuery } from 'react-relay';\nimport type { OperationType } from 'relay-runtime';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { RoutingContext } from '@plumile/router';\n\nimport type { OidcProviderKind } from '../modules/sharedSchemaTypes.js';\nimport { LoginFlow } from '../auth/login/LoginFlow.js';\nimport { synchronizeAuthStatusQuery } from '../auth/login/synchronizeAuthStatusQuery.js';\nimport { useBackofficeAuth } from '../hooks/useBackofficeAuth.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport { useBackofficeAuthLoginConfig } from '../provider/useBackofficeLazyValue.js';\nimport { getBackofficePasswordResetPath } from '../router/backofficeAuthPaths.js';\n\nconst { usePreloadedQuery } = ReactRelay;\n\nexport type BackofficeLoginPageProps = {\n prepared: { query: PreloadedQuery<OperationType> };\n};\n\nexport const BackofficeLoginPage = ({\n prepared,\n}: BackofficeLoginPageProps): JSX.Element => {\n const routerContext = useContext(RoutingContext);\n const { auth: authConfig, basePath } = useBackofficeConfig();\n const auth = useBackofficeAuthLoginConfig();\n const authState = useBackofficeAuth();\n const relayEnvironment = useRelayEnvironment();\n const isPostLoginSyncInFlightRef = useRef(false);\n\n const data = usePreloadedQuery(auth.loginQuery, prepared.query);\n const oidcProviders =\n (data as { oidcProviders?: readonly OidcProviderKind[] }).oidcProviders ??\n [];\n\n const handleLoginSuccess = useCallback((): void => {\n if (isPostLoginSyncInFlightRef.current) {\n return;\n }\n\n isPostLoginSyncInFlightRef.current = true;\n const runPostLoginSync = async (): Promise<void> => {\n try {\n const sessionAuth = await authConfig.session.load();\n if (sessionAuth.authStatusQuery == null) {\n routerContext?.history.push({\n pathname: basePath,\n });\n return;\n }\n\n const isLoggedIn = await synchronizeAuthStatusQuery<OperationType>(\n relayEnvironment,\n sessionAuth.authStatusQuery,\n );\n if (!isLoggedIn) {\n return;\n }\n routerContext?.history.push({\n pathname: basePath,\n });\n } catch {\n // Keep user on login page if post-login auth sync fails.\n } finally {\n isPostLoginSyncInFlightRef.current = false;\n }\n };\n\n runPostLoginSync().catch(() => {});\n }, [authConfig.session, basePath, relayEnvironment, routerContext?.history]);\n\n const handleForgotPassword = useCallback(() => {\n routerContext?.history.push({\n pathname: getBackofficePasswordResetPath(basePath),\n });\n }, [basePath, routerContext?.history]);\n\n return (\n <LoginFlow\n auth={authState}\n oidcProviders={oidcProviders}\n onLoginSuccess={handleLoginSuccess}\n onForgotPassword={handleForgotPassword}\n />\n );\n};\n\nexport default BackofficeLoginPage;\n"],"mappings":";;;;;;;;;;;;AAeA,IAAM,EAAE,mBAAA,MAAsB,GAMjB,KAAuB,EAClC,kBAC2C;CAC3C,IAAM,IAAgB,EAAW,EAAe,EAC1C,EAAE,MAAM,GAAY,gBAAa,GAAqB,EACtD,IAAO,GAA8B,EACrC,IAAY,GAAmB,EAC/B,IAAmB,GAAqB,EACxC,IAA6B,EAAO,GAAM;AAiDhD,QACE,kBAAC,GAAD;EACE,MAAM;EACS,eAlDN,EAAkB,EAAK,YAAY,EAAS,MAAM,CAEH,iBAC1D,EAAE;EAgDA,gBA9CuB,QAAwB;AAC7C,KAA2B,YAI/B,EAA2B,UAAU,KACZ,YAA2B;AAClD,QAAI;KACF,IAAM,IAAc,MAAM,EAAW,QAAQ,MAAM;AACnD,SAAI,EAAY,mBAAmB,MAAM;AACvC,SAAe,QAAQ,KAAK,EAC1B,UAAU,GACX,CAAC;AACF;;AAOF,SAAI,CAJe,MAAM,EACvB,GACA,EAAY,gBACb,CAEC;AAEF,QAAe,QAAQ,KAAK,EAC1B,UAAU,GACX,CAAC;YACI,WAEE;AACR,OAA2B,UAAU;;OAIvB,CAAC,YAAY,GAAG;KACjC;GAAC,EAAW;GAAS;GAAU;GAAkB,GAAe;GAAQ,CAAC;EAaxE,kBAXyB,QAAkB;AAC7C,MAAe,QAAQ,KAAK,EAC1B,UAAU,EAA+B,EAAS,EACnD,CAAC;KACD,CAAC,GAAU,GAAe,QAAQ,CAAC;EAQlC,CAAA"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { useSharedTranslation as e } from "../i18n/useSharedTranslation.js";
|
|
2
|
-
import { PasswordResetCompleteScreen as t } from "../auth/pages/PasswordResetCompleteScreen.js";
|
|
3
|
-
import { requireField as n, resolveMutationOutcome as r } from "../relay/mutationResult.js";
|
|
4
|
-
import { useBackofficeConfig as i } from "../provider/BackofficeConfigContext.js";
|
|
5
|
-
import { useBackofficeAuthPasswordResetCompleteConfig as a } from "../provider/useBackofficeLazyValue.js";
|
|
6
|
-
import { getBackofficeLoginPath as o } from "../router/backofficeAuthPaths.js";
|
|
7
|
-
import { jsx as s } from "react/jsx-runtime";
|
|
8
|
-
import { useCallback as c, useContext as l } from "react";
|
|
9
|
-
import * as u from "react-relay";
|
|
10
|
-
import { RoutingContext as d } from "@plumile/router";
|
|
11
|
-
//#region src/pages/BackofficePasswordResetCompletePage.tsx
|
|
12
|
-
var { useMutation: f } = u, p = () => {
|
|
13
|
-
let u = l(d), { basePath: p } = i(), m = a(), { t: h } = e(), [g] = f(m.completePasswordResetMutation);
|
|
14
|
-
return /* @__PURE__ */ s(t, {
|
|
15
|
-
onBackToLogin: c(() => {
|
|
16
|
-
u?.history.push({ pathname: o(p) });
|
|
17
|
-
}, [p, u?.history]),
|
|
18
|
-
onCompletePasswordReset: c(async (e) => {
|
|
19
|
-
let t = h("auth.passwordResetComplete.errors.invalid"), i = t;
|
|
20
|
-
return new Promise((a, o) => {
|
|
21
|
-
g({
|
|
22
|
-
variables: { input: e },
|
|
23
|
-
onCompleted: (e) => {
|
|
24
|
-
let s = r(e.completePasswordReset ?? null, {
|
|
25
|
-
defaultErrorMessage: i,
|
|
26
|
-
mapReason: (e) => {
|
|
27
|
-
switch (e) {
|
|
28
|
-
case "INVALID_TOKEN": return t;
|
|
29
|
-
case "TOKEN_EXPIRED": return h("auth.passwordResetComplete.errors.expired");
|
|
30
|
-
case "PASSWORD_POLICY_VIOLATION": return h("auth.passwordResetComplete.errors.policyViolation");
|
|
31
|
-
case "INTERNAL_ERROR": return t;
|
|
32
|
-
default: return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
if (!s.ok) {
|
|
37
|
-
o(Error(s.message));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
let c = n(s.payload.success ?? null, i);
|
|
41
|
-
if (!c.ok) {
|
|
42
|
-
o(Error(c.message));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
a(c.value);
|
|
46
|
-
},
|
|
47
|
-
onError: (e) => {
|
|
48
|
-
let t = Error(i);
|
|
49
|
-
e instanceof Error && (t = e), o(t);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}, [g, h])
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
//#endregion
|
|
57
|
-
export { p as BackofficePasswordResetCompletePage, p as default };
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=BackofficePasswordResetCompletePage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficePasswordResetCompletePage.js","names":[],"sources":["../../../src/pages/BackofficePasswordResetCompletePage.tsx"],"sourcesContent":["import { useCallback, useContext, type JSX } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { MutationParameters } from 'relay-runtime';\nimport { RoutingContext } from '@plumile/router';\n\nimport { PasswordResetCompleteScreen } from '../auth/pages/PasswordResetCompleteScreen.js';\nimport {\n type MutationPayloadBase,\n requireField,\n resolveMutationOutcome,\n} from '../relay/mutationResult.js';\nimport { useSharedTranslation } from '../i18n/useSharedTranslation.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport { useBackofficeAuthPasswordResetCompleteConfig } from '../provider/useBackofficeLazyValue.js';\nimport { getBackofficeLoginPath } from '../router/backofficeAuthPaths.js';\n\nconst { useMutation } = ReactRelay;\n\ntype CompletePasswordResetErrorReason =\n | 'INVALID_TOKEN'\n | 'TOKEN_EXPIRED'\n | 'PASSWORD_POLICY_VIOLATION'\n | 'INTERNAL_ERROR';\n\ntype CompletePasswordResetMutationPayload =\n MutationPayloadBase<CompletePasswordResetErrorReason> & {\n success?: boolean | null;\n };\n\nexport const BackofficePasswordResetCompletePage = (): JSX.Element => {\n const routerContext = useContext(RoutingContext);\n const { basePath } = useBackofficeConfig();\n const auth = useBackofficeAuthPasswordResetCompleteConfig();\n const { t } = useSharedTranslation();\n type CompletePasswordResetMutation = MutationParameters & {\n response: {\n completePasswordReset?: CompletePasswordResetMutationPayload | null;\n };\n variables: { input: { newPassword: string; token: string } };\n };\n const [commitReset] = useMutation<CompletePasswordResetMutation>(\n auth.completePasswordResetMutation,\n );\n\n const handleBackToLogin = useCallback(() => {\n routerContext?.history.push({ pathname: getBackofficeLoginPath(basePath) });\n }, [basePath, routerContext?.history]);\n\n const handleCompleteReset = useCallback(\n async (input: { newPassword: string; token: string }): Promise<boolean> => {\n const invalidMessage = t('auth.passwordResetComplete.errors.invalid');\n const defaultErrorMessage = invalidMessage;\n\n return new Promise((resolve, reject) => {\n commitReset({\n variables: {\n input,\n },\n onCompleted: (response) => {\n const outcome = resolveMutationOutcome(\n response.completePasswordReset ?? null,\n {\n defaultErrorMessage,\n mapReason: (reason) => {\n switch (reason) {\n case 'INVALID_TOKEN':\n return invalidMessage;\n case 'TOKEN_EXPIRED':\n return t('auth.passwordResetComplete.errors.expired');\n case 'PASSWORD_POLICY_VIOLATION':\n return t(\n 'auth.passwordResetComplete.errors.policyViolation',\n );\n case 'INTERNAL_ERROR':\n return invalidMessage;\n default:\n return null;\n }\n },\n },\n );\n if (!outcome.ok) {\n reject(new Error(outcome.message));\n return;\n }\n\n const successResult = requireField(\n outcome.payload.success ?? null,\n defaultErrorMessage,\n );\n if (!successResult.ok) {\n reject(new Error(successResult.message));\n return;\n }\n resolve(successResult.value);\n },\n onError: (mutationError) => {\n let error = new Error(defaultErrorMessage);\n if (mutationError instanceof Error) {\n error = mutationError;\n }\n reject(error);\n },\n });\n });\n },\n [commitReset, t],\n );\n\n return (\n <PasswordResetCompleteScreen\n onBackToLogin={handleBackToLogin}\n onCompletePasswordReset={handleCompleteReset}\n />\n );\n};\n\nexport default BackofficePasswordResetCompletePage;\n"],"mappings":";;;;;;;;;;;AAgBA,IAAM,EAAE,mBAAgB,GAaX,UAAyD;CACpE,IAAM,IAAgB,EAAW,EAAe,EAC1C,EAAE,gBAAa,GAAqB,EACpC,IAAO,GAA8C,EACrD,EAAE,SAAM,GAAsB,EAO9B,CAAC,KAAe,EACpB,EAAK,8BACN;AAmED,QACE,kBAAC,GAAD;EACE,eAnEsB,QAAkB;AAC1C,MAAe,QAAQ,KAAK,EAAE,UAAU,EAAuB,EAAS,EAAE,CAAC;KAC1E,CAAC,GAAU,GAAe,QAAQ,CAAC;EAkElC,yBAhEwB,EAC1B,OAAO,MAAoE;GACzE,IAAM,IAAiB,EAAE,4CAA4C,EAC/D,IAAsB;AAE5B,UAAO,IAAI,SAAS,GAAS,MAAW;AACtC,MAAY;KACV,WAAW,EACT,UACD;KACD,cAAc,MAAa;MACzB,IAAM,IAAU,EACd,EAAS,yBAAyB,MAClC;OACE;OACA,YAAY,MAAW;AACrB,gBAAQ,GAAR;SACE,KAAK,gBACH,QAAO;SACT,KAAK,gBACH,QAAO,EAAE,4CAA4C;SACvD,KAAK,4BACH,QAAO,EACL,oDACD;SACH,KAAK,iBACH,QAAO;SACT,QACE,QAAO;;;OAGd,CACF;AACD,UAAI,CAAC,EAAQ,IAAI;AACf,SAAW,MAAM,EAAQ,QAAQ,CAAC;AAClC;;MAGF,IAAM,IAAgB,EACpB,EAAQ,QAAQ,WAAW,MAC3B,EACD;AACD,UAAI,CAAC,EAAc,IAAI;AACrB,SAAW,MAAM,EAAc,QAAQ,CAAC;AACxC;;AAEF,QAAQ,EAAc,MAAM;;KAE9B,UAAU,MAAkB;MAC1B,IAAI,IAAY,MAAM,EAAoB;AAI1C,MAHI,aAAyB,UAC3B,IAAQ,IAEV,EAAO,EAAM;;KAEhB,CAAC;KACF;KAEJ,CAAC,GAAa,EAAE,CACjB;EAMG,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficePasswordResetRequestPage.js","names":[],"sources":["../../../src/pages/BackofficePasswordResetRequestPage.tsx"],"sourcesContent":["import { useCallback, type JSX } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { MutationParameters } from 'relay-runtime';\n\nimport { PasswordResetRequestScreen } from '../auth/pages/PasswordResetRequestScreen.js';\nimport {\n type MutationPayloadBase,\n requireField,\n resolveMutationOutcome,\n} from '../relay/mutationResult.js';\nimport { useSharedTranslation } from '../i18n/useSharedTranslation.js';\nimport { useBackofficeAuthPasswordResetRequestConfig } from '../provider/useBackofficeLazyValue.js';\n\nconst { useMutation } = ReactRelay;\n\ntype StartPasswordResetErrorReason =\n | 'INVALID_EMAIL'\n | 'RATE_LIMITED'\n | 'INTERNAL_ERROR';\n\ntype StartPasswordResetMutationPayload =\n MutationPayloadBase<StartPasswordResetErrorReason> & {\n payload?: { success?: boolean | null } | null;\n };\n\nexport const BackofficePasswordResetRequestPage = (): JSX.Element => {\n const auth = useBackofficeAuthPasswordResetRequestConfig();\n const { t } = useSharedTranslation();\n type StartPasswordResetMutation = MutationParameters & {\n response: { startPasswordReset?: StartPasswordResetMutationPayload | null };\n variables: { input: { email: string; locale?: string } };\n };\n const [commitReset] = useMutation<StartPasswordResetMutation>(\n auth.startPasswordResetMutation,\n );\n\n const mapStartResetReason = useCallback(\n (reason: StartPasswordResetErrorReason): string | null => {\n switch (reason) {\n case 'INVALID_EMAIL':\n return t('auth.passwordResetRequest.errors.invalidEmail');\n case 'RATE_LIMITED':\n return t('auth.passwordResetRequest.errors.rateLimited');\n case 'INTERNAL_ERROR':\n return t('auth.passwordResetRequest.errors.startFailed');\n default:\n return null;\n }\n },\n [t],\n );\n\n const handleStartReset = useCallback(\n async (input: { email: string; locale?: string }): Promise<boolean> => {\n const defaultErrorMessage = t(\n 'auth.passwordResetRequest.errors.startFailed',\n );\n\n return new Promise((resolve, reject) => {\n commitReset({\n variables: {\n input,\n },\n onCompleted: (response) => {\n const outcome = resolveMutationOutcome(\n response.startPasswordReset ?? null,\n {\n defaultErrorMessage,\n mapReason: mapStartResetReason,\n },\n );\n if (!outcome.ok) {\n reject(new Error(outcome.message));\n return;\n }\n\n const successResult = requireField(\n outcome.payload.payload?.success ?? null,\n defaultErrorMessage,\n );\n if (!successResult.ok) {\n reject(new Error(successResult.message));\n return;\n }\n resolve(successResult.value);\n },\n onError: (mutationError) => {\n let error = new Error(defaultErrorMessage);\n if (mutationError instanceof Error) {\n error = mutationError;\n }\n reject(error);\n },\n });\n });\n },\n [commitReset, mapStartResetReason, t],\n );\n\n return <PasswordResetRequestScreen onStartPasswordReset={handleStartReset} />;\n};\n\nexport default BackofficePasswordResetRequestPage;\n"],"mappings":";;;;;;;;AAaA,IAAM,EAAE,mBAAgB,GAYX,UAAwD;CACnE,IAAM,IAAO,GAA6C,EACpD,EAAE,SAAM,GAAsB,EAK9B,CAAC,KAAe,EACpB,EAAK,2BACN,EAEK,IAAsB,GACzB,MAAyD;AACxD,UAAQ,GAAR;GACE,KAAK,gBACH,QAAO,EAAE,gDAAgD;GAC3D,KAAK,eACH,QAAO,EAAE,+CAA+C;GAC1D,KAAK,iBACH,QAAO,EAAE,+CAA+C;GAC1D,QACE,QAAO;;IAGb,CAAC,EAAE,CACJ;AAiDD,QAAO,kBAAC,GAAD,EAA4B,sBA/CV,EACvB,OAAO,MAAgE;EACrE,IAAM,IAAsB,EAC1B,+CACD;AAED,SAAO,IAAI,SAAS,GAAS,MAAW;AACtC,KAAY;IACV,WAAW,EACT,UACD;IACD,cAAc,MAAa;KACzB,IAAM,IAAU,EACd,EAAS,sBAAsB,MAC/B;MACE;MACA,WAAW;MACZ,CACF;AACD,SAAI,CAAC,EAAQ,IAAI;AACf,QAAW,MAAM,EAAQ,QAAQ,CAAC;AAClC;;KAGF,IAAM,IAAgB,EACpB,EAAQ,QAAQ,SAAS,WAAW,MACpC,EACD;AACD,SAAI,CAAC,EAAc,IAAI;AACrB,QAAW,MAAM,EAAc,QAAQ,CAAC;AACxC;;AAEF,OAAQ,EAAc,MAAM;;IAE9B,UAAU,MAAkB;KAC1B,IAAI,IAAY,MAAM,EAAoB;AAI1C,KAHI,aAAyB,UAC3B,IAAQ,IAEV,EAAO,EAAM;;IAEhB,CAAC;IACF;IAEJ;EAAC;EAAa;EAAqB;EAAE,CACtC,EAE4E,CAAA"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { useSharedTranslation as e } from "../i18n/useSharedTranslation.js";
|
|
2
|
-
import { VerifyEmailScreen as t } from "../auth/pages/VerifyEmailScreen.js";
|
|
3
|
-
import { requireField as n, resolveMutationOutcome as r } from "../relay/mutationResult.js";
|
|
4
|
-
import { useBackofficeConfig as i } from "../provider/BackofficeConfigContext.js";
|
|
5
|
-
import { useBackofficeAuthVerifyEmailConfig as a } from "../provider/useBackofficeLazyValue.js";
|
|
6
|
-
import { getBackofficeLoginPath as o } from "../router/backofficeAuthPaths.js";
|
|
7
|
-
import { jsx as s } from "react/jsx-runtime";
|
|
8
|
-
import { useCallback as c, useContext as l } from "react";
|
|
9
|
-
import * as u from "react-relay";
|
|
10
|
-
import { RoutingContext as d } from "@plumile/router";
|
|
11
|
-
//#region src/pages/BackofficeVerifyEmailPage.tsx
|
|
12
|
-
var { useMutation: f } = u, p = () => {
|
|
13
|
-
let u = l(d), { basePath: p } = i(), m = a(), { t: h } = e(), [g] = f(m.verifyEmailMutation);
|
|
14
|
-
return /* @__PURE__ */ s(t, {
|
|
15
|
-
onBackToLogin: c(() => {
|
|
16
|
-
u?.history.push({ pathname: o(p) });
|
|
17
|
-
}, [p, u?.history]),
|
|
18
|
-
onVerifyEmail: c(async (e) => {
|
|
19
|
-
let t = h("auth.verifyEmail.errors.invalid"), i = t;
|
|
20
|
-
return new Promise((a, o) => {
|
|
21
|
-
g({
|
|
22
|
-
variables: { input: e },
|
|
23
|
-
onCompleted: (e) => {
|
|
24
|
-
let s = r(e.verifyEmail ?? null, {
|
|
25
|
-
defaultErrorMessage: i,
|
|
26
|
-
mapReason: (e) => {
|
|
27
|
-
switch (e) {
|
|
28
|
-
case "INVALID_TOKEN": return t;
|
|
29
|
-
case "TOKEN_EXPIRED": return h("auth.verifyEmail.errors.expired");
|
|
30
|
-
case "ALREADY_VERIFIED": return h("auth.verifyEmail.errors.alreadyVerified");
|
|
31
|
-
case "INTERNAL_ERROR": return t;
|
|
32
|
-
default: return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
if (!s.ok) {
|
|
37
|
-
o(Error(s.message));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
let c = n(s.payload.success ?? null, i);
|
|
41
|
-
if (!c.ok) {
|
|
42
|
-
o(Error(c.message));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
a(c.value);
|
|
46
|
-
},
|
|
47
|
-
onError: (e) => {
|
|
48
|
-
let t = Error(i);
|
|
49
|
-
e instanceof Error && (t = e), o(t);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}, [g, h])
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
//#endregion
|
|
57
|
-
export { p as BackofficeVerifyEmailPage, p as default };
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=BackofficeVerifyEmailPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeVerifyEmailPage.js","names":[],"sources":["../../../src/pages/BackofficeVerifyEmailPage.tsx"],"sourcesContent":["import { useCallback, useContext, type JSX } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { MutationParameters } from 'relay-runtime';\nimport { RoutingContext } from '@plumile/router';\n\nimport { VerifyEmailScreen } from '../auth/pages/VerifyEmailScreen.js';\nimport {\n type MutationPayloadBase,\n requireField,\n resolveMutationOutcome,\n} from '../relay/mutationResult.js';\nimport { useSharedTranslation } from '../i18n/useSharedTranslation.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport { useBackofficeAuthVerifyEmailConfig } from '../provider/useBackofficeLazyValue.js';\nimport { getBackofficeLoginPath } from '../router/backofficeAuthPaths.js';\n\nconst { useMutation } = ReactRelay;\n\ntype VerifyEmailErrorReason =\n | 'INVALID_TOKEN'\n | 'TOKEN_EXPIRED'\n | 'ALREADY_VERIFIED'\n | 'INTERNAL_ERROR';\n\ntype VerifyEmailMutationPayload =\n MutationPayloadBase<VerifyEmailErrorReason> & {\n success?: boolean | null;\n };\n\nexport const BackofficeVerifyEmailPage = (): JSX.Element => {\n const routerContext = useContext(RoutingContext);\n const { basePath } = useBackofficeConfig();\n const auth = useBackofficeAuthVerifyEmailConfig();\n const { t } = useSharedTranslation();\n type VerifyEmailMutation = MutationParameters & {\n response: { verifyEmail?: VerifyEmailMutationPayload | null };\n variables: { input: { token: string } };\n };\n const [commitVerify] = useMutation<VerifyEmailMutation>(\n auth.verifyEmailMutation,\n );\n\n const handleBackToLogin = useCallback(() => {\n routerContext?.history.push({ pathname: getBackofficeLoginPath(basePath) });\n }, [basePath, routerContext?.history]);\n\n const handleVerifyEmail = useCallback(\n async (input: { token: string }): Promise<boolean> => {\n const invalidMessage = t('auth.verifyEmail.errors.invalid');\n const defaultErrorMessage = invalidMessage;\n\n return new Promise((resolve, reject) => {\n commitVerify({\n variables: {\n input,\n },\n onCompleted: (response) => {\n const outcome = resolveMutationOutcome(\n response.verifyEmail ?? null,\n {\n defaultErrorMessage,\n mapReason: (reason) => {\n switch (reason) {\n case 'INVALID_TOKEN':\n return invalidMessage;\n case 'TOKEN_EXPIRED':\n return t('auth.verifyEmail.errors.expired');\n case 'ALREADY_VERIFIED':\n return t('auth.verifyEmail.errors.alreadyVerified');\n case 'INTERNAL_ERROR':\n return invalidMessage;\n default:\n return null;\n }\n },\n },\n );\n if (!outcome.ok) {\n reject(new Error(outcome.message));\n return;\n }\n\n const successResult = requireField(\n outcome.payload.success ?? null,\n defaultErrorMessage,\n );\n if (!successResult.ok) {\n reject(new Error(successResult.message));\n return;\n }\n resolve(successResult.value);\n },\n onError: (mutationError) => {\n let error = new Error(defaultErrorMessage);\n if (mutationError instanceof Error) {\n error = mutationError;\n }\n reject(error);\n },\n });\n });\n },\n [commitVerify, t],\n );\n\n return (\n <VerifyEmailScreen\n onBackToLogin={handleBackToLogin}\n onVerifyEmail={handleVerifyEmail}\n />\n );\n};\n\nexport default BackofficeVerifyEmailPage;\n"],"mappings":";;;;;;;;;;;AAgBA,IAAM,EAAE,mBAAgB,GAaX,UAA+C;CAC1D,IAAM,IAAgB,EAAW,EAAe,EAC1C,EAAE,gBAAa,GAAqB,EACpC,IAAO,GAAoC,EAC3C,EAAE,SAAM,GAAsB,EAK9B,CAAC,KAAgB,EACrB,EAAK,oBACN;AAiED,QACE,kBAAC,GAAD;EACE,eAjEsB,QAAkB;AAC1C,MAAe,QAAQ,KAAK,EAAE,UAAU,EAAuB,EAAS,EAAE,CAAC;KAC1E,CAAC,GAAU,GAAe,QAAQ,CAAC;EAgElC,eA9DsB,EACxB,OAAO,MAA+C;GACpD,IAAM,IAAiB,EAAE,kCAAkC,EACrD,IAAsB;AAE5B,UAAO,IAAI,SAAS,GAAS,MAAW;AACtC,MAAa;KACX,WAAW,EACT,UACD;KACD,cAAc,MAAa;MACzB,IAAM,IAAU,EACd,EAAS,eAAe,MACxB;OACE;OACA,YAAY,MAAW;AACrB,gBAAQ,GAAR;SACE,KAAK,gBACH,QAAO;SACT,KAAK,gBACH,QAAO,EAAE,kCAAkC;SAC7C,KAAK,mBACH,QAAO,EAAE,0CAA0C;SACrD,KAAK,iBACH,QAAO;SACT,QACE,QAAO;;;OAGd,CACF;AACD,UAAI,CAAC,EAAQ,IAAI;AACf,SAAW,MAAM,EAAQ,QAAQ,CAAC;AAClC;;MAGF,IAAM,IAAgB,EACpB,EAAQ,QAAQ,WAAW,MAC3B,EACD;AACD,UAAI,CAAC,EAAc,IAAI;AACrB,SAAW,MAAM,EAAc,QAAQ,CAAC;AACxC;;AAEF,QAAQ,EAAc,MAAM;;KAE9B,UAAU,MAAkB;MAC1B,IAAI,IAAY,MAAM,EAAoB;AAI1C,MAHI,aAAyB,UAC3B,IAAQ,IAEV,EAAO,EAAM;;KAEhB,CAAC;KACF;KAEJ,CAAC,GAAc,EAAE,CAClB;EAMG,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/* empty css */
|
|
2
|
-
/* empty css */
|
|
3
|
-
//#region src/pages/backofficeDashboardPage.css.ts
|
|
4
|
-
var e = "mt26ef0 vncd899ix vncd89byo vncd89aoo", t = "mt26ef1 vncd899io vncd89ai6 vncd89ao6", n = "mt26ef2 vncd89a6 vncd89amx vncd89egx", r = "mt26ef3 vncd899io vncd89ajx vncd89qh6 vncd898vf";
|
|
5
|
-
//#endregion
|
|
6
|
-
export { r as links, t as tileBody, n as tileCount, e as tilesGrid };
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=backofficeDashboardPage.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backofficeDashboardPage.css.js","names":[],"sources":["../../../src/pages/backofficeDashboardPage.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const tilesGrid = sprinkles({\n display: 'grid',\n gridTemplateColumns: 'autoFillMinmax320',\n gap: 4,\n});\n\nexport const tileBody = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n\nexport const tileCount = sprinkles({\n fontSize: '3xl',\n fontWeight: 'bold',\n lineHeight: 1,\n});\n\nexport const links = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: 2,\n columnGap: 3,\n});\n"],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/* empty css */
|
|
2
|
-
/* empty css */
|
|
3
|
-
//#region src/pages/backofficeEntityDetailPage.css.ts
|
|
4
|
-
var e = "_1i6bm7z0 vncd899io vncd89co vncd89ao6 vncd89ajx", t = "_1i6bm7z1 vncd899io vncd89ai6 vncd89aof", n = "_1i6bm7z2 vncd899io vncd89co vncd89ao6 vncd89ajx", r = "_1i6bm7z3 vncd899io vncd89ai6 vncd89ao6";
|
|
5
|
-
//#endregion
|
|
6
|
-
export { e as headerActions, t as headerBlock, n as headerMeta, r as headerMetaList };
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=backofficeEntityDetailPage.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backofficeEntityDetailPage.css.js","names":[],"sources":["../../../src/pages/backofficeEntityDetailPage.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const headerActions = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const headerBlock = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const headerMeta = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const headerMetaList = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n"],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/* empty css */
|
|
2
|
-
/* empty css */
|
|
3
|
-
//#region src/pages/backofficeEntityListPage.css.ts
|
|
4
|
-
var e = "c0tad0 vncd899io vncd89co vncd89ao6 vncd89ajx", t = "c0tad1", n = "c0tad2";
|
|
5
|
-
//#endregion
|
|
6
|
-
export { n as actionTrigger, t as actionsColumnCell, e as headerActions };
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=backofficeEntityListPage.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backofficeEntityListPage.css.js","names":[],"sources":["../../../src/pages/backofficeEntityListPage.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const headerActions = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const actionsColumnCell = style({\n justifyContent: 'flex-end',\n});\n\nexport const actionTrigger = style({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2rem',\n height: '2rem',\n flexShrink: 0,\n});\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeEntityDetailLayoutContext.js","names":[],"sources":["../../../../src/pages/detail/BackofficeEntityDetailLayoutContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport type BackofficeEntityDetailLayoutContextValue = {\n layoutView: unknown;\n};\n\nconst BackofficeEntityDetailLayoutContext =\n createContext<BackofficeEntityDetailLayoutContextValue | null>(null);\n\nexport const BackofficeEntityDetailLayoutContextProvider =\n BackofficeEntityDetailLayoutContext.Provider;\n\nexport const useBackofficeEntityDetailLayoutContext =\n (): BackofficeEntityDetailLayoutContextValue => {\n const context = useContext(BackofficeEntityDetailLayoutContext);\n if (context == null) {\n throw new Error(\n 'BackofficeEntityDetailLayoutContext is missing. Ensure detail pages are rendered under the entity layout route.',\n );\n }\n return context;\n };\n"],"mappings":";;AAMA,IAAM,IACJ,EAA+D,KAAK,EAEzD,IACX,EAAoC,UAEzB,UACqC;CAC9C,IAAM,IAAU,EAAW,EAAoC;AAC/D,KAAI,KAAW,KACb,OAAU,MACR,kHACD;AAEH,QAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildTabsItems.js","names":[],"sources":["../../../../src/pages/detail/buildTabsItems.ts"],"sourcesContent":["import type { BackofficeDetailPageRouteSpec } from '@plumile/backoffice-core/types.js';\nimport type { BackofficeTabItem } from '@plumile/ui';\nimport type { TFunction } from 'i18next';\n\ntype DetailPage<Node> = BackofficeDetailPageRouteSpec<Node>;\n\nexport const buildTabsItems = <Node>(input: {\n pages: readonly DetailPage<Node>[];\n id: string;\n tApp: TFunction;\n detailPageHref: (id: string, pageId: string) => string;\n}): readonly BackofficeTabItem[] => {\n return input.pages.map((page) => {\n return {\n id: page.id,\n label: page.label(input.tApp),\n to: input.detailPageHref(input.id, page.id),\n };\n });\n};\n"],"mappings":";AAMA,IAAa,KAAwB,MAM5B,EAAM,MAAM,KAAK,OACf;CACL,IAAI,EAAK;CACT,OAAO,EAAK,MAAM,EAAM,KAAK;CAC7B,IAAI,EAAM,eAAe,EAAM,IAAI,EAAK,GAAG;CAC5C,EACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pageResolution.js","names":[],"sources":["../../../../src/pages/detail/pageResolution.ts"],"sourcesContent":["type DetailPageBase<ShellView> = {\n id: string;\n path: string;\n isVisible?: (layout: ShellView) => boolean;\n};\n\ntype PageResolutionInput<\n ShellView,\n MainPage extends DetailPageBase<ShellView>,\n SubPage extends DetailPageBase<ShellView> = MainPage,\n> = {\n mainPage: MainPage;\n subPages?: readonly SubPage[];\n activePagePath?: string;\n node: ShellView;\n};\n\nexport type ResolvedDetailPages<Page> = {\n pages: readonly Page[];\n activePage: Page | null;\n hasVisiblePages: boolean;\n hasMultiplePages: boolean;\n};\n\nconst normalizePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nexport const resolveVisibleDetailPages = <\n ShellView,\n MainPage extends DetailPageBase<ShellView>,\n SubPage extends DetailPageBase<ShellView> = MainPage,\n>(\n input: PageResolutionInput<ShellView, MainPage, SubPage>,\n): ResolvedDetailPages<MainPage | SubPage> => {\n const allPages = [input.mainPage, ...(input.subPages ?? [])] as readonly (\n | MainPage\n | SubPage\n )[];\n const visiblePages = allPages.filter((page) => {\n if (page.isVisible == null) {\n return true;\n }\n return page.isVisible(input.node);\n });\n\n if (visiblePages.length === 0) {\n return {\n pages: [],\n activePage: null,\n hasVisiblePages: false,\n hasMultiplePages: false,\n };\n }\n\n const activePath = normalizePath(input.activePagePath ?? '');\n let activeByPath: MainPage | SubPage | null = null;\n if (activePath !== '') {\n activeByPath =\n visiblePages.find((page) => {\n return normalizePath(page.path) === activePath;\n }) ?? null;\n }\n\n const defaultPage =\n visiblePages.find((page) => {\n return page.id === input.mainPage.id;\n }) ?? visiblePages[0];\n if (defaultPage == null) {\n return {\n pages: [],\n activePage: null,\n hasVisiblePages: false,\n hasMultiplePages: false,\n };\n }\n\n const activePage = activeByPath ?? defaultPage;\n\n return {\n pages: visiblePages,\n activePage,\n hasVisiblePages: true,\n hasMultiplePages: visiblePages.length > 1,\n };\n};\n"],"mappings":";AAwBA,IAAM,KAAiB,MACd,EAAM,MAAM,CAAC,QAAQ,cAAc,GAAG,EAGlC,KAKX,MAC4C;CAK5C,IAAM,IAJW,CAAC,EAAM,UAAU,GAAI,EAAM,YAAY,EAAE,CAAE,CAI9B,QAAQ,MAChC,EAAK,aAAa,OACb,KAEF,EAAK,UAAU,EAAM,KAAK,CACjC;AAEF,KAAI,EAAa,WAAW,EAC1B,QAAO;EACL,OAAO,EAAE;EACT,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EACnB;CAGH,IAAM,IAAa,EAAc,EAAM,kBAAkB,GAAG,EACxD,IAA0C;AAC9C,CAAI,MAAe,OACjB,IACE,EAAa,MAAM,MACV,EAAc,EAAK,KAAK,KAAK,EACpC,IAAI;CAGV,IAAM,IACJ,EAAa,MAAM,MACV,EAAK,OAAO,EAAM,SAAS,GAClC,IAAI,EAAa;AAYrB,QAXI,KAAe,OACV;EACL,OAAO,EAAE;EACT,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EACnB,GAKI;EACL,OAAO;EACP,YAJiB,KAAgB;EAKjC,iBAAiB;EACjB,kBAAkB,EAAa,SAAS;EACzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeConfigContext.js","names":[],"sources":["../../../src/provider/BackofficeConfigContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type { BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardModule,\n BackofficeGraphQLConfig,\n BackofficeSidebarConfig,\n} from './types.js';\nimport type { BackofficeEntityRegistry } from './entityRegistry.js';\n\nexport type BackofficeConfigContextValue = {\n basePath: string;\n entities: BackofficeEntityManifestMap;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n sidebar?: BackofficeSidebarConfig;\n dashboard?: BackofficeDashboardModule;\n auth: BackofficeAuthConfig;\n graphql: BackofficeGraphQLConfig;\n};\n\nconst BackofficeConfigContext =\n createContext<BackofficeConfigContextValue | null>(null);\n\nexport const BackofficeConfigProvider = BackofficeConfigContext.Provider;\n\n/**\n * Hook to access the Backoffice configuration context\n */\nexport function useBackofficeConfig(): BackofficeConfigContextValue {\n const context = useContext(BackofficeConfigContext);\n if (context == null) {\n throw new Error('BackofficeProvider is missing in the component tree.');\n }\n return context;\n}\n\nexport default BackofficeConfigContext;\n"],"mappings":";;AAuBA,IAAM,IACJ,EAAmD,KAAK,EAE7C,IAA2B,EAAwB;AAKhE,SAAgB,IAAoD;CAClE,IAAM,IAAU,EAAW,EAAwB;AACnD,KAAI,KAAW,KACb,OAAU,MAAM,uDAAuD;AAEzE,QAAO"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { BackofficeConfigProvider as e } from "./BackofficeConfigContext.js";
|
|
2
|
-
import { BackofficeRouteFallback as t } from "../components/backoffice/routing/BackofficeRouteFallback.js";
|
|
3
|
-
import { BackofficeRoutePendingBar as n } from "../components/backoffice/routing/BackofficeRoutePendingBar.js";
|
|
4
|
-
import { configureRelayEnvironment as r } from "../relay/environment.js";
|
|
5
|
-
import { useRelayEnvironment as i } from "../relay/useRelayEnvironment.js";
|
|
6
|
-
import { createI18nInstance as a } from "../i18n/createI18nInstance.js";
|
|
7
|
-
import { mergeResourceLanguages as o } from "../i18n/mergeResourceLanguages.js";
|
|
8
|
-
import { backofficeReactI18nResources as s } from "../i18n/resources.js";
|
|
9
|
-
import { RelayProvider as c } from "../relay/RelayProvider.js";
|
|
10
|
-
import { createBackofficeRoutes as l } from "../router/createBackofficeRoutes.js";
|
|
11
|
-
import { createBackofficeEntityRegistry as u } from "./entityRegistry.js";
|
|
12
|
-
import { jsx as d } from "react/jsx-runtime";
|
|
13
|
-
import { I18nextProvider as f } from "react-i18next";
|
|
14
|
-
import { StrictMode as p, useEffect as m, useMemo as h } from "react";
|
|
15
|
-
import { RouterRenderer as g, RoutingContext as _, createRouter as v } from "@plumile/router";
|
|
16
|
-
import { createInstance as y } from "i18next";
|
|
17
|
-
import { ThemeProvider as b } from "@plumile/ui/theme/ThemeProvider";
|
|
18
|
-
//#region src/provider/BackofficeProvider.tsx
|
|
19
|
-
var x = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWith("/") ? e.slice(0, -1) : e : `/${e}`, S = (e, t) => {
|
|
20
|
-
let n = x(t), r = x(e);
|
|
21
|
-
return r === "/" || n === r || n.startsWith(`${r}/`) ? n : n === "/" ? r : `${r}${n}`;
|
|
22
|
-
}, C = (e, t) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
|
|
23
|
-
...n,
|
|
24
|
-
routes: {
|
|
25
|
-
list: S(t, n.routes.list),
|
|
26
|
-
detail: (e) => S(t, n.routes.detail(e)),
|
|
27
|
-
detailPage: (e, r) => S(t, n.routes.detailPage(e, r))
|
|
28
|
-
}
|
|
29
|
-
}])), w = (e) => typeof e == "object" && !Array.isArray(e) ? e : {}, T = ({ routes: e, instrumentations: r }) => {
|
|
30
|
-
let a = i(), o = h(() => ({ relayEnvironment: a }), [a]), s = h(() => v(e, {
|
|
31
|
-
context: o,
|
|
32
|
-
instrumentations: r
|
|
33
|
-
}), [
|
|
34
|
-
r,
|
|
35
|
-
e,
|
|
36
|
-
o
|
|
37
|
-
]);
|
|
38
|
-
return m(() => () => {
|
|
39
|
-
s.cleanup();
|
|
40
|
-
}, [s]), /* @__PURE__ */ d(_.Provider, {
|
|
41
|
-
value: s.context,
|
|
42
|
-
children: /* @__PURE__ */ d(g, {
|
|
43
|
-
enableTransition: !0,
|
|
44
|
-
fallback: /* @__PURE__ */ d(t, {}),
|
|
45
|
-
pending: /* @__PURE__ */ d(n, {})
|
|
46
|
-
})
|
|
47
|
-
});
|
|
48
|
-
}, E = (t) => {
|
|
49
|
-
let n = x(t.basePath ?? "/"), i = h(() => C(t.entityManifest, n), [n, t.entityManifest]), g = h(() => u(i, { basePath: n }), [n, i]), _ = t.graphql;
|
|
50
|
-
m(() => {
|
|
51
|
-
r({
|
|
52
|
-
httpUrl: _.httpUrl ?? _.endpoint,
|
|
53
|
-
wsUrl: _.wsUrl ?? _.wsEndpoint,
|
|
54
|
-
logEvents: _.logEvents,
|
|
55
|
-
getAuthHeaders: _.getAuthHeaders
|
|
56
|
-
});
|
|
57
|
-
}, [
|
|
58
|
-
_.endpoint,
|
|
59
|
-
_.getAuthHeaders,
|
|
60
|
-
_.httpUrl,
|
|
61
|
-
_.logEvents,
|
|
62
|
-
_.wsEndpoint,
|
|
63
|
-
_.wsUrl
|
|
64
|
-
]);
|
|
65
|
-
let v = h(() => {
|
|
66
|
-
let e = t.i18n?.resources ?? {}, n = s, r = new Set([...Object.keys(n), ...Object.keys(e)]), i = {};
|
|
67
|
-
return r.forEach((t) => {
|
|
68
|
-
let r = w(n[t]), a = w(e[t]);
|
|
69
|
-
i[t] = {
|
|
70
|
-
...r,
|
|
71
|
-
...a,
|
|
72
|
-
backofficeReact: o(w(r.backofficeReact), w(a.backofficeReact)),
|
|
73
|
-
shared: o(w(r.shared), w(a.shared))
|
|
74
|
-
};
|
|
75
|
-
}), i;
|
|
76
|
-
}, [t.i18n?.resources]), S = h(() => t.i18n?.instance ?? y(), [t.i18n?.instance]);
|
|
77
|
-
return m(() => {
|
|
78
|
-
let e = t.i18n?.initOptions ?? {}, n = e.defaultNS ?? "translations", r = e.ns ?? [
|
|
79
|
-
"backofficeReact",
|
|
80
|
-
"translations",
|
|
81
|
-
"shared",
|
|
82
|
-
"ui"
|
|
83
|
-
];
|
|
84
|
-
a({
|
|
85
|
-
resources: v,
|
|
86
|
-
lng: t.i18n?.lng,
|
|
87
|
-
fallbackLng: t.i18n?.fallbackLng,
|
|
88
|
-
initOptions: {
|
|
89
|
-
...e,
|
|
90
|
-
defaultNS: n,
|
|
91
|
-
ns: r
|
|
92
|
-
},
|
|
93
|
-
instance: S,
|
|
94
|
-
useLanguageDetector: t.i18n?.useLanguageDetector,
|
|
95
|
-
detection: t.i18n?.detection
|
|
96
|
-
}).catch(console.error);
|
|
97
|
-
}, [
|
|
98
|
-
S,
|
|
99
|
-
v,
|
|
100
|
-
t.i18n?.initOptions,
|
|
101
|
-
t.i18n?.detection,
|
|
102
|
-
t.i18n?.fallbackLng,
|
|
103
|
-
t.i18n?.lng,
|
|
104
|
-
t.i18n?.useLanguageDetector
|
|
105
|
-
]), /* @__PURE__ */ d(p, { children: /* @__PURE__ */ d(f, {
|
|
106
|
-
i18n: S,
|
|
107
|
-
children: /* @__PURE__ */ d(b, { children: /* @__PURE__ */ d(c, { children: /* @__PURE__ */ d(e, {
|
|
108
|
-
value: h(() => ({
|
|
109
|
-
basePath: n,
|
|
110
|
-
entities: i,
|
|
111
|
-
entityManifest: i,
|
|
112
|
-
entityRegistry: g,
|
|
113
|
-
sidebar: t.sidebar,
|
|
114
|
-
dashboard: t.dashboard,
|
|
115
|
-
auth: t.auth,
|
|
116
|
-
graphql: t.graphql
|
|
117
|
-
}), [
|
|
118
|
-
n,
|
|
119
|
-
t.auth,
|
|
120
|
-
t.dashboard,
|
|
121
|
-
i,
|
|
122
|
-
g,
|
|
123
|
-
t.graphql,
|
|
124
|
-
t.sidebar
|
|
125
|
-
]),
|
|
126
|
-
children: /* @__PURE__ */ d(T, {
|
|
127
|
-
routes: h(() => l({
|
|
128
|
-
basePath: n,
|
|
129
|
-
entityManifest: i,
|
|
130
|
-
entityRegistry: g,
|
|
131
|
-
sidebar: t.sidebar,
|
|
132
|
-
auth: t.auth,
|
|
133
|
-
dashboard: t.dashboard,
|
|
134
|
-
toolsOperationPage: t.toolsOperationPage
|
|
135
|
-
}), [
|
|
136
|
-
n,
|
|
137
|
-
i,
|
|
138
|
-
g,
|
|
139
|
-
t.auth,
|
|
140
|
-
t.dashboard,
|
|
141
|
-
t.toolsOperationPage,
|
|
142
|
-
t.sidebar
|
|
143
|
-
]),
|
|
144
|
-
instrumentations: t.instrumentations
|
|
145
|
-
})
|
|
146
|
-
}) }) })
|
|
147
|
-
}) });
|
|
148
|
-
};
|
|
149
|
-
//#endregion
|
|
150
|
-
export { E as BackofficeProvider, E as default };
|
|
151
|
-
|
|
152
|
-
//# sourceMappingURL=BackofficeProvider.js.map
|