@plumile/backoffice-react 0.1.70 → 0.1.73
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/i18n/resources.d.ts +0 -12
- package/lib/types/i18n/resources.d.ts.map +1 -1
- package/lib/types/index.d.ts +5 -6
- 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 +4 -1
- 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 +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/components/backoffice/tools/BackofficeToolsDocPanel.js +0 -40
- package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +0 -48
- package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +0 -58
- package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js +0 -81
- package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js +0 -16
- package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js +0 -56
- package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +0 -20
- package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +0 -1
- package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js +0 -56
- package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js.map +0 -1
- package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +0 -8
- package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +0 -1
- package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +0 -8
- package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +0 -1
- package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +0 -8
- package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +0 -1
- package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js +0 -8
- package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js.map +0 -1
- package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js +0 -8
- package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js.map +0 -1
- package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js +0 -8
- package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.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/useBackofficeToolsUrlParams.js +0 -15
- package/lib/esm/hooks/useBackofficeToolsUrlParams.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 -207
- 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 -207
- 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/useSharedEnumLabels.js +0 -22
- package/lib/esm/i18n/useSharedEnumLabels.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 -43
- package/lib/esm/modules/access/viewerPermissionsPolicy.js +0 -17
- package/lib/esm/modules/access/viewerPermissionsPolicy.js.map +0 -1
- package/lib/esm/modules/base64.js +0 -23
- package/lib/esm/modules/base64.js.map +0 -1
- package/lib/esm/modules/billing/usageChartMappers.js +0 -49
- package/lib/esm/modules/billing/usageChartMappers.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/merge/taskMergeRun.js +0 -67
- package/lib/esm/modules/merge/taskMergeRun.js.map +0 -1
- package/lib/esm/modules/projectIngestionStatus.js +0 -25
- package/lib/esm/modules/projectIngestionStatus.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/BackofficeToolsOperationPage.js +0 -464
- package/lib/esm/pages/BackofficeToolsOperationPage.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 -150
- 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
- package/lib/esm/subscriptions/conversationStream.js +0 -38
- package/lib/esm/subscriptions/conversationStream.js.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts +0 -11
- package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts +0 -8
- package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts +0 -15
- package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts +0 -13
- package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts +0 -14
- package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts +0 -8
- package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts +0 -7
- package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.d.ts +0 -8
- package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts +0 -8
- package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts +0 -6
- package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts +0 -4
- package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts +0 -13
- package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts +0 -4
- package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts.map +0 -1
- package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts +0 -4
- package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts.map +0 -1
- package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts +0 -8
- package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts.map +0 -1
- package/lib/types/i18n/useSharedEnumLabels.d.ts +0 -6
- package/lib/types/i18n/useSharedEnumLabels.d.ts.map +0 -1
- package/lib/types/modules/access/viewerPermissionsPolicy.d.ts +0 -38
- package/lib/types/modules/access/viewerPermissionsPolicy.d.ts.map +0 -1
- package/lib/types/modules/billing/usageChartMappers.d.ts +0 -26
- package/lib/types/modules/billing/usageChartMappers.d.ts.map +0 -1
- package/lib/types/modules/merge/taskMergeRun.d.ts +0 -48
- package/lib/types/modules/merge/taskMergeRun.d.ts.map +0 -1
- package/lib/types/modules/projectIngestionStatus.d.ts +0 -9
- package/lib/types/modules/projectIngestionStatus.d.ts.map +0 -1
- package/lib/types/pages/BackofficeToolsOperationPage.d.ts +0 -9
- package/lib/types/pages/BackofficeToolsOperationPage.d.ts.map +0 -1
- package/lib/types/subscriptions/conversationStream.d.ts +0 -12
- package/lib/types/subscriptions/conversationStream.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envHelpers.js","names":[],"sources":["../../../src/relay/envHelpers.ts"],"sourcesContent":["type EnvRecord = Record<string, string | boolean | undefined>;\n\nconst viteEnv: EnvRecord = (() => {\n try {\n const meta = import.meta as unknown as { env?: EnvRecord };\n if (meta.env != null) {\n return meta.env;\n }\n return {};\n } catch {\n // `import.meta` is not defined outside of ESM environments; fall back to an empty record.\n return {};\n }\n})();\n\nexport type ReadEnvFn = (key: string) => string | undefined;\n\n/**\n * Read a string environment variable from Vite's `import.meta.env` (if available).\n * Returns `undefined` when the value is missing or empty.\n */\nexport function readEnv(key: string): string | undefined {\n const value = viteEnv[key];\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const trimmed = value.trim();\n if (trimmed === '') {\n return undefined;\n }\n\n return trimmed;\n}\n\n/**\n * Reads an environment variable and coerces common string values to booleans.\n */\nexport function readBooleanEnv(key: string): boolean | undefined {\n const value = viteEnv[key];\n if (value === true || value === false) {\n return value;\n }\n if (typeof value === 'string') {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n }\n return undefined;\n}\n\n/**\n * Indicates whether the current build is running in development mode.\n */\nexport function isDevEnv(): boolean {\n return Boolean(readBooleanEnv('DEV'));\n}\n\ninterface ResolveEndpointOptions {\n envKeys: readonly string[];\n fallback: string;\n read?: ReadEnvFn;\n}\n\n/**\n * Resolve HTTP endpoint from environment variables.\n */\nexport function resolveHttpEndpoint(options: ResolveEndpointOptions): string {\n const { envKeys, fallback, read = readEnv } = options;\n for (const key of envKeys) {\n const value = read(key);\n if (value != null) {\n return value;\n }\n }\n return fallback;\n}\n\ninterface ResolveWebsocketEndpointOptions extends ResolveEndpointOptions {\n httpEndpoint: string;\n}\n\n/**\n * Resolve websocket endpoint from environment variables or derive it from the HTTP endpoint.\n */\nexport function resolveWebsocketEndpoint(\n options: ResolveWebsocketEndpointOptions,\n): string {\n const { envKeys, fallback, httpEndpoint, read = readEnv } = options;\n\n for (const key of envKeys) {\n const value = read(key);\n if (value != null) {\n return value;\n }\n }\n\n if (httpEndpoint.startsWith('http')) {\n return httpEndpoint.replace(/^http/, 'ws');\n }\n\n if (httpEndpoint.startsWith('/')) {\n return httpEndpoint.replace(/\\/graphql$/, '/ws');\n }\n\n return fallback;\n}\n"],"mappings":";AAEA,IAAM,WAA4B;AAChC,KAAI;EACF,IAAM,IAAO,OAAO;AAIpB,SAHI,EAAK,OAAO,OAGT,EAAE,GAFA,EAAK;SAGR;AAEN,SAAO,EAAE;;IAET;AAQJ,SAAgB,EAAQ,GAAiC;CACvD,IAAM,IAAQ,EAAQ;AACtB,KAAI,OAAO,KAAU,SACnB;CAGF,IAAM,IAAU,EAAM,MAAM;AACxB,WAAY,GAIhB,QAAO;;AAMT,SAAgB,EAAe,GAAkC;CAC/D,IAAM,IAAQ,EAAQ;AACtB,KAAI,MAAU,MAAQ,MAAU,GAC9B,QAAO;AAET,KAAI,OAAO,KAAU,UAAU;AAC7B,MAAI,MAAU,OACZ,QAAO;AAET,MAAI,MAAU,QACZ,QAAO;;;AASb,SAAgB,IAAoB;AAClC,QAAO,EAAQ,EAAe,MAAM;;AAYtC,SAAgB,EAAoB,GAAyC;CAC3E,IAAM,EAAE,YAAS,aAAU,UAAO,MAAY;AAC9C,MAAK,IAAM,KAAO,GAAS;EACzB,IAAM,IAAQ,EAAK,EAAI;AACvB,MAAI,KAAS,KACX,QAAO;;AAGX,QAAO;;AAUT,SAAgB,EACd,GACQ;CACR,IAAM,EAAE,YAAS,aAAU,iBAAc,UAAO,MAAY;AAE5D,MAAK,IAAM,KAAO,GAAS;EACzB,IAAM,IAAQ,EAAK,EAAI;AACvB,MAAI,KAAS,KACX,QAAO;;AAYX,QARI,EAAa,WAAW,OAAO,GAC1B,EAAa,QAAQ,SAAS,KAAK,GAGxC,EAAa,WAAW,IAAI,GACvB,EAAa,QAAQ,cAAc,MAAM,GAG3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","names":[],"sources":["../../../src/relay/environment.ts"],"sourcesContent":["import {\n Environment,\n Network,\n Observable,\n RecordSource,\n Store,\n type FetchFunction,\n type SubscribeFunction,\n type RelayFieldLogger,\n} from 'relay-runtime';\nimport { createClient, type Client } from 'graphql-ws';\nimport { isDevEnv } from './envHelpers.js';\n\nlet graphqlHttpEndpoint = '/api/graphql';\nlet graphqlWsEndpoint = '/api/ws';\n\n// (anonymousEnvironment reserved if needed later for public access / logout scenarios)\n// Removed until actually required to avoid lint errors.\n// let anonymousEnvironment: Environment | undefined;\nlet environment: Environment | undefined;\nlet wsClient: Client | undefined;\nlet getAuthHeaders:\n | (() => Record<string, string> | Promise<Record<string, string>>)\n | undefined;\n\n/**\n * No-op Relay field logger used to satisfy @required(action: LOG).\n */\nfunction noopRelayFieldLogger(): void {}\n\nlet relayFieldLogger: RelayFieldLogger = noopRelayFieldLogger;\n\nif (isDevEnv()) {\n relayFieldLogger = (event) => {\n // eslint-disable-next-line no-console\n console.log('relayFieldLogger: ', event);\n };\n}\n\n/**\n * Backend currently returns a non-globally-unique id for BillingOrganizationRefV2\n * (same id value as Organization). We remap this specific typename in Relay store\n * to avoid record collisions and keep Organization records stable.\n */\nconst BILLING_REF_TYPENAME = 'BillingOrganizationRefV2';\n\nconst getDataId = (fieldValue: unknown, typeName: string): string | null => {\n if (fieldValue == null || typeof fieldValue !== 'object') {\n return null;\n }\n const { id } = fieldValue as { id?: unknown };\n if (typeof id !== 'string' || id.trim() === '') {\n return null;\n }\n if (typeName === BILLING_REF_TYPENAME) {\n return `${BILLING_REF_TYPENAME}:${id}`;\n }\n return id;\n};\n\nexport interface RelayEnvironmentConfiguration {\n httpUrl?: string;\n wsUrl?: string;\n logEvents?: boolean;\n getAuthHeaders?: () =>\n | Record<string, string>\n | Promise<Record<string, string>>;\n}\n\n/**\n * Configure the endpoints and logging behavior used by the shared Relay environment.\n */\nexport function configureRelayEnvironment(\n options: RelayEnvironmentConfiguration = {},\n): void {\n const {\n httpUrl,\n wsUrl,\n logEvents,\n getAuthHeaders: nextGetAuthHeaders,\n } = options;\n\n if (typeof httpUrl === 'string' && httpUrl !== '') {\n graphqlHttpEndpoint = httpUrl;\n }\n\n if (typeof wsUrl === 'string' && wsUrl !== '') {\n graphqlWsEndpoint = wsUrl;\n }\n\n if (logEvents != null) {\n if (logEvents) {\n relayFieldLogger = (event) => {\n // eslint-disable-next-line no-console\n console.log('relayFieldLogger: ', event);\n };\n } else {\n relayFieldLogger = noopRelayFieldLogger;\n }\n }\n\n getAuthHeaders = nextGetAuthHeaders;\n\n if (wsClient != null) {\n try {\n const result = wsClient.dispose();\n if (result instanceof Promise) {\n result.catch(() => {\n // ignore dispose rejections\n });\n }\n } catch {\n // ignore errors during dispose\n }\n wsClient = undefined;\n }\n\n environment = undefined;\n}\n\n/**\n * Resolve the websocket endpoint into an absolute URL suitable for graphql-ws.\n */\nfunction resolveWebsocketUrl(): string {\n const endpoint = graphqlWsEndpoint;\n\n if (endpoint.startsWith('ws')) {\n return endpoint;\n }\n\n if (endpoint.startsWith('http')) {\n return endpoint.replace(/^http/, 'ws');\n }\n\n if (endpoint.startsWith('/')) {\n if (typeof window === 'undefined') {\n return endpoint;\n }\n let protocol = 'ws:';\n if (window.location.protocol === 'https:') {\n protocol = 'wss:';\n }\n return `${protocol}//${window.location.host}${endpoint}`;\n }\n\n return endpoint;\n}\n\n/**\n * Build or get a singleton graphql-ws client with basic auto-reconnect.\n * The graphql-ws library already supports lazy connections and we add retry logic.\n */\nfunction getWsClient(): Client {\n if (wsClient != null) {\n return wsClient;\n }\n if (typeof window === 'undefined') {\n throw new Error(\n 'GraphQL subscriptions unavailable in non-browser environment',\n );\n }\n\n const url = resolveWebsocketUrl();\n\n // Exponential backoff parameters\n const maxAttempts = 10;\n const baseDelayMs = 500;\n\n wsClient = createClient({\n url,\n keepAlive: 10_000,\n lazy: true,\n retryAttempts: maxAttempts,\n shouldRetry() {\n return true;\n },\n async retryWait(retries) {\n // retries starts at 0\n const delay =\n Math.min(8000, baseDelayMs * 2 ** retries) + Math.random() * 200;\n await new Promise<void>((resolve) => {\n setTimeout(() => {\n resolve();\n }, delay);\n });\n },\n connectionParams: async () => {\n if (getAuthHeaders == null) {\n return {};\n }\n try {\n return await getAuthHeaders();\n } catch {\n return {};\n }\n },\n });\n\n return wsClient;\n}\n\n/**\n * Get organization slug from current window location\n */\n// export function getOrganizationSlug(): string | null {\n// const { pathname } = window.location;\n// const slug = pathname.split('/')[1];\n// if (slug == null) {\n// return null;\n// }\n\n// return slug;\n// }\n\n// -------------------------\n// Upload detection helpers\n// -------------------------\n/** Test if a value is an uploadable (File/Blob) */\nfunction isUploadable(value: unknown): value is File | Blob {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob)\n );\n}\n\ninterface FileRef {\n path: string; // JSON pointer-like (e.g. variables.input.file)\n file: File | Blob;\n}\n\n/** Recursively clone a structure replacing files with null and collecting them */\nfunction collectFiles(value: unknown, path: string, acc: FileRef[]): unknown {\n if (isUploadable(value)) {\n acc.push({ path, file: value });\n return null; // placeholder per multipart spec\n }\n if (Array.isArray(value)) {\n return value.map((v, i) => {\n return collectFiles(v, `${path}.${i}`, acc);\n });\n }\n if (value != null && typeof value === 'object') {\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n out[k] = collectFiles(v, `${path}.${k}`, acc);\n }\n return out;\n }\n return value; // primitives unchanged\n}\n\n/** Build GraphQL multipart form-data payload */\nfunction buildFormData(query: string, variables: Record<string, unknown>) {\n const files: FileRef[] = [];\n // Deep clone variables while replacing files with null\n const clonedVars = collectFiles(variables, 'variables', files) as Record<\n string,\n unknown\n >;\n\n const form = new FormData();\n const operations = { query, variables: clonedVars };\n form.append('operations', JSON.stringify(operations));\n\n const map: Record<string, string[]> = {};\n files.forEach((ref, idx) => {\n map[idx] = [ref.path];\n });\n form.append('map', JSON.stringify(map));\n files.forEach((ref, idx) => {\n form.append(String(idx), ref.file);\n });\n return form;\n}\n\n// -------------------------\n// Retry / timeout helpers\n// -------------------------\ninterface RetryOptions {\n maxAttempts: number; // total attempts including initial\n baseDelayMs: number;\n maxDelayMs: number;\n fetchTimeoutMs: number;\n}\n\nconst RETRY_OPTIONS: RetryOptions = {\n maxAttempts: 3,\n baseDelayMs: 300,\n maxDelayMs: 4000,\n fetchTimeoutMs: 600_000, // 10 minutes (parité avec ancien middleware)\n};\n\n/** Sleep helper with Promise */\nasync function sleep(ms: number): Promise<void> {\n await new Promise<void>((res) => {\n setTimeout(() => {\n res();\n }, ms);\n });\n}\n\n/** Exponential backoff with jitter */\nfunction calcBackoff(attempt: number, opts: RetryOptions): number {\n const exp = Math.min(opts.maxDelayMs, opts.baseDelayMs * 2 ** attempt);\n return exp + Math.random() * 0.2 * exp; // jitter 0-20%\n}\n\n/** Determine if an HTTP status is retryable */\nfunction isRetryableStatus(status: number): boolean {\n return status === 408 || status === 429 || (status >= 500 && status < 600);\n}\n\n/** Determine if an error should be treated as transient network issue */\nfunction isNetworkError(err: unknown): boolean {\n return (\n err instanceof TypeError ||\n (err instanceof Error && err.name === 'AbortError')\n );\n}\n\n// -------------------------\n// fetchFn implementation\n// -------------------------\ninterface GraphQLResponseErrorItem {\n [key: string]: unknown;\n message: string;\n}\n\ninterface GraphQLResponseShape<T = unknown> {\n data?: T;\n errors?: GraphQLResponseErrorItem[];\n extensions?: Record<string, unknown>;\n}\n\n/** Debug log helper (no-op en production) */\nfunction debugLog(...args: unknown[]): void {\n if (isDevEnv()) {\n // eslint-disable-next-line no-console\n console.log('[RelayNetwork]', ...args);\n }\n}\n\n/** Fetch GraphQL (with retry + upload) */\nasync function fetchFn(\n request: { text: string | null | undefined },\n variables: Record<string, unknown>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _cacheConfig: unknown,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _uploadables: unknown,\n): Promise<GraphQLResponseShape> {\n const queryText: string | null | undefined = request.text; // no persisted queries here (yet)\n if (queryText == null) {\n throw new Error('Missing GraphQL query text');\n }\n const safeQueryText: string = queryText; // narrowed non-null\n\n /** Execute one network attempt */\n async function execOnce(attempt: number): Promise<GraphQLResponseShape> {\n const controller = new AbortController();\n const timeout = setTimeout(() => {\n controller.abort();\n }, RETRY_OPTIONS.fetchTimeoutMs);\n try {\n let body: BodyInit;\n const headers: Record<string, string> = {};\n if (getAuthHeaders != null) {\n try {\n Object.assign(headers, await getAuthHeaders());\n } catch {\n // ignore auth header failures\n }\n }\n const hasFiles = ((): boolean => {\n try {\n const stack: unknown[] = [variables];\n while (stack.length > 0) {\n const v = stack.pop();\n if (isUploadable(v)) {\n return true;\n }\n if (Array.isArray(v)) {\n stack.push(...v);\n } else if (v != null && typeof v === 'object') {\n stack.push(...Object.values(v as Record<string, unknown>));\n }\n }\n } catch {\n // ignore traversal errors\n }\n return false;\n })();\n\n if (hasFiles) {\n body = buildFormData(safeQueryText, variables);\n } else {\n headers['Content-Type'] = 'application/json';\n body = JSON.stringify({ query: safeQueryText, variables });\n }\n\n const response = await fetch(graphqlHttpEndpoint, {\n method: 'POST',\n body,\n headers,\n credentials: 'include',\n signal: controller.signal,\n });\n\n if (!response.ok) {\n if (\n attempt < RETRY_OPTIONS.maxAttempts - 1 &&\n isRetryableStatus(response.status)\n ) {\n throw new Error(`Retryable HTTP status ${response.status}`);\n }\n const text = await response.text().catch(() => {\n return '';\n });\n throw new Error(`GraphQL HTTP error ${response.status}: ${text}`);\n }\n\n const json: GraphQLResponseShape = await response.json();\n if (Array.isArray(json.errors) && json.errors.length > 0) {\n debugLog('GraphQL errors', json.errors);\n }\n return json;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n for (let attempt = 0; attempt < RETRY_OPTIONS.maxAttempts; attempt += 1) {\n try {\n return await execOnce(attempt);\n } catch (err) {\n const last = attempt === RETRY_OPTIONS.maxAttempts - 1;\n const retryable =\n isNetworkError(err) ||\n (err instanceof Error && err.message.includes('Retryable HTTP status'));\n if (!retryable || last) {\n debugLog('GraphQL fetch error', err);\n throw err;\n }\n const delay = calcBackoff(attempt, RETRY_OPTIONS);\n await sleep(delay);\n }\n }\n throw new Error('Exhausted retries without returning a result');\n}\n\n// -------------------------\n// subscribeFn implementation (wrap existing logic in Relay Observable)\n// -------------------------\n/** Subscription function bridging graphql-ws client to Relay */\nfunction subscribeFn(\n operation: { text: string | null | undefined; name: string },\n variables: Record<string, unknown>,\n): Observable<unknown> {\n debugLog('subscription:start', operation.name, variables);\n return Observable.create<unknown>((sink) => {\n const query = operation.text;\n if (query == null || query === '') {\n sink.error(new Error('Subscription operation text is empty'));\n return () => {\n // noop\n };\n }\n const client = getWsClient();\n const dispose = client.subscribe(\n { query, variables, operationName: operation.name },\n {\n next: (data) => {\n sink.next(data);\n },\n error: (err) => {\n let errorObj: Error;\n if (err instanceof Error) {\n errorObj = err;\n } else {\n errorObj = new Error('Subscription error');\n }\n sink.error(errorObj);\n },\n complete: () => {\n sink.complete();\n },\n },\n );\n return () => {\n dispose();\n };\n });\n}\n\n/**\n * Create native Relay network layer (fetch + subscribe)\n */\nexport function getNetwork(): ReturnType<typeof Network.create> {\n return Network.create(\n fetchFn as FetchFunction,\n subscribeFn as SubscribeFunction,\n );\n}\n\n/**\n * Get anonymous relay environment\n */\nexport function getEnvironment(): Environment {\n environment ??= new Environment({\n getDataID: getDataId,\n relayFieldLogger,\n network: getNetwork(),\n store: new Store(new RecordSource()),\n });\n\n return environment;\n}\n\n/**\n * Reset the Relay store by creating a new empty source\n */\nexport function resetRelayStore(): void {\n const environment = getEnvironment();\n\n // Create a new store with an empty source\n const source = new RecordSource();\n\n // Replace the data in the store with our empty source\n environment.getStore().publish(source);\n\n // Notify subscribers that the data has changed\n environment.getStore().notify();\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identityView.js","names":[],"sources":["../../../src/relay/identityView.ts"],"sourcesContent":["// Only use this in the React page/layout pipeline after `useFragment` has\n// already resolved a typed fragment payload into `FragmentData`.\nexport const identityView = <TData>(data: TData): TData => {\n return data;\n};\n"],"mappings":";AAEA,IAAa,KAAuB,MAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutationResult.js","names":[],"sources":["../../../src/relay/mutationResult.ts"],"sourcesContent":["export type MutationResult = 'SUCCESS' | 'ERROR';\n\nexport type MutationPayloadBase<Reason extends string = string> = {\n status?: MutationResult | null;\n result?: MutationResult | null;\n errorReason?: Reason | null;\n};\n\nexport type MutationOutcome<Payload, Reason extends string = string> =\n | { ok: true; payload: Payload }\n | { ok: false; reason?: Reason | null; message: string };\n\nexport type ResolveOptions<Reason extends string> = {\n defaultErrorMessage: string;\n mapReason?: (reason: Reason) => string | null;\n missingPayloadMessage?: string;\n};\n\nexport const getStatus = (\n payload: MutationPayloadBase | null | undefined,\n): MutationResult | null => {\n return payload?.status ?? payload?.result ?? null;\n};\n\nexport const resolveMutationOutcome = <\n Payload extends MutationPayloadBase<Reason>,\n Reason extends string,\n>(\n payload: Payload | null | undefined,\n options: ResolveOptions<Reason>,\n): MutationOutcome<Payload, Reason> => {\n const { defaultErrorMessage, mapReason, missingPayloadMessage } = options;\n\n if (payload == null) {\n return {\n ok: false,\n message: missingPayloadMessage ?? defaultErrorMessage,\n };\n }\n\n const status = getStatus(payload);\n if (status !== 'SUCCESS') {\n const reason = payload.errorReason ?? null;\n let mapped: string | null = null;\n if (reason != null && mapReason != null) {\n mapped = mapReason(reason);\n }\n return {\n ok: false,\n reason,\n message: mapped ?? defaultErrorMessage,\n };\n }\n\n return { ok: true, payload };\n};\n\nexport const requireField = <T>(\n value: T | null | undefined,\n message: string,\n): { ok: true; value: T } | { ok: false; message: string } => {\n if (value == null) {\n return { ok: false, message };\n }\n\n return { ok: true, value };\n};\n\ntype RecordWithId = {\n id?: string | null;\n};\n\nexport const requireLinkedRecordId = (\n record: RecordWithId | null | undefined,\n message: string,\n): { ok: true; id: string } | { ok: false; message: string } => {\n const result = requireField(record?.id ?? null, message);\n if (!result.ok) {\n return result;\n }\n\n return { ok: true, id: result.value };\n};\n\nexport type AgentStartPayload<\n Reason extends string,\n Status extends string,\n> = MutationPayloadBase<Reason> & {\n agentStatus?: Status | null;\n};\n\nexport const resolveAgentStartOutcome = <\n Reason extends string,\n Status extends string,\n>(\n payload: AgentStartPayload<Reason, Status> | null | undefined,\n options: ResolveOptions<Reason>,\n):\n | { ok: true; agentStatus: Status }\n | { ok: false; message: string; reason?: Reason | null } => {\n const base = resolveMutationOutcome(payload, options);\n if (!base.ok) {\n return base;\n }\n\n const agentStatusResult = requireField(\n base.payload.agentStatus ?? null,\n options.defaultErrorMessage,\n );\n\n if (!agentStatusResult.ok) {\n return { ok: false, message: agentStatusResult.message };\n }\n\n return { ok: true, agentStatus: agentStatusResult.value };\n};\n"],"mappings":";AAkBA,IAAa,KACX,MAEO,GAAS,UAAU,GAAS,UAAU,MAGlC,KAIX,GACA,MACqC;CACrC,IAAM,EAAE,wBAAqB,cAAW,6BAA0B;AAElE,KAAI,KAAW,KACb,QAAO;EACL,IAAI;EACJ,SAAS,KAAyB;EACnC;AAIH,KADe,EAAU,EAAQ,KAClB,WAAW;EACxB,IAAM,IAAS,EAAQ,eAAe,MAClC,IAAwB;AAI5B,SAHI,KAAU,QAAQ,KAAa,SACjC,IAAS,EAAU,EAAO,GAErB;GACL,IAAI;GACJ;GACA,SAAS,KAAU;GACpB;;AAGH,QAAO;EAAE,IAAI;EAAM;EAAS;GAGjB,KACX,GACA,MAEI,KAAS,OACJ;CAAE,IAAI;CAAO;CAAS,GAGxB;CAAE,IAAI;CAAM;CAAO,EAOf,KACX,GACA,MAC8D;CAC9D,IAAM,IAAS,EAAa,GAAQ,MAAM,MAAM,EAAQ;AAKxD,QAJK,EAAO,KAIL;EAAE,IAAI;EAAM,IAAI,EAAO;EAAO,GAH5B;GAaE,KAIX,GACA,MAG4D;CAC5D,IAAM,IAAO,EAAuB,GAAS,EAAQ;AACrD,KAAI,CAAC,EAAK,GACR,QAAO;CAGT,IAAM,IAAoB,EACxB,EAAK,QAAQ,eAAe,MAC5B,EAAQ,oBACT;AAMD,QAJK,EAAkB,KAIhB;EAAE,IAAI;EAAM,aAAa,EAAkB;EAAO,GAHhD;EAAE,IAAI;EAAO,SAAS,EAAkB;EAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRelayEnvironment.js","names":[],"sources":["../../../src/relay/useRelayEnvironment.ts"],"sourcesContent":["import * as ReactRelay from 'react-relay';\n\nexport const { useRelayEnvironment } = ReactRelay;\n"],"mappings":";;AAEA,IAAa,EAAE,2BAAwB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backofficeAuthPaths.js","names":[],"sources":["../../../src/router/backofficeAuthPaths.ts"],"sourcesContent":["const normalizeAbsolutePath = (value: string): string => {\n if (value.trim() === '' || value === '/') {\n return '/';\n }\n let withLeadingSlash = value;\n if (!value.startsWith('/')) {\n withLeadingSlash = `/${value}`;\n }\n if (withLeadingSlash.endsWith('/')) {\n return withLeadingSlash.slice(0, -1);\n }\n return withLeadingSlash;\n};\n\nconst prefixBackofficePath = (basePath: string, value: string): string => {\n const normalizedPath = normalizeAbsolutePath(value);\n const normalizedBasePath = normalizeAbsolutePath(basePath);\n\n if (normalizedBasePath === '/') {\n return normalizedPath;\n }\n if (\n normalizedPath === normalizedBasePath ||\n normalizedPath.startsWith(`${normalizedBasePath}/`)\n ) {\n return normalizedPath;\n }\n if (normalizedPath === '/') {\n return normalizedBasePath;\n }\n return `${normalizedBasePath}${normalizedPath}`;\n};\n\nexport const getBackofficeLoginPath = (basePath: string): string => {\n return prefixBackofficePath(basePath, '/login');\n};\n\nexport const getBackofficePasswordResetPath = (basePath: string): string => {\n return prefixBackofficePath(basePath, '/login/reset');\n};\n"],"mappings":";AAAA,IAAM,KAAyB,MAA0B;AACvD,KAAI,EAAM,MAAM,KAAK,MAAM,MAAU,IACnC,QAAO;CAET,IAAI,IAAmB;AAOvB,QANK,EAAM,WAAW,IAAI,KACxB,IAAmB,IAAI,MAErB,EAAiB,SAAS,IAAI,GACzB,EAAiB,MAAM,GAAG,GAAG,GAE/B;GAGH,KAAwB,GAAkB,MAA0B;CACxE,IAAM,IAAiB,EAAsB,EAAM,EAC7C,IAAqB,EAAsB,EAAS;AAc1D,QAZI,MAAuB,OAIzB,MAAmB,KACnB,EAAe,WAAW,GAAG,EAAmB,GAAG,GAE5C,IAEL,MAAmB,MACd,IAEF,GAAG,IAAqB;GAGpB,KAA0B,MAC9B,EAAqB,GAAU,SAAS,EAGpC,KAAkC,MACtC,EAAqB,GAAU,eAAe"}
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
import { buildEntityGroupLookup as e, resolveSidebarGroups as t } from "../components/backoffice/layout/sidebarUtils.js";
|
|
2
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
-
import * as r from "react-relay";
|
|
4
|
-
import { HttpRedirect as i, getResourcePage as a, r as o } from "@plumile/router";
|
|
5
|
-
import { BACKOFFICE_LIST_DEFAULTS as s } from "@plumile/backoffice-core/constants.js";
|
|
6
|
-
//#region src/router/createBackofficeRoutes.tsx
|
|
7
|
-
var { loadQuery: c, usePreloadedQuery: l } = r, u = a("WrapperPage", async () => import("@plumile/ui/pages/WrapperPage.js")), d = a("BackofficeLayoutPage", async () => import("../pages/BackofficeLayoutPage.js")), f = a("BackofficeEntityListPage", async () => import("../pages/BackofficeEntityListPage.js")), p = a("BackofficeEntityDetailPage", async () => import("../pages/BackofficeEntityDetailPage.js")), m = a("BackofficeEntityDetailLayoutPage", async () => import("../pages/BackofficeEntityDetailLayoutPage.js")), h = a("BackofficeEntityDetailUnknownPageRedirect", async () => import("../pages/BackofficeEntityDetailUnknownPageRedirect.js")), g = a("BackofficeDashboardPage", async () => import("../pages/BackofficeDashboardPage.js")), _ = a("BackofficeToolsOperationPage", async () => import("../pages/BackofficeToolsOperationPage.js")), v = a("BackofficeLoginPage", async () => import("../pages/BackofficeLoginPage.js")), y = a("BackofficePasswordResetRequestPage", async () => import("../pages/BackofficePasswordResetRequestPage.js")), b = a("BackofficePasswordResetCompletePage", async () => import("../pages/BackofficePasswordResetCompletePage.js")), x = a("BackofficeVerifyEmailPage", async () => import("../pages/BackofficeVerifyEmailPage.js")), S = a("BackofficeAcceptInvitationPage", async () => import("../pages/BackofficeAcceptInvitationPage.js")), C = (e) => {
|
|
8
|
-
let t = e.trim();
|
|
9
|
-
return t === "" || t === "/" ? "" : t.replace(/^\/+|\/+$/g, "");
|
|
10
|
-
}, w = (e) => {
|
|
11
|
-
let t = e.trim();
|
|
12
|
-
return t === "" ? "/" : `/${t}`.replace(/\/+/g, "/");
|
|
13
|
-
}, T = (e, t) => {
|
|
14
|
-
let n = t.replace(/^\/+|\/+$/g, "");
|
|
15
|
-
return e === "" ? n : n === "" ? e : `${e}/${n}`;
|
|
16
|
-
}, E = (e, t) => w(T(e, t)), D = (e, t) => {
|
|
17
|
-
let n = w(e), r = t === "" ? "" : `/${t}`;
|
|
18
|
-
return r !== "" && n.startsWith(r) ? n.slice(r.length).replace(/^\/+/, "") : n.replace(/^\/+/, "");
|
|
19
|
-
}, O = (e, t) => {
|
|
20
|
-
if (e?.routes == null) return null;
|
|
21
|
-
for (let n = e.routes.length - 1; n >= 0; --n) {
|
|
22
|
-
let r = e.routes[n];
|
|
23
|
-
if (r != null) {
|
|
24
|
-
let e = t.get(r);
|
|
25
|
-
if (e != null) return e;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}, k = (e) => {
|
|
30
|
-
let t = new URLSearchParams();
|
|
31
|
-
return Object.entries(e).forEach(([e, n]) => {
|
|
32
|
-
if (n != null) {
|
|
33
|
-
if (Array.isArray(n)) {
|
|
34
|
-
n.forEach((n) => {
|
|
35
|
-
n != null && t.append(e, String(n));
|
|
36
|
-
});
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
t.set(e, String(n));
|
|
40
|
-
}
|
|
41
|
-
}), t;
|
|
42
|
-
}, A = o;
|
|
43
|
-
function j(r) {
|
|
44
|
-
let { basePath: a, entityManifest: o, entityRegistry: w, sidebar: j, auth: M, dashboard: N } = r, P = C(a), F = T(P, "login"), I = T(P, "login/reset"), L = T(P, "login/reset/complete"), R = T(P, "verify-email"), z = T(P, "accept-invitation"), B = E(P, "login"), V = e(t(o, j)), H = /* @__PURE__ */ new Map();
|
|
45
|
-
V.forEach((e, t) => {
|
|
46
|
-
H.set(t, e.groupId);
|
|
47
|
-
});
|
|
48
|
-
let U = /* @__PURE__ */ new WeakMap(), W = j?.permissionsQuery, G = async ({ context: e }) => {
|
|
49
|
-
let t = await M.session.load();
|
|
50
|
-
return {
|
|
51
|
-
permissionsQuery: W == null ? null : c(e.relayEnvironment, W, {}),
|
|
52
|
-
authStatusQuery: t.authStatusQuery == null ? null : c(e.relayEnvironment, t.authStatusQuery, {}, { fetchPolicy: "network-only" })
|
|
53
|
-
};
|
|
54
|
-
}, K = A({
|
|
55
|
-
path: "",
|
|
56
|
-
resourcePage: g,
|
|
57
|
-
prepare: async () => (N == null || await N.load(), null),
|
|
58
|
-
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
|
|
59
|
-
}), q = Object.values(o).filter((e) => e.kind === "list-detail").map((e) => {
|
|
60
|
-
let t = e.routes.list, r = D(t, P), a = [];
|
|
61
|
-
if (e.hasList) {
|
|
62
|
-
let t = A({
|
|
63
|
-
path: "",
|
|
64
|
-
resourcePage: f,
|
|
65
|
-
prepare: async ({ context: t, query: n }) => {
|
|
66
|
-
let { config: r } = await w.loadListEntity(e.id), { list: i, listUrlCodec: a, listDefaults: o } = r;
|
|
67
|
-
if (a == null || o == null) throw Error(`Backoffice entity ${e.id} does not expose a list configuration.`);
|
|
68
|
-
let l = k(n), u = a.parse(l), { pageSize: d } = s, f = {
|
|
69
|
-
where: u.where,
|
|
70
|
-
sort: u.sort ?? o.sort,
|
|
71
|
-
count: d,
|
|
72
|
-
cursor: null
|
|
73
|
-
}, p = i.buildVariables == null ? f : i.buildVariables(f), m = c(t.relayEnvironment, i.query, p);
|
|
74
|
-
return {
|
|
75
|
-
entityId: e.id,
|
|
76
|
-
entityManifest: e,
|
|
77
|
-
entityConfig: r,
|
|
78
|
-
query: m
|
|
79
|
-
};
|
|
80
|
-
},
|
|
81
|
-
render: ({ prepared: e, Component: t }) => {
|
|
82
|
-
if (t == null) return null;
|
|
83
|
-
let r = e;
|
|
84
|
-
return /* @__PURE__ */ n(t, {
|
|
85
|
-
entityManifest: r.entityManifest,
|
|
86
|
-
config: r.entityConfig,
|
|
87
|
-
prepared: r
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
U.set(t, e.id), a.push(t);
|
|
92
|
-
}
|
|
93
|
-
let o = A({
|
|
94
|
-
path: ":id",
|
|
95
|
-
resourcePage: m,
|
|
96
|
-
prepare: async ({ context: t, variables: n }) => {
|
|
97
|
-
let { config: r } = await w.loadDetailLayoutEntity(e.id), i = String(n.id ?? ""), a = r.layoutPage.buildVariables == null ? { variables: { id: i } } : r.layoutPage.buildVariables({ id: i }), o = c(t.relayEnvironment, r.layoutPage.query, a.variables);
|
|
98
|
-
return {
|
|
99
|
-
entityId: e.id,
|
|
100
|
-
entityManifest: e,
|
|
101
|
-
entityConfig: r,
|
|
102
|
-
layoutQuery: o,
|
|
103
|
-
id: i
|
|
104
|
-
};
|
|
105
|
-
},
|
|
106
|
-
render: ({ children: e, prepared: t, Component: r }) => {
|
|
107
|
-
if (r == null) return null;
|
|
108
|
-
let i = t;
|
|
109
|
-
return /* @__PURE__ */ n(r, {
|
|
110
|
-
entityManifest: i.entityManifest,
|
|
111
|
-
config: i.entityConfig,
|
|
112
|
-
prepared: i,
|
|
113
|
-
children: e
|
|
114
|
-
});
|
|
115
|
-
},
|
|
116
|
-
children: [
|
|
117
|
-
A({
|
|
118
|
-
path: "",
|
|
119
|
-
resourcePage: u,
|
|
120
|
-
prepare: ({ variables: t }) => {
|
|
121
|
-
let n = String(t.id ?? "").trim();
|
|
122
|
-
return { redirectTo: n === "" ? null : e.routes.detailPage(n, e.defaultDetailPageId ?? "overview") };
|
|
123
|
-
},
|
|
124
|
-
render: ({ prepared: e }) => {
|
|
125
|
-
let t = e.redirectTo ?? null;
|
|
126
|
-
if (t == null) return null;
|
|
127
|
-
throw new i(t);
|
|
128
|
-
}
|
|
129
|
-
}),
|
|
130
|
-
...(e.detailPages ?? []).map((t) => A({
|
|
131
|
-
path: t.pathSegment,
|
|
132
|
-
resourcePage: p,
|
|
133
|
-
prepare: async ({ context: n, variables: r }) => {
|
|
134
|
-
let i = String(r.id ?? ""), a = await w.loadDetailPageEntity(e.id, t.id), o = a.config.page.buildVariables == null ? { variables: { id: i } } : a.config.page.buildVariables({ id: i }), s = c(n.relayEnvironment, a.config.page.query, o.variables);
|
|
135
|
-
return {
|
|
136
|
-
entityId: e.id,
|
|
137
|
-
entityManifest: e,
|
|
138
|
-
entityConfig: a.config,
|
|
139
|
-
detailId: o.detailId,
|
|
140
|
-
id: i,
|
|
141
|
-
pageConfig: a.config,
|
|
142
|
-
pageQuery: s,
|
|
143
|
-
pageId: t.id,
|
|
144
|
-
pagePath: t.pathSegment
|
|
145
|
-
};
|
|
146
|
-
},
|
|
147
|
-
render: ({ prepared: e, Component: t }) => {
|
|
148
|
-
if (t == null) return null;
|
|
149
|
-
let r = e;
|
|
150
|
-
return /* @__PURE__ */ n(t, {
|
|
151
|
-
entityManifest: r.entityManifest,
|
|
152
|
-
config: r.entityConfig,
|
|
153
|
-
prepared: r
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
})),
|
|
157
|
-
A({
|
|
158
|
-
path: ":pagePath",
|
|
159
|
-
resourcePage: h,
|
|
160
|
-
prepare: async ({ variables: t }) => {
|
|
161
|
-
let n = await w.loadDetailLayoutEntity(e.id), r = String(t.id ?? ""), i = String(t.pagePath ?? "");
|
|
162
|
-
return {
|
|
163
|
-
entityManifest: e,
|
|
164
|
-
entityConfig: n.config,
|
|
165
|
-
id: r,
|
|
166
|
-
pagePath: i
|
|
167
|
-
};
|
|
168
|
-
},
|
|
169
|
-
render: ({ prepared: e, Component: t }) => {
|
|
170
|
-
if (t == null) return null;
|
|
171
|
-
let r = e;
|
|
172
|
-
return /* @__PURE__ */ n(t, {
|
|
173
|
-
entityManifest: r.entityManifest,
|
|
174
|
-
config: r.entityConfig,
|
|
175
|
-
prepared: r
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
})
|
|
179
|
-
]
|
|
180
|
-
});
|
|
181
|
-
return U.set(o, e.id), a.push(o), A({
|
|
182
|
-
path: r,
|
|
183
|
-
children: a,
|
|
184
|
-
resourcePage: u
|
|
185
|
-
});
|
|
186
|
-
}), J = Object.values(o).filter((e) => e.kind === "tool").map((e) => {
|
|
187
|
-
let t = A({
|
|
188
|
-
path: D(e.routes.list, P),
|
|
189
|
-
resourcePage: _,
|
|
190
|
-
prepare: async () => {
|
|
191
|
-
let t = await w.loadToolEntity(e.id);
|
|
192
|
-
return {
|
|
193
|
-
entityId: e.id,
|
|
194
|
-
entityManifest: e,
|
|
195
|
-
entityConfig: t.config
|
|
196
|
-
};
|
|
197
|
-
},
|
|
198
|
-
render: ({ prepared: e, Component: t }) => {
|
|
199
|
-
if (t == null) return null;
|
|
200
|
-
let r = e;
|
|
201
|
-
return /* @__PURE__ */ n(t, {
|
|
202
|
-
entityManifest: r.entityManifest,
|
|
203
|
-
operation: r.entityConfig.tool.operation,
|
|
204
|
-
toolId: r.entityConfig.id
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
return U.set(t, e.id), t;
|
|
209
|
-
}), Y = A({
|
|
210
|
-
path: P,
|
|
211
|
-
resourcePage: d,
|
|
212
|
-
prepare: G,
|
|
213
|
-
render: ({ children: e, prepared: t, route: r, Component: a }) => {
|
|
214
|
-
if (a == null) return null;
|
|
215
|
-
let o = t, s = O(r, U), c = s == null ? null : H.get(s) ?? null, u = null, d = M.session.get()?.authStatusQuery ?? null;
|
|
216
|
-
if (d != null && o?.authStatusQuery != null) {
|
|
217
|
-
u = l(d, o.authStatusQuery);
|
|
218
|
-
let { isLoggedIn: e } = u;
|
|
219
|
-
if (!e) throw new i(B);
|
|
220
|
-
}
|
|
221
|
-
return /* @__PURE__ */ n(a, {
|
|
222
|
-
permissionsQuery: j?.permissionsQuery,
|
|
223
|
-
prepared: o?.permissionsQuery ?? null,
|
|
224
|
-
authStatus: u,
|
|
225
|
-
activeGroupId: c,
|
|
226
|
-
children: e
|
|
227
|
-
});
|
|
228
|
-
},
|
|
229
|
-
children: [
|
|
230
|
-
K,
|
|
231
|
-
...q,
|
|
232
|
-
...J
|
|
233
|
-
]
|
|
234
|
-
}), X = [
|
|
235
|
-
A({
|
|
236
|
-
path: F,
|
|
237
|
-
resourcePage: v,
|
|
238
|
-
prepare: async ({ context: e }) => {
|
|
239
|
-
let t = await M.login.load();
|
|
240
|
-
return { query: c(e.relayEnvironment, t.loginQuery, {}) };
|
|
241
|
-
},
|
|
242
|
-
render: ({ prepared: e, Component: t }) => t == null ? null : /* @__PURE__ */ n(t, { prepared: e })
|
|
243
|
-
}),
|
|
244
|
-
A({
|
|
245
|
-
path: I,
|
|
246
|
-
resourcePage: y,
|
|
247
|
-
prepare: async () => (await M.passwordResetRequest.load(), null),
|
|
248
|
-
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
|
|
249
|
-
}),
|
|
250
|
-
A({
|
|
251
|
-
path: L,
|
|
252
|
-
resourcePage: b,
|
|
253
|
-
prepare: async () => (await M.passwordResetComplete.load(), null),
|
|
254
|
-
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
|
|
255
|
-
}),
|
|
256
|
-
A({
|
|
257
|
-
path: R,
|
|
258
|
-
resourcePage: x,
|
|
259
|
-
prepare: async () => (await M.verifyEmail.load(), null),
|
|
260
|
-
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
|
|
261
|
-
})
|
|
262
|
-
];
|
|
263
|
-
return (M.hasAcceptInvitation === !0 || M.acceptInvitation != null) && X.push(A({
|
|
264
|
-
path: z,
|
|
265
|
-
resourcePage: S,
|
|
266
|
-
prepare: async () => (await M.acceptInvitation?.load(), null),
|
|
267
|
-
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
|
|
268
|
-
})), X.push(Y), X;
|
|
269
|
-
}
|
|
270
|
-
//#endregion
|
|
271
|
-
export { S as BackofficeAcceptInvitationPageResource, g as BackofficeDashboardPageResource, m as BackofficeEntityDetailLayoutPageResource, p as BackofficeEntityDetailPageResource, h as BackofficeEntityDetailUnknownPageRedirectResource, f as BackofficeEntityListPageResource, d as BackofficeLayoutPageResource, v as BackofficeLoginPageResource, b as BackofficePasswordResetCompletePageResource, y as BackofficePasswordResetRequestPageResource, _ as BackofficeToolsOperationPageResource, x as BackofficeVerifyEmailPageResource, u as WrapperPageResource, j as createBackofficeRoutes, j as default };
|
|
272
|
-
|
|
273
|
-
//# sourceMappingURL=createBackofficeRoutes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createBackofficeRoutes.js","names":[],"sources":["../../../src/router/createBackofficeRoutes.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n getResourcePage,\n HttpRedirect,\n r,\n type AnyRoute,\n type ResourcePage,\n type Route,\n} from '@plumile/router';\nimport * as ReactRelay from 'react-relay';\nimport type { PreloadedQuery } from 'react-relay';\nimport type { Environment, OperationType } from 'relay-runtime';\n\nimport { BACKOFFICE_LIST_DEFAULTS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeEntityManifestMap,\n BackofficePreparedDetailLayoutRoute,\n BackofficePreparedDetailPageRoute,\n BackofficePreparedListRoute,\n BackofficePreparedToolRoute,\n BackofficeResolvedDetailLayoutFacetConfigBase,\n} from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardModule,\n BackofficeSidebarConfig,\n} from '../provider/types.js';\nimport {\n buildEntityGroupLookup,\n resolveSidebarGroups,\n} from '../components/backoffice/layout/sidebarUtils.js';\nimport type { BackofficeEntityRegistry } from '../provider/entityRegistry.js';\n\nconst { loadQuery, usePreloadedQuery } = ReactRelay;\n\nexport type CreateBackofficeRoutesInput = {\n basePath: string;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n sidebar?: BackofficeSidebarConfig;\n auth: BackofficeAuthConfig;\n dashboard?: BackofficeDashboardModule;\n};\n\nexport type BackofficeRouterContext = {\n relayEnvironment: Environment;\n};\n\nexport const WrapperPageResource: ResourcePage | null = getResourcePage(\n 'WrapperPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('@plumile/ui/pages/WrapperPage.js'),\n);\n\nexport const BackofficeLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLayoutPage.js'),\n );\n\nexport const BackofficeEntityListPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListPage.js'),\n );\n\nexport const BackofficeEntityDetailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPage.js'),\n );\n\nexport const BackofficeEntityDetailLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailLayoutPage.js'),\n );\n\nexport const BackofficeEntityDetailUnknownPageRedirectResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailUnknownPageRedirect',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailUnknownPageRedirect.js'),\n );\n\nexport const BackofficeDashboardPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardPage.js'),\n );\n\nexport const BackofficeToolsOperationPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeToolsOperationPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeToolsOperationPage.js'),\n );\n\nexport const BackofficeLoginPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeLoginPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLoginPage.js'),\n);\n\nexport const BackofficePasswordResetRequestPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetRequestPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetRequestPage.js'),\n );\n\nexport const BackofficePasswordResetCompletePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetCompletePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetCompletePage.js'),\n );\n\nexport const BackofficeVerifyEmailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeVerifyEmailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeVerifyEmailPage.js'),\n );\n\nexport const BackofficeAcceptInvitationPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeAcceptInvitationPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeAcceptInvitationPage.js'),\n );\n\ntype PreparedDetailUnknownPage = {\n id: string;\n pagePath: string;\n entityManifest: BackofficeEntityManifestMap[string];\n entityConfig: BackofficeResolvedDetailLayoutFacetConfigBase;\n};\n\ntype PreparedLayout = {\n permissionsQuery: PreloadedQuery<OperationType> | null;\n authStatusQuery: PreloadedQuery<OperationType> | null;\n};\n\nconst normalizeBaseSegment = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n return trimmed.replace(/^\\/+|\\/+$/g, '');\n};\n\nconst normalizePath = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '') {\n return '/';\n }\n return `/${trimmed}`.replace(/\\/+/g, '/');\n};\n\nconst buildScopedPath = (baseSegment: string, path: string): string => {\n const normalizedPath = path.replace(/^\\/+|\\/+$/g, '');\n if (baseSegment === '') {\n return normalizedPath;\n }\n if (normalizedPath === '') {\n return baseSegment;\n }\n return `${baseSegment}/${normalizedPath}`;\n};\n\nconst buildScopedAbsolutePath = (baseSegment: string, path: string): string => {\n return normalizePath(buildScopedPath(baseSegment, path));\n};\n\nconst buildRelativePath = (\n absolutePath: string,\n baseSegment: string,\n): string => {\n const normalized = normalizePath(absolutePath);\n const basePrefix = baseSegment === '' ? '' : `/${baseSegment}`;\n if (basePrefix !== '' && normalized.startsWith(basePrefix)) {\n return normalized.slice(basePrefix.length).replace(/^\\/+/, '');\n }\n return normalized.replace(/^\\/+/, '');\n};\n\nconst resolveActiveEntityIdFromRoute = (\n route: { routes: AnyRoute[] } | null,\n routeEntityIdMap: WeakMap<AnyRoute, string>,\n): string | null => {\n if (route?.routes == null) {\n return null;\n }\n for (let index = route.routes.length - 1; index >= 0; index -= 1) {\n const routeEntry = route.routes[index];\n if (routeEntry != null) {\n const entityId = routeEntityIdMap.get(routeEntry);\n if (entityId != null) {\n return entityId;\n }\n }\n }\n return null;\n};\n\nconst toSearchParams = (query: Record<string, unknown>): URLSearchParams => {\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value == null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((entry) => {\n if (entry == null) {\n return;\n }\n params.append(key, String(entry));\n });\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n params.set(key, String(value));\n });\n return params;\n};\n\nconst rBackoffice = r<BackofficeRouterContext>;\n\n/**\n * Creates backoffice routes based on the provided configuration\n */\nexport function createBackofficeRoutes(\n input: CreateBackofficeRoutesInput,\n): Route<BackofficeRouterContext, any>[] {\n const { basePath, entityManifest, entityRegistry, sidebar, auth, dashboard } =\n input;\n const baseSegment = normalizeBaseSegment(basePath);\n const loginPath = buildScopedPath(baseSegment, 'login');\n const passwordResetRequestPath = buildScopedPath(baseSegment, 'login/reset');\n const passwordResetCompletePath = buildScopedPath(\n baseSegment,\n 'login/reset/complete',\n );\n const verifyEmailPath = buildScopedPath(baseSegment, 'verify-email');\n const acceptInvitationPath = buildScopedPath(\n baseSegment,\n 'accept-invitation',\n );\n const loginRedirectPath = buildScopedAbsolutePath(baseSegment, 'login');\n const entities = entityManifest;\n const groups = resolveSidebarGroups(entities, sidebar);\n const entityGroupLookup = buildEntityGroupLookup(groups);\n const entityIdToGroupId = new Map<string, string>();\n entityGroupLookup.forEach((value, entityId) => {\n entityIdToGroupId.set(entityId, value.groupId);\n });\n const routeEntityIdMap = new WeakMap<AnyRoute, string>();\n\n const permissionsQuery = sidebar?.permissionsQuery;\n const layoutPrepare = async ({\n context,\n }: {\n context: BackofficeRouterContext;\n }) => {\n const sessionAuth = await auth.session.load();\n const permissionsQueryRef =\n permissionsQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n permissionsQuery,\n {},\n )\n : null;\n const authStatusQueryRef =\n sessionAuth.authStatusQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n sessionAuth.authStatusQuery,\n {},\n { fetchPolicy: 'network-only' },\n )\n : null;\n return {\n permissionsQuery: permissionsQueryRef,\n authStatusQuery: authStatusQueryRef,\n };\n };\n\n const dashboardRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: async () => {\n if (dashboard == null) {\n return null;\n }\n await dashboard.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n });\n\n const listEntityEntries = Object.values(entityManifest).filter((entity) => {\n return entity.kind === 'list-detail';\n });\n\n const entityRoutes = listEntityEntries.map((entityManifestItem) => {\n const listPath = entityManifestItem.routes.list;\n const listRelative = buildRelativePath(listPath, baseSegment);\n const children: Route<any, any>[] = [];\n\n if (entityManifestItem.hasList) {\n const listRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListPageResource,\n prepare: async ({ context, query }) => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { list, listUrlCodec, listDefaults } = config;\n if (listUrlCodec == null || listDefaults == null) {\n throw new Error(\n `Backoffice entity ${entityManifestItem.id} does not expose a list configuration.`,\n );\n }\n const params = toSearchParams(query);\n const state = listUrlCodec.parse(params);\n const { pageSize } = BACKOFFICE_LIST_DEFAULTS;\n const variablesBase = {\n where: state.where,\n sort: state.sort ?? listDefaults.sort,\n count: pageSize,\n cursor: null,\n };\n const variables =\n list.buildVariables != null\n ? list.buildVariables(variablesBase)\n : variablesBase;\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n list.query,\n variables,\n );\n const prepared: BackofficePreparedListRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n query: queryRef,\n };\n return prepared;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n />\n );\n },\n });\n routeEntityIdMap.set(listRoute, entityManifestItem.id);\n children.push(listRoute);\n }\n\n const detailLayoutRoute = rBackoffice({\n path: ':id',\n resourcePage: BackofficeEntityDetailLayoutPageResource,\n prepare: async ({ context, variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const rawId = String(variables.id ?? '');\n const layoutBuildResult =\n config.layoutPage.buildVariables != null\n ? config.layoutPage.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const layoutQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n config.layoutPage.query,\n layoutBuildResult.variables as never,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n layoutQuery: layoutQueryRef,\n id: rawId,\n } satisfies BackofficePreparedDetailLayoutRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailLayoutRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [\n rBackoffice({\n path: '',\n resourcePage: WrapperPageResource,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '').trim();\n return {\n redirectTo:\n rawId === ''\n ? null\n : entityManifestItem.routes.detailPage(\n rawId,\n entityManifestItem.defaultDetailPageId ?? 'overview',\n ),\n };\n },\n render: ({ prepared }) => {\n const redirectTo =\n (prepared as { redirectTo?: string | null }).redirectTo ?? null;\n if (redirectTo == null) {\n return null;\n }\n throw new HttpRedirect(redirectTo);\n },\n }),\n ...(entityManifestItem.detailPages ?? []).map((pageManifest) => {\n return rBackoffice({\n path: pageManifest.pathSegment,\n resourcePage: BackofficeEntityDetailPageResource,\n prepare: async ({ context, variables }) => {\n const rawId = String(variables.id ?? '');\n const pageModule = await entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n );\n const pageBuildResult =\n pageModule.config.page.buildVariables != null\n ? pageModule.config.page.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const pageQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n pageModule.config.page.query,\n pageBuildResult.variables as never,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig:\n pageModule.config as unknown as BackofficeResolvedDetailLayoutFacetConfigBase,\n detailId: pageBuildResult.detailId,\n id: rawId,\n pageConfig: pageModule.config,\n pageQuery: pageQueryRef,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n />\n );\n },\n });\n }),\n rBackoffice({\n path: ':pagePath',\n resourcePage: BackofficeEntityDetailUnknownPageRedirectResource,\n prepare: async ({ variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const rawId = String(variables.id ?? '');\n const rawPagePath = String(variables.pagePath ?? '');\n return {\n entityManifest: entityManifestItem,\n entityConfig: entityModule.config,\n id: rawId,\n pagePath: rawPagePath,\n };\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedDetail = prepared as PreparedDetailUnknownPage;\n return (\n <Component\n entityManifest={preparedDetail.entityManifest}\n config={preparedDetail.entityConfig}\n prepared={preparedDetail}\n />\n );\n },\n }),\n ],\n });\n routeEntityIdMap.set(detailLayoutRoute, entityManifestItem.id);\n children.push(detailLayoutRoute);\n\n return rBackoffice({\n path: listRelative,\n children,\n resourcePage: WrapperPageResource,\n });\n });\n\n const toolsRoutes = Object.values(entityManifest)\n .filter((entity) => {\n return entity.kind === 'tool';\n })\n .map((toolManifest) => {\n const toolRelative = buildRelativePath(\n toolManifest.routes.list,\n baseSegment,\n );\n const toolRoute = rBackoffice({\n path: toolRelative,\n resourcePage: BackofficeToolsOperationPageResource,\n prepare: async () => {\n const toolModule = await entityRegistry.loadToolEntity(\n toolManifest.id,\n );\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n entityConfig: toolModule.config,\n } satisfies BackofficePreparedToolRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n operation={preparedTool.entityConfig.tool.operation}\n toolId={preparedTool.entityConfig.id}\n />\n );\n },\n });\n routeEntityIdMap.set(toolRoute, toolManifest.id);\n return toolRoute;\n });\n\n const layoutRoute = rBackoffice({\n path: baseSegment,\n resourcePage: BackofficeLayoutPageResource,\n prepare: layoutPrepare,\n render: ({ children, prepared, route, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedLayout = prepared as PreparedLayout | undefined;\n const activeEntityId = resolveActiveEntityIdFromRoute(\n route,\n routeEntityIdMap,\n );\n const activeGroupId =\n activeEntityId != null\n ? (entityIdToGroupId.get(activeEntityId) ?? null)\n : null;\n let authStatus: {\n isLoggedIn?: boolean | null;\n me?: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n } | null;\n } | null = null;\n const authStatusQuery = auth.session.get()?.authStatusQuery ?? null;\n if (authStatusQuery != null && preparedLayout?.authStatusQuery != null) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const data = usePreloadedQuery(\n authStatusQuery,\n preparedLayout.authStatusQuery,\n );\n authStatus = data as {\n isLoggedIn?: boolean | null;\n me?: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n } | null;\n };\n const { isLoggedIn } = authStatus;\n if (!isLoggedIn) {\n throw new HttpRedirect(loginRedirectPath);\n }\n }\n const layoutNode = (\n <Component\n permissionsQuery={sidebar?.permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n return layoutNode;\n },\n children: [dashboardRoute, ...entityRoutes, ...toolsRoutes],\n });\n\n const routes: Route<BackofficeRouterContext, any>[] = [\n rBackoffice({\n path: loginPath,\n resourcePage: BackofficeLoginPageResource,\n prepare: async ({ context }) => {\n const loginAuth = await auth.login.load();\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n loginAuth.loginQuery,\n {},\n );\n return { query: queryRef };\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return (\n <Component\n prepared={prepared as { query: PreloadedQuery<OperationType> }}\n />\n );\n },\n }),\n rBackoffice({\n path: passwordResetRequestPath,\n resourcePage: BackofficePasswordResetRequestPageResource,\n prepare: async () => {\n await auth.passwordResetRequest.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: passwordResetCompletePath,\n resourcePage: BackofficePasswordResetCompletePageResource,\n prepare: async () => {\n await auth.passwordResetComplete.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: verifyEmailPath,\n resourcePage: BackofficeVerifyEmailPageResource,\n prepare: async () => {\n await auth.verifyEmail.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n ];\n\n if (auth.hasAcceptInvitation === true || auth.acceptInvitation != null) {\n routes.push(\n rBackoffice({\n path: acceptInvitationPath,\n resourcePage: BackofficeAcceptInvitationPageResource,\n prepare: async () => {\n await auth.acceptInvitation?.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n );\n }\n\n routes.push(layoutRoute);\n\n return routes;\n}\n\nexport default createBackofficeRoutes;\n"],"mappings":"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"}
|
package/lib/esm/style.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./index.js";
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region src/subscriptions/conversationStream.ts
|
|
2
|
-
function e(e, t) {
|
|
3
|
-
let n = e.getLinkedRecord("chunk");
|
|
4
|
-
if (n == null) return;
|
|
5
|
-
let r = n.getValue("partId");
|
|
6
|
-
if (r == null) return;
|
|
7
|
-
let i = t.get(r);
|
|
8
|
-
if (i == null) return;
|
|
9
|
-
let a = n.getValue("chunkIndex"), o = n.getValue("delta"), s = n.getValue("done");
|
|
10
|
-
if (o == null) return;
|
|
11
|
-
let c = i.getValue("__lastChunkIndex") ?? -1;
|
|
12
|
-
if (a != null && a <= c) return;
|
|
13
|
-
let l = i.getLinkedRecord("body");
|
|
14
|
-
if (l == null) return;
|
|
15
|
-
let u = l.getType();
|
|
16
|
-
if (u !== "AgentMessagePart" && u !== "ModelMessagePart" && u !== "UserMessagePart") return;
|
|
17
|
-
let d = l.getLinkedRecord("content");
|
|
18
|
-
if (d == null) return;
|
|
19
|
-
let f = d.getValue("markdown") ?? "";
|
|
20
|
-
d.setValue(`${f}${o}`, "markdown"), a != null && i.setValue(a, "__lastChunkIndex"), s != null && i.setValue(s, "__streamingDone");
|
|
21
|
-
}
|
|
22
|
-
function t(t, n, r) {
|
|
23
|
-
return (i) => {
|
|
24
|
-
let a = i.getRootField("conversationChunkEvent");
|
|
25
|
-
if (a == null) return;
|
|
26
|
-
let o = a.getType(), s = a.getValue("cursor");
|
|
27
|
-
if (typeof s == "string" && n?.(s), o === "RefetchNeeded") {
|
|
28
|
-
let e = a.getValue("reason") ?? null;
|
|
29
|
-
r?.(e);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
i.get(t) != null && (a.getValue("conversationId") ?? null) === t && o === "PartChunkAppended" && e(a, i);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
//#endregion
|
|
36
|
-
export { t as createConversationStreamUpdater, e as handlePartChunkAppended };
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=conversationStream.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversationStream.js","names":[],"sources":["../../../src/subscriptions/conversationStream.ts"],"sourcesContent":["import type {\n RecordProxy,\n RecordSourceSelectorProxy,\n SelectorStoreUpdater,\n} from 'relay-runtime';\n\nexport type ConversationRequestUsageSnapshot = {\n cachedInputTokens?: number | null;\n costUsd?: number | null;\n inputTokens?: number | null;\n outputTokens?: number | null;\n reasoningTokens?: number | null;\n totalTokens?: number | null;\n};\n\n/** Apply a streamed message chunk delta to the matching conversation part. */\nexport function handlePartChunkAppended(\n payload: RecordProxy,\n store: RecordSourceSelectorProxy<unknown>,\n): void {\n const chunk = payload.getLinkedRecord('chunk');\n if (chunk == null) {\n return;\n }\n\n const partId = chunk.getValue('partId') as string | null;\n if (partId == null) {\n return;\n }\n const partRecord = store.get(partId);\n if (partRecord == null) {\n return;\n }\n\n const chunkIndex = chunk.getValue('chunkIndex') as number | null;\n const delta = chunk.getValue('delta') as string | null;\n const done = chunk.getValue('done') as boolean | null;\n if (delta == null) {\n return;\n }\n\n const lastChunkIndex =\n (partRecord.getValue('__lastChunkIndex') as number | null) ?? -1;\n if (chunkIndex != null && chunkIndex <= lastChunkIndex) {\n return;\n }\n\n const bodyRecord = partRecord.getLinkedRecord('body');\n if (bodyRecord == null) {\n return;\n }\n const bodyType = bodyRecord.getType();\n if (\n bodyType !== 'AgentMessagePart' &&\n bodyType !== 'ModelMessagePart' &&\n bodyType !== 'UserMessagePart'\n ) {\n return;\n }\n const contentRecord = bodyRecord.getLinkedRecord('content');\n if (contentRecord == null) {\n return;\n }\n const previousText =\n (contentRecord.getValue('markdown') as string | null) ?? '';\n contentRecord.setValue(`${previousText}${delta}`, 'markdown');\n\n if (chunkIndex != null) {\n partRecord.setValue(chunkIndex, '__lastChunkIndex');\n }\n if (done != null) {\n partRecord.setValue(done, '__streamingDone');\n }\n}\n\n/** Create a Relay store updater for conversation chunk events. */\nexport function createConversationStreamUpdater<T>(\n conversationId: string,\n onCursor?: (cursor: string | null) => void,\n onRefetchNeeded?: (reason: string | null) => void,\n): SelectorStoreUpdater<T> {\n return (store) => {\n const eventRecord = store.getRootField('conversationChunkEvent');\n if (eventRecord == null) {\n return;\n }\n\n const eventType = eventRecord.getType();\n const cursorValue = eventRecord.getValue('cursor');\n if (typeof cursorValue === 'string') {\n onCursor?.(cursorValue);\n }\n\n if (eventType === 'RefetchNeeded') {\n const reason =\n (eventRecord.getValue('reason') as string | null | undefined) ?? null;\n onRefetchNeeded?.(reason);\n return;\n }\n\n const conversationRecord = store.get(conversationId);\n if (conversationRecord == null) {\n return;\n }\n\n const targetConversationId =\n (eventRecord.getValue('conversationId') as string | null) ?? null;\n if (targetConversationId !== conversationId) {\n return;\n }\n\n if (eventType === 'PartChunkAppended') {\n handlePartChunkAppended(eventRecord, store);\n }\n };\n}\n"],"mappings":";AAgBA,SAAgB,EACd,GACA,GACM;CACN,IAAM,IAAQ,EAAQ,gBAAgB,QAAQ;AAC9C,KAAI,KAAS,KACX;CAGF,IAAM,IAAS,EAAM,SAAS,SAAS;AACvC,KAAI,KAAU,KACZ;CAEF,IAAM,IAAa,EAAM,IAAI,EAAO;AACpC,KAAI,KAAc,KAChB;CAGF,IAAM,IAAa,EAAM,SAAS,aAAa,EACzC,IAAQ,EAAM,SAAS,QAAQ,EAC/B,IAAO,EAAM,SAAS,OAAO;AACnC,KAAI,KAAS,KACX;CAGF,IAAM,IACH,EAAW,SAAS,mBAAmB,IAAsB;AAChE,KAAI,KAAc,QAAQ,KAAc,EACtC;CAGF,IAAM,IAAa,EAAW,gBAAgB,OAAO;AACrD,KAAI,KAAc,KAChB;CAEF,IAAM,IAAW,EAAW,SAAS;AACrC,KACE,MAAa,sBACb,MAAa,sBACb,MAAa,kBAEb;CAEF,IAAM,IAAgB,EAAW,gBAAgB,UAAU;AAC3D,KAAI,KAAiB,KACnB;CAEF,IAAM,IACH,EAAc,SAAS,WAAW,IAAsB;AAM3D,CALA,EAAc,SAAS,GAAG,IAAe,KAAS,WAAW,EAEzD,KAAc,QAChB,EAAW,SAAS,GAAY,mBAAmB,EAEjD,KAAQ,QACV,EAAW,SAAS,GAAM,kBAAkB;;AAKhD,SAAgB,EACd,GACA,GACA,GACyB;AACzB,SAAQ,MAAU;EAChB,IAAM,IAAc,EAAM,aAAa,yBAAyB;AAChE,MAAI,KAAe,KACjB;EAGF,IAAM,IAAY,EAAY,SAAS,EACjC,IAAc,EAAY,SAAS,SAAS;AAKlD,MAJI,OAAO,KAAgB,YACzB,IAAW,EAAY,EAGrB,MAAc,iBAAiB;GACjC,IAAM,IACH,EAAY,SAAS,SAAS,IAAkC;AACnE,OAAkB,EAAO;AACzB;;AAGyB,IAAM,IAAI,EAAe,IAC1B,SAKvB,EAAY,SAAS,iBAAiB,IAAsB,UAClC,KAIzB,MAAc,uBAChB,EAAwB,GAAa,EAAM"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type JSX } from 'react';
|
|
2
|
-
export type BackofficeToolsDocPanelProps = {
|
|
3
|
-
title: string;
|
|
4
|
-
content: string;
|
|
5
|
-
language?: string | null;
|
|
6
|
-
badgeLabel?: string | null;
|
|
7
|
-
defaultOpen?: boolean;
|
|
8
|
-
};
|
|
9
|
-
export declare const BackofficeToolsDocPanel: ({ title, content, language, badgeLabel, defaultOpen, }: BackofficeToolsDocPanelProps) => JSX.Element | null;
|
|
10
|
-
export default BackofficeToolsDocPanel;
|
|
11
|
-
//# sourceMappingURL=BackofficeToolsDocPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsDocPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsDocPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAQ3C,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,wDAMrC,4BAA4B,KAAG,GAAG,CAAC,OAAO,GAAG,IAwC/C,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type JSX } from 'react';
|
|
2
|
-
export type BackofficeToolsErrorFallbackProps = {
|
|
3
|
-
error: unknown;
|
|
4
|
-
onRetry: () => void;
|
|
5
|
-
};
|
|
6
|
-
export declare const BackofficeToolsErrorFallback: ({ error, onRetry, }: BackofficeToolsErrorFallbackProps) => JSX.Element;
|
|
7
|
-
export default BackofficeToolsErrorFallback;
|
|
8
|
-
//# sourceMappingURL=BackofficeToolsErrorFallback.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsErrorFallback.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsErrorFallback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAQjC,MAAM,MAAM,iCAAiC,GAAG;IAC9C,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AA2BF,eAAO,MAAM,4BAA4B,GAAI,qBAG1C,iCAAiC,KAAG,GAAG,CAAC,OA+C1C,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type JSX } from 'react';
|
|
2
|
-
export type BackofficeToolsJsonFormProps = {
|
|
3
|
-
value: string;
|
|
4
|
-
onChange: (next: string) => void;
|
|
5
|
-
onSubmit: () => void;
|
|
6
|
-
error?: string | null;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
label?: string;
|
|
9
|
-
submitLabel?: string;
|
|
10
|
-
exampleValue?: string;
|
|
11
|
-
exampleLabel?: string;
|
|
12
|
-
};
|
|
13
|
-
export declare const BackofficeToolsJsonForm: ({ value, onChange, onSubmit, error, disabled, label, submitLabel, exampleValue, exampleLabel, }: BackofficeToolsJsonFormProps) => JSX.Element;
|
|
14
|
-
export default BackofficeToolsJsonForm;
|
|
15
|
-
//# sourceMappingURL=BackofficeToolsJsonForm.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsJsonForm.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsJsonForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAajD,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,iGAUrC,4BAA4B,KAAG,GAAG,CAAC,OA8DrC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type JSX, type ReactNode } from 'react';
|
|
2
|
-
export type BackofficeToolsPageLayoutProps = {
|
|
3
|
-
title: string;
|
|
4
|
-
subtitle?: string;
|
|
5
|
-
toolId?: string;
|
|
6
|
-
toolIdLabel?: string;
|
|
7
|
-
showProjectPicker?: boolean;
|
|
8
|
-
docPanel?: ReactNode;
|
|
9
|
-
children: ReactNode;
|
|
10
|
-
};
|
|
11
|
-
export declare const BackofficeToolsPageLayout: ({ title, subtitle, toolId, toolIdLabel, showProjectPicker, docPanel, children, }: BackofficeToolsPageLayoutProps) => JSX.Element;
|
|
12
|
-
export default BackofficeToolsPageLayout;
|
|
13
|
-
//# sourceMappingURL=BackofficeToolsPageLayout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsPageLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsPageLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,kFAQvC,8BAA8B,KAAG,GAAG,CAAC,OAgEvC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type JSX, type ReactNode } from 'react';
|
|
2
|
-
export type BackofficeToolsParamsValue = {
|
|
3
|
-
initiativeId: string | null;
|
|
4
|
-
projectId: string | null;
|
|
5
|
-
};
|
|
6
|
-
declare const BackofficeToolsParamsContext: import("react").Context<BackofficeToolsParamsValue | null>;
|
|
7
|
-
export type BackofficeToolsParamsProviderProps = {
|
|
8
|
-
value: BackofficeToolsParamsValue;
|
|
9
|
-
children: ReactNode;
|
|
10
|
-
};
|
|
11
|
-
export declare const BackofficeToolsParamsProvider: ({ value, children, }: BackofficeToolsParamsProviderProps) => JSX.Element;
|
|
12
|
-
export declare function useBackofficeToolsParams(): BackofficeToolsParamsValue;
|
|
13
|
-
export default BackofficeToolsParamsContext;
|
|
14
|
-
//# sourceMappingURL=BackofficeToolsParamsContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsParamsContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsParamsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,4BAA4B,4DACsB,CAAC;AAEzD,MAAM,MAAM,kCAAkC,GAAG;IAC/C,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,sBAG3C,kCAAkC,KAAG,GAAG,CAAC,OAM3C,CAAC;AAKF,wBAAgB,wBAAwB,IAAI,0BAA0B,CAMrE;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type JSX } from 'react';
|
|
2
|
-
export type BackofficeToolsProjectPickerProps = {
|
|
3
|
-
projectId: string | null;
|
|
4
|
-
onChange: (next: string) => void;
|
|
5
|
-
};
|
|
6
|
-
export declare const BackofficeToolsProjectPicker: ({ projectId, onChange, }: BackofficeToolsProjectPickerProps) => JSX.Element;
|
|
7
|
-
export default BackofficeToolsProjectPicker;
|
|
8
|
-
//# sourceMappingURL=BackofficeToolsProjectPicker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsProjectPicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsProjectPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAW3C,MAAM,MAAM,iCAAiC,GAAG;IAC9C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,0BAG1C,iCAAiC,KAAG,GAAG,CAAC,OA+C1C,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type JSX, type ReactNode } from 'react';
|
|
2
|
-
export type BackofficeToolsQueryBoundaryProps = {
|
|
3
|
-
children: ReactNode;
|
|
4
|
-
};
|
|
5
|
-
export declare const BackofficeToolsQueryBoundary: ({ children, }: BackofficeToolsQueryBoundaryProps) => JSX.Element;
|
|
6
|
-
export default BackofficeToolsQueryBoundary;
|
|
7
|
-
//# sourceMappingURL=BackofficeToolsQueryBoundary.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackofficeToolsQueryBoundary.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/tools/BackofficeToolsQueryBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ3D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,eAE1C,iCAAiC,KAAG,GAAG,CAAC,OAU1C,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type JSX } from 'react';
|
|
2
|
-
export type BackofficeToolsScopePickerProps = {
|
|
3
|
-
initiativeId: string | null;
|
|
4
|
-
onChange: (next: string) => void;
|
|
5
|
-
};
|
|
6
|
-
export declare const BackofficeToolsScopePicker: ({ initiativeId, onChange, }: BackofficeToolsScopePickerProps) => JSX.Element;
|
|
7
|
-
export default BackofficeToolsScopePicker;
|
|
8
|
-
//# sourceMappingURL=BackofficeToolsScopePicker.d.ts.map
|