@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,33 +1,53 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { Environment as e, Network as t, Observable as n, RecordSource as r, Store as i } from "relay-runtime";
|
|
2
|
+
import { createClient as a } from "graphql-ws";
|
|
3
|
+
//#region src/relay/envHelpers.ts
|
|
4
|
+
var o = (() => {
|
|
5
|
+
try {
|
|
6
|
+
let e = import.meta;
|
|
7
|
+
return e.env == null ? {} : e.env;
|
|
8
|
+
} catch {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
})();
|
|
12
|
+
function s(e) {
|
|
13
|
+
let t = o[e];
|
|
14
|
+
if (t === !0 || t === !1) return t;
|
|
15
|
+
if (typeof t == "string") {
|
|
16
|
+
if (t === "true") return !0;
|
|
17
|
+
if (t === "false") return !1;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function c() {
|
|
21
|
+
return !!s("DEV");
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
4
24
|
//#region src/relay/environment.ts
|
|
5
|
-
var
|
|
6
|
-
function
|
|
7
|
-
var
|
|
8
|
-
|
|
25
|
+
var l = "/api/graphql", u = "/api/ws", d, f, p, m;
|
|
26
|
+
function h() {}
|
|
27
|
+
var g = h;
|
|
28
|
+
c() && (g = (e) => {
|
|
9
29
|
console.log("relayFieldLogger: ", e);
|
|
10
30
|
});
|
|
11
|
-
var
|
|
31
|
+
var _ = (e) => {
|
|
12
32
|
if (typeof e != "object" || !e) return null;
|
|
13
|
-
let { id:
|
|
14
|
-
return typeof
|
|
15
|
-
};
|
|
16
|
-
function
|
|
17
|
-
let { httpUrl: t, wsUrl: n, logEvents: r,
|
|
18
|
-
if (typeof t == "string" && t !== "" && (
|
|
33
|
+
let { id: t } = e;
|
|
34
|
+
return typeof t != "string" || t.trim() === "" ? null : t;
|
|
35
|
+
}, v = (e, t) => m?.(e, t) ?? _(e, t);
|
|
36
|
+
function y(e = {}) {
|
|
37
|
+
let { httpUrl: t, wsUrl: n, logEvents: r, getDataId: i, getAuthHeaders: a } = e;
|
|
38
|
+
if (typeof t == "string" && t !== "" && (l = t), typeof n == "string" && n !== "" && (u = n), r != null && (g = r ? (e) => {
|
|
19
39
|
console.log("relayFieldLogger: ", e);
|
|
20
|
-
} :
|
|
40
|
+
} : h), m = i, p = a, f != null) {
|
|
21
41
|
try {
|
|
22
|
-
let e =
|
|
42
|
+
let e = f.dispose();
|
|
23
43
|
e instanceof Promise && e.catch(() => {});
|
|
24
44
|
} catch {}
|
|
25
|
-
|
|
45
|
+
f = void 0;
|
|
26
46
|
}
|
|
27
|
-
|
|
47
|
+
d = void 0;
|
|
28
48
|
}
|
|
29
|
-
function
|
|
30
|
-
let e =
|
|
49
|
+
function b() {
|
|
50
|
+
let e = u;
|
|
31
51
|
if (e.startsWith("ws")) return e;
|
|
32
52
|
if (e.startsWith("http")) return e.replace(/^http/, "ws");
|
|
33
53
|
if (e.startsWith("/")) {
|
|
@@ -37,11 +57,11 @@ function _() {
|
|
|
37
57
|
}
|
|
38
58
|
return e;
|
|
39
59
|
}
|
|
40
|
-
function
|
|
41
|
-
if (
|
|
60
|
+
function x() {
|
|
61
|
+
if (f != null) return f;
|
|
42
62
|
if (typeof window > "u") throw Error("GraphQL subscriptions unavailable in non-browser environment");
|
|
43
|
-
return
|
|
44
|
-
url:
|
|
63
|
+
return f = a({
|
|
64
|
+
url: b(),
|
|
45
65
|
keepAlive: 1e4,
|
|
46
66
|
lazy: !0,
|
|
47
67
|
retryAttempts: 10,
|
|
@@ -57,33 +77,33 @@ function v() {
|
|
|
57
77
|
});
|
|
58
78
|
},
|
|
59
79
|
connectionParams: async () => {
|
|
60
|
-
if (
|
|
80
|
+
if (p == null) return {};
|
|
61
81
|
try {
|
|
62
|
-
return await
|
|
82
|
+
return await p();
|
|
63
83
|
} catch {
|
|
64
84
|
return {};
|
|
65
85
|
}
|
|
66
86
|
}
|
|
67
|
-
}),
|
|
87
|
+
}), f;
|
|
68
88
|
}
|
|
69
|
-
function
|
|
89
|
+
function S(e) {
|
|
70
90
|
return typeof File < "u" && e instanceof File || typeof Blob < "u" && e instanceof Blob;
|
|
71
91
|
}
|
|
72
|
-
function
|
|
73
|
-
if (
|
|
92
|
+
function C(e, t, n) {
|
|
93
|
+
if (S(e)) return n.push({
|
|
74
94
|
path: t,
|
|
75
95
|
file: e
|
|
76
96
|
}), null;
|
|
77
|
-
if (Array.isArray(e)) return e.map((e, r) =>
|
|
97
|
+
if (Array.isArray(e)) return e.map((e, r) => C(e, `${t}.${r}`, n));
|
|
78
98
|
if (typeof e == "object" && e) {
|
|
79
99
|
let r = {};
|
|
80
|
-
for (let [i, a] of Object.entries(e)) r[i] =
|
|
100
|
+
for (let [i, a] of Object.entries(e)) r[i] = C(a, `${t}.${i}`, n);
|
|
81
101
|
return r;
|
|
82
102
|
}
|
|
83
103
|
return e;
|
|
84
104
|
}
|
|
85
|
-
function
|
|
86
|
-
let n = [], r =
|
|
105
|
+
function w(e, t) {
|
|
106
|
+
let n = [], r = C(t, "variables", n), i = new FormData(), a = {
|
|
87
107
|
query: e,
|
|
88
108
|
variables: r
|
|
89
109
|
};
|
|
@@ -95,60 +115,60 @@ function x(e, t) {
|
|
|
95
115
|
i.append(String(t), e.file);
|
|
96
116
|
}), i;
|
|
97
117
|
}
|
|
98
|
-
var
|
|
118
|
+
var T = {
|
|
99
119
|
maxAttempts: 3,
|
|
100
120
|
baseDelayMs: 300,
|
|
101
121
|
maxDelayMs: 4e3,
|
|
102
122
|
fetchTimeoutMs: 6e5
|
|
103
123
|
};
|
|
104
|
-
async function
|
|
124
|
+
async function E(e) {
|
|
105
125
|
await new Promise((t) => {
|
|
106
126
|
setTimeout(() => {
|
|
107
127
|
t();
|
|
108
128
|
}, e);
|
|
109
129
|
});
|
|
110
130
|
}
|
|
111
|
-
function
|
|
131
|
+
function D(e, t) {
|
|
112
132
|
let n = Math.min(t.maxDelayMs, t.baseDelayMs * 2 ** e);
|
|
113
133
|
return n + Math.random() * .2 * n;
|
|
114
134
|
}
|
|
115
|
-
function
|
|
135
|
+
function O(e) {
|
|
116
136
|
return e === 408 || e === 429 || e >= 500 && e < 600;
|
|
117
137
|
}
|
|
118
|
-
function
|
|
138
|
+
function k(e) {
|
|
119
139
|
return e instanceof TypeError || e instanceof Error && e.name === "AbortError";
|
|
120
140
|
}
|
|
121
|
-
function
|
|
122
|
-
|
|
141
|
+
function A(...e) {
|
|
142
|
+
c() && console.log("[RelayNetwork]", ...e);
|
|
123
143
|
}
|
|
124
|
-
async function
|
|
144
|
+
async function j(e, t, n, r) {
|
|
125
145
|
let i = e.text;
|
|
126
146
|
if (i == null) throw Error("Missing GraphQL query text");
|
|
127
147
|
let a = i;
|
|
128
148
|
async function o(e) {
|
|
129
149
|
let n = new AbortController(), r = setTimeout(() => {
|
|
130
150
|
n.abort();
|
|
131
|
-
},
|
|
151
|
+
}, T.fetchTimeoutMs);
|
|
132
152
|
try {
|
|
133
153
|
let r, i = {};
|
|
134
|
-
if (
|
|
135
|
-
Object.assign(i, await
|
|
154
|
+
if (p != null) try {
|
|
155
|
+
Object.assign(i, await p());
|
|
136
156
|
} catch {}
|
|
137
157
|
(() => {
|
|
138
158
|
try {
|
|
139
159
|
let e = [t];
|
|
140
160
|
for (; e.length > 0;) {
|
|
141
161
|
let t = e.pop();
|
|
142
|
-
if (
|
|
162
|
+
if (S(t)) return !0;
|
|
143
163
|
Array.isArray(t) ? e.push(...t) : typeof t == "object" && t && e.push(...Object.values(t));
|
|
144
164
|
}
|
|
145
165
|
} catch {}
|
|
146
166
|
return !1;
|
|
147
|
-
})() ? r =
|
|
167
|
+
})() ? r = w(a, t) : (i["Content-Type"] = "application/json", r = JSON.stringify({
|
|
148
168
|
query: a,
|
|
149
169
|
variables: t
|
|
150
170
|
}));
|
|
151
|
-
let o = await fetch(
|
|
171
|
+
let o = await fetch(l, {
|
|
152
172
|
method: "POST",
|
|
153
173
|
body: r,
|
|
154
174
|
headers: i,
|
|
@@ -156,30 +176,30 @@ async function O(e, t, n, r) {
|
|
|
156
176
|
signal: n.signal
|
|
157
177
|
});
|
|
158
178
|
if (!o.ok) {
|
|
159
|
-
if (e <
|
|
179
|
+
if (e < T.maxAttempts - 1 && O(o.status)) throw Error(`Retryable HTTP status ${o.status}`);
|
|
160
180
|
let t = await o.text().catch(() => "");
|
|
161
181
|
throw Error(`GraphQL HTTP error ${o.status}: ${t}`);
|
|
162
182
|
}
|
|
163
|
-
let
|
|
164
|
-
return Array.isArray(
|
|
183
|
+
let s = await o.json();
|
|
184
|
+
return Array.isArray(s.errors) && s.errors.length > 0 && A("GraphQL errors", s.errors), s;
|
|
165
185
|
} finally {
|
|
166
186
|
clearTimeout(r);
|
|
167
187
|
}
|
|
168
188
|
}
|
|
169
|
-
for (let e = 0; e <
|
|
189
|
+
for (let e = 0; e < T.maxAttempts; e += 1) try {
|
|
170
190
|
return await o(e);
|
|
171
191
|
} catch (t) {
|
|
172
|
-
let n = e ===
|
|
173
|
-
if (!(
|
|
174
|
-
await
|
|
192
|
+
let n = e === T.maxAttempts - 1;
|
|
193
|
+
if (!(k(t) || t instanceof Error && t.message.includes("Retryable HTTP status")) || n) throw A("GraphQL fetch error", t), t;
|
|
194
|
+
await E(D(e, T));
|
|
175
195
|
}
|
|
176
196
|
throw Error("Exhausted retries without returning a result");
|
|
177
197
|
}
|
|
178
|
-
function
|
|
179
|
-
return
|
|
198
|
+
function M(e, t) {
|
|
199
|
+
return A("subscription:start", e.name, t), n.create((n) => {
|
|
180
200
|
let r = e.text;
|
|
181
201
|
if (r == null || r === "") return n.error(/* @__PURE__ */ Error("Subscription operation text is empty")), () => {};
|
|
182
|
-
let i =
|
|
202
|
+
let i = x().subscribe({
|
|
183
203
|
query: r,
|
|
184
204
|
variables: t,
|
|
185
205
|
operationName: e.name
|
|
@@ -200,22 +220,22 @@ function k(e, t) {
|
|
|
200
220
|
};
|
|
201
221
|
});
|
|
202
222
|
}
|
|
203
|
-
function
|
|
204
|
-
return
|
|
223
|
+
function N() {
|
|
224
|
+
return t.create(j, M);
|
|
205
225
|
}
|
|
206
|
-
function
|
|
207
|
-
return
|
|
208
|
-
getDataID:
|
|
209
|
-
relayFieldLogger:
|
|
210
|
-
network:
|
|
211
|
-
store: new
|
|
212
|
-
}),
|
|
226
|
+
function P() {
|
|
227
|
+
return d ??= new e({
|
|
228
|
+
getDataID: v,
|
|
229
|
+
relayFieldLogger: g,
|
|
230
|
+
network: N(),
|
|
231
|
+
store: new i(new r())
|
|
232
|
+
}), d;
|
|
213
233
|
}
|
|
214
|
-
function
|
|
215
|
-
let e =
|
|
234
|
+
function F() {
|
|
235
|
+
let e = P(), t = new r();
|
|
216
236
|
e.getStore().publish(t), e.getStore().notify();
|
|
217
237
|
}
|
|
218
238
|
//#endregion
|
|
219
|
-
export {
|
|
239
|
+
export { F as i, P as n, N as r, y as t };
|
|
220
240
|
|
|
221
|
-
//# sourceMappingURL=environment.js.map
|
|
241
|
+
//# sourceMappingURL=environment-BJeJTbIN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-BJeJTbIN.js","names":[],"sources":["../../src/relay/envHelpers.ts","../../src/relay/environment.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","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;\nlet customDataIdResolver:\n | ((fieldValue: unknown, typeName: string) => string | null)\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\nconst defaultGetDataId: (\n fieldValue: unknown,\n typeName: string,\n) => string | null = (fieldValue) => {\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 return id;\n};\n\nconst getDataId = (fieldValue: unknown, typeName: string): string | null => {\n const customId = customDataIdResolver?.(fieldValue, typeName);\n if (customId != null) {\n return customId;\n }\n return defaultGetDataId(fieldValue, typeName);\n};\n\nexport interface RelayEnvironmentConfiguration {\n httpUrl?: string;\n wsUrl?: string;\n logEvents?: boolean;\n getDataId?: (fieldValue: unknown, typeName: string) => string | null;\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 getDataId: nextGetDataId,\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 customDataIdResolver = nextGetDataId;\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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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useTranslation as e } from "react-i18next";
|
|
2
|
+
//#region src/i18n/useSharedTranslation.ts
|
|
3
|
+
function t() {
|
|
4
|
+
return e("shared");
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/auth/login/loginPage.css.ts
|
|
8
|
+
var n = "w8yhmy0 vncd899io vncd89ai6 vncd89aoo", r = "w8yhmy1 vncd899io vncd89ai6 vncd89u6f", i = "w8yhmy2 vncd89va3 vncd898x vncd89fbo vncd89f4x", a = "w8yhmy5 vncd89co vncd899io vncd89ajx vncd89aof vncd89doo vncd89hxf", o = "w8yhmy7 w8yhmy6 vncd89v9p vncd89amo vncd8978 vncd896x vncd897k", s = "w8yhmy8 vncd89nvx vncd89oj6 vncd89p6f vncd89ly6 vncd89766 vncd8973f vncd897d6 vncd897af", c = "w8yhmy9 vncd899io vncd89ai6 vncd89aoo", l = "w8yhmya vncd89u6f", u = "w8yhmyb vncd89fbo vncd899o vncd89amx vncd89v9p vncd89ed6", d = "w8yhmyc vncd89hxo", f = "w8yhmye w8yhmyd vncd89106 vncd891df vncd891qf vncd89v9p vncd89v4j vncd8978 vncd896w vncd897k";
|
|
9
|
+
//#endregion
|
|
10
|
+
export { r as a, o as c, n as d, t as f, d as i, s as l, c as n, l as o, f as r, i as s, a as t, u };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=loginPage.css-BDQJNcSr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginPage.css-BDQJNcSr.js","names":[],"sources":["../../src/i18n/useSharedTranslation.ts","../../src/auth/login/loginPage.css.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next';\n\n/** Returns i18n helpers bound to the shared namespace. */\nexport function useSharedTranslation(): ReturnType<typeof useTranslation> {\n return useTranslation('shared');\n}\n","import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { vars } from '@plumile/ui/theme/themeContract.js';\n\nexport const stack = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const formSurface = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n width: 'full',\n});\n\nexport const helper = sprinkles({\n color: 'brandDarkGray',\n fontSize: 'sm',\n margin: 0,\n lineHeight: 1.6,\n});\n\nexport const divider = sprinkles({\n alignItems: 'center',\n color: 'brandDarkGray',\n display: 'flex',\n gap: 2,\n marginTop: 5,\n marginBottom: 3,\n});\n\nexport const dividerLine = sprinkles({\n backgroundColor: 'brandPrimaryRed',\n height: 'px',\n flex: 1,\n borderRadius: 'full',\n opacity: 35,\n});\n\nexport const actionsRow = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 3,\n justifyContent: 'space-between',\n marginTop: 3,\n});\n\nexport const inlineLink = style([\n sprinkles({\n color: 'brandPrimaryRed',\n fontWeight: 'semibold',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n background: 'transparent',\n borderWidth: 0,\n borderStyle: 'none',\n cursor: 'pointer',\n padding: 0,\n textDecoration: 'none',\n ':hover': {\n color: vars.colors.brandSecondaryOrange,\n textDecoration: 'underline',\n },\n },\n]);\n\nexport const panel = sprinkles({\n borderTopLeftRadius: 'none',\n borderTopRightRadius: 'none',\n borderBottomLeftRadius: '2xl',\n borderBottomRightRadius: '2xl',\n paddingX: 6,\n paddingY: 6,\n});\n\nexport const block = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const fullWidth = sprinkles({\n width: 'full',\n});\n\nexport const panelTitle = sprinkles({\n margin: 0,\n fontSize: 'xl',\n fontWeight: 'bold',\n color: 'brandPrimaryRed',\n letterSpacing: 'tight',\n});\n\nexport const footer = sprinkles({\n marginTop: 4,\n});\n\nexport const brandGhostButton = style([\n sprinkles({\n borderColor: 'brandPrimaryRed',\n borderWidth: 'px',\n borderStyle: 'solid',\n color: 'brandPrimaryRed',\n backgroundColor: 'brandLightGray',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover:not(:disabled)': {\n backgroundColor: `color-mix(in srgb, ${vars.colors.brandPrimaryRed} 8%, transparent)`,\n color: vars.colors.brandSecondaryOrange,\n borderColor: vars.colors.brandSecondaryOrange,\n },\n },\n },\n]);\n"],"mappings":";;AAGA,SAAgB,IAA0D;AACxE,QAAO,EAAe,SAAS"}
|
|
@@ -42,6 +42,6 @@ var e = (e) => e?.status ?? e?.result ?? null, t = (t, n) => {
|
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
44
|
//#endregion
|
|
45
|
-
export {
|
|
45
|
+
export { t as i, r as n, i as r, n as t };
|
|
46
46
|
|
|
47
|
-
//# sourceMappingURL=mutationResult.js.map
|
|
47
|
+
//# sourceMappingURL=mutationResult-CcQMY13J.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutationResult-CcQMY13J.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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageResolution-hAQA5C6S.js","names":[],"sources":["../../src/pages/detail/pageResolution.ts"],"sourcesContent":["type DetailPageBase<ShellView> = {\n id: string;\n path: string;\n isVisible?: (layout: ShellView) => boolean;\n};\n\ntype PageResolutionInput<\n ShellView,\n MainPage extends DetailPageBase<ShellView>,\n SubPage extends DetailPageBase<ShellView> = MainPage,\n> = {\n mainPage: MainPage;\n subPages?: readonly SubPage[];\n activePagePath?: string;\n node: ShellView;\n};\n\nexport type ResolvedDetailPages<Page> = {\n pages: readonly Page[];\n activePage: Page | null;\n hasVisiblePages: boolean;\n hasMultiplePages: boolean;\n};\n\nconst normalizePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nexport const resolveVisibleDetailPages = <\n ShellView,\n MainPage extends DetailPageBase<ShellView>,\n SubPage extends DetailPageBase<ShellView> = MainPage,\n>(\n input: PageResolutionInput<ShellView, MainPage, SubPage>,\n): ResolvedDetailPages<MainPage | SubPage> => {\n const allPages = [input.mainPage, ...(input.subPages ?? [])] as readonly (\n | MainPage\n | SubPage\n )[];\n const visiblePages = allPages.filter((page) => {\n if (page.isVisible == null) {\n return true;\n }\n return page.isVisible(input.node);\n });\n\n if (visiblePages.length === 0) {\n return {\n pages: [],\n activePage: null,\n hasVisiblePages: false,\n hasMultiplePages: false,\n };\n }\n\n const activePath = normalizePath(input.activePagePath ?? '');\n let activeByPath: MainPage | SubPage | null = null;\n if (activePath !== '') {\n activeByPath =\n visiblePages.find((page) => {\n return normalizePath(page.path) === activePath;\n }) ?? null;\n }\n\n const defaultPage =\n visiblePages.find((page) => {\n return page.id === input.mainPage.id;\n }) ?? visiblePages[0];\n if (defaultPage == null) {\n return {\n pages: [],\n activePage: null,\n hasVisiblePages: false,\n hasMultiplePages: false,\n };\n }\n\n const activePage = activeByPath ?? defaultPage;\n\n return {\n pages: visiblePages,\n activePage,\n hasVisiblePages: true,\n hasMultiplePages: visiblePages.length > 1,\n };\n};\n"],"mappings":";AAwBA,IAAM,KAAiB,MACd,EAAM,MAAM,CAAC,QAAQ,cAAc,GAAG,EAGlC,KAKX,MAC4C;CAK5C,IAAM,IAJW,CAAC,EAAM,UAAU,GAAI,EAAM,YAAY,EAAE,CAAE,CAI9B,QAAQ,MAChC,EAAK,aAAa,OACb,KAEF,EAAK,UAAU,EAAM,KAAK,CACjC;AAEF,KAAI,EAAa,WAAW,EAC1B,QAAO;EACL,OAAO,EAAE;EACT,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EACnB;CAGH,IAAM,IAAa,EAAc,EAAM,kBAAkB,GAAG,EACxD,IAA0C;AAC9C,CAAI,MAAe,OACjB,IACE,EAAa,MAAM,MACV,EAAc,EAAK,KAAK,KAAK,EACpC,IAAI;CAGV,IAAM,IACJ,EAAa,MAAM,MACV,EAAK,OAAO,EAAM,SAAS,GAClC,IAAI,EAAa;AAYrB,QAXI,KAAe,OACV;EACL,OAAO,EAAE;EACT,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EACnB,GAKI;EACL,OAAO;EACP,YAJiB,KAAgB;EAKjC,iBAAiB;EACjB,kBAAkB,EAAa,SAAS;EACzC"}
|
|
@@ -27,18 +27,8 @@ var e = (e, t) => e(t), t = (e, t) => !!(e === t || t !== "/" && e.startsWith(`$
|
|
|
27
27
|
o.has(e) || a(e, t, n, r) && (o.add(e), i.push(e));
|
|
28
28
|
});
|
|
29
29
|
}), i;
|
|
30
|
-
}, s = (e, n) => {
|
|
31
|
-
let r = Object.entries(n);
|
|
32
|
-
for (let [n, i] of r) if (i.kind === "tool") {
|
|
33
|
-
if (t(e, i.routes.list)) return n;
|
|
34
|
-
} else if (i.hasList && t(e, i.routes.list)) return n;
|
|
35
|
-
return null;
|
|
36
|
-
}, c = (e, t, n, r, i) => {
|
|
37
|
-
if (t == null || !a(t, n, r, i)) return null;
|
|
38
|
-
for (let [n, r] of Object.entries(e)) if ((r.isVisible == null || r.isVisible(i)) && r.entities?.includes(t) === !0) return n;
|
|
39
|
-
return null;
|
|
40
30
|
};
|
|
41
31
|
//#endregion
|
|
42
|
-
export {
|
|
32
|
+
export { o as a, r as i, t as n, e as r, i as t };
|
|
43
33
|
|
|
44
|
-
//# sourceMappingURL=sidebarUtils.js.map
|
|
34
|
+
//# sourceMappingURL=sidebarUtils-CuwJ_3mD.js.map
|
package/lib/esm/{components/backoffice/layout/sidebarUtils.js.map → sidebarUtils-CuwJ_3mD.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebarUtils.js","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"sidebarUtils-CuwJ_3mD.js","names":[],"sources":["../../src/components/backoffice/layout/sidebarUtils.ts"],"sourcesContent":["import type { TFunction } from 'i18next';\n\nimport type {\n BackofficeEntityManifestMap,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type {\n BackofficeSidebarConfig,\n BackofficeIconComponent,\n BackofficeSidebarGroupConfig,\n BackofficeSidebarItemDescriptor,\n} from '../../../provider/types.js';\n\nexport const resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const isActivePath = (pathname: string, href: string): boolean => {\n if (pathname === href) {\n return true;\n }\n if (href !== '/' && pathname.startsWith(`${href}/`)) {\n return true;\n }\n return false;\n};\n\nexport const buildDefaultGroups = (\n entities: BackofficeEntityManifestMap,\n): Record<string, BackofficeSidebarGroupConfig> => {\n const entityIds = Object.keys(entities);\n\n return {\n main: {\n entities: entityIds,\n },\n };\n};\n\nexport const resolveSidebarGroups = (\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n): Record<string, BackofficeSidebarGroupConfig> => {\n return sidebar?.groups ?? buildDefaultGroups(entities);\n};\n\nexport type EntityGroupLookup = Map<\n string,\n { groupId: string; icon?: BackofficeIconComponent }\n>;\n\nexport const buildEntityGroupLookup = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n): EntityGroupLookup => {\n const lookup: EntityGroupLookup = new Map();\n\n Object.entries(groups).forEach(([groupId, group]) => {\n if (group.entities == null) {\n return;\n }\n group.entities.forEach((entityId) => {\n if (!lookup.has(entityId)) {\n lookup.set(entityId, { groupId, icon: group.icon });\n }\n });\n });\n\n return lookup;\n};\n\nconst isEntityVisible = (\n entityId: string,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): boolean => {\n const config = entities[entityId];\n if (config == null) {\n return false;\n }\n\n let descriptor: BackofficeSidebarItemDescriptor = {\n kind: 'entity',\n id: entityId,\n };\n if (config.kind === 'tool') {\n descriptor = { kind: 'tool', id: entityId };\n }\n\n if (sidebar?.isItemVisible != null) {\n return sidebar.isItemVisible(descriptor, permissions);\n }\n\n if (config.kind === 'tool') {\n return true;\n }\n return config.hasList;\n};\n\nexport const resolveVisibleEntityIds = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): string[] => {\n const output: string[] = [];\n const seen = new Set<string>();\n\n Object.entries(groups).forEach(([, group]) => {\n if (group.isVisible != null && !group.isVisible(permissions)) {\n return;\n }\n if (group.entities == null) {\n return;\n }\n group.entities.forEach((entityId) => {\n if (seen.has(entityId)) {\n return;\n }\n if (!isEntityVisible(entityId, entities, sidebar, permissions)) {\n return;\n }\n seen.add(entityId);\n output.push(entityId);\n });\n });\n\n return output;\n};\n\nexport const resolveActiveEntityId = (\n pathname: string,\n entities: BackofficeEntityManifestMap,\n): string | null => {\n const entries = Object.entries(entities);\n for (const [entityId, config] of entries) {\n if (config.kind === 'tool') {\n if (isActivePath(pathname, config.routes.list)) {\n return entityId;\n }\n } else if (config.hasList && isActivePath(pathname, config.routes.list)) {\n return entityId;\n }\n }\n return null;\n};\n\nexport const resolveActiveGroupId = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n activeEntityId: string | null,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): string | null => {\n if (activeEntityId == null) {\n return null;\n }\n\n if (!isEntityVisible(activeEntityId, entities, sidebar, permissions)) {\n return null;\n }\n\n for (const [groupId, group] of Object.entries(groups)) {\n const isVisible = group.isVisible == null || group.isVisible(permissions);\n if (isVisible && group.entities?.includes(activeEntityId) === true) {\n return groupId;\n }\n }\n\n return null;\n};\n"],"mappings":";AAaA,IAAa,KAAgB,GAAkB,MACtC,EAAM,EAAK,EAGP,KAAgB,GAAkB,MAI7C,GAHI,MAAa,KAGb,MAAS,OAAO,EAAS,WAAW,GAAG,EAAK,GAAG,GAMxC,KACX,OAIO,EACL,MAAM,EACJ,UAJc,OAAO,KAAK,EAAS,EAKpC,EACF,GAGU,KACX,GACA,MAEO,GAAS,UAAU,EAAmB,EAAS,EAQ3C,KACX,MACsB;CACtB,IAAM,oBAA4B,IAAI,KAAK;AAa3C,QAXA,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,GAAS,OAAW;AAC/C,IAAM,YAAY,QAGtB,EAAM,SAAS,SAAS,MAAa;AACnC,GAAK,EAAO,IAAI,EAAS,IACvB,EAAO,IAAI,GAAU;IAAE;IAAS,MAAM,EAAM;IAAM,CAAC;IAErD;GACF,EAEK;GAGH,KACJ,GACA,GACA,GACA,MACY;CACZ,IAAM,IAAS,EAAS;AACxB,KAAI,KAAU,KACZ,QAAO;CAGT,IAAI,IAA8C;EAChD,MAAM;EACN,IAAI;EACL;AAYD,QAXI,EAAO,SAAS,WAClB,IAAa;EAAE,MAAM;EAAQ,IAAI;EAAU,GAGzC,GAAS,iBAAiB,OAI1B,EAAO,SAAS,SACX,KAEF,EAAO,UANL,EAAQ,cAAc,GAAY,EAAY;GAS5C,KACX,GACA,GACA,GACA,MACa;CACb,IAAM,IAAmB,EAAE,EACrB,oBAAO,IAAI,KAAa;AAqB9B,QAnBA,OAAO,QAAQ,EAAO,CAAC,SAAS,GAAG,OAAW;AACxC,IAAM,aAAa,QAAQ,CAAC,EAAM,UAAU,EAAY,IAGxD,EAAM,YAAY,QAGtB,EAAM,SAAS,SAAS,MAAa;AAC/B,KAAK,IAAI,EAAS,IAGjB,EAAgB,GAAU,GAAU,GAAS,EAAY,KAG9D,EAAK,IAAI,EAAS,EAClB,EAAO,KAAK,EAAS;IACrB;GACF,EAEK"}
|
package/lib/esm/{provider/BackofficeConfigContext.js → sprinkles.css.ts.vanilla-n-NK_DwW.js}
RENAMED
|
@@ -7,6 +7,6 @@ function i() {
|
|
|
7
7
|
return e;
|
|
8
8
|
}
|
|
9
9
|
//#endregion
|
|
10
|
-
export {
|
|
10
|
+
export { i as n, r as t };
|
|
11
11
|
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=sprinkles.css.ts.vanilla-n-NK_DwW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprinkles.css.ts.vanilla-n-NK_DwW.js","names":[],"sources":["../../src/provider/BackofficeConfigContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type { BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardModule,\n BackofficeGraphQLConfig,\n BackofficeSidebarConfig,\n} from './types.js';\nimport type { BackofficeEntityRegistry } from './entityRegistry.js';\n\nexport type BackofficeConfigContextValue = {\n basePath: string;\n entities: BackofficeEntityManifestMap;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n filterColumnAliases?: Record<string, string>;\n sidebar?: BackofficeSidebarConfig;\n dashboard?: BackofficeDashboardModule;\n auth: BackofficeAuthConfig;\n graphql: BackofficeGraphQLConfig;\n};\n\nconst BackofficeConfigContext =\n createContext<BackofficeConfigContextValue | null>(null);\n\nexport const BackofficeConfigProvider = BackofficeConfigContext.Provider;\n\n/**\n * Hook to access the Backoffice configuration context\n */\nexport function useBackofficeConfig(): BackofficeConfigContextValue {\n const context = useContext(BackofficeConfigContext);\n if (context == null) {\n throw new Error('BackofficeProvider is missing in the component tree.');\n }\n return context;\n}\n\nexport default BackofficeConfigContext;\n"],"mappings":";;AAwBA,IAAM,IACJ,EAAmD,KAAK,EAE7C,IAA2B,EAAwB;AAKhE,SAAgB,IAAoD;CAClE,IAAM,IAAU,EAAW,EAAwB;AACnD,KAAI,KAAW,KACb,OAAU,MAAM,uDAAuD;AAEzE,QAAO"}
|