@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,40 +0,0 @@
|
|
|
1
|
-
import { useCallback as e, useEffect as t, useRef as n } from "react";
|
|
2
|
-
import { stableListVariablesKey as r } from "@plumile/backoffice-core/state/stableKey.js";
|
|
3
|
-
//#region src/hooks/useBackofficeListRefetch.ts
|
|
4
|
-
function i({ refetch: i, variables: a, defaults: o, fetchPolicy: s, buildVariables: c }) {
|
|
5
|
-
let l = n(r({
|
|
6
|
-
where: o.where,
|
|
7
|
-
sort: o.sort,
|
|
8
|
-
count: o.count
|
|
9
|
-
})), u = e((e) => c == null ? e : c(e), [c]);
|
|
10
|
-
return t(() => {
|
|
11
|
-
let e = r({
|
|
12
|
-
where: a.where,
|
|
13
|
-
sort: a.sort,
|
|
14
|
-
count: a.count
|
|
15
|
-
});
|
|
16
|
-
l.current !== e && (l.current = e, i(u({
|
|
17
|
-
...a,
|
|
18
|
-
cursor: null
|
|
19
|
-
}), { fetchPolicy: s }));
|
|
20
|
-
}, [
|
|
21
|
-
s,
|
|
22
|
-
i,
|
|
23
|
-
u,
|
|
24
|
-
a
|
|
25
|
-
]), { onRefresh: e(() => {
|
|
26
|
-
i(u({
|
|
27
|
-
...a,
|
|
28
|
-
cursor: null
|
|
29
|
-
}), { fetchPolicy: s });
|
|
30
|
-
}, [
|
|
31
|
-
s,
|
|
32
|
-
i,
|
|
33
|
-
u,
|
|
34
|
-
a
|
|
35
|
-
]) };
|
|
36
|
-
}
|
|
37
|
-
//#endregion
|
|
38
|
-
export { i as useBackofficeListRefetch };
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=useBackofficeListRefetch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBackofficeListRefetch.js","names":[],"sources":["../../../src/hooks/useBackofficeListRefetch.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport type { FetchPolicy } from 'relay-runtime';\n\nimport { stableListVariablesKey } from '@plumile/backoffice-core/state/stableKey.js';\nimport type { BackofficeListVariables } from '@plumile/backoffice-core/types.js';\n\ntype RefetchFn<TVariables> = (\n vars: TVariables,\n opts: { fetchPolicy: FetchPolicy },\n) => void;\n\ntype Params<Where, Sort extends string, Variables> = {\n refetch: RefetchFn<Variables>;\n variables: BackofficeListVariables<Where, Sort>;\n defaults: BackofficeListVariables<Where, Sort>;\n fetchPolicy: FetchPolicy;\n buildVariables?: (input: BackofficeListVariables<Where, Sort>) => Variables;\n};\n\n/**\n * Standardizes refetch behavior for backoffice list components:\n * - Refetches when list URL state changes (where/sort/count), gated by a stable key.\n * - Exposes a manual refresh callback using the same variables.\n *\n * This hook must not call Relay hooks (`useFragment`, `usePaginationFragment`, ...).\n */\nexport function useBackofficeListRefetch<\n Where,\n Sort extends string,\n Variables extends Record<string, unknown>,\n>({\n refetch,\n variables,\n defaults,\n fetchPolicy,\n buildVariables,\n}: Params<Where, Sort, Variables>): { onRefresh: () => void } {\n const lastRefetchKeyRef = useRef<string | null>(\n stableListVariablesKey({\n where: defaults.where,\n sort: defaults.sort,\n count: defaults.count,\n }),\n );\n\n const resolveVariables = useCallback(\n (input: BackofficeListVariables<Where, Sort>) => {\n if (buildVariables != null) {\n return buildVariables(input);\n }\n return input as unknown as Variables;\n },\n [buildVariables],\n );\n\n useEffect(() => {\n const key = stableListVariablesKey({\n where: variables.where,\n sort: variables.sort,\n count: variables.count,\n });\n if (lastRefetchKeyRef.current === key) {\n return;\n }\n lastRefetchKeyRef.current = key;\n\n const nextVariables = resolveVariables({ ...variables, cursor: null });\n refetch(nextVariables, { fetchPolicy });\n }, [fetchPolicy, refetch, resolveVariables, variables]);\n\n const onRefresh = useCallback(() => {\n const nextVariables = resolveVariables({ ...variables, cursor: null });\n refetch(nextVariables, { fetchPolicy });\n }, [fetchPolicy, refetch, resolveVariables, variables]);\n\n return { onRefresh };\n}\n"],"mappings":";;;AA0BA,SAAgB,EAId,EACA,YACA,cACA,aACA,gBACA,qBAC4D;CAC5D,IAAM,IAAoB,EACxB,EAAuB;EACrB,OAAO,EAAS;EAChB,MAAM,EAAS;EACf,OAAO,EAAS;EACjB,CAAC,CACH,EAEK,IAAmB,GACtB,MACK,KAAkB,OAGf,IAFE,EAAe,EAAM,EAIhC,CAAC,EAAe,CACjB;AAsBD,QApBA,QAAgB;EACd,IAAM,IAAM,EAAuB;GACjC,OAAO,EAAU;GACjB,MAAM,EAAU;GAChB,OAAO,EAAU;GAClB,CAAC;AACE,IAAkB,YAAY,MAGlC,EAAkB,UAAU,GAG5B,EADsB,EAAiB;GAAE,GAAG;GAAW,QAAQ;GAAM,CAAC,EAC/C,EAAE,gBAAa,CAAC;IACtC;EAAC;EAAa;EAAS;EAAkB;EAAU,CAAC,EAOhD,EAAE,WALS,QAAkB;AAElC,IADsB,EAAiB;GAAE,GAAG;GAAW,QAAQ;GAAM,CAAC,EAC/C,EAAE,gBAAa,CAAC;IACtC;EAAC;EAAa;EAAS;EAAkB;EAAU,CAAC,EAEnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBackofficeListUrlState.js","names":[],"sources":["../../../src/hooks/useBackofficeListUrlState.ts"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react';\nimport { RoutingContext, useLocation } from '@plumile/router';\n\nimport type {\n BackofficeListState,\n BackofficeResolvedListFacetConfig,\n} from '@plumile/backoffice-core/types.js';\n\n/** Normalizes a router `location.search` string into URLSearchParams. */\nfunction normalizeSearch(value: string): URLSearchParams {\n if (value.trim() === '') {\n return new URLSearchParams();\n }\n return new URLSearchParams(value);\n}\n\ntype ReturnValue<Where extends Record<string, unknown>, Sort extends string> = {\n state: BackofficeListState<Where, Sort>;\n pushState: (next: BackofficeListState<Where, Sort>) => void;\n};\n\n/** Keeps list state in sync with the URL search params for backoffice pages. */\nexport function useBackofficeListUrlState<\n Where extends Record<string, unknown>,\n Sort extends string,\n>(\n config: BackofficeResolvedListFacetConfig<Where, Sort>,\n): ReturnValue<Where, Sort> {\n const routing = useContext(RoutingContext);\n const { hash, pathname, search } = useLocation();\n const fallbackState = useMemo(() => {\n return {\n where: null,\n sort: null,\n } as BackofficeListState<Where, Sort>;\n }, []);\n\n const state = useMemo(() => {\n if (config.listUrlCodec == null) {\n return fallbackState;\n }\n return config.listUrlCodec.parse(normalizeSearch(search));\n }, [config.listUrlCodec, fallbackState, search]);\n\n const pushState = useCallback(\n (next: BackofficeListState<Where, Sort>) => {\n if (routing == null) {\n return;\n }\n if (config.listUrlCodec == null) {\n return;\n }\n\n const params = config.listUrlCodec.serialize(next);\n const qs = params.toString();\n\n let nextSearch = '';\n if (qs !== '') {\n nextSearch = `?${qs}`;\n }\n\n routing.history.push({\n pathname,\n search: nextSearch,\n hash,\n });\n },\n [config.listUrlCodec, hash, pathname, routing],\n );\n\n return { state, pushState };\n}\n"],"mappings":";;;AASA,SAAS,EAAgB,GAAgC;AAIvD,QAHI,EAAM,MAAM,KAAK,KACZ,IAAI,iBAAiB,GAEvB,IAAI,gBAAgB,EAAM;;AASnC,SAAgB,EAId,GAC0B;CAC1B,IAAM,IAAU,EAAW,EAAe,EACpC,EAAE,SAAM,aAAU,cAAW,GAAa,EAC1C,IAAgB,SACb;EACL,OAAO;EACP,MAAM;EACP,GACA,EAAE,CAAC;AAmCN,QAAO;EAAE,OAjCK,QACR,EAAO,gBAAgB,OAClB,IAEF,EAAO,aAAa,MAAM,EAAgB,EAAO,CAAC,EACxD;GAAC,EAAO;GAAc;GAAe;GAAO,CAAC;EA4BhC,WA1BE,GACf,MAA2C;AAI1C,OAHI,KAAW,QAGX,EAAO,gBAAgB,KACzB;GAIF,IAAM,IADS,EAAO,aAAa,UAAU,EAAK,CAChC,UAAU,EAExB,IAAa;AAKjB,GAJI,MAAO,OACT,IAAa,IAAI,MAGnB,EAAQ,QAAQ,KAAK;IACnB;IACA,QAAQ;IACR;IACD,CAAC;KAEJ;GAAC,EAAO;GAAc;GAAM;GAAU;GAAQ,CAC/C;EAE0B"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { startTransition as e, useCallback as t } from "react";
|
|
2
|
-
//#region src/hooks/useBackofficeLoadMore.ts
|
|
3
|
-
function n({ hasNext: n, isLoadingNext: r, loadNext: i, count: a }) {
|
|
4
|
-
return t(() => {
|
|
5
|
-
!n || r || e(() => {
|
|
6
|
-
i(a);
|
|
7
|
-
});
|
|
8
|
-
}, [
|
|
9
|
-
a,
|
|
10
|
-
n,
|
|
11
|
-
r,
|
|
12
|
-
i
|
|
13
|
-
]);
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { n as useBackofficeLoadMore };
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=useBackofficeLoadMore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBackofficeLoadMore.js","names":[],"sources":["../../../src/hooks/useBackofficeLoadMore.ts"],"sourcesContent":["import { startTransition, useCallback } from 'react';\n\ntype Params = {\n hasNext: boolean;\n isLoadingNext: boolean;\n loadNext: (count: number) => void;\n count: number;\n};\n\n/**\n * Wraps Relay `loadNext()` with consistent guards and `startTransition()`.\n */\nexport function useBackofficeLoadMore({\n hasNext,\n isLoadingNext,\n loadNext,\n count,\n}: Params): () => void {\n return useCallback(() => {\n if (!hasNext || isLoadingNext) {\n return;\n }\n\n startTransition(() => {\n loadNext(count);\n });\n }, [count, hasNext, isLoadingNext, loadNext]);\n}\n"],"mappings":";;AAYA,SAAgB,EAAsB,EACpC,YACA,kBACA,aACA,YACqB;AACrB,QAAO,QAAkB;AACnB,GAAC,KAAW,KAIhB,QAAsB;AACpB,KAAS,EAAM;IACf;IACD;EAAC;EAAO;EAAS;EAAe;EAAS,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { useBackofficeAuthLogoutConfig as e } from "../provider/useBackofficeLazyValue.js";
|
|
2
|
-
import * as t from "react-relay";
|
|
3
|
-
//#region src/hooks/useBackofficeSessionAuth.ts
|
|
4
|
-
var { useMutation: n } = t, r = () => {
|
|
5
|
-
let [t, r] = n(e().logoutMutation);
|
|
6
|
-
return {
|
|
7
|
-
logout: async () => new Promise((e, n) => {
|
|
8
|
-
t({
|
|
9
|
-
variables: {},
|
|
10
|
-
onCompleted: () => {
|
|
11
|
-
e();
|
|
12
|
-
},
|
|
13
|
-
onError: (e) => {
|
|
14
|
-
if (e instanceof Error) {
|
|
15
|
-
n(e);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
n(/* @__PURE__ */ Error("Logout failed."));
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}),
|
|
22
|
-
isLoading: r
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
//#endregion
|
|
26
|
-
export { r as default, r as useBackofficeSessionAuth };
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=useBackofficeSessionAuth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBackofficeSessionAuth.js","names":[],"sources":["../../../src/hooks/useBackofficeSessionAuth.ts"],"sourcesContent":["import * as ReactRelay from 'react-relay';\nimport type { MutationParameters } from 'relay-runtime';\n\nimport type { LogoutResponse, LogoutVariables } from './useAuth.js';\nimport { useBackofficeAuthLogoutConfig } from '../provider/useBackofficeLazyValue.js';\n\nconst { useMutation } = ReactRelay;\n\nexport type BackofficeSessionAuth = {\n logout: () => Promise<void>;\n isLoading: boolean;\n};\n\nexport const useBackofficeSessionAuth = (): BackofficeSessionAuth => {\n const auth = useBackofficeAuthLogoutConfig();\n\n type LogoutMutation = MutationParameters & {\n response: LogoutResponse;\n variables: LogoutVariables;\n };\n\n const [commitLogout, isLogoutInFlight] = useMutation<LogoutMutation>(\n auth.logoutMutation,\n );\n\n return {\n logout: async () => {\n return new Promise((resolve, reject) => {\n commitLogout({\n variables: {},\n onCompleted: () => {\n resolve();\n },\n onError: (error) => {\n if (error instanceof Error) {\n reject(error);\n return;\n }\n reject(new Error('Logout failed.'));\n },\n });\n });\n },\n isLoading: isLogoutInFlight,\n };\n};\n\nexport default useBackofficeSessionAuth;\n"],"mappings":";;;AAMA,IAAM,EAAE,mBAAgB,GAOX,UAAwD;CAQnE,IAAM,CAAC,GAAc,KAAoB,EAP5B,GAA+B,CAQrC,eACN;AAED,QAAO;EACL,QAAQ,YACC,IAAI,SAAS,GAAS,MAAW;AACtC,KAAa;IACX,WAAW,EAAE;IACb,mBAAmB;AACjB,QAAS;;IAEX,UAAU,MAAU;AAClB,SAAI,aAAiB,OAAO;AAC1B,QAAO,EAAM;AACb;;AAEF,OAAO,gBAAI,MAAM,iBAAiB,CAAC;;IAEtC,CAAC;IACF;EAEJ,WAAW;EACZ"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { useCallback as e, useEffect as t, useMemo as n, useState as r } from "react";
|
|
2
|
-
//#region src/hooks/useBackofficeSidebarPins.ts
|
|
3
|
-
var i = "backoffice.sidebar.pins.v1", a = (e) => {
|
|
4
|
-
if (typeof window > "u") return [];
|
|
5
|
-
try {
|
|
6
|
-
let t = window.localStorage.getItem(e);
|
|
7
|
-
if (t == null) return [];
|
|
8
|
-
let n = JSON.parse(t);
|
|
9
|
-
return Array.isArray(n) ? n.filter((e) => typeof e == "string") : [];
|
|
10
|
-
} catch {
|
|
11
|
-
return [];
|
|
12
|
-
}
|
|
13
|
-
}, o = (e, t) => {
|
|
14
|
-
let n = [], r = /* @__PURE__ */ new Set();
|
|
15
|
-
return e.forEach((e) => {
|
|
16
|
-
t.has(e) && (r.has(e) || (r.add(e), n.push(e)));
|
|
17
|
-
}), n;
|
|
18
|
-
}, s = (s) => {
|
|
19
|
-
let { storageKey: c = i, visibleEntityIds: l } = s, u = n(() => new Set(l), [l]), [d, f] = r(() => o(a(c), u));
|
|
20
|
-
t(() => {
|
|
21
|
-
f((e) => {
|
|
22
|
-
let t = o(e, u);
|
|
23
|
-
if (t.length === e.length) {
|
|
24
|
-
let n = !0;
|
|
25
|
-
for (let r = 0; r < t.length; r += 1) if (t[r] !== e[r]) {
|
|
26
|
-
n = !1;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
if (n) return e;
|
|
30
|
-
}
|
|
31
|
-
return t;
|
|
32
|
-
});
|
|
33
|
-
}, [u]), t(() => {
|
|
34
|
-
f(o(a(c), u));
|
|
35
|
-
}, [c, u]), t(() => {
|
|
36
|
-
if (!(typeof window > "u")) try {
|
|
37
|
-
window.localStorage.setItem(c, JSON.stringify(d));
|
|
38
|
-
} catch {}
|
|
39
|
-
}, [d, c]);
|
|
40
|
-
let p = n(() => new Set(d), [d]), m = e((e) => {
|
|
41
|
-
u.has(e) && f((t) => t.includes(e) ? t : [...t, e]);
|
|
42
|
-
}, [u]), h = e((e) => {
|
|
43
|
-
f((t) => t.filter((t) => t !== e));
|
|
44
|
-
}, []), g = e((e) => {
|
|
45
|
-
p.has(e) ? h(e) : m(e);
|
|
46
|
-
}, [
|
|
47
|
-
m,
|
|
48
|
-
p,
|
|
49
|
-
h
|
|
50
|
-
]), _ = e((e, t) => {
|
|
51
|
-
e !== t && f((n) => {
|
|
52
|
-
let r = n.indexOf(e), i = n.indexOf(t);
|
|
53
|
-
if (r === -1 || i === -1 || r === i) return n;
|
|
54
|
-
let a = [...n];
|
|
55
|
-
return a.splice(r, 1), a.splice(i, 0, e), a;
|
|
56
|
-
});
|
|
57
|
-
}, []);
|
|
58
|
-
return {
|
|
59
|
-
pins: d,
|
|
60
|
-
isPinned: e((e) => p.has(e), [p]),
|
|
61
|
-
pin: m,
|
|
62
|
-
unpin: h,
|
|
63
|
-
toggle: g,
|
|
64
|
-
reorder: _
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
//#endregion
|
|
68
|
-
export { s as default, s as useBackofficeSidebarPins };
|
|
69
|
-
|
|
70
|
-
//# sourceMappingURL=useBackofficeSidebarPins.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBackofficeSidebarPins.js","names":[],"sources":["../../../src/hooks/useBackofficeSidebarPins.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\nconst DEFAULT_STORAGE_KEY = 'backoffice.sidebar.pins.v1';\n\ntype PinsPayload = unknown;\n\nconst readPinsFromStorage = (storageKey: string): string[] => {\n if (typeof window === 'undefined') {\n return [];\n }\n try {\n const raw = window.localStorage.getItem(storageKey);\n if (raw == null) {\n return [];\n }\n const parsed = JSON.parse(raw) as PinsPayload;\n if (!Array.isArray(parsed)) {\n return [];\n }\n return parsed.filter((entry): entry is string => {\n return typeof entry === 'string';\n });\n } catch {\n return [];\n }\n};\n\nconst normalizePins = (pins: readonly string[], validIds: Set<string>) => {\n const output: string[] = [];\n const seen = new Set<string>();\n pins.forEach((entry) => {\n if (!validIds.has(entry)) {\n return;\n }\n if (seen.has(entry)) {\n return;\n }\n seen.add(entry);\n output.push(entry);\n });\n return output;\n};\n\nexport type SidebarPinsState = {\n pins: readonly string[];\n isPinned: (id: string) => boolean;\n pin: (id: string) => void;\n unpin: (id: string) => void;\n toggle: (id: string) => void;\n reorder: (fromId: string, toId: string) => void;\n};\n\nexport type UseBackofficeSidebarPinsInput = {\n storageKey?: string;\n visibleEntityIds: readonly string[];\n};\n\nexport const useBackofficeSidebarPins = (\n input: UseBackofficeSidebarPinsInput,\n): SidebarPinsState => {\n const { storageKey = DEFAULT_STORAGE_KEY, visibleEntityIds } = input;\n const validIds = useMemo(() => {\n return new Set(visibleEntityIds);\n }, [visibleEntityIds]);\n\n const [pins, setPins] = useState<string[]>(() => {\n const stored = readPinsFromStorage(storageKey);\n return normalizePins(stored, validIds);\n });\n\n useEffect(() => {\n setPins((prev) => {\n const normalized = normalizePins(prev, validIds);\n if (normalized.length === prev.length) {\n let unchanged = true;\n for (let index = 0; index < normalized.length; index += 1) {\n if (normalized[index] !== prev[index]) {\n unchanged = false;\n break;\n }\n }\n if (unchanged) {\n return prev;\n }\n }\n return normalized;\n });\n }, [validIds]);\n\n useEffect(() => {\n const stored = readPinsFromStorage(storageKey);\n setPins(normalizePins(stored, validIds));\n }, [storageKey, validIds]);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return;\n }\n try {\n window.localStorage.setItem(storageKey, JSON.stringify(pins));\n } catch {\n // Ignore storage errors in non-browser or restricted environments.\n }\n }, [pins, storageKey]);\n\n const pinsSet = useMemo(() => {\n return new Set(pins);\n }, [pins]);\n\n const pin = useCallback(\n (id: string) => {\n if (!validIds.has(id)) {\n return;\n }\n setPins((prev) => {\n if (prev.includes(id)) {\n return prev;\n }\n return [...prev, id];\n });\n },\n [validIds],\n );\n\n const unpin = useCallback((id: string) => {\n setPins((prev) => {\n return prev.filter((entry) => {\n return entry !== id;\n });\n });\n }, []);\n\n const toggle = useCallback(\n (id: string) => {\n if (pinsSet.has(id)) {\n unpin(id);\n } else {\n pin(id);\n }\n },\n [pin, pinsSet, unpin],\n );\n\n const reorder = useCallback((fromId: string, toId: string) => {\n if (fromId === toId) {\n return;\n }\n setPins((prev) => {\n const fromIndex = prev.indexOf(fromId);\n const toIndex = prev.indexOf(toId);\n if (fromIndex === -1 || toIndex === -1) {\n return prev;\n }\n if (fromIndex === toIndex) {\n return prev;\n }\n const next = [...prev];\n next.splice(fromIndex, 1);\n next.splice(toIndex, 0, fromId);\n return next;\n });\n }, []);\n\n const isPinned = useCallback(\n (id: string) => {\n return pinsSet.has(id);\n },\n [pinsSet],\n );\n\n return {\n pins,\n isPinned,\n pin,\n unpin,\n toggle,\n reorder,\n };\n};\n\nexport default useBackofficeSidebarPins;\n"],"mappings":";;AAEA,IAAM,IAAsB,8BAItB,KAAuB,MAAiC;AAC5D,KAAI,OAAO,SAAW,IACpB,QAAO,EAAE;AAEX,KAAI;EACF,IAAM,IAAM,OAAO,aAAa,QAAQ,EAAW;AACnD,MAAI,KAAO,KACT,QAAO,EAAE;EAEX,IAAM,IAAS,KAAK,MAAM,EAAI;AAI9B,SAHK,MAAM,QAAQ,EAAO,GAGnB,EAAO,QAAQ,MACb,OAAO,KAAU,SACxB,GAJO,EAAE;SAKL;AACN,SAAO,EAAE;;GAIP,KAAiB,GAAyB,MAA0B;CACxE,IAAM,IAAmB,EAAE,EACrB,oBAAO,IAAI,KAAa;AAW9B,QAVA,EAAK,SAAS,MAAU;AACjB,IAAS,IAAI,EAAM,KAGpB,EAAK,IAAI,EAAM,KAGnB,EAAK,IAAI,EAAM,EACf,EAAO,KAAK,EAAM;GAClB,EACK;GAiBI,KACX,MACqB;CACrB,IAAM,EAAE,gBAAa,GAAqB,wBAAqB,GACzD,IAAW,QACR,IAAI,IAAI,EAAiB,EAC/B,CAAC,EAAiB,CAAC,EAEhB,CAAC,GAAM,KAAW,QAEf,EADQ,EAAoB,EAAW,EACjB,EAAS,CACtC;AA0BF,CAxBA,QAAgB;AACd,KAAS,MAAS;GAChB,IAAM,IAAa,EAAc,GAAM,EAAS;AAChD,OAAI,EAAW,WAAW,EAAK,QAAQ;IACrC,IAAI,IAAY;AAChB,SAAK,IAAI,IAAQ,GAAG,IAAQ,EAAW,QAAQ,KAAS,EACtD,KAAI,EAAW,OAAW,EAAK,IAAQ;AACrC,SAAY;AACZ;;AAGJ,QAAI,EACF,QAAO;;AAGX,UAAO;IACP;IACD,CAAC,EAAS,CAAC,EAEd,QAAgB;AAEd,IAAQ,EADO,EAAoB,EAAW,EAChB,EAAS,CAAC;IACvC,CAAC,GAAY,EAAS,CAAC,EAE1B,QAAgB;AACV,eAAO,SAAW,KAGtB,KAAI;AACF,UAAO,aAAa,QAAQ,GAAY,KAAK,UAAU,EAAK,CAAC;UACvD;IAGP,CAAC,GAAM,EAAW,CAAC;CAEtB,IAAM,IAAU,QACP,IAAI,IAAI,EAAK,EACnB,CAAC,EAAK,CAAC,EAEJ,IAAM,GACT,MAAe;AACT,IAAS,IAAI,EAAG,IAGrB,GAAS,MACH,EAAK,SAAS,EAAG,GACZ,IAEF,CAAC,GAAG,GAAM,EAAG,CACpB;IAEJ,CAAC,EAAS,CACX,EAEK,IAAQ,GAAa,MAAe;AACxC,KAAS,MACA,EAAK,QAAQ,MACX,MAAU,EACjB,CACF;IACD,EAAE,CAAC,EAEA,IAAS,GACZ,MAAe;AACd,EAAI,EAAQ,IAAI,EAAG,GACjB,EAAM,EAAG,GAET,EAAI,EAAG;IAGX;EAAC;EAAK;EAAS;EAAM,CACtB,EAEK,IAAU,GAAa,GAAgB,MAAiB;AACxD,QAAW,KAGf,GAAS,MAAS;GAChB,IAAM,IAAY,EAAK,QAAQ,EAAO,EAChC,IAAU,EAAK,QAAQ,EAAK;AAIlC,OAHI,MAAc,MAAM,MAAY,MAGhC,MAAc,EAChB,QAAO;GAET,IAAM,IAAO,CAAC,GAAG,EAAK;AAGtB,UAFA,EAAK,OAAO,GAAW,EAAE,EACzB,EAAK,OAAO,GAAS,GAAG,EAAO,EACxB;IACP;IACD,EAAE,CAAC;AASN,QAAO;EACL;EACA,UATe,GACd,MACQ,EAAQ,IAAI,EAAG,EAExB,CAAC,EAAQ,CACV;EAKC;EACA;EACA;EACA;EACD"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useSearchParams as e } from "@plumile/router";
|
|
2
|
-
//#region src/hooks/useBackofficeToolsUrlParams.ts
|
|
3
|
-
function t() {
|
|
4
|
-
let { params: t, getParam: n, setParam: r, setParams: i } = e();
|
|
5
|
-
return {
|
|
6
|
-
params: t,
|
|
7
|
-
getParam: n,
|
|
8
|
-
setParam: r,
|
|
9
|
-
setParams: i
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { t as useBackofficeToolsUrlParams };
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=useBackofficeToolsUrlParams.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBackofficeToolsUrlParams.js","names":[],"sources":["../../../src/hooks/useBackofficeToolsUrlParams.ts"],"sourcesContent":["import { useSearchParams } from '@plumile/router';\n\nexport type BackofficeToolsUrlParams = {\n params: URLSearchParams;\n getParam: (key: string) => string | null;\n setParam: (key: string, value: string | null) => void;\n setParams: (updates: Record<string, string | null | undefined>) => void;\n};\n\n/** Keeps tools params in sync with the URL search params. */\nexport function useBackofficeToolsUrlParams(): BackofficeToolsUrlParams {\n const { params, getParam, setParam, setParams } = useSearchParams();\n return { params, getParam, setParam, setParams };\n}\n"],"mappings":";;AAUA,SAAgB,IAAwD;CACtE,IAAM,EAAE,WAAQ,aAAU,aAAU,iBAAc,GAAiB;AACnE,QAAO;EAAE;EAAQ;EAAU;EAAU;EAAW"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { useEffect as e, useMemo as t, useRef as n, useState as r } from "react";
|
|
2
|
-
import * as i from "react-relay";
|
|
3
|
-
//#region src/hooks/useConditionalSubscription.ts
|
|
4
|
-
function a() {
|
|
5
|
-
return Reflect.get(i, "default") ?? i;
|
|
6
|
-
}
|
|
7
|
-
var o = a();
|
|
8
|
-
function s(i, a) {
|
|
9
|
-
let s = o.useRelayEnvironment(), [c, l] = r(null), { enabled: u = !0, deps: d = [], getVariables: f } = a, p = t(() => {
|
|
10
|
-
try {
|
|
11
|
-
return f == null ? i.variables : f();
|
|
12
|
-
} catch {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
}, [i.variables, f]), m = t(() => {
|
|
16
|
-
if (p == null) return null;
|
|
17
|
-
try {
|
|
18
|
-
return JSON.stringify(p);
|
|
19
|
-
} catch {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
}, [p]), h = !!u, g = p, _ = h && g != null, v = n(null);
|
|
23
|
-
return e(() => {
|
|
24
|
-
let e = null;
|
|
25
|
-
return h && g != null && (l(null), e = o.requestSubscription(s, {
|
|
26
|
-
subscription: i.subscription,
|
|
27
|
-
variables: g,
|
|
28
|
-
cacheConfig: i.cacheConfig,
|
|
29
|
-
configs: i.configs,
|
|
30
|
-
onCompleted: i.onCompleted,
|
|
31
|
-
onError: (e) => {
|
|
32
|
-
l(e), i.onError?.(e);
|
|
33
|
-
},
|
|
34
|
-
onNext: i.onNext,
|
|
35
|
-
updater: i.updater
|
|
36
|
-
}), v.current = e), () => {
|
|
37
|
-
if (e != null) try {
|
|
38
|
-
e.dispose();
|
|
39
|
-
} catch {}
|
|
40
|
-
v.current === e && (v.current = null);
|
|
41
|
-
};
|
|
42
|
-
}, [
|
|
43
|
-
i,
|
|
44
|
-
d,
|
|
45
|
-
s,
|
|
46
|
-
h,
|
|
47
|
-
m,
|
|
48
|
-
g
|
|
49
|
-
]), {
|
|
50
|
-
active: _,
|
|
51
|
-
error: c
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
//#endregion
|
|
55
|
-
export { s as useConditionalSubscription };
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=useConditionalSubscription.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConditionalSubscription.js","names":[],"sources":["../../../src/hooks/useConditionalSubscription.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { GraphQLSubscriptionConfig, OperationType } from 'relay-runtime';\n\ntype ConditionalOptions<T extends OperationType> = {\n enabled: boolean;\n deps?: readonly unknown[];\n getVariables?: () => T['variables'];\n};\n\ntype UseConditionalSubscriptionReturn = {\n active: boolean;\n error: Error | null;\n};\n\ntype Hop = { dispose: () => void } | null;\n\n/** Resolve the Relay module regardless of whether the package exposes a default export shim. */\nfunction resolveRelayApi(): typeof ReactRelay {\n const relayDefault: unknown = Reflect.get(ReactRelay, 'default');\n if (relayDefault != null) {\n return relayDefault as typeof ReactRelay;\n }\n return ReactRelay;\n}\n\nconst relayApi = resolveRelayApi();\n\n/** Subscribe only when the caller enables the subscription and variables exist. */\nexport function useConditionalSubscription<T extends OperationType>(\n config: GraphQLSubscriptionConfig<T>,\n options: ConditionalOptions<T>,\n): UseConditionalSubscriptionReturn {\n const environment = relayApi.useRelayEnvironment();\n const [error, setError] = useState<Error | null>(null);\n\n const { enabled = true, deps = [], getVariables } = options;\n\n const resolvedVariables = useMemo<T['variables'] | null>(() => {\n try {\n if (getVariables != null) {\n return getVariables();\n }\n return config.variables;\n } catch {\n return null;\n }\n }, [config.variables, getVariables]);\n\n const stableVarsString = useMemo(() => {\n if (resolvedVariables == null) {\n return null;\n }\n try {\n return JSON.stringify(resolvedVariables);\n } catch {\n return null;\n }\n }, [resolvedVariables]);\n\n const isEnabled = Boolean(enabled);\n const variables = resolvedVariables;\n const active = isEnabled && variables != null;\n\n const disposableRef = useRef<Hop>(null);\n\n useEffect(() => {\n let disposable: Hop = null;\n\n if (isEnabled && variables != null) {\n setError(null);\n\n disposable = relayApi.requestSubscription<T>(environment, {\n subscription: config.subscription,\n variables,\n cacheConfig: config.cacheConfig,\n configs: config.configs,\n onCompleted: config.onCompleted,\n onError: (nextError) => {\n setError(nextError);\n config.onError?.(nextError);\n },\n onNext: config.onNext,\n updater: config.updater,\n });\n\n disposableRef.current = disposable;\n }\n\n return () => {\n if (disposable != null) {\n try {\n disposable.dispose();\n } catch {\n // ignore cleanup failures\n }\n }\n if (disposableRef.current === disposable) {\n disposableRef.current = null;\n }\n };\n }, [config, deps, environment, isEnabled, stableVarsString, variables]);\n\n return { active, error };\n}\n"],"mappings":";;;AAkBA,SAAS,IAAqC;AAK5C,QAJ8B,QAAQ,IAAI,GAAY,UAAU,IAIzD;;AAGT,IAAM,IAAW,GAAiB;AAGlC,SAAgB,EACd,GACA,GACkC;CAClC,IAAM,IAAc,EAAS,qBAAqB,EAC5C,CAAC,GAAO,KAAY,EAAuB,KAAK,EAEhD,EAAE,aAAU,IAAM,UAAO,EAAE,EAAE,oBAAiB,GAE9C,IAAoB,QAAqC;AAC7D,MAAI;AAIF,UAHI,KAAgB,OAGb,EAAO,YAFL,GAAc;UAGjB;AACN,UAAO;;IAER,CAAC,EAAO,WAAW,EAAa,CAAC,EAE9B,IAAmB,QAAc;AACrC,MAAI,KAAqB,KACvB,QAAO;AAET,MAAI;AACF,UAAO,KAAK,UAAU,EAAkB;UAClC;AACN,UAAO;;IAER,CAAC,EAAkB,CAAC,EAEjB,IAAY,EAAQ,GACpB,IAAY,GACZ,IAAS,KAAa,KAAa,MAEnC,IAAgB,EAAY,KAAK;AAuCvC,QArCA,QAAgB;EACd,IAAI,IAAkB;AAsBtB,SApBI,KAAa,KAAa,SAC5B,EAAS,KAAK,EAEd,IAAa,EAAS,oBAAuB,GAAa;GACxD,cAAc,EAAO;GACrB;GACA,aAAa,EAAO;GACpB,SAAS,EAAO;GAChB,aAAa,EAAO;GACpB,UAAU,MAAc;AAEtB,IADA,EAAS,EAAU,EACnB,EAAO,UAAU,EAAU;;GAE7B,QAAQ,EAAO;GACf,SAAS,EAAO;GACjB,CAAC,EAEF,EAAc,UAAU,UAGb;AACX,OAAI,KAAc,KAChB,KAAI;AACF,MAAW,SAAS;WACd;AAIV,GAAI,EAAc,YAAY,MAC5B,EAAc,UAAU;;IAG3B;EAAC;EAAQ;EAAM;EAAa;EAAW;EAAkB;EAAU,CAAC,EAEhE;EAAE;EAAQ;EAAO"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
-
//#region src/hooks/useCopyToClipboard.ts
|
|
3
|
-
var i = "copy-to-clipboard-fallback";
|
|
4
|
-
function a(e) {
|
|
5
|
-
if (typeof document > "u") return;
|
|
6
|
-
let t = document.getElementById(i);
|
|
7
|
-
t ?? (t = document.createElement("textarea"), t.id = i, t.setAttribute("readonly", ""), t.style.position = "absolute", t.style.left = "-9999px", t.style.top = "0", t.style.opacity = "0", document.body.appendChild(t)), t.value = e, t.select(), document.execCommand("copy");
|
|
8
|
-
}
|
|
9
|
-
function o(i = 2e3) {
|
|
10
|
-
let [o, s] = r(null), c = n(null);
|
|
11
|
-
return t(() => () => {
|
|
12
|
-
c.current != null && window.clearTimeout(c.current);
|
|
13
|
-
}, []), {
|
|
14
|
-
copiedKey: o,
|
|
15
|
-
copy: e(async (e, t) => {
|
|
16
|
-
let n = !1, r;
|
|
17
|
-
if (typeof navigator < "u" && (r = navigator.clipboard), r != null) try {
|
|
18
|
-
await r.writeText(e), n = !0;
|
|
19
|
-
} catch {
|
|
20
|
-
n = !1;
|
|
21
|
-
}
|
|
22
|
-
return n ||= (a(e), !0), t != null && (s(t), c.current != null && window.clearTimeout(c.current), c.current = window.setTimeout(() => {
|
|
23
|
-
s(null), c.current = null;
|
|
24
|
-
}, i)), n;
|
|
25
|
-
}, [i])
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
//#endregion
|
|
29
|
-
export { o as default, o as useCopyToClipboard };
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=useCopyToClipboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCopyToClipboard.js","names":[],"sources":["../../../src/hooks/useCopyToClipboard.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nconst FALLBACK_TEXTAREA_ID = 'copy-to-clipboard-fallback';\n\n/** Write to the clipboard via a hidden textarea when the Clipboard API is unavailable. */\nfunction writeWithFallback(value: string): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let textarea = document.getElementById(\n FALLBACK_TEXTAREA_ID,\n ) as HTMLTextAreaElement | null;\n\n if (textarea == null) {\n textarea = document.createElement('textarea');\n textarea.id = FALLBACK_TEXTAREA_ID;\n textarea.setAttribute('readonly', '');\n textarea.style.position = 'absolute';\n textarea.style.left = '-9999px';\n textarea.style.top = '0';\n textarea.style.opacity = '0';\n document.body.appendChild(textarea);\n }\n\n textarea.value = value;\n textarea.select();\n document.execCommand('copy');\n}\n\n/** Copy text with best-effort browser fallback and short-lived copied state. */\nexport function useCopyToClipboard(timeoutMs = 2000): {\n copiedKey: string | null;\n copy: (value: string, key?: string) => Promise<boolean>;\n} {\n const [copiedKey, setCopiedKey] = useState<string | null>(null);\n const timeoutRef = useRef<number | null>(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current != null) {\n window.clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n const copy = useCallback(\n async (value: string, key?: string): Promise<boolean> => {\n let succeeded = false;\n\n let clipboard: Clipboard | undefined;\n if (typeof navigator !== 'undefined') {\n clipboard = navigator.clipboard;\n }\n\n if (clipboard != null) {\n try {\n await clipboard.writeText(value);\n succeeded = true;\n } catch {\n succeeded = false;\n }\n }\n\n if (!succeeded) {\n writeWithFallback(value);\n succeeded = true;\n }\n\n if (key != null) {\n setCopiedKey(key);\n if (timeoutRef.current != null) {\n window.clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = window.setTimeout(() => {\n setCopiedKey(null);\n timeoutRef.current = null;\n }, timeoutMs);\n }\n\n return succeeded;\n },\n [timeoutMs],\n );\n\n return { copiedKey, copy };\n}\n\nexport default useCopyToClipboard;\n"],"mappings":";;AAEA,IAAM,IAAuB;AAG7B,SAAS,EAAkB,GAAqB;AAC9C,KAAI,OAAO,WAAa,IACtB;CAGF,IAAI,IAAW,SAAS,eACtB,EACD;AAeD,CAbI,MACF,IAAW,SAAS,cAAc,WAAW,EAC7C,EAAS,KAAK,GACd,EAAS,aAAa,YAAY,GAAG,EACrC,EAAS,MAAM,WAAW,YAC1B,EAAS,MAAM,OAAO,WACtB,EAAS,MAAM,MAAM,KACrB,EAAS,MAAM,UAAU,KACzB,SAAS,KAAK,YAAY,EAAS,GAGrC,EAAS,QAAQ,GACjB,EAAS,QAAQ,EACjB,SAAS,YAAY,OAAO;;AAI9B,SAAgB,EAAmB,IAAY,KAG7C;CACA,IAAM,CAAC,GAAW,KAAgB,EAAwB,KAAK,EACzD,IAAa,EAAsB,KAAK;AAiD9C,QA/CA,cACe;AACX,EAAI,EAAW,WAAW,QACxB,OAAO,aAAa,EAAW,QAAQ;IAG1C,EAAE,CAAC,EAyCC;EAAE;EAAW,MAvCP,EACX,OAAO,GAAe,MAAmC;GACvD,IAAI,IAAY,IAEZ;AAKJ,OAJI,OAAO,YAAc,QACvB,IAAY,UAAU,YAGpB,KAAa,KACf,KAAI;AAEF,IADA,MAAM,EAAU,UAAU,EAAM,EAChC,IAAY;WACN;AACN,QAAY;;AAoBhB,UAhBA,AAEE,OADA,EAAkB,EAAM,EACZ,KAGV,KAAO,SACT,EAAa,EAAI,EACb,EAAW,WAAW,QACxB,OAAO,aAAa,EAAW,QAAQ,EAEzC,EAAW,UAAU,OAAO,iBAAiB;AAE3C,IADA,EAAa,KAAK,EAClB,EAAW,UAAU;MACpB,EAAU,GAGR;KAET,CAAC,EAAU,CACZ;EAEyB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { useCallback as e, useEffect as t, useState as n } from "react";
|
|
2
|
-
//#region src/hooks/useRefetchNeededReload.ts
|
|
3
|
-
function r(r) {
|
|
4
|
-
let [i, a] = n(null);
|
|
5
|
-
return t(() => {
|
|
6
|
-
a(null);
|
|
7
|
-
}, [r]), {
|
|
8
|
-
reason: i,
|
|
9
|
-
onRefetchNeeded: e((e) => {
|
|
10
|
-
a(e ?? "UNKNOWN");
|
|
11
|
-
}, []),
|
|
12
|
-
reload: e(() => {
|
|
13
|
-
window.location.reload();
|
|
14
|
-
}, []),
|
|
15
|
-
clear: e(() => {
|
|
16
|
-
a(null);
|
|
17
|
-
}, [])
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//#endregion
|
|
21
|
-
export { r as useRefetchNeededReload };
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=useRefetchNeededReload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRefetchNeededReload.js","names":[],"sources":["../../../src/hooks/useRefetchNeededReload.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\ntype RefetchReason = string;\n\ntype UseRefetchNeededReloadReturn = {\n reason: RefetchReason | null;\n onRefetchNeeded: (reason: RefetchReason | null | undefined) => void;\n reload: () => void;\n clear: () => void;\n};\n\n/** Track refetch-needed interruptions and expose a reload helper. */\nexport function useRefetchNeededReload(\n resetKey: string | null | undefined,\n): UseRefetchNeededReloadReturn {\n const [reason, setReason] = useState<RefetchReason | null>(null);\n\n useEffect(() => {\n setReason(null);\n }, [resetKey]);\n\n const onRefetchNeeded = useCallback(\n (nextReason: RefetchReason | null | undefined) => {\n setReason(nextReason ?? 'UNKNOWN');\n },\n [],\n );\n\n const reload = useCallback(() => {\n window.location.reload();\n }, []);\n\n const clear = useCallback(() => {\n setReason(null);\n }, []);\n\n return { reason, onRefetchNeeded, reload, clear };\n}\n"],"mappings":";;AAYA,SAAgB,EACd,GAC8B;CAC9B,IAAM,CAAC,GAAQ,KAAa,EAA+B,KAAK;AAqBhE,QAnBA,QAAgB;AACd,IAAU,KAAK;IACd,CAAC,EAAS,CAAC,EAiBP;EAAE;EAAQ,iBAfO,GACrB,MAAiD;AAChD,KAAU,KAAc,UAAU;KAEpC,EAAE,CACH;EAUiC,QARnB,QAAkB;AAC/B,UAAO,SAAS,QAAQ;KACvB,EAAE,CAAC;EAMoC,OAJ5B,QAAkB;AAC9B,KAAU,KAAK;KACd,EAAE,CAAC;EAE2C"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useCallback as e, useEffect as t, useMemo as n, useState as r } from "react";
|
|
2
|
-
//#region src/hooks/useSidebarGroupCollapse.ts
|
|
3
|
-
var i = (e, t) => {
|
|
4
|
-
let n = {};
|
|
5
|
-
return e.forEach((e) => {
|
|
6
|
-
n[e] = !0;
|
|
7
|
-
}), t != null && e.includes(t) && (n[t] = !1), n;
|
|
8
|
-
}, a = (a) => {
|
|
9
|
-
let { groupIds: o, activeGroupId: s } = a, c = n(() => [...o], [o]), [l, u] = r(() => i(c, s));
|
|
10
|
-
return t(() => {
|
|
11
|
-
u((e) => {
|
|
12
|
-
let t = {};
|
|
13
|
-
return c.forEach((n) => {
|
|
14
|
-
t[n] = e[n] ?? !0;
|
|
15
|
-
}), s != null && c.includes(s) && (t[s] = !1), t;
|
|
16
|
-
});
|
|
17
|
-
}, [s, c]), t(() => {
|
|
18
|
-
s != null && u((e) => e[s] === !1 ? e : {
|
|
19
|
-
...e,
|
|
20
|
-
[s]: !1
|
|
21
|
-
});
|
|
22
|
-
}, [s]), {
|
|
23
|
-
collapsedByGroupId: l,
|
|
24
|
-
setCollapsed: e((e, t) => {
|
|
25
|
-
u((n) => n[e] === t ? n : {
|
|
26
|
-
...n,
|
|
27
|
-
[e]: t
|
|
28
|
-
});
|
|
29
|
-
}, [])
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
//#endregion
|
|
33
|
-
export { a as default, a as useSidebarGroupCollapse };
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=useSidebarGroupCollapse.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSidebarGroupCollapse.js","names":[],"sources":["../../../src/hooks/useSidebarGroupCollapse.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\nexport type SidebarGroupCollapseState = Record<string, boolean | undefined>;\n\nexport type UseSidebarGroupCollapseInput = {\n groupIds: readonly string[];\n activeGroupId?: string | null;\n};\n\nconst buildInitialState = (\n groupIds: readonly string[],\n activeGroupId?: string | null,\n): SidebarGroupCollapseState => {\n const state: SidebarGroupCollapseState = {};\n groupIds.forEach((groupId) => {\n state[groupId] = true;\n });\n if (activeGroupId != null && groupIds.includes(activeGroupId)) {\n state[activeGroupId] = false;\n }\n return state;\n};\n\nexport const useSidebarGroupCollapse = (\n input: UseSidebarGroupCollapseInput,\n): {\n collapsedByGroupId: SidebarGroupCollapseState;\n setCollapsed: (groupId: string, collapsed: boolean) => void;\n} => {\n const { groupIds, activeGroupId } = input;\n\n const groupIdList = useMemo(() => {\n return [...groupIds];\n }, [groupIds]);\n\n const [collapsedByGroupId, setCollapsedByGroupId] =\n useState<SidebarGroupCollapseState>(() => {\n return buildInitialState(groupIdList, activeGroupId);\n });\n\n useEffect(() => {\n setCollapsedByGroupId((prev) => {\n const next: SidebarGroupCollapseState = {};\n\n groupIdList.forEach((groupId) => {\n const existing = prev[groupId];\n next[groupId] = existing ?? true;\n });\n\n if (activeGroupId != null && groupIdList.includes(activeGroupId)) {\n next[activeGroupId] = false;\n }\n\n return next;\n });\n }, [activeGroupId, groupIdList]);\n\n useEffect(() => {\n if (activeGroupId == null) {\n return;\n }\n setCollapsedByGroupId((prev) => {\n if (prev[activeGroupId] === false) {\n return prev;\n }\n return {\n ...prev,\n [activeGroupId]: false,\n };\n });\n }, [activeGroupId]);\n\n const setCollapsed = useCallback((groupId: string, collapsed: boolean) => {\n setCollapsedByGroupId((prev) => {\n if (prev[groupId] === collapsed) {\n return prev;\n }\n return {\n ...prev,\n [groupId]: collapsed,\n };\n });\n }, []);\n\n return {\n collapsedByGroupId,\n setCollapsed,\n };\n};\n\nexport default useSidebarGroupCollapse;\n"],"mappings":";;AASA,IAAM,KACJ,GACA,MAC8B;CAC9B,IAAM,IAAmC,EAAE;AAO3C,QANA,EAAS,SAAS,MAAY;AAC5B,IAAM,KAAW;GACjB,EACE,KAAiB,QAAQ,EAAS,SAAS,EAAc,KAC3D,EAAM,KAAiB,KAElB;GAGI,KACX,MAIG;CACH,IAAM,EAAE,aAAU,qBAAkB,GAE9B,IAAc,QACX,CAAC,GAAG,EAAS,EACnB,CAAC,EAAS,CAAC,EAER,CAAC,GAAoB,KACzB,QACS,EAAkB,GAAa,EAAc,CACpD;AA8CJ,QA5CA,QAAgB;AACd,KAAuB,MAAS;GAC9B,IAAM,IAAkC,EAAE;AAW1C,UATA,EAAY,SAAS,MAAY;AAE/B,MAAK,KADY,EAAK,MACM;KAC5B,EAEE,KAAiB,QAAQ,EAAY,SAAS,EAAc,KAC9D,EAAK,KAAiB,KAGjB;IACP;IACD,CAAC,GAAe,EAAY,CAAC,EAEhC,QAAgB;AACV,OAAiB,QAGrB,GAAuB,MACjB,EAAK,OAAmB,KACnB,IAEF;GACL,GAAG;IACF,IAAgB;GAClB,CACD;IACD,CAAC,EAAc,CAAC,EAcZ;EACL;EACA,cAdmB,GAAa,GAAiB,MAAuB;AACxE,MAAuB,MACjB,EAAK,OAAa,IACb,IAEF;IACL,GAAG;KACF,IAAU;IACZ,CACD;KACD,EAAE,CAAC;EAKL"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { initReactI18next as e } from "react-i18next";
|
|
2
|
-
import { createInstance as t } from "i18next";
|
|
3
|
-
import n from "i18next-browser-languagedetector";
|
|
4
|
-
//#region src/i18n/createI18nInstance.ts
|
|
5
|
-
var r = { maximumFractionDigits: 2 }, i = {
|
|
6
|
-
style: "currency",
|
|
7
|
-
currency: "USD",
|
|
8
|
-
maximumFractionDigits: 2
|
|
9
|
-
}, a = { dateStyle: "medium" }, o = {
|
|
10
|
-
dateStyle: "medium",
|
|
11
|
-
timeStyle: "short"
|
|
12
|
-
}, s = { style: "percent" };
|
|
13
|
-
function c(e) {
|
|
14
|
-
return Array.isArray(e) ? e[0] : e;
|
|
15
|
-
}
|
|
16
|
-
function l(e) {
|
|
17
|
-
if (e == null) return "";
|
|
18
|
-
if (typeof e == "string" || typeof e == "number" || typeof e == "boolean" || typeof e == "bigint") return String(e);
|
|
19
|
-
if (typeof e == "symbol") return e.toString();
|
|
20
|
-
if (e instanceof Date) return e.toISOString();
|
|
21
|
-
try {
|
|
22
|
-
return JSON.stringify(e);
|
|
23
|
-
} catch {
|
|
24
|
-
return "";
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function u(e, t, n) {
|
|
28
|
-
if (t == null) return l(e);
|
|
29
|
-
let u = c(n);
|
|
30
|
-
if (t === "number" && typeof e == "number") return new Intl.NumberFormat(u, r).format(e);
|
|
31
|
-
if (t === "currency" && typeof e == "number") return new Intl.NumberFormat(u, i).format(e);
|
|
32
|
-
if (t === "percent" && typeof e == "number") return new Intl.NumberFormat(u, s).format(e);
|
|
33
|
-
if ((t === "date" || t === "datetime") && e != null) {
|
|
34
|
-
let n;
|
|
35
|
-
if (n = e instanceof Date ? e : typeof e == "string" || typeof e == "number" ? new Date(e) : new Date(l(e)), !Number.isNaN(n.getTime())) return t === "date" ? new Intl.DateTimeFormat(u, a).format(n) : new Intl.DateTimeFormat(u, o).format(n);
|
|
36
|
-
}
|
|
37
|
-
return l(e);
|
|
38
|
-
}
|
|
39
|
-
async function d(r) {
|
|
40
|
-
let { resources: i, lng: a, fallbackLng: o = "en", initOptions: s = {}, instance: c = t(), useLanguageDetector: l = !1, detection: d } = r, { interpolation: f, ...p } = s;
|
|
41
|
-
l && c.use(n), c.use(e);
|
|
42
|
-
try {
|
|
43
|
-
let e = {
|
|
44
|
-
...p,
|
|
45
|
-
resources: i,
|
|
46
|
-
fallbackLng: o,
|
|
47
|
-
interpolation: {
|
|
48
|
-
escapeValue: !1,
|
|
49
|
-
format: f?.format ?? u,
|
|
50
|
-
...f
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
a != null && (e.lng = a);
|
|
54
|
-
let t = d ?? s.detection;
|
|
55
|
-
l && t != null && (e.detection = t), await c.init(e);
|
|
56
|
-
} catch {}
|
|
57
|
-
return c;
|
|
58
|
-
}
|
|
59
|
-
//#endregion
|
|
60
|
-
export { d as createI18nInstance };
|
|
61
|
-
|
|
62
|
-
//# sourceMappingURL=createI18nInstance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createI18nInstance.js","names":[],"sources":["../../../src/i18n/createI18nInstance.ts"],"sourcesContent":["import { createInstance, type i18n, type InitOptions } from 'i18next';\nimport LanguageDetector, {\n type DetectorOptions,\n} from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\n\ntype InitOptionsWithDetection = Omit<\n InitOptions,\n 'resources' | 'lng' | 'fallbackLng'\n> & {\n detection?: DetectorOptions;\n};\n\ntype InitConfig = InitOptions & {\n detection?: DetectorOptions;\n};\n\nexport interface CreateI18nOptions {\n resources: NonNullable<InitOptions['resources']>;\n lng?: InitOptions['lng'];\n fallbackLng?: InitOptions['fallbackLng'];\n initOptions?: InitOptionsWithDetection;\n instance?: i18n;\n useLanguageDetector?: boolean;\n detection?: DetectorOptions;\n}\n\nconst DEFAULT_NUMBER_OPTIONS = { maximumFractionDigits: 2 };\nconst DEFAULT_CURRENCY_OPTIONS = {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 2,\n} as const;\nconst DEFAULT_DATE_OPTIONS = { dateStyle: 'medium' } as const;\nconst DEFAULT_DATE_TIME_OPTIONS = {\n dateStyle: 'medium',\n timeStyle: 'short',\n} as const;\nconst DEFAULT_PERCENT_OPTIONS = { style: 'percent' } as const;\n\n/** Returns the best locale value from i18next's language list. */\nfunction getLocale(lng: string | string[] | undefined): string | undefined {\n if (Array.isArray(lng)) {\n return lng[0];\n }\n return lng;\n}\n\n/** Stringify interpolation values while avoiding Object.prototype defaults. */\nfunction stringifyValue(value: unknown): string {\n if (value == null) {\n return '';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'bigint'\n ) {\n return String(value);\n }\n if (typeof value === 'symbol') {\n return value.toString();\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n try {\n return JSON.stringify(value);\n } catch {\n return '';\n }\n}\n\n/** Format interpolated values using Intl based on the i18n format token. */\nfunction formatValue(\n value: unknown,\n format: string | undefined,\n lng: string | string[] | undefined,\n): string {\n if (format == null) {\n return stringifyValue(value);\n }\n\n const locale = getLocale(lng);\n\n if (format === 'number' && typeof value === 'number') {\n return new Intl.NumberFormat(locale, DEFAULT_NUMBER_OPTIONS).format(value);\n }\n\n if (format === 'currency' && typeof value === 'number') {\n return new Intl.NumberFormat(locale, DEFAULT_CURRENCY_OPTIONS).format(\n value,\n );\n }\n\n if (format === 'percent' && typeof value === 'number') {\n return new Intl.NumberFormat(locale, DEFAULT_PERCENT_OPTIONS).format(value);\n }\n\n if ((format === 'date' || format === 'datetime') && value != null) {\n let date: Date;\n if (value instanceof Date) {\n date = value;\n } else if (typeof value === 'string' || typeof value === 'number') {\n date = new Date(value);\n } else {\n date = new Date(stringifyValue(value));\n }\n if (!Number.isNaN(date.getTime())) {\n if (format === 'date') {\n return new Intl.DateTimeFormat(locale, DEFAULT_DATE_OPTIONS).format(\n date,\n );\n }\n return new Intl.DateTimeFormat(locale, DEFAULT_DATE_TIME_OPTIONS).format(\n date,\n );\n }\n }\n\n return stringifyValue(value);\n}\n\n/**\n * Create and initialize an i18next instance configured for React.\n * Each frontend can call this helper with its own resource bundles.\n */\nexport async function createI18nInstance(\n options: CreateI18nOptions,\n): Promise<i18n> {\n const {\n resources,\n lng,\n fallbackLng = 'en',\n initOptions = {},\n instance = createInstance(),\n useLanguageDetector = false,\n detection,\n } = options;\n\n const { interpolation, ...restInitOptions } = initOptions;\n\n if (useLanguageDetector) {\n instance.use(LanguageDetector);\n }\n instance.use(initReactI18next);\n\n try {\n const initConfig: InitConfig = {\n ...restInitOptions,\n resources,\n fallbackLng,\n interpolation: {\n escapeValue: false,\n format: interpolation?.format ?? formatValue,\n ...interpolation,\n },\n };\n if (lng != null) {\n initConfig.lng = lng;\n }\n\n const detectionOptions = detection ?? initOptions.detection;\n if (useLanguageDetector && detectionOptions != null) {\n initConfig.detection = detectionOptions;\n }\n\n await instance.init(initConfig);\n } catch {\n // Swallow initialization errors to avoid blocking the UI.\n // Callers can inspect the instance for diagnostics if needed.\n }\n\n return instance;\n}\n"],"mappings":";;;;AA2BA,IAAM,IAAyB,EAAE,uBAAuB,GAAG,EACrD,IAA2B;CAC/B,OAAO;CACP,UAAU;CACV,uBAAuB;CACxB,EACK,IAAuB,EAAE,WAAW,UAAU,EAC9C,IAA4B;CAChC,WAAW;CACX,WAAW;CACZ,EACK,IAA0B,EAAE,OAAO,WAAW;AAGpD,SAAS,EAAU,GAAwD;AAIzE,QAHI,MAAM,QAAQ,EAAI,GACb,EAAI,KAEN;;AAIT,SAAS,EAAe,GAAwB;AAC9C,KAAI,KAAS,KACX,QAAO;AAET,KACE,OAAO,KAAU,YACjB,OAAO,KAAU,YACjB,OAAO,KAAU,aACjB,OAAO,KAAU,SAEjB,QAAO,OAAO,EAAM;AAEtB,KAAI,OAAO,KAAU,SACnB,QAAO,EAAM,UAAU;AAEzB,KAAI,aAAiB,KACnB,QAAO,EAAM,aAAa;AAE5B,KAAI;AACF,SAAO,KAAK,UAAU,EAAM;SACtB;AACN,SAAO;;;AAKX,SAAS,EACP,GACA,GACA,GACQ;AACR,KAAI,KAAU,KACZ,QAAO,EAAe,EAAM;CAG9B,IAAM,IAAS,EAAU,EAAI;AAE7B,KAAI,MAAW,YAAY,OAAO,KAAU,SAC1C,QAAO,IAAI,KAAK,aAAa,GAAQ,EAAuB,CAAC,OAAO,EAAM;AAG5E,KAAI,MAAW,cAAc,OAAO,KAAU,SAC5C,QAAO,IAAI,KAAK,aAAa,GAAQ,EAAyB,CAAC,OAC7D,EACD;AAGH,KAAI,MAAW,aAAa,OAAO,KAAU,SAC3C,QAAO,IAAI,KAAK,aAAa,GAAQ,EAAwB,CAAC,OAAO,EAAM;AAG7E,MAAK,MAAW,UAAU,MAAW,eAAe,KAAS,MAAM;EACjE,IAAI;AAQJ,MAPA,AAKE,IALE,aAAiB,OACZ,IACE,OAAO,KAAU,YAAY,OAAO,KAAU,WAChD,IAAI,KAAK,EAAM,GAEf,IAAI,KAAK,EAAe,EAAM,CAAC,EAEpC,CAAC,OAAO,MAAM,EAAK,SAAS,CAAC,CAM/B,QALI,MAAW,SACN,IAAI,KAAK,eAAe,GAAQ,EAAqB,CAAC,OAC3D,EACD,GAEI,IAAI,KAAK,eAAe,GAAQ,EAA0B,CAAC,OAChE,EACD;;AAIL,QAAO,EAAe,EAAM;;AAO9B,eAAsB,EACpB,GACe;CACf,IAAM,EACJ,cACA,QACA,iBAAc,MACd,iBAAc,EAAE,EAChB,cAAW,GAAgB,EAC3B,yBAAsB,IACtB,iBACE,GAEE,EAAE,kBAAe,GAAG,MAAoB;AAK9C,CAHI,KACF,EAAS,IAAI,EAAiB,EAEhC,EAAS,IAAI,EAAiB;AAE9B,KAAI;EACF,IAAM,IAAyB;GAC7B,GAAG;GACH;GACA;GACA,eAAe;IACb,aAAa;IACb,QAAQ,GAAe,UAAU;IACjC,GAAG;IACJ;GACF;AACD,EAAI,KAAO,SACT,EAAW,MAAM;EAGnB,IAAM,IAAmB,KAAa,EAAY;AAKlD,EAJI,KAAuB,KAAoB,SAC7C,EAAW,YAAY,IAGzB,MAAM,EAAS,KAAK,EAAW;SACzB;AAKR,QAAO"}
|