@plumile/backoffice-react 0.1.105 → 0.1.107
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/_virtual/_rolldown/runtime.js +7 -0
- package/lib/esm/auth/AuthRefreshNotice.js +38 -0
- package/lib/esm/auth/AuthRefreshNotice.js.map +1 -0
- package/lib/esm/auth/TotpQrCode.js +28 -0
- package/lib/esm/auth/TotpQrCode.js.map +1 -0
- package/lib/esm/auth/authRefreshNotice.css.js +7 -0
- package/lib/esm/auth/authRefreshNotice.css.js.map +1 -0
- package/lib/esm/{AuthPanel-BaIRFGbX.js → auth/login/AuthPanel.js} +7 -7
- package/lib/esm/auth/login/AuthPanel.js.map +1 -0
- package/lib/esm/auth/login/EmailCapturePanel.js +50 -0
- package/lib/esm/auth/login/EmailCapturePanel.js.map +1 -0
- package/lib/esm/auth/login/LoginFlow.js +130 -0
- package/lib/esm/auth/login/LoginFlow.js.map +1 -0
- package/lib/esm/auth/login/MethodChooser.js +49 -0
- package/lib/esm/auth/login/MethodChooser.js.map +1 -0
- package/lib/esm/auth/login/MfaChallengeForm.js +80 -0
- package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -0
- package/lib/esm/auth/login/OidcButtons.js +29 -0
- package/lib/esm/auth/login/OidcButtons.js.map +1 -0
- package/lib/esm/auth/login/PasskeyLoginForm.js +81 -0
- package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -0
- package/lib/esm/auth/login/PasswordLoginPanel.js +37 -0
- package/lib/esm/auth/login/PasswordLoginPanel.js.map +1 -0
- package/lib/esm/auth/login/loginPage.css.js +7 -0
- package/lib/esm/auth/login/loginPage.css.js.map +1 -0
- package/lib/esm/auth/login/synchronizeAuthStatusQuery.js +10 -0
- package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -0
- package/lib/esm/{AcceptInvitationScreen-VaWXQPHp.js → auth/pages/AcceptInvitationScreen.js} +11 -11
- package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -0
- package/lib/esm/{PasswordResetCompleteScreen-Cgg96DPo.js → auth/pages/PasswordResetCompleteScreen.js} +10 -10
- package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -0
- package/lib/esm/{PasswordResetRequestScreen-I1nFvGLd.js → auth/pages/PasswordResetRequestScreen.js} +10 -10
- package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -0
- package/lib/esm/{VerifyEmailScreen-Br5KyHjg.js → auth/pages/VerifyEmailScreen.js} +7 -7
- package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -0
- package/lib/esm/{BackofficeEntityActionFormDialog-DrZxuytz.js → components/backoffice/actions/BackofficeEntityActionFormDialog.js} +123 -121
- package/lib/esm/{BackofficeEntityActionFormDialog-DrZxuytz.js.map → components/backoffice/actions/BackofficeEntityActionFormDialog.js.map} +1 -1
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +26 -0
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -0
- package/lib/esm/{backofficeEntityActionFormDialog.css-DJgEKwaA.js → components/backoffice/actions/backofficeEntityActionFormDialog.css.js} +3 -2
- package/lib/esm/{backofficeEntityActionFormDialog.css-DJgEKwaA.js.map → components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map} +1 -1
- package/lib/esm/{toastViewAction-DQYlcGOL.js → components/backoffice/actions/toastViewAction.js} +2 -2
- package/lib/esm/{toastViewAction-DQYlcGOL.js.map → components/backoffice/actions/toastViewAction.js.map} +1 -1
- package/lib/esm/{buildDataTableColumns-DdmF-EYq.js → components/backoffice/columns/buildDataTableColumns.js} +18 -18
- package/lib/esm/{buildDataTableColumns-DdmF-EYq.js.map → components/backoffice/columns/buildDataTableColumns.js.map} +1 -1
- package/lib/esm/components/backoffice/detail/BackofficeAuditMetadataPanel.js +31 -0
- package/lib/esm/components/backoffice/detail/BackofficeAuditMetadataPanel.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js +22 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +40 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +30 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js +7 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js +24 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js +20 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js +18 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js +56 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js +11 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +123 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js +36 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js +18 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeEntityRefLink.js +17 -0
- package/lib/esm/components/backoffice/detail/BackofficeEntityRefLink.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js +72 -0
- package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeEnumLabel.js +11 -0
- package/lib/esm/components/backoffice/detail/BackofficeEnumLabel.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeKpiStrip.js +35 -0
- package/lib/esm/components/backoffice/detail/BackofficeKpiStrip.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js +37 -0
- package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficePayloadInspectorSection.js +36 -0
- package/lib/esm/components/backoffice/detail/BackofficePayloadInspectorSection.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js +22 -0
- package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js +43 -0
- package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeScopeStack.js +28 -0
- package/lib/esm/components/backoffice/detail/BackofficeScopeStack.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js +27 -0
- package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js +37 -0
- package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js +84 -0
- package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeAuditMetadataPanel.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeAuditMetadataPanel.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js +15 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeKpiStrip.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeKpiStrip.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeLifecycleTimelineSection.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeLifecycleTimelineSection.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficePayloadInspectorSection.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficePayloadInspectorSection.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeReferenceValue.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeReferenceValue.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeScopeStack.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeScopeStack.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeStatusMetaBadge.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeStatusMetaBadge.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js +7 -0
- package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/createBackofficeEntityLinkProps.js +21 -0
- package/lib/esm/components/backoffice/detail/createBackofficeEntityLinkProps.js.map +1 -0
- package/lib/esm/components/backoffice/detail/detailPayloadUtils.js +17 -0
- package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +1 -0
- package/lib/esm/{BackofficeErrorBoundary-BwRVSDHU.js → components/backoffice/errors/BackofficeErrorBoundary.js} +2 -2
- package/lib/esm/{BackofficeErrorBoundary-BwRVSDHU.js.map → components/backoffice/errors/BackofficeErrorBoundary.js.map} +1 -1
- package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +46 -0
- package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -0
- package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js +67 -0
- package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js.map +1 -0
- package/lib/esm/components/backoffice/filters/EntityFilterValue.js +46 -0
- package/lib/esm/components/backoffice/filters/EntityFilterValue.js.map +1 -0
- package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +65 -0
- package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -0
- package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +7 -0
- package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -0
- package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js +7 -0
- package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js.map +1 -0
- package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +7 -0
- package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +1 -0
- package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js +83 -0
- package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js.map +1 -0
- package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js +7 -0
- package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js.map +1 -0
- package/lib/esm/{BackofficePermissionsContext-C2bdxy2z.js → components/backoffice/layout/BackofficePermissionsContext.js} +2 -2
- package/lib/esm/{BackofficePermissionsContext-C2bdxy2z.js.map → components/backoffice/layout/BackofficePermissionsContext.js.map} +1 -1
- package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +7 -0
- package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js +10 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +69 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js +12 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js.map +1 -0
- package/lib/esm/{BackofficeTopbarPortalContext-Da5XFatM.js → components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js} +2 -2
- package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js +16 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +7 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +1 -0
- package/lib/esm/{buildBreadcrumbs-C5St167Y.js → components/backoffice/layout/breadcrumb/buildBreadcrumbs.js} +7 -3
- package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/types.js +0 -0
- package/lib/esm/components/backoffice/layout/buildSidebarSections.js +301 -0
- package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -0
- package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js +18 -0
- package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -0
- package/lib/esm/{sidebarUtils-BgCBLJLv.js → components/backoffice/layout/sidebarUtils.js} +32 -22
- package/lib/esm/{sidebarUtils-BgCBLJLv.js.map → components/backoffice/layout/sidebarUtils.js.map} +1 -1
- package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +7 -0
- package/lib/esm/components/backoffice/list/RowFlagsCell.css.js.map +1 -0
- package/lib/esm/components/backoffice/list/RowFlagsCell.js +37 -0
- package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +1 -0
- package/lib/esm/components/backoffice/lists/BackofficeListToolbar.js +33 -0
- package/lib/esm/components/backoffice/lists/BackofficeListToolbar.js.map +1 -0
- package/lib/esm/components/backoffice/lists/backofficeListToolbar.css.js +13 -0
- package/lib/esm/components/backoffice/lists/backofficeListToolbar.css.js.map +1 -0
- package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +31 -0
- package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +1 -0
- package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +7 -0
- package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +117 -0
- package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +7 -0
- package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +27 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js +23 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js +28 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/types.js +0 -0
- package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js +35 -0
- package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js.map +1 -0
- package/lib/esm/components/backoffice/refs/BackofficeEntityLink.js +30 -0
- package/lib/esm/components/backoffice/refs/BackofficeEntityLink.js.map +1 -0
- package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +65 -0
- package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -0
- package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +7 -0
- package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +1 -0
- package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +7 -0
- package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js +24 -0
- package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +1 -0
- package/lib/esm/components/backoffice/routing/BackofficeContentError.js +27 -0
- package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +1 -0
- package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js +47 -0
- package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +1 -0
- package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +25 -0
- package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +1 -0
- package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js +12 -0
- package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +7 -0
- package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +7 -0
- package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +7 -0
- package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +7 -0
- package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +7 -0
- package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +12 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +506 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js +40 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +24 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +7 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +7 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +1 -0
- package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js +41 -0
- package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js.map +1 -0
- package/lib/esm/components/backoffice/shared/BackofficeFormattedCurrency.js +17 -0
- package/lib/esm/components/backoffice/shared/BackofficeFormattedCurrency.js.map +1 -0
- package/lib/esm/components/backoffice/shared/BackofficeFormattedNumber.js +17 -0
- package/lib/esm/components/backoffice/shared/BackofficeFormattedNumber.js.map +1 -0
- package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +12 -0
- package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +1 -0
- package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js +16 -0
- package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js.map +1 -0
- package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +7 -0
- package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +41 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +48 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +63 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +35 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +7 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +7 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +7 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/parseToolJson.js +13 -0
- package/lib/esm/components/backoffice/tools/parseToolJson.js.map +1 -0
- package/lib/esm/filters/filterHelpers.js +26 -0
- package/lib/esm/filters/filterHelpers.js.map +1 -0
- package/lib/esm/hooks/useAuth.js +444 -0
- package/lib/esm/hooks/useAuth.js.map +1 -0
- package/lib/esm/hooks/useBackofficeAuth.js +89 -0
- package/lib/esm/hooks/useBackofficeAuth.js.map +1 -0
- package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js +39 -0
- package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js.map +1 -0
- package/lib/esm/hooks/useBackofficeListRefetch.js +50 -0
- package/lib/esm/hooks/useBackofficeListRefetch.js.map +1 -0
- package/lib/esm/{useBackofficeListUrlState-Ca6d7uIN.js → hooks/useBackofficeListUrlState.js} +2 -2
- package/lib/esm/hooks/useBackofficeListUrlState.js.map +1 -0
- package/lib/esm/hooks/useBackofficeLoadMore.js +18 -0
- package/lib/esm/hooks/useBackofficeLoadMore.js.map +1 -0
- package/lib/esm/hooks/useBackofficeSessionAuth.js +33 -0
- package/lib/esm/hooks/useBackofficeSessionAuth.js.map +1 -0
- package/lib/esm/hooks/useBackofficeSidebarPins.js +89 -0
- package/lib/esm/hooks/useBackofficeSidebarPins.js.map +1 -0
- package/lib/esm/hooks/useConditionalSubscription.js +63 -0
- package/lib/esm/hooks/useConditionalSubscription.js.map +1 -0
- package/lib/esm/hooks/useCopyToClipboard.js +31 -0
- package/lib/esm/hooks/useCopyToClipboard.js.map +1 -0
- package/lib/esm/hooks/useInfiniteConnection.js +95 -0
- package/lib/esm/hooks/useInfiniteConnection.js.map +1 -0
- package/lib/esm/hooks/useRefetchNeededReload.js +23 -0
- package/lib/esm/hooks/useRefetchNeededReload.js.map +1 -0
- package/lib/esm/hooks/useSidebarGroupCollapse.js +70 -0
- package/lib/esm/hooks/useSidebarGroupCollapse.js.map +1 -0
- package/lib/esm/i18n/createI18nInstance.js +68 -0
- package/lib/esm/i18n/createI18nInstance.js.map +1 -0
- package/lib/esm/i18n/locales/en/backofficeReact.js +436 -0
- package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -0
- package/lib/esm/i18n/locales/fr/backofficeReact.js +439 -0
- package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -0
- package/lib/esm/i18n/mergeResourceLanguages.js +22 -0
- package/lib/esm/i18n/mergeResourceLanguages.js.map +1 -0
- package/lib/esm/i18n/resources.js +23 -0
- package/lib/esm/i18n/resources.js.map +1 -0
- package/lib/esm/i18n/useBackofficeFormats.js +23 -0
- package/lib/esm/i18n/useBackofficeFormats.js.map +1 -0
- package/lib/esm/i18n/useBackofficeReactTranslation.js +9 -0
- package/lib/esm/i18n/useBackofficeReactTranslation.js.map +1 -0
- package/lib/esm/i18n/useReviewStatusLabel.js +19 -0
- package/lib/esm/i18n/useReviewStatusLabel.js.map +1 -0
- package/lib/esm/index.js +73 -0
- package/lib/esm/modules/base64.js +21 -0
- package/lib/esm/modules/base64.js.map +1 -0
- package/lib/esm/modules/formatFileSize.js +28 -0
- package/lib/esm/modules/formatFileSize.js.map +1 -0
- package/lib/esm/modules/sharedSchemaTypes.js +0 -0
- package/lib/esm/modules/webauthn.js +33 -0
- package/lib/esm/modules/webauthn.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +15 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +15 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/defineProperty.js +20 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/interopRequireDefault.js +13 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/interopRequireDefault.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/iterableToArray.js +13 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/iterableToArray.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/nonIterableSpread.js +13 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/nonIterableSpread.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/objectSpread2.js +33 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/objectSpread2.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +19 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/toConsumableArray.js +18 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/toConsumableArray.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/toPrimitive.js +22 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/toPropertyKey.js +17 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/typeof.js +18 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +19 -0
- package/lib/esm/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
- package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +80 -0
- package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -0
- package/lib/esm/node_modules/fbjs/lib/areEqual.js +42 -0
- package/lib/esm/node_modules/fbjs/lib/areEqual.js.map +1 -0
- package/lib/esm/node_modules/invariant/browser.js +30 -0
- package/lib/esm/node_modules/invariant/browser.js.map +1 -0
- package/lib/esm/node_modules/relay-test-utils/index.js +11 -0
- package/lib/esm/node_modules/relay-test-utils/index.js.map +1 -0
- package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js +288 -0
- package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js.map +1 -0
- package/lib/esm/node_modules/relay-test-utils/lib/RelayModernMockEnvironment.js +183 -0
- package/lib/esm/node_modules/relay-test-utils/lib/RelayModernMockEnvironment.js.map +1 -0
- package/lib/esm/node_modules/relay-test-utils/lib/RelayResolverTestUtils.js +19 -0
- package/lib/esm/node_modules/relay-test-utils/lib/RelayResolverTestUtils.js.map +1 -0
- package/lib/esm/node_modules/relay-test-utils/lib/index.js +21 -0
- package/lib/esm/node_modules/relay-test-utils/lib/index.js.map +1 -0
- package/lib/esm/node_modules/relay-test-utils/lib/unwrapContainer.js +16 -0
- package/lib/esm/node_modules/relay-test-utils/lib/unwrapContainer.js.map +1 -0
- package/lib/esm/pages/BackofficeAcceptInvitationPage.js +24 -0
- package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +1 -0
- package/lib/esm/pages/BackofficeDashboardPage.helpers.js +18 -0
- package/lib/esm/pages/BackofficeDashboardPage.helpers.js.map +1 -0
- package/lib/esm/pages/BackofficeDashboardPage.js +266 -0
- package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +18 -0
- package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.helpers.js +14 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.helpers.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.js +474 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js +414 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js.map +1 -0
- package/lib/esm/{BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js → pages/BackofficeEntityDetailUnknownPageRedirect.js} +3 -3
- package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityListPage.helpers.js +37 -0
- package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityListPage.js +381 -0
- package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -0
- package/lib/esm/{BackofficeHubPage-DOePQ8Fc.js → pages/BackofficeHubPage.js} +29 -28
- package/lib/esm/pages/BackofficeHubPage.js.map +1 -0
- package/lib/esm/pages/BackofficeLayoutPage.js +273 -0
- package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -0
- package/lib/esm/pages/BackofficeLoginPage.js +47 -0
- package/lib/esm/pages/BackofficeLoginPage.js.map +1 -0
- package/lib/esm/{BackofficePasswordResetCompletePage-Cit5sdDm.js → pages/BackofficePasswordResetCompletePage.js} +16 -15
- package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -0
- package/lib/esm/{BackofficePasswordResetRequestPage-B_TurHev.js → pages/BackofficePasswordResetRequestPage.js} +12 -12
- package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -0
- package/lib/esm/{BackofficeVerifyEmailPage-DQbFIob1.js → pages/BackofficeVerifyEmailPage.js} +16 -15
- package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -0
- package/lib/esm/pages/backofficeDashboardPage.css.js +7 -0
- package/lib/esm/pages/backofficeDashboardPage.css.js.map +1 -0
- package/lib/esm/pages/backofficeEntityDetailPage.css.js +7 -0
- package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +1 -0
- package/lib/esm/pages/backofficeEntityListPage.css.js +7 -0
- package/lib/esm/pages/backofficeEntityListPage.css.js.map +1 -0
- package/lib/esm/pages/dashboard/DashboardMetricGroup.js +25 -0
- package/lib/esm/pages/dashboard/DashboardMetricGroup.js.map +1 -0
- package/lib/esm/pages/dashboard/DashboardPanel.js +15 -0
- package/lib/esm/pages/dashboard/DashboardPanel.js.map +1 -0
- package/lib/esm/pages/dashboard/DashboardQuickActions.js +27 -0
- package/lib/esm/pages/dashboard/DashboardQuickActions.js.map +1 -0
- package/lib/esm/pages/dashboard/DashboardStatusList.js +28 -0
- package/lib/esm/pages/dashboard/DashboardStatusList.js.map +1 -0
- package/lib/esm/pages/dashboard/dashboardMetricGroup.css.js +8 -0
- package/lib/esm/pages/dashboard/dashboardMetricGroup.css.js.map +1 -0
- package/lib/esm/pages/dashboard/dashboardPanel.css.js +7 -0
- package/lib/esm/pages/dashboard/dashboardPanel.css.js.map +1 -0
- package/lib/esm/pages/dashboard/dashboardQuickActions.css.js +7 -0
- package/lib/esm/pages/dashboard/dashboardQuickActions.css.js.map +1 -0
- package/lib/esm/pages/dashboard/dashboardStatusList.css.js +7 -0
- package/lib/esm/pages/dashboard/dashboardStatusList.css.js.map +1 -0
- package/lib/esm/{BackofficeEntityDetailLayoutContext-C5G-PH28.js → pages/detail/BackofficeEntityDetailLayoutContext.js} +2 -2
- package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +1 -0
- package/lib/esm/pages/detail/buildTabsItems.js +10 -0
- package/lib/esm/pages/detail/buildTabsItems.js.map +1 -0
- package/lib/esm/{pageResolution-CUaTq4Ql.js → pages/detail/pageResolution.js} +2 -2
- package/lib/esm/pages/detail/pageResolution.js.map +1 -0
- package/lib/esm/provider/BackofficeConfigContext.js +12 -0
- package/lib/esm/provider/BackofficeConfigContext.js.map +1 -0
- package/lib/esm/provider/BackofficeProvider.js +171 -0
- package/lib/esm/provider/BackofficeProvider.js.map +1 -0
- package/lib/esm/provider/entityRegistry.js +95 -0
- package/lib/esm/provider/entityRegistry.js.map +1 -0
- package/lib/esm/provider/lazyValue.js +14 -0
- package/lib/esm/provider/lazyValue.js.map +1 -0
- package/lib/esm/provider/types.js +0 -0
- package/lib/esm/provider/useBackofficeEntityLoader.js +141 -0
- package/lib/esm/provider/useBackofficeEntityLoader.js.map +1 -0
- package/lib/esm/{useBackofficeLazyValue-CW9xfRzQ.js → provider/useBackofficeLazyValue.js} +15 -7
- package/lib/esm/provider/useBackofficeLazyValue.js.map +1 -0
- package/lib/esm/relay/RelayProvider.js +13 -0
- package/lib/esm/relay/RelayProvider.js.map +1 -0
- package/lib/esm/relay/connectionUtils.js +19 -0
- package/lib/esm/relay/connectionUtils.js.map +1 -0
- package/lib/esm/relay/createInlineDataReader.js +2 -0
- package/lib/esm/relay/createInlineReader.js +7 -0
- package/lib/esm/relay/createInlineReader.js.map +1 -0
- package/lib/esm/relay/envHelpers.js +55 -0
- package/lib/esm/relay/envHelpers.js.map +1 -0
- package/lib/esm/{environment-DQfVyWHJ.js → relay/environment.js} +90 -100
- package/lib/esm/relay/environment.js.map +1 -0
- package/lib/esm/relay/identityView.js +6 -0
- package/lib/esm/relay/identityView.js.map +1 -0
- package/lib/esm/{mutationResult-C2Vb_vPt.js → relay/mutationResult.js} +2 -2
- package/lib/esm/relay/mutationResult.js.map +1 -0
- package/lib/esm/{useRelayEnvironment-vQ86aW-n.js → relay/useRelayEnvironment.js} +2 -2
- package/lib/esm/relay/useRelayEnvironment.js.map +1 -0
- package/lib/esm/{backofficeAuthPaths-2hHNn8D3.js → router/backofficeAuthPaths.js} +2 -2
- package/lib/esm/router/backofficeAuthPaths.js.map +1 -0
- package/lib/esm/router/createBackofficeRoutes.js +322 -0
- package/lib/esm/router/createBackofficeRoutes.js.map +1 -0
- package/lib/esm/storybook/relay/RelayStory.css.js +7 -0
- package/lib/esm/storybook/relay/RelayStory.css.js.map +1 -0
- package/lib/esm/storybook/relay/RelayStory.js +86 -0
- package/lib/esm/storybook/relay/RelayStory.js.map +1 -0
- package/lib/esm/storybook/relay/mockResolvers.js +99 -0
- package/lib/esm/storybook/relay/mockResolvers.js.map +1 -0
- package/lib/esm/storybook/relay/relay-test-utils.d.js +0 -0
- package/lib/esm/style.css +1 -1
- package/lib/esm/style.js +1 -0
- package/lib/esm/subscriptions/useCursorResumableSubscription.js +29 -0
- package/lib/esm/subscriptions/useCursorResumableSubscription.js.map +1 -0
- package/lib/types/auth/AuthRefreshNotice.d.ts +14 -0
- package/lib/types/auth/AuthRefreshNotice.d.ts.map +1 -0
- package/lib/types/auth/TotpQrCode.d.ts +17 -0
- package/lib/types/auth/TotpQrCode.d.ts.map +1 -0
- package/lib/types/auth/authRefreshNotice.css.d.ts +4 -0
- package/lib/types/auth/authRefreshNotice.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeAuditMetadataPanel.d.ts +19 -0
- package/lib/types/components/backoffice/detail/BackofficeAuditMetadataPanel.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeEntityRefLink.d.ts +15 -0
- package/lib/types/components/backoffice/detail/BackofficeEntityRefLink.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeEntitySummaryHeader.d.ts +34 -0
- package/lib/types/components/backoffice/detail/BackofficeEntitySummaryHeader.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeEnumLabel.d.ts +9 -0
- package/lib/types/components/backoffice/detail/BackofficeEnumLabel.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeKpiStrip.d.ts +17 -0
- package/lib/types/components/backoffice/detail/BackofficeKpiStrip.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeLifecycleTimelineSection.d.ts +20 -0
- package/lib/types/components/backoffice/detail/BackofficeLifecycleTimelineSection.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficePayloadInspectorSection.d.ts +15 -0
- package/lib/types/components/backoffice/detail/BackofficePayloadInspectorSection.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeReferenceValue.d.ts +9 -0
- package/lib/types/components/backoffice/detail/BackofficeReferenceValue.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts +17 -0
- package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeScopeStack.d.ts +13 -0
- package/lib/types/components/backoffice/detail/BackofficeScopeStack.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeStatusMetaBadge.d.ts +13 -0
- package/lib/types/components/backoffice/detail/BackofficeStatusMetaBadge.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeTokenUsageBreakdown.d.ts +18 -0
- package/lib/types/components/backoffice/detail/BackofficeTokenUsageBreakdown.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeUsageCostBreakdown.d.ts +31 -0
- package/lib/types/components/backoffice/detail/BackofficeUsageCostBreakdown.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeAuditMetadataPanel.css.d.ts +5 -0
- package/lib/types/components/backoffice/detail/backofficeAuditMetadataPanel.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeEntitySummaryHeader.css.d.ts +12 -0
- package/lib/types/components/backoffice/detail/backofficeEntitySummaryHeader.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeKpiStrip.css.d.ts +5 -0
- package/lib/types/components/backoffice/detail/backofficeKpiStrip.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeLifecycleTimelineSection.css.d.ts +3 -0
- package/lib/types/components/backoffice/detail/backofficeLifecycleTimelineSection.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficePayloadInspectorSection.css.d.ts +4 -0
- package/lib/types/components/backoffice/detail/backofficePayloadInspectorSection.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeReferenceValue.css.d.ts +3 -0
- package/lib/types/components/backoffice/detail/backofficeReferenceValue.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeRelationsSummaryGrid.css.d.ts +6 -0
- package/lib/types/components/backoffice/detail/backofficeRelationsSummaryGrid.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeScopeStack.css.d.ts +5 -0
- package/lib/types/components/backoffice/detail/backofficeScopeStack.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeStatusMetaBadge.css.d.ts +2 -0
- package/lib/types/components/backoffice/detail/backofficeStatusMetaBadge.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeUsageCostBreakdown.css.d.ts +7 -0
- package/lib/types/components/backoffice/detail/backofficeUsageCostBreakdown.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/createBackofficeEntityLinkProps.d.ts +30 -0
- package/lib/types/components/backoffice/detail/createBackofficeEntityLinkProps.d.ts.map +1 -0
- package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.stories.d.ts +12 -0
- package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.stories.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/EntityIdFilterField.stories.d.ts +12 -0
- package/lib/types/components/backoffice/filters/EntityIdFilterField.stories.d.ts.map +1 -0
- package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.stories.d.ts +11 -0
- package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.stories.d.ts.map +1 -0
- package/lib/types/components/backoffice/refs/BackofficeEntityLink.d.ts +15 -0
- package/lib/types/components/backoffice/refs/BackofficeEntityLink.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.stories.d.ts +11 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.stories.d.ts.map +1 -0
- package/lib/types/components/backoffice/shared/BackofficeFormattedCurrency.d.ts +9 -0
- package/lib/types/components/backoffice/shared/BackofficeFormattedCurrency.d.ts.map +1 -0
- package/lib/types/components/backoffice/shared/BackofficeFormattedNumber.d.ts +9 -0
- package/lib/types/components/backoffice/shared/BackofficeFormattedNumber.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts +11 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts +8 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts +15 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts +7 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts +8 -0
- package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts +7 -0
- package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts +4 -0
- package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/parseToolJson.d.ts +2 -0
- package/lib/types/components/backoffice/tools/parseToolJson.d.ts.map +1 -0
- package/lib/types/hooks/useInfiniteConnection.d.ts +37 -0
- package/lib/types/hooks/useInfiniteConnection.d.ts.map +1 -0
- package/lib/types/i18n/resources.d.ts +54 -0
- package/lib/types/i18n/resources.d.ts.map +1 -1
- package/lib/types/index.d.ts +28 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/relay/connectionUtils.d.ts +10 -0
- package/lib/types/relay/connectionUtils.d.ts.map +1 -0
- package/lib/types/storybook/relay/RelayStory.css.d.ts +5 -0
- package/lib/types/storybook/relay/RelayStory.css.d.ts.map +1 -0
- package/lib/types/storybook/relay/RelayStory.d.ts +35 -0
- package/lib/types/storybook/relay/RelayStory.d.ts.map +1 -0
- package/lib/types/storybook/relay/mockResolvers.d.ts +3 -0
- package/lib/types/storybook/relay/mockResolvers.d.ts.map +1 -0
- package/lib/types/subscriptions/useCursorResumableSubscription.d.ts +16 -0
- package/lib/types/subscriptions/useCursorResumableSubscription.d.ts.map +1 -0
- package/package.json +24 -9
- package/lib/esm/AcceptInvitationScreen-VaWXQPHp.js.map +0 -1
- package/lib/esm/AuthPanel-BaIRFGbX.js.map +0 -1
- package/lib/esm/BackofficeAcceptInvitationPage-tpfBfhT9.js +0 -24
- package/lib/esm/BackofficeAcceptInvitationPage-tpfBfhT9.js.map +0 -1
- package/lib/esm/BackofficeDashboardPage-D5W36DY-.js +0 -329
- package/lib/esm/BackofficeDashboardPage-D5W36DY-.js.map +0 -1
- package/lib/esm/BackofficeDetailPayload-CZcsDv2w.js +0 -98
- package/lib/esm/BackofficeDetailPayload-CZcsDv2w.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailLayoutContext-C5G-PH28.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailLayoutPage-BSgGBzSL.js +0 -18
- package/lib/esm/BackofficeEntityDetailLayoutPage-BSgGBzSL.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailPage-LB1uEJVM.js +0 -1061
- package/lib/esm/BackofficeEntityDetailPage-LB1uEJVM.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js.map +0 -1
- package/lib/esm/BackofficeEntityListPage-D_zL-qRb.js +0 -432
- package/lib/esm/BackofficeEntityListPage-D_zL-qRb.js.map +0 -1
- package/lib/esm/BackofficeHubPage-DOePQ8Fc.js.map +0 -1
- package/lib/esm/BackofficeHubTemplate-C6K55egX.js +0 -82
- package/lib/esm/BackofficeHubTemplate-C6K55egX.js.map +0 -1
- package/lib/esm/BackofficeLayoutPage-Bq2bKkYF.js +0 -783
- package/lib/esm/BackofficeLayoutPage-Bq2bKkYF.js.map +0 -1
- package/lib/esm/BackofficeListToolbar-loFfIPtP.js +0 -109
- package/lib/esm/BackofficeListToolbar-loFfIPtP.js.map +0 -1
- package/lib/esm/BackofficeLoginPage-DIlcOueK.js +0 -46
- package/lib/esm/BackofficeLoginPage-DIlcOueK.js.map +0 -1
- package/lib/esm/BackofficePasswordResetCompletePage-Cit5sdDm.js.map +0 -1
- package/lib/esm/BackofficePasswordResetRequestPage-B_TurHev.js.map +0 -1
- package/lib/esm/BackofficeRightPageLayout-CfNkrMvH.js +0 -83
- package/lib/esm/BackofficeRightPageLayout-CfNkrMvH.js.map +0 -1
- package/lib/esm/BackofficeTopbarPortalContext-Da5XFatM.js.map +0 -1
- package/lib/esm/BackofficeVerifyEmailPage-DQbFIob1.js.map +0 -1
- package/lib/esm/EntityIdPickerDialog-BSn0v3bv.js +0 -340
- package/lib/esm/EntityIdPickerDialog-BSn0v3bv.js.map +0 -1
- package/lib/esm/LazyBackofficeEntityActionFormDialog-oRd_WHAK.js +0 -670
- package/lib/esm/LazyBackofficeEntityActionFormDialog-oRd_WHAK.js.map +0 -1
- package/lib/esm/PasswordResetCompleteScreen-Cgg96DPo.js.map +0 -1
- package/lib/esm/PasswordResetRequestScreen-I1nFvGLd.js.map +0 -1
- package/lib/esm/VerifyEmailScreen-Br5KyHjg.js.map +0 -1
- package/lib/esm/backoffice-react.js +0 -1925
- package/lib/esm/backoffice-react.js.map +0 -1
- package/lib/esm/backofficeAuthPaths-2hHNn8D3.js.map +0 -1
- package/lib/esm/buildBreadcrumbs-C5St167Y.js.map +0 -1
- package/lib/esm/environment-DQfVyWHJ.js.map +0 -1
- package/lib/esm/loginPage.css-B7Io_DuU.js +0 -6
- package/lib/esm/loginPage.css-B7Io_DuU.js.map +0 -1
- package/lib/esm/mutationResult-C2Vb_vPt.js.map +0 -1
- package/lib/esm/pageResolution-CUaTq4Ql.js.map +0 -1
- package/lib/esm/synchronizeAuthStatusQuery-DNJR5MfH.js +0 -323
- package/lib/esm/synchronizeAuthStatusQuery-DNJR5MfH.js.map +0 -1
- package/lib/esm/useAuth-CWf8ZspF.js +0 -548
- package/lib/esm/useAuth-CWf8ZspF.js.map +0 -1
- package/lib/esm/useBackofficeAuth-Da7FPNys.js +0 -89
- package/lib/esm/useBackofficeAuth-Da7FPNys.js.map +0 -1
- package/lib/esm/useBackofficeLazyValue-CW9xfRzQ.js.map +0 -1
- package/lib/esm/useBackofficeListUrlState-Ca6d7uIN.js.map +0 -1
- package/lib/esm/useBackofficeReactTranslation-Btt58EIo.js +0 -18
- package/lib/esm/useBackofficeReactTranslation-Btt58EIo.js.map +0 -1
- package/lib/esm/useRelayEnvironment-vQ86aW-n.js.map +0 -1
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
|
|
2
|
+
import { EntityIdFilterField as t } from "../filters/EntityIdFilterField.js";
|
|
3
|
+
import { BackofficeErrorBoundary as n } from "../errors/BackofficeErrorBoundary.js";
|
|
4
|
+
import { EntityIdPickerDialog as r } from "../pickers/EntityIdPickerDialog.js";
|
|
5
|
+
import { EntityFilterValue as i, EntityFilterValueText as a } from "../filters/EntityFilterValue.js";
|
|
6
|
+
import { DeferredFilterSearchInput as o } from "../filters/DeferredFilterSearchInput.js";
|
|
7
|
+
import { BackofficeListToolbar as s } from "../lists/BackofficeListToolbar.js";
|
|
8
|
+
import { BackofficeListFilterProvider as c } from "./BackofficeListFilterContext.js";
|
|
9
|
+
import { useBackofficeInfiniteScrollSentinel as l } from "../../../hooks/useBackofficeInfiniteScrollSentinel.js";
|
|
10
|
+
import { controlsRow as u, embeddedContainer as ee, embeddedHeader as te, filterInput as d } from "./backofficeEntityListScaffold.css.js";
|
|
11
|
+
import { useCallback as f, useMemo as p, useState as m } from "react";
|
|
12
|
+
import { BackofficeEmptyState as h, BackofficeFilterDrawer as ne, BackofficeFilterField as re, BackofficeInfiniteListStatus as ie, BackofficePageHeader as ae, BackofficeTableSkeleton as oe, Button as g, FilterChipRow as se, InlineBanner as ce, ListPageTemplate as le, ResponsiveRecordList as ue, SimpleSelect as _, denseTableClass as de } from "@plumile/ui";
|
|
13
|
+
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
14
|
+
import { useTranslation as fe } from "react-i18next";
|
|
15
|
+
import { readWhereValue as x, setWhereValue as S } from "@plumile/backoffice-core/filters/where.js";
|
|
16
|
+
//#region src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx
|
|
17
|
+
var C = (e, t) => e(t), w = (e, t) => e.fromGraphQL != null && t != null ? e.fromGraphQL(t) : x(t, e.whereKey ?? e.id, e.path), pe = (e, t, n) => {
|
|
18
|
+
if (t == null) return null;
|
|
19
|
+
if (Array.isArray(t)) {
|
|
20
|
+
let e = t.map((e) => {
|
|
21
|
+
if (e == null || typeof e != "string" && typeof e != "number" && typeof e != "boolean") return null;
|
|
22
|
+
let t = String(e).trim();
|
|
23
|
+
return t === "" ? null : t;
|
|
24
|
+
}).filter((e) => e != null);
|
|
25
|
+
return e.length === 0 ? null : e.join(", ");
|
|
26
|
+
}
|
|
27
|
+
if (typeof t == "boolean") return e.kind === "boolean" ? n.booleanLabel(t) : t ? n.fallbackBooleanLabels.yes : n.fallbackBooleanLabels.no;
|
|
28
|
+
if (typeof t != "string" && typeof t != "number") return null;
|
|
29
|
+
let r = String(t).trim();
|
|
30
|
+
return r === "" ? null : e.kind === "entityId" ? /* @__PURE__ */ y(i, {
|
|
31
|
+
entityId: e.entity,
|
|
32
|
+
id: r
|
|
33
|
+
}) : e.kind === "enum" ? n.enumLabel(r) : r;
|
|
34
|
+
}, me = (e) => {
|
|
35
|
+
let t = new Date(e);
|
|
36
|
+
if (Number.isNaN(t.getTime())) return e;
|
|
37
|
+
let n = t.getTimezoneOffset() * 6e4;
|
|
38
|
+
return new Date(t.getTime() - n).toISOString().slice(0, 16);
|
|
39
|
+
}, he = (e) => {
|
|
40
|
+
let t = e.trim();
|
|
41
|
+
if (t === "") return "";
|
|
42
|
+
let n = new Date(t);
|
|
43
|
+
return Number.isNaN(n.getTime()) ? t : n.toISOString();
|
|
44
|
+
}, T = (i) => {
|
|
45
|
+
let { t: x } = fe(), { t: T } = e(), { config: E, state: D, pushState: O, rows: k, getRowId: ge, columns: A, gridTemplateColumns: _e, hasNextPage: j, isLoadingMore: M, isRefreshing: ve = !1, onLoadMore: ye, onRefresh: N, totalCount: P, emptyState: F, statusBanner: I, header: L, headerActions: be, isLoadingInitial: R = !1, variant: xe = "page", showFilters: Se = !0 } = i, z = E.list, B = E.listDefaults ?? z.defaultState ?? {
|
|
46
|
+
where: null,
|
|
47
|
+
sort: null
|
|
48
|
+
}, V = p(() => A.some((e) => e.isPrimary === !0) || A.length === 0 ? A : A.map((e, t) => {
|
|
49
|
+
let { header: n } = e;
|
|
50
|
+
return t === 0 ? {
|
|
51
|
+
...e,
|
|
52
|
+
isPrimary: !0,
|
|
53
|
+
header: n
|
|
54
|
+
} : {
|
|
55
|
+
...e,
|
|
56
|
+
header: n
|
|
57
|
+
};
|
|
58
|
+
}), [A]), H = p(() => {
|
|
59
|
+
let e = [];
|
|
60
|
+
for (let t of z.filters) {
|
|
61
|
+
let n = w(t, D.where), r = pe(t, n, {
|
|
62
|
+
enumLabel: (e) => {
|
|
63
|
+
if (t.kind !== "enum") return e;
|
|
64
|
+
let n = t.options.find((t) => t.value === e);
|
|
65
|
+
return n == null ? e : C(n.label, x);
|
|
66
|
+
},
|
|
67
|
+
booleanLabel: (e) => {
|
|
68
|
+
if (t.kind === "boolean") {
|
|
69
|
+
if (e && t.trueLabel != null) return C(t.trueLabel, x);
|
|
70
|
+
if (!e && t.falseLabel != null) return C(t.falseLabel, x);
|
|
71
|
+
}
|
|
72
|
+
return T(e ? "filters.boolean.yes" : "filters.boolean.no");
|
|
73
|
+
},
|
|
74
|
+
fallbackBooleanLabels: {
|
|
75
|
+
yes: T("filters.boolean.yes"),
|
|
76
|
+
no: T("filters.boolean.no")
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (r != null) {
|
|
80
|
+
let i = String(n);
|
|
81
|
+
Array.isArray(n) && (i = n.join(","));
|
|
82
|
+
let a = /* @__PURE__ */ b("span", { children: [
|
|
83
|
+
C(t.label, x),
|
|
84
|
+
": ",
|
|
85
|
+
r
|
|
86
|
+
] });
|
|
87
|
+
e.push({
|
|
88
|
+
id: `${t.id}:${i}`,
|
|
89
|
+
label: a,
|
|
90
|
+
onRemove: () => {
|
|
91
|
+
let e = t.whereKey ?? t.id, n = S(D.where, e, null, t.path);
|
|
92
|
+
O({
|
|
93
|
+
...D,
|
|
94
|
+
where: n
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return e;
|
|
101
|
+
}, [
|
|
102
|
+
z.filters,
|
|
103
|
+
O,
|
|
104
|
+
D,
|
|
105
|
+
T,
|
|
106
|
+
x
|
|
107
|
+
]), U = f(() => {
|
|
108
|
+
O({ ...B });
|
|
109
|
+
}, [B, O]), [Ce, W] = m(!1), [G, K] = m(""), [q, J] = m(null), Y = f((e) => {
|
|
110
|
+
let n = e.whereKey ?? e.id, r = w(e, D.where), i = "";
|
|
111
|
+
typeof r == "string" && (i = r), typeof r == "number" && Number.isFinite(r) && (i = String(r));
|
|
112
|
+
let s = C(e.label, x);
|
|
113
|
+
if (e.kind === "text") {
|
|
114
|
+
let t = T("filters.placeholders.search", { label: e.placeholderLabel == null ? s : C(e.placeholderLabel, x) });
|
|
115
|
+
return e.placeholderText != null && (t = C(e.placeholderText, x)), /* @__PURE__ */ y(o, {
|
|
116
|
+
value: me(i),
|
|
117
|
+
onApply: (t) => {
|
|
118
|
+
let r = he(t), i = S(D.where, n, r, e.path);
|
|
119
|
+
O({
|
|
120
|
+
...D,
|
|
121
|
+
where: i
|
|
122
|
+
});
|
|
123
|
+
},
|
|
124
|
+
placeholder: t,
|
|
125
|
+
ariaLabel: t,
|
|
126
|
+
className: d
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (e.kind === "datetime") {
|
|
130
|
+
let t = T("filters.placeholders.search", { label: e.placeholderLabel == null ? s : C(e.placeholderLabel, x) });
|
|
131
|
+
return e.placeholderText != null && (t = C(e.placeholderText, x)), /* @__PURE__ */ y(o, {
|
|
132
|
+
value: i,
|
|
133
|
+
onApply: (t) => {
|
|
134
|
+
let r = S(D.where, n, t, e.path);
|
|
135
|
+
O({
|
|
136
|
+
...D,
|
|
137
|
+
where: r
|
|
138
|
+
});
|
|
139
|
+
},
|
|
140
|
+
placeholder: t,
|
|
141
|
+
ariaLabel: t,
|
|
142
|
+
className: d,
|
|
143
|
+
type: "datetime-local"
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
if (e.kind === "number") {
|
|
147
|
+
let t = T("filters.placeholders.search", { label: e.placeholderLabel == null ? s : C(e.placeholderLabel, x) });
|
|
148
|
+
return e.placeholderText != null && (t = C(e.placeholderText, x)), /* @__PURE__ */ y(o, {
|
|
149
|
+
value: i,
|
|
150
|
+
onApply: (t) => {
|
|
151
|
+
let r = t.trim(), i = r === "" ? null : Number(r), a = S(D.where, n, Number.isFinite(i) ? i : null, e.path);
|
|
152
|
+
O({
|
|
153
|
+
...D,
|
|
154
|
+
where: a
|
|
155
|
+
});
|
|
156
|
+
},
|
|
157
|
+
placeholder: t,
|
|
158
|
+
ariaLabel: t,
|
|
159
|
+
className: d,
|
|
160
|
+
inputMode: e.inputMode ?? "numeric",
|
|
161
|
+
type: "number"
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
if (e.kind === "enum") return /* @__PURE__ */ y(_, {
|
|
165
|
+
options: [{
|
|
166
|
+
id: "any",
|
|
167
|
+
value: "",
|
|
168
|
+
label: T("filters.all", { label: s })
|
|
169
|
+
}, ...e.options.map((e) => ({
|
|
170
|
+
id: e.value,
|
|
171
|
+
value: e.value,
|
|
172
|
+
label: C(e.label, x)
|
|
173
|
+
}))],
|
|
174
|
+
value: i,
|
|
175
|
+
size: "small",
|
|
176
|
+
ariaLabel: s,
|
|
177
|
+
onChange: (t) => {
|
|
178
|
+
let r = S(D.where, n, t, e.path);
|
|
179
|
+
O({
|
|
180
|
+
...D,
|
|
181
|
+
where: r
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
if (e.kind === "boolean") {
|
|
186
|
+
let t = null;
|
|
187
|
+
typeof r == "boolean" && (t = r);
|
|
188
|
+
let i = "";
|
|
189
|
+
t === !0 && (i = "true"), t === !1 && (i = "false");
|
|
190
|
+
let a = e.trueLabel == null ? T("filters.boolean.yes") : C(e.trueLabel, x), o = e.falseLabel == null ? T("filters.boolean.no") : C(e.falseLabel, x);
|
|
191
|
+
return /* @__PURE__ */ y(_, {
|
|
192
|
+
options: [
|
|
193
|
+
{
|
|
194
|
+
id: "any",
|
|
195
|
+
value: "",
|
|
196
|
+
label: T("filters.all", { label: s })
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: "true",
|
|
200
|
+
value: "true",
|
|
201
|
+
label: a
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: "false",
|
|
205
|
+
value: "false",
|
|
206
|
+
label: o
|
|
207
|
+
}
|
|
208
|
+
],
|
|
209
|
+
value: i,
|
|
210
|
+
size: "small",
|
|
211
|
+
ariaLabel: s,
|
|
212
|
+
onChange: (t) => {
|
|
213
|
+
let r = null;
|
|
214
|
+
t === "true" && (r = !0), t === "false" && (r = !1);
|
|
215
|
+
let i = S(D.where, n, r, e.path);
|
|
216
|
+
O({
|
|
217
|
+
...D,
|
|
218
|
+
where: i
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
let c = (() => {
|
|
224
|
+
if (e.pickerScope != null) return typeof e.pickerScope == "function" ? e.pickerScope(D.where) : e.pickerScope;
|
|
225
|
+
})(), l = null;
|
|
226
|
+
typeof r == "string" && (l = r);
|
|
227
|
+
let u = (r = null) => {
|
|
228
|
+
let i = r?.trim() ?? "";
|
|
229
|
+
return /* @__PURE__ */ y(t, {
|
|
230
|
+
label: s,
|
|
231
|
+
value: l,
|
|
232
|
+
displayValue: i,
|
|
233
|
+
placeholder: T("filters.placeholders.anyEntity", { label: s }),
|
|
234
|
+
onPick: () => {
|
|
235
|
+
J({
|
|
236
|
+
entity: e.entity,
|
|
237
|
+
whereKey: n,
|
|
238
|
+
label: s,
|
|
239
|
+
path: e.path,
|
|
240
|
+
scope: c
|
|
241
|
+
});
|
|
242
|
+
},
|
|
243
|
+
onClear: () => {
|
|
244
|
+
let t = S(D.where, n, null, e.path);
|
|
245
|
+
O({
|
|
246
|
+
...D,
|
|
247
|
+
where: t
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
};
|
|
252
|
+
return l == null || l.trim() === "" ? u() : /* @__PURE__ */ y(a, {
|
|
253
|
+
entityId: e.entity,
|
|
254
|
+
id: l,
|
|
255
|
+
children: (e) => u(e)
|
|
256
|
+
});
|
|
257
|
+
}, [
|
|
258
|
+
O,
|
|
259
|
+
D,
|
|
260
|
+
T,
|
|
261
|
+
x
|
|
262
|
+
]), X = p(() => z.filters.some((e) => e.placement != null), [z.filters]), Z = p(() => {
|
|
263
|
+
if (z.filters.length === 0) return [];
|
|
264
|
+
let e = z.ui?.toolbar?.maxPromotedFilters ?? 3;
|
|
265
|
+
return X ? z.filters.filter((e) => e.placement === "quick" || e.placement === "both") : z.filters.slice(0, e);
|
|
266
|
+
}, [
|
|
267
|
+
z.filters,
|
|
268
|
+
z.ui?.toolbar,
|
|
269
|
+
X
|
|
270
|
+
]), Q = p(() => z.filters.filter((e) => e.placement == null ? !0 : e.placement === "drawer" || e.placement === "both"), [z.filters]), $ = p(() => Z.find((e) => e.kind === "text"), [Z]), we = p(() => {
|
|
271
|
+
let e = Z.filter((e) => e !== $);
|
|
272
|
+
return e.length === 0 ? null : /* @__PURE__ */ y("div", {
|
|
273
|
+
className: u,
|
|
274
|
+
children: e.map((e) => /* @__PURE__ */ y("span", { children: Y(e) }, e.id))
|
|
275
|
+
});
|
|
276
|
+
}, [
|
|
277
|
+
Z,
|
|
278
|
+
Y,
|
|
279
|
+
$
|
|
280
|
+
]), Te = p(() => $ == null ? null : Y($), [Y, $]), Ee = p(() => {
|
|
281
|
+
if (z.sorts.length === 0) return null;
|
|
282
|
+
let e = z.sorts[0];
|
|
283
|
+
return e == null ? null : /* @__PURE__ */ y(_, {
|
|
284
|
+
options: z.sorts.map((e) => ({
|
|
285
|
+
id: e.id,
|
|
286
|
+
value: e.id,
|
|
287
|
+
label: C(e.label, x)
|
|
288
|
+
})),
|
|
289
|
+
value: D.sort ?? e.id,
|
|
290
|
+
size: "small",
|
|
291
|
+
ariaLabel: T("list.sort.label"),
|
|
292
|
+
onChange: (e) => {
|
|
293
|
+
O({
|
|
294
|
+
...D,
|
|
295
|
+
sort: e
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}, [
|
|
300
|
+
z.sorts,
|
|
301
|
+
O,
|
|
302
|
+
D,
|
|
303
|
+
T,
|
|
304
|
+
x
|
|
305
|
+
]), De = p(() => H.length === 0 ? null : /* @__PURE__ */ y(se, {
|
|
306
|
+
chips: H,
|
|
307
|
+
onClearAll: U
|
|
308
|
+
}), [H, U]), Oe = p(() => {
|
|
309
|
+
if (Q.length === 0) return [];
|
|
310
|
+
let e = G.trim().toLowerCase(), t = [];
|
|
311
|
+
for (let n of Q) {
|
|
312
|
+
let r = C(n.label, x);
|
|
313
|
+
(e === "" || r.toLowerCase().includes(e)) && t.push({
|
|
314
|
+
id: n.id,
|
|
315
|
+
node: /* @__PURE__ */ y(re, {
|
|
316
|
+
label: r,
|
|
317
|
+
children: Y(n)
|
|
318
|
+
})
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
return t.length === 0 ? [] : [{
|
|
322
|
+
id: "backoffice.filters.sections.default",
|
|
323
|
+
title: T("filters.sections.default"),
|
|
324
|
+
items: t
|
|
325
|
+
}];
|
|
326
|
+
}, [
|
|
327
|
+
Q,
|
|
328
|
+
G,
|
|
329
|
+
Y,
|
|
330
|
+
T,
|
|
331
|
+
x
|
|
332
|
+
]), ke = p(() => {
|
|
333
|
+
if (Q.length === 0) return null;
|
|
334
|
+
let e = H.length, t = T("filters.trigger");
|
|
335
|
+
return e > 0 && (t = T("filters.triggerWithCount", { count: e })), /* @__PURE__ */ y(g, {
|
|
336
|
+
type: "button",
|
|
337
|
+
variant: "secondary",
|
|
338
|
+
size: "small",
|
|
339
|
+
onClick: () => {
|
|
340
|
+
W(!0);
|
|
341
|
+
},
|
|
342
|
+
children: t
|
|
343
|
+
});
|
|
344
|
+
}, [
|
|
345
|
+
H.length,
|
|
346
|
+
Q.length,
|
|
347
|
+
T
|
|
348
|
+
]), Ae = /* @__PURE__ */ y(ne, {
|
|
349
|
+
isOpen: Ce,
|
|
350
|
+
onClose: () => {
|
|
351
|
+
W(!1), K("");
|
|
352
|
+
},
|
|
353
|
+
sections: Oe,
|
|
354
|
+
searchValue: G,
|
|
355
|
+
onSearchChange: (e) => {
|
|
356
|
+
K(e);
|
|
357
|
+
},
|
|
358
|
+
onReset: U,
|
|
359
|
+
emptyLabel: G.trim() === "" ? void 0 : T("filters.drawer.emptySearchResults")
|
|
360
|
+
}), je = p(() => F ?? (R ? /* @__PURE__ */ y(oe, {
|
|
361
|
+
variant: "embedded",
|
|
362
|
+
ariaLabel: T("common.loading")
|
|
363
|
+
}) : H.length > 0 ? /* @__PURE__ */ y(h, {
|
|
364
|
+
title: T("emptyState.listEmpty.title"),
|
|
365
|
+
description: T("emptyState.listEmptyFiltered.description"),
|
|
366
|
+
actions: /* @__PURE__ */ y(g, {
|
|
367
|
+
type: "button",
|
|
368
|
+
variant: "secondary",
|
|
369
|
+
size: "small",
|
|
370
|
+
onClick: U,
|
|
371
|
+
children: T("emptyState.listEmptyFiltered.actions.reset")
|
|
372
|
+
})
|
|
373
|
+
}) : /* @__PURE__ */ y(h, {
|
|
374
|
+
title: T("emptyState.listEmpty.title"),
|
|
375
|
+
description: T("emptyState.listEmpty.description")
|
|
376
|
+
})), [
|
|
377
|
+
H.length,
|
|
378
|
+
F,
|
|
379
|
+
U,
|
|
380
|
+
R,
|
|
381
|
+
T
|
|
382
|
+
]), Me = p(() => typeof P == "number" ? /* @__PURE__ */ y("span", { children: T("list.showing", {
|
|
383
|
+
shown: k.length,
|
|
384
|
+
total: P
|
|
385
|
+
}) }) : k.length === 0 ? null : /* @__PURE__ */ y("span", { children: T("list.loaded", { count: k.length }) }), [
|
|
386
|
+
k.length,
|
|
387
|
+
T,
|
|
388
|
+
P
|
|
389
|
+
]), { sentinelRef: Ne } = l({
|
|
390
|
+
enabled: !0,
|
|
391
|
+
hasNextPage: j,
|
|
392
|
+
isLoading: M,
|
|
393
|
+
onIntersect: ye
|
|
394
|
+
}), Pe = L?.title ?? C(z.title, x), Fe = L?.subtitle, Ie = V.find((e) => e.mobileRole === "action" || e.id === "actions"), Le = /* @__PURE__ */ y(n, {
|
|
395
|
+
fallback: (e) => {
|
|
396
|
+
let { reset: t } = e;
|
|
397
|
+
return /* @__PURE__ */ y(ce, {
|
|
398
|
+
tone: "danger",
|
|
399
|
+
title: T("list.errors.title"),
|
|
400
|
+
actions: /* @__PURE__ */ y(g, {
|
|
401
|
+
type: "button",
|
|
402
|
+
variant: "secondary",
|
|
403
|
+
size: "small",
|
|
404
|
+
onClick: () => {
|
|
405
|
+
t(), N?.();
|
|
406
|
+
},
|
|
407
|
+
children: T("list.actions.retry")
|
|
408
|
+
}),
|
|
409
|
+
children: T("list.errors.tableFailed")
|
|
410
|
+
});
|
|
411
|
+
},
|
|
412
|
+
children: /* @__PURE__ */ y(ue, {
|
|
413
|
+
columns: V,
|
|
414
|
+
rows: k,
|
|
415
|
+
getRowId: ge,
|
|
416
|
+
emptyState: je,
|
|
417
|
+
className: de,
|
|
418
|
+
gridTemplateColumns: _e,
|
|
419
|
+
mode: z.ui?.displayMode ?? z.responsive?.mode ?? "auto",
|
|
420
|
+
density: z.ui?.density ?? z.responsive?.density ?? "compact",
|
|
421
|
+
renderAction: (e) => Ie?.cell(e) ?? null
|
|
422
|
+
})
|
|
423
|
+
}), Re = Se ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(s, {
|
|
424
|
+
primaryFilters: Te != null || we != null ? /* @__PURE__ */ b(v, { children: [Te, we] }) : null,
|
|
425
|
+
filterDrawerTrigger: ke,
|
|
426
|
+
sortControl: Ee,
|
|
427
|
+
utilityActions: N == null ? null : /* @__PURE__ */ y(g, {
|
|
428
|
+
type: "button",
|
|
429
|
+
variant: "secondary",
|
|
430
|
+
size: "small",
|
|
431
|
+
isLoading: ve,
|
|
432
|
+
loadingLabel: T("list.actions.refreshing"),
|
|
433
|
+
onClick: () => {
|
|
434
|
+
N();
|
|
435
|
+
},
|
|
436
|
+
children: T("list.actions.refresh")
|
|
437
|
+
}),
|
|
438
|
+
activeFilters: De,
|
|
439
|
+
density: "compact"
|
|
440
|
+
}), Ae] }) : null, ze = /* @__PURE__ */ b("div", { children: [Le, /* @__PURE__ */ y(r, {
|
|
441
|
+
isOpen: q != null,
|
|
442
|
+
entity: q?.entity ?? E.id,
|
|
443
|
+
title: q?.label ?? T("picker.title"),
|
|
444
|
+
scope: q?.scope,
|
|
445
|
+
onClose: () => {
|
|
446
|
+
J(null);
|
|
447
|
+
},
|
|
448
|
+
onSelectId: (e) => {
|
|
449
|
+
if (q == null) return;
|
|
450
|
+
let t = S(D.where, q.whereKey, e, q.path);
|
|
451
|
+
O({
|
|
452
|
+
...D,
|
|
453
|
+
where: t
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
})] }), Be = k.length > 0 || M || j ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("div", {
|
|
457
|
+
ref: Ne,
|
|
458
|
+
"aria-hidden": "true"
|
|
459
|
+
}), /* @__PURE__ */ y(ie, {
|
|
460
|
+
loadedCount: k.length,
|
|
461
|
+
totalCount: P,
|
|
462
|
+
hasNextPage: j,
|
|
463
|
+
isLoading: M,
|
|
464
|
+
loadedLabel: Me,
|
|
465
|
+
loadingLabel: T("list.loadMore.loading"),
|
|
466
|
+
endLabel: T("list.loadMore.end")
|
|
467
|
+
})] }) : null;
|
|
468
|
+
return xe === "embedded" ? /* @__PURE__ */ y(c, {
|
|
469
|
+
config: E,
|
|
470
|
+
state: D,
|
|
471
|
+
pushState: O,
|
|
472
|
+
children: /* @__PURE__ */ b("div", {
|
|
473
|
+
className: ee,
|
|
474
|
+
children: [
|
|
475
|
+
/* @__PURE__ */ y("div", {
|
|
476
|
+
className: te,
|
|
477
|
+
children: Pe
|
|
478
|
+
}),
|
|
479
|
+
Re,
|
|
480
|
+
I,
|
|
481
|
+
ze,
|
|
482
|
+
Be
|
|
483
|
+
]
|
|
484
|
+
})
|
|
485
|
+
}) : /* @__PURE__ */ y(c, {
|
|
486
|
+
config: E,
|
|
487
|
+
state: D,
|
|
488
|
+
pushState: O,
|
|
489
|
+
children: /* @__PURE__ */ y(le, {
|
|
490
|
+
headerNode: /* @__PURE__ */ y(ae, {
|
|
491
|
+
title: Pe,
|
|
492
|
+
subtitle: Fe,
|
|
493
|
+
actions: be
|
|
494
|
+
}),
|
|
495
|
+
toolbarNode: Re,
|
|
496
|
+
statusNode: I,
|
|
497
|
+
tableNode: ze,
|
|
498
|
+
tableFooterNode: Be,
|
|
499
|
+
presentation: "flat"
|
|
500
|
+
})
|
|
501
|
+
});
|
|
502
|
+
};
|
|
503
|
+
//#endregion
|
|
504
|
+
export { T as BackofficeEntityListScaffold, T as default };
|
|
505
|
+
|
|
506
|
+
//# sourceMappingURL=BackofficeEntityListScaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeEntityListScaffold.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n type JSX,\n type ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport type { TFunction } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport {\n BackofficeEmptyState,\n BackofficeFilterDrawer,\n BackofficeFilterField,\n BackofficeInfiniteListStatus,\n BackofficePageHeader,\n BackofficeTableSkeleton,\n Button,\n FilterChipRow,\n InlineBanner,\n ListPageTemplate,\n ResponsiveRecordList,\n SimpleSelect,\n type FilterChip,\n type DataTableColumn,\n type GetRowId,\n denseTableClass,\n} from '@plumile/ui';\n\nimport {\n readWhereValue,\n setWhereValue,\n} from '@plumile/backoffice-core/filters/where.js';\nimport type {\n BackofficeFilterSpec,\n BackofficeListState,\n BackofficePickerScope,\n BackofficeRuntimeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\n\nimport { BackofficeErrorBoundary } from '../errors/BackofficeErrorBoundary.js';\nimport {\n EntityFilterValue,\n EntityFilterValueText,\n} from '../filters/EntityFilterValue.js';\nimport { EntityIdPickerDialog } from '../pickers/EntityIdPickerDialog.js';\nimport { EntityIdFilterField } from '../filters/EntityIdFilterField.js';\nimport { DeferredFilterSearchInput } from '../filters/DeferredFilterSearchInput.js';\nimport { BackofficeListToolbar } from '../lists/BackofficeListToolbar.js';\nimport { BackofficeListFilterProvider } from './BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeInfiniteScrollSentinel } from '../../../hooks/useBackofficeInfiniteScrollSentinel.js';\n\nimport * as styles from './backofficeEntityListScaffold.css.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nconst getFilterValue = <Where extends Record<string, unknown>>(\n filter: BackofficeFilterSpec<Where>,\n where: Where | null,\n): unknown => {\n if (filter.fromGraphQL != null && where != null) {\n return filter.fromGraphQL(where);\n }\n\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n return readWhereValue(where, key, filter.path);\n};\n\nconst getFilterDisplayValue = <Where extends Record<string, unknown>>(\n filter: BackofficeFilterSpec<Where>,\n raw: unknown,\n options: {\n enumLabel: (value: string) => string;\n booleanLabel: (value: boolean) => string;\n fallbackBooleanLabels: { yes: string; no: string };\n },\n): ReactNode | null => {\n if (raw == null) {\n return null;\n }\n\n if (Array.isArray(raw)) {\n const normalized = raw\n .map((entry) => {\n if (entry == null) {\n return null;\n }\n if (\n typeof entry !== 'string' &&\n typeof entry !== 'number' &&\n typeof entry !== 'boolean'\n ) {\n return null;\n }\n const value = String(entry).trim();\n if (value === '') {\n return null;\n }\n return value;\n })\n .filter((entry): entry is string => {\n return entry != null;\n });\n\n if (normalized.length === 0) {\n return null;\n }\n return normalized.join(', ');\n }\n\n if (typeof raw === 'boolean') {\n if (filter.kind === 'boolean') {\n return options.booleanLabel(raw);\n }\n if (raw) {\n return options.fallbackBooleanLabels.yes;\n }\n return options.fallbackBooleanLabels.no;\n }\n\n if (typeof raw !== 'string' && typeof raw !== 'number') {\n return null;\n }\n\n const rawString = String(raw).trim();\n if (rawString === '') {\n return null;\n }\n\n if (filter.kind === 'entityId') {\n return <EntityFilterValue entityId={filter.entity} id={rawString} />;\n }\n\n if (filter.kind === 'enum') {\n return options.enumLabel(rawString);\n }\n\n return rawString;\n};\n\nconst toDatetimeInputValue = (value: string): string => {\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) {\n return value;\n }\n const offsetMs = date.getTimezoneOffset() * 60_000;\n return new Date(date.getTime() - offsetMs).toISOString().slice(0, 16);\n};\n\nconst fromDatetimeInputValue = (value: string): string => {\n const normalized = value.trim();\n if (normalized === '') {\n return '';\n }\n const date = new Date(normalized);\n if (Number.isNaN(date.getTime())) {\n return normalized;\n }\n return date.toISOString();\n};\n\ntype RuntimeWhere = Record<string, unknown>;\ntype RuntimeSort = string;\n\ntype Props<RowView> = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n state: BackofficeListState<RuntimeWhere, RuntimeSort>;\n pushState: (next: BackofficeListState<RuntimeWhere, RuntimeSort>) => void;\n header?: {\n title?: string;\n subtitle?: string;\n };\n headerActions?: ReactNode;\n rows: readonly RowView[];\n getRowId: GetRowId<RowView>;\n columns: readonly DataTableColumn<RowView>[];\n gridTemplateColumns?: string;\n hasNextPage: boolean;\n isLoadingMore: boolean;\n isRefreshing?: boolean;\n onLoadMore: () => void;\n onRefresh?: () => void;\n totalCount?: number | null;\n emptyState?: JSX.Element;\n statusBanner?: ReactNode;\n isLoadingInitial?: boolean;\n virtualize?: boolean;\n variant?: 'page' | 'embedded';\n showFilters?: boolean;\n};\n\nexport const BackofficeEntityListScaffold = <RowView,>(\n props: Props<RowView>,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const {\n config,\n state,\n pushState,\n rows,\n getRowId,\n columns,\n gridTemplateColumns,\n hasNextPage,\n isLoadingMore,\n isRefreshing = false,\n onLoadMore,\n onRefresh,\n totalCount,\n emptyState,\n statusBanner,\n header,\n headerActions,\n isLoadingInitial = false,\n variant = 'page',\n showFilters = true,\n } = props;\n const listConfig = config.list;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const listDefaults = config.listDefaults ??\n listConfig.defaultState ?? { where: null, sort: null };\n\n const columnsWithPrimary = useMemo(() => {\n const hasPrimary = columns.some((col) => {\n return col.isPrimary === true;\n });\n if (hasPrimary || columns.length === 0) {\n return columns;\n }\n return columns.map((col, index) => {\n const { header } = col;\n if (index === 0) {\n return { ...col, isPrimary: true, header };\n }\n return { ...col, header };\n });\n }, [columns]);\n\n const chips = useMemo<readonly FilterChip[]>(() => {\n const out: FilterChip[] = [];\n for (const filter of listConfig.filters) {\n const raw = getFilterValue(filter, state.where);\n const displayValue = getFilterDisplayValue(filter, raw, {\n enumLabel: (value) => {\n if (filter.kind !== 'enum') {\n return value;\n }\n const match = filter.options.find((option) => {\n return option.value === value;\n });\n if (match != null) {\n return resolveLabel(match.label, tApp);\n }\n return value;\n },\n booleanLabel: (value) => {\n if (filter.kind === 'boolean') {\n if (value && filter.trueLabel != null) {\n return resolveLabel(filter.trueLabel, tApp);\n }\n if (!value && filter.falseLabel != null) {\n return resolveLabel(filter.falseLabel, tApp);\n }\n }\n if (value) {\n return t('filters.boolean.yes');\n }\n return t('filters.boolean.no');\n },\n fallbackBooleanLabels: {\n yes: t('filters.boolean.yes'),\n no: t('filters.boolean.no'),\n },\n });\n\n if (displayValue != null) {\n let idValue = String(raw);\n if (Array.isArray(raw)) {\n idValue = raw.join(',');\n }\n const label = (\n <span>\n {resolveLabel(filter.label, tApp)}: {displayValue}\n </span>\n );\n out.push({\n id: `${filter.id}:${idValue}`,\n label,\n onRemove: () => {\n const key = filter.whereKey ?? filter.id;\n const nextWhere = setWhereValue(\n state.where,\n key,\n null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n },\n });\n }\n }\n return out;\n }, [listConfig.filters, pushState, state, t, tApp]);\n\n const handleClearAll = useCallback(() => {\n pushState({\n ...listDefaults,\n });\n }, [listDefaults, pushState]);\n const [isFilterDrawerOpen, setIsFilterDrawerOpen] = useState(false);\n const [filterSearch, setFilterSearch] = useState('');\n\n const [pickerDialog, setPickerDialog] = useState<{\n entity: string;\n whereKey: keyof RuntimeWhere;\n label: string;\n path?: readonly string[];\n scope?: BackofficePickerScope<Record<string, unknown>>;\n } | null>(null);\n\n const renderFilterControl = useCallback(\n (filter: BackofficeFilterSpec<RuntimeWhere>): JSX.Element => {\n const key = filter.whereKey ?? filter.id;\n const candidate = getFilterValue(filter, state.where);\n let value = '';\n if (typeof candidate === 'string') {\n value = candidate;\n }\n if (typeof candidate === 'number' && Number.isFinite(candidate)) {\n value = String(candidate);\n }\n\n const filterLabelText = resolveLabel(filter.label, tApp);\n\n if (filter.kind === 'text') {\n const placeholderLabelText =\n filter.placeholderLabel != null\n ? resolveLabel(filter.placeholderLabel, tApp)\n : filterLabelText;\n let placeholder = t('filters.placeholders.search', {\n label: placeholderLabelText,\n });\n if (filter.placeholderText != null) {\n placeholder = resolveLabel(filter.placeholderText, tApp);\n }\n return (\n <DeferredFilterSearchInput\n value={toDatetimeInputValue(value)}\n onApply={(next) => {\n const normalized = fromDatetimeInputValue(next);\n const nextWhere = setWhereValue(\n state.where,\n key,\n normalized,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n placeholder={placeholder}\n ariaLabel={placeholder}\n className={styles.filterInput}\n />\n );\n }\n\n if (filter.kind === 'datetime') {\n const placeholderLabelText =\n filter.placeholderLabel != null\n ? resolveLabel(filter.placeholderLabel, tApp)\n : filterLabelText;\n let placeholder = t('filters.placeholders.search', {\n label: placeholderLabelText,\n });\n if (filter.placeholderText != null) {\n placeholder = resolveLabel(filter.placeholderText, tApp);\n }\n return (\n <DeferredFilterSearchInput\n value={value}\n onApply={(next) => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n next,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n placeholder={placeholder}\n ariaLabel={placeholder}\n className={styles.filterInput}\n type=\"datetime-local\"\n />\n );\n }\n\n if (filter.kind === 'number') {\n const placeholderLabelText =\n filter.placeholderLabel != null\n ? resolveLabel(filter.placeholderLabel, tApp)\n : filterLabelText;\n let placeholder = t('filters.placeholders.search', {\n label: placeholderLabelText,\n });\n if (filter.placeholderText != null) {\n placeholder = resolveLabel(filter.placeholderText, tApp);\n }\n return (\n <DeferredFilterSearchInput\n value={value}\n onApply={(next) => {\n const normalized = next.trim();\n const parsed = normalized === '' ? null : Number(normalized);\n const nextWhere = setWhereValue(\n state.where,\n key,\n Number.isFinite(parsed) ? parsed : null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n placeholder={placeholder}\n ariaLabel={placeholder}\n className={styles.filterInput}\n inputMode={filter.inputMode ?? 'numeric'}\n type=\"number\"\n />\n );\n }\n\n if (filter.kind === 'enum') {\n const options = [\n {\n id: 'any',\n value: '',\n label: t('filters.all', {\n label: filterLabelText,\n }),\n },\n ...filter.options.map((option) => {\n return {\n id: option.value,\n value: option.value,\n label: resolveLabel(option.label, tApp),\n };\n }),\n ];\n\n return (\n <SimpleSelect\n options={options}\n value={value}\n size=\"small\"\n ariaLabel={filterLabelText}\n onChange={(next) => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n next,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n }\n\n if (filter.kind === 'boolean') {\n let current: boolean | null = null;\n if (typeof candidate === 'boolean') {\n current = candidate;\n }\n\n let selectValue = '';\n if (current === true) {\n selectValue = 'true';\n }\n if (current === false) {\n selectValue = 'false';\n }\n\n const trueLabel =\n filter.trueLabel != null\n ? resolveLabel(filter.trueLabel, tApp)\n : t('filters.boolean.yes');\n const falseLabel =\n filter.falseLabel != null\n ? resolveLabel(filter.falseLabel, tApp)\n : t('filters.boolean.no');\n const options = [\n {\n id: 'any',\n value: '',\n label: t('filters.all', {\n label: filterLabelText,\n }),\n },\n {\n id: 'true',\n value: 'true',\n label: trueLabel,\n },\n {\n id: 'false',\n value: 'false',\n label: falseLabel,\n },\n ];\n\n return (\n <SimpleSelect\n options={options}\n value={selectValue}\n size=\"small\"\n ariaLabel={filterLabelText}\n onChange={(next) => {\n let parsed: boolean | null = null;\n if (next === 'true') {\n parsed = true;\n }\n if (next === 'false') {\n parsed = false;\n }\n const nextWhere = setWhereValue(\n state.where,\n key,\n parsed,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n }\n\n const pickerScope = (() => {\n if (filter.pickerScope == null) {\n return undefined;\n }\n if (typeof filter.pickerScope === 'function') {\n return filter.pickerScope(state.where);\n }\n return filter.pickerScope;\n })();\n let currentId: string | null = null;\n if (typeof candidate === 'string') {\n currentId = candidate;\n }\n\n const renderField = (displayValue: string | null = null) => {\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n return (\n <EntityIdFilterField\n label={filterLabelText}\n value={currentId}\n displayValue={normalizedDisplayValue}\n placeholder={t('filters.placeholders.anyEntity', {\n label: filterLabelText,\n })}\n onPick={() => {\n setPickerDialog({\n entity: filter.entity,\n whereKey: key,\n label: filterLabelText,\n path: filter.path,\n scope: pickerScope,\n });\n }}\n onClear={() => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n };\n\n if (currentId == null || currentId.trim() === '') {\n return renderField();\n }\n\n return (\n <EntityFilterValueText entityId={filter.entity} id={currentId}>\n {(label) => {\n return renderField(label);\n }}\n </EntityFilterValueText>\n );\n },\n [pushState, state, t, tApp],\n );\n\n const hasPlacementConfig = useMemo(() => {\n return listConfig.filters.some((filter) => {\n return filter.placement != null;\n });\n }, [listConfig.filters]);\n\n const quickFilters = useMemo(() => {\n if (listConfig.filters.length === 0) {\n return [];\n }\n const maxPromotedFilters = listConfig.ui?.toolbar?.maxPromotedFilters ?? 3;\n if (hasPlacementConfig) {\n return listConfig.filters.filter((filter) => {\n return filter.placement === 'quick' || filter.placement === 'both';\n });\n }\n return listConfig.filters.slice(0, maxPromotedFilters);\n }, [listConfig.filters, listConfig.ui?.toolbar, hasPlacementConfig]);\n\n const drawerFilters = useMemo(() => {\n return listConfig.filters.filter((filter) => {\n if (filter.placement == null) {\n return true;\n }\n return filter.placement === 'drawer' || filter.placement === 'both';\n });\n }, [listConfig.filters]);\n\n const searchFilter = useMemo(() => {\n return quickFilters.find((filter) => {\n return filter.kind === 'text';\n });\n }, [quickFilters]);\n\n const quickFiltersNode = useMemo(() => {\n const visibleQuickFilters = quickFilters.filter((filter) => {\n return filter !== searchFilter;\n });\n\n if (visibleQuickFilters.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.controlsRow}>\n {visibleQuickFilters.map((filter) => {\n return <span key={filter.id}>{renderFilterControl(filter)}</span>;\n })}\n </div>\n );\n }, [quickFilters, renderFilterControl, searchFilter]);\n\n const searchNode = useMemo(() => {\n if (searchFilter == null) {\n return null;\n }\n return renderFilterControl(searchFilter);\n }, [renderFilterControl, searchFilter]);\n\n const sortNode = useMemo(() => {\n if (listConfig.sorts.length === 0) {\n return null;\n }\n const firstSort = listConfig.sorts[0];\n if (firstSort == null) {\n return null;\n }\n const options = listConfig.sorts.map((s) => {\n return { id: s.id, value: s.id, label: resolveLabel(s.label, tApp) };\n });\n return (\n <SimpleSelect\n options={options}\n value={state.sort ?? firstSort.id}\n size=\"small\"\n ariaLabel={t('list.sort.label')}\n onChange={(next) => {\n pushState({\n ...state,\n sort: next,\n });\n }}\n />\n );\n }, [listConfig.sorts, pushState, state, t, tApp]);\n\n const chipsNode = useMemo(() => {\n if (chips.length === 0) {\n return null;\n }\n return <FilterChipRow chips={chips} onClearAll={handleClearAll} />;\n }, [chips, handleClearAll]);\n\n const drawerSections = useMemo(() => {\n if (drawerFilters.length === 0) {\n return [];\n }\n\n const normalizedQuery = filterSearch.trim().toLowerCase();\n const items: { id: string; node: JSX.Element }[] = [];\n\n for (const filter of drawerFilters) {\n const resolvedLabel = resolveLabel(filter.label, tApp);\n const matchesQuery =\n normalizedQuery === '' ||\n resolvedLabel.toLowerCase().includes(normalizedQuery);\n\n if (matchesQuery) {\n items.push({\n id: filter.id,\n node: (\n <BackofficeFilterField label={resolvedLabel}>\n {renderFilterControl(filter)}\n </BackofficeFilterField>\n ),\n });\n }\n }\n\n if (items.length === 0) {\n return [];\n }\n\n return [\n {\n id: 'backoffice.filters.sections.default',\n title: t('filters.sections.default'),\n items,\n },\n ];\n }, [drawerFilters, filterSearch, renderFilterControl, t, tApp]);\n\n const allFiltersNode = useMemo(() => {\n if (drawerFilters.length === 0) {\n return null;\n }\n const activeCount = chips.length;\n let label = t('filters.trigger');\n if (activeCount > 0) {\n label = t('filters.triggerWithCount', {\n count: activeCount,\n });\n }\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={() => {\n setIsFilterDrawerOpen(true);\n }}\n >\n {label}\n </Button>\n );\n }, [chips.length, drawerFilters.length, t]);\n\n const filterDrawerEmptyLabel =\n filterSearch.trim() === ''\n ? undefined\n : t('filters.drawer.emptySearchResults');\n\n const filterDrawerNode = (\n <BackofficeFilterDrawer\n isOpen={isFilterDrawerOpen}\n onClose={() => {\n setIsFilterDrawerOpen(false);\n setFilterSearch('');\n }}\n sections={drawerSections}\n searchValue={filterSearch}\n onSearchChange={(next) => {\n setFilterSearch(next);\n }}\n onReset={handleClearAll}\n emptyLabel={filterDrawerEmptyLabel}\n />\n );\n\n const resolvedEmptyState = useMemo((): JSX.Element => {\n if (emptyState != null) {\n return emptyState;\n }\n\n if (isLoadingInitial) {\n return (\n <BackofficeTableSkeleton\n variant=\"embedded\"\n ariaLabel={t('common.loading')}\n />\n );\n }\n\n if (chips.length > 0) {\n return (\n <BackofficeEmptyState\n title={t('emptyState.listEmpty.title')}\n description={t('emptyState.listEmptyFiltered.description')}\n actions={\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleClearAll}\n >\n {t('emptyState.listEmptyFiltered.actions.reset')}\n </Button>\n }\n />\n );\n }\n\n return (\n <BackofficeEmptyState\n title={t('emptyState.listEmpty.title')}\n description={t('emptyState.listEmpty.description')}\n />\n );\n }, [chips.length, emptyState, handleClearAll, isLoadingInitial, t]);\n\n const tableFooterMeta = useMemo(() => {\n if (typeof totalCount !== 'number') {\n if (rows.length === 0) {\n return null;\n }\n return (\n <span>\n {t('list.loaded', {\n count: rows.length,\n })}\n </span>\n );\n }\n return (\n <span>\n {t('list.showing', {\n shown: rows.length,\n total: totalCount,\n })}\n </span>\n );\n }, [rows.length, t, totalCount]);\n\n const { sentinelRef } = useBackofficeInfiniteScrollSentinel({\n enabled: true,\n hasNextPage,\n isLoading: isLoadingMore,\n onIntersect: onLoadMore,\n });\n\n const headerTitle = header?.title ?? resolveLabel(listConfig.title, tApp);\n const headerSubtitle = header?.subtitle;\n\n const actionColumn = columnsWithPrimary.find((column) => {\n return column.mobileRole === 'action' || column.id === 'actions';\n });\n const listMode =\n listConfig.ui?.displayMode ?? listConfig.responsive?.mode ?? 'auto';\n const listDensity =\n listConfig.ui?.density ?? listConfig.responsive?.density ?? 'compact';\n\n const tableInnerNode = (\n <ResponsiveRecordList\n columns={columnsWithPrimary}\n rows={rows}\n getRowId={getRowId}\n emptyState={resolvedEmptyState}\n className={denseTableClass}\n gridTemplateColumns={gridTemplateColumns}\n mode={listMode}\n density={listDensity}\n renderAction={(row) => {\n return actionColumn?.cell(row) ?? null;\n }}\n />\n );\n\n const tableNodeWithErrorBoundary = (\n <BackofficeErrorBoundary\n fallback={(args: { error: unknown; reset: () => void }) => {\n const { reset } = args;\n\n const retry = (): void => {\n reset();\n if (onRefresh != null) {\n onRefresh();\n }\n };\n\n return (\n <InlineBanner\n tone=\"danger\"\n title={t('list.errors.title')}\n actions={\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={retry}\n >\n {t('list.actions.retry')}\n </Button>\n }\n >\n {t('list.errors.tableFailed')}\n </InlineBanner>\n );\n }}\n >\n {tableInnerNode}\n </BackofficeErrorBoundary>\n );\n\n const filtersBarNode = showFilters ? (\n <>\n <BackofficeListToolbar\n primaryFilters={\n searchNode != null || quickFiltersNode != null ? (\n <>\n {searchNode}\n {quickFiltersNode}\n </>\n ) : null\n }\n filterDrawerTrigger={allFiltersNode}\n sortControl={sortNode}\n utilityActions={\n onRefresh == null ? null : (\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n isLoading={isRefreshing}\n loadingLabel={t('list.actions.refreshing')}\n onClick={() => {\n onRefresh();\n }}\n >\n {t('list.actions.refresh')}\n </Button>\n )\n }\n activeFilters={chipsNode}\n density=\"compact\"\n />\n {filterDrawerNode}\n </>\n ) : null;\n\n const tableNode = (\n <div>\n {tableNodeWithErrorBoundary}\n <EntityIdPickerDialog\n isOpen={pickerDialog != null}\n entity={pickerDialog?.entity ?? config.id}\n title={pickerDialog?.label ?? t('picker.title')}\n scope={pickerDialog?.scope}\n onClose={() => {\n setPickerDialog(null);\n }}\n onSelectId={(id) => {\n if (pickerDialog == null) {\n return;\n }\n const nextWhere = setWhereValue(\n state.where,\n pickerDialog.whereKey,\n id,\n pickerDialog.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n </div>\n );\n\n const shouldRenderTableFooter =\n rows.length > 0 || isLoadingMore || hasNextPage;\n\n const tableFooterNode = shouldRenderTableFooter ? (\n <>\n <div ref={sentinelRef} aria-hidden=\"true\" />\n <BackofficeInfiniteListStatus\n loadedCount={rows.length}\n totalCount={totalCount}\n hasNextPage={hasNextPage}\n isLoading={isLoadingMore}\n loadedLabel={tableFooterMeta}\n loadingLabel={t('list.loadMore.loading')}\n endLabel={t('list.loadMore.end')}\n />\n </>\n ) : null;\n\n if (variant === 'embedded') {\n return (\n <BackofficeListFilterProvider\n config={config}\n state={state}\n pushState={pushState}\n >\n <div className={styles.embeddedContainer}>\n <div className={styles.embeddedHeader}>{headerTitle}</div>\n {filtersBarNode}\n {statusBanner}\n {tableNode}\n {tableFooterNode}\n </div>\n </BackofficeListFilterProvider>\n );\n }\n\n return (\n <BackofficeListFilterProvider\n config={config}\n state={state}\n pushState={pushState}\n >\n <ListPageTemplate\n headerNode={\n <BackofficePageHeader\n title={headerTitle}\n subtitle={headerSubtitle}\n actions={headerActions}\n />\n }\n toolbarNode={filtersBarNode}\n statusNode={statusBanner}\n tableNode={tableNode}\n tableFooterNode={tableFooterNode}\n presentation=\"flat\"\n />\n </BackofficeListFilterProvider>\n );\n};\n\nexport default BackofficeEntityListScaffold;\n"],"mappings":";;;;;;;;;;;;;;;;AAwDA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGd,KACJ,GACA,MAEI,EAAO,eAAe,QAAQ,KAAS,OAClC,EAAO,YAAY,EAAM,GAI3B,EAAe,GADT,EAAO,YAAY,EAAO,IACL,EAAO,KAAK,EAG1C,MACJ,GACA,GACA,MAKqB;CACrB,IAAI,KAAO,MACT,OAAO;CAGT,IAAI,MAAM,QAAQ,EAAI,EAAE;EACtB,IAAM,IAAa,EAChB,KAAK,MAAU;GAId,IAHI,KAAS,QAIX,OAAO,KAAU,YACjB,OAAO,KAAU,YACjB,OAAO,KAAU,WAEjB,OAAO;GAET,IAAM,IAAQ,OAAO,EAAM,CAAC,MAAM;GAIlC,OAHI,MAAU,KACL,OAEF;IACP,CACD,QAAQ,MACA,KAAS,KAChB;EAKJ,OAHI,EAAW,WAAW,IACjB,OAEF,EAAW,KAAK,KAAK;;CAG9B,IAAI,OAAO,KAAQ,WAOjB,OANI,EAAO,SAAS,YACX,EAAQ,aAAa,EAAI,GAE9B,IACK,EAAQ,sBAAsB,MAEhC,EAAQ,sBAAsB;CAGvC,IAAI,OAAO,KAAQ,YAAY,OAAO,KAAQ,UAC5C,OAAO;CAGT,IAAM,IAAY,OAAO,EAAI,CAAC,MAAM;CAapC,OAZI,MAAc,KACT,OAGL,EAAO,SAAS,aACX,kBAAC,GAAD;EAAmB,UAAU,EAAO;EAAQ,IAAI;EAAa,CAAA,GAGlE,EAAO,SAAS,SACX,EAAQ,UAAU,EAAU,GAG9B;GAGH,MAAwB,MAA0B;CACtD,IAAM,IAAO,IAAI,KAAK,EAAM;CAC5B,IAAI,OAAO,MAAM,EAAK,SAAS,CAAC,EAC9B,OAAO;CAET,IAAM,IAAW,EAAK,mBAAmB,GAAG;CAC5C,OAAO,IAAI,KAAK,EAAK,SAAS,GAAG,EAAS,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG;GAGjE,MAA0B,MAA0B;CACxD,IAAM,IAAa,EAAM,MAAM;CAC/B,IAAI,MAAe,IACjB,OAAO;CAET,IAAM,IAAO,IAAI,KAAK,EAAW;CAIjC,OAHI,OAAO,MAAM,EAAK,SAAS,CAAC,GACvB,IAEF,EAAK,aAAa;GAiCd,KACX,MACuB;CACvB,IAAM,EAAE,GAAG,MAAS,IAAgB,EAC9B,EAAE,SAAM,GAA+B,EACvC,EACJ,WACA,UACA,cACA,SACA,cACA,YACA,yBACA,gBACA,kBACA,mBAAe,IACf,gBACA,cACA,eACA,eACA,iBACA,WACA,mBACA,sBAAmB,IACnB,cAAU,QACV,kBAAc,OACZ,GACE,IAAa,EAAO,MAEpB,IAAe,EAAO,gBAC1B,EAAW,gBAAgB;EAAE,OAAO;EAAM,MAAM;EAAM,EAElD,IAAqB,QACN,EAAQ,MAAM,MACxB,EAAI,cAAc,GAEvB,IAAc,EAAQ,WAAW,IAC5B,IAEF,EAAQ,KAAK,GAAK,MAAU;EACjC,IAAM,EAAE,cAAW;EAInB,OAHI,MAAU,IACL;GAAE,GAAG;GAAK,WAAW;GAAM;GAAQ,GAErC;GAAE,GAAG;GAAK;GAAQ;GACzB,EACD,CAAC,EAAQ,CAAC,EAEP,IAAQ,QAAqC;EACjD,IAAM,IAAoB,EAAE;EAC5B,KAAK,IAAM,KAAU,EAAW,SAAS;GACvC,IAAM,IAAM,EAAe,GAAQ,EAAM,MAAM,EACzC,IAAe,GAAsB,GAAQ,GAAK;IACtD,YAAY,MAAU;KACpB,IAAI,EAAO,SAAS,QAClB,OAAO;KAET,IAAM,IAAQ,EAAO,QAAQ,MAAM,MAC1B,EAAO,UAAU,EACxB;KAIF,OAHI,KAAS,OAGN,IAFE,EAAa,EAAM,OAAO,EAAK;;IAI1C,eAAe,MAAU;KACvB,IAAI,EAAO,SAAS,WAAW;MAC7B,IAAI,KAAS,EAAO,aAAa,MAC/B,OAAO,EAAa,EAAO,WAAW,EAAK;MAE7C,IAAI,CAAC,KAAS,EAAO,cAAc,MACjC,OAAO,EAAa,EAAO,YAAY,EAAK;;KAMhD,OAFS,EADL,IACO,wBAEF,qBAFwB;;IAInC,uBAAuB;KACrB,KAAK,EAAE,sBAAsB;KAC7B,IAAI,EAAE,qBAAqB;KAC5B;IACF,CAAC;GAEF,IAAI,KAAgB,MAAM;IACxB,IAAI,IAAU,OAAO,EAAI;IACzB,AAAI,MAAM,QAAQ,EAAI,KACpB,IAAU,EAAI,KAAK,IAAI;IAEzB,IAAM,IACJ,kBAAC,QAAD,EAAA,UAAA;KACG,EAAa,EAAO,OAAO,EAAK;KAAC;KAAG;KAChC,EAAA,CAAA;IAET,EAAI,KAAK;KACP,IAAI,GAAG,EAAO,GAAG,GAAG;KACpB;KACA,gBAAgB;MACd,IAAM,IAAM,EAAO,YAAY,EAAO,IAChC,IAAY,EAChB,EAAM,OACN,GACA,MACA,EAAO,KACR;MACD,EAAU;OAAE,GAAG;OAAO,OAAO;OAAW,CAAC;;KAE5C,CAAC;;;EAGN,OAAO;IACN;EAAC,EAAW;EAAS;EAAW;EAAO;EAAG;EAAK,CAAC,EAE7C,IAAiB,QAAkB;EACvC,EAAU,EACR,GAAG,GACJ,CAAC;IACD,CAAC,GAAc,EAAU,CAAC,EACvB,CAAC,IAAoB,KAAyB,EAAS,GAAM,EAC7D,CAAC,GAAc,KAAmB,EAAS,GAAG,EAE9C,CAAC,GAAc,KAAmB,EAM9B,KAAK,EAET,IAAsB,GACzB,MAA4D;EAC3D,IAAM,IAAM,EAAO,YAAY,EAAO,IAChC,IAAY,EAAe,GAAQ,EAAM,MAAM,EACjD,IAAQ;EAIZ,AAHI,OAAO,KAAc,aACvB,IAAQ,IAEN,OAAO,KAAc,YAAY,OAAO,SAAS,EAAU,KAC7D,IAAQ,OAAO,EAAU;EAG3B,IAAM,IAAkB,EAAa,EAAO,OAAO,EAAK;EAExD,IAAI,EAAO,SAAS,QAAQ;GAK1B,IAAI,IAAc,EAAE,+BAA+B,EACjD,OAJA,EAAO,oBAAoB,OAEvB,IADA,EAAa,EAAO,kBAAkB,EAAK,EAIhD,CAAC;GAIF,OAHI,EAAO,mBAAmB,SAC5B,IAAc,EAAa,EAAO,iBAAiB,EAAK,GAGxD,kBAAC,GAAD;IACE,OAAO,GAAqB,EAAM;IAClC,UAAU,MAAS;KACjB,IAAM,IAAa,GAAuB,EAAK,EACzC,IAAY,EAChB,EAAM,OACN,GACA,GACA,EAAO,KACR;KACD,EAAU;MAAE,GAAG;MAAO,OAAO;MAAW,CAAC;;IAE9B;IACb,WAAW;IACX,WAAW;IACX,CAAA;;EAIN,IAAI,EAAO,SAAS,YAAY;GAK9B,IAAI,IAAc,EAAE,+BAA+B,EACjD,OAJA,EAAO,oBAAoB,OAEvB,IADA,EAAa,EAAO,kBAAkB,EAAK,EAIhD,CAAC;GAIF,OAHI,EAAO,mBAAmB,SAC5B,IAAc,EAAa,EAAO,iBAAiB,EAAK,GAGxD,kBAAC,GAAD;IACS;IACP,UAAU,MAAS;KACjB,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EAAO,KACR;KACD,EAAU;MAAE,GAAG;MAAO,OAAO;MAAW,CAAC;;IAE9B;IACb,WAAW;IACX,WAAW;IACX,MAAK;IACL,CAAA;;EAIN,IAAI,EAAO,SAAS,UAAU;GAK5B,IAAI,IAAc,EAAE,+BAA+B,EACjD,OAJA,EAAO,oBAAoB,OAEvB,IADA,EAAa,EAAO,kBAAkB,EAAK,EAIhD,CAAC;GAIF,OAHI,EAAO,mBAAmB,SAC5B,IAAc,EAAa,EAAO,iBAAiB,EAAK,GAGxD,kBAAC,GAAD;IACS;IACP,UAAU,MAAS;KACjB,IAAM,IAAa,EAAK,MAAM,EACxB,IAAS,MAAe,KAAK,OAAO,OAAO,EAAW,EACtD,IAAY,EAChB,EAAM,OACN,GACA,OAAO,SAAS,EAAO,GAAG,IAAS,MACnC,EAAO,KACR;KACD,EAAU;MAAE,GAAG;MAAO,OAAO;MAAW,CAAC;;IAE9B;IACb,WAAW;IACX,WAAW;IACX,WAAW,EAAO,aAAa;IAC/B,MAAK;IACL,CAAA;;EAIN,IAAI,EAAO,SAAS,QAkBlB,OACE,kBAAC,GAAD;GACW,SAAA,CAlBX;IACE,IAAI;IACJ,OAAO;IACP,OAAO,EAAE,eAAe,EACtB,OAAO,GACR,CAAC;IACH,EACD,GAAG,EAAO,QAAQ,KAAK,OACd;IACL,IAAI,EAAO;IACX,OAAO,EAAO;IACd,OAAO,EAAa,EAAO,OAAO,EAAK;IACxC,EACD,CAKS;GACF;GACP,MAAK;GACL,WAAW;GACX,WAAW,MAAS;IAClB,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EAAO,KACR;IACD,EAAU;KAAE,GAAG;KAAO,OAAO;KAAW,CAAC;;GAE3C,CAAA;EAIN,IAAI,EAAO,SAAS,WAAW;GAC7B,IAAI,IAA0B;GAC9B,AAAI,OAAO,KAAc,cACvB,IAAU;GAGZ,IAAI,IAAc;GAIlB,AAHI,MAAY,OACd,IAAc,SAEZ,MAAY,OACd,IAAc;GAGhB,IAAM,IACJ,EAAO,aAAa,OAEhB,EAAE,sBAAsB,GADxB,EAAa,EAAO,WAAW,EAAK,EAEpC,IACJ,EAAO,cAAc,OAEjB,EAAE,qBAAqB,GADvB,EAAa,EAAO,YAAY,EAAK;GAsB3C,OACE,kBAAC,GAAD;IACW,SAAA;KArBX;MACE,IAAI;MACJ,OAAO;MACP,OAAO,EAAE,eAAe,EACtB,OAAO,GACR,CAAC;MACH;KACD;MACE,IAAI;MACJ,OAAO;MACP,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,OAAO;MACR;KAKU;IACT,OAAO;IACP,MAAK;IACL,WAAW;IACX,WAAW,MAAS;KAClB,IAAI,IAAyB;KAI7B,AAHI,MAAS,WACX,IAAS,KAEP,MAAS,YACX,IAAS;KAEX,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EAAO,KACR;KACD,EAAU;MAAE,GAAG;MAAO,OAAO;MAAW,CAAC;;IAE3C,CAAA;;EAIN,IAAM,WAAqB;GACrB,MAAO,eAAe,MAM1B,OAHI,OAAO,EAAO,eAAgB,aACzB,EAAO,YAAY,EAAM,MAAM,GAEjC,EAAO;MACZ,EACA,IAA2B;EAC/B,AAAI,OAAO,KAAc,aACvB,IAAY;EAGd,IAAM,KAAe,IAA8B,SAAS;GAC1D,IAAM,IAAyB,GAAc,MAAM,IAAI;GACvD,OACE,kBAAC,GAAD;IACE,OAAO;IACP,OAAO;IACP,cAAc;IACd,aAAa,EAAE,kCAAkC,EAC/C,OAAO,GACR,CAAC;IACF,cAAc;KACZ,EAAgB;MACd,QAAQ,EAAO;MACf,UAAU;MACV,OAAO;MACP,MAAM,EAAO;MACb,OAAO;MACR,CAAC;;IAEJ,eAAe;KACb,IAAM,IAAY,EAChB,EAAM,OACN,GACA,MACA,EAAO,KACR;KACD,EAAU;MAAE,GAAG;MAAO,OAAO;MAAW,CAAC;;IAE3C,CAAA;;EAQN,OAJI,KAAa,QAAQ,EAAU,MAAM,KAAK,KACrC,GAAa,GAIpB,kBAAC,GAAD;GAAuB,UAAU,EAAO;GAAQ,IAAI;cAChD,MACO,EAAY,EAAM;GAEL,CAAA;IAG5B;EAAC;EAAW;EAAO;EAAG;EAAK,CAC5B,EAEK,IAAqB,QAClB,EAAW,QAAQ,MAAM,MACvB,EAAO,aAAa,KAC3B,EACD,CAAC,EAAW,QAAQ,CAAC,EAElB,IAAe,QAAc;EACjC,IAAI,EAAW,QAAQ,WAAW,GAChC,OAAO,EAAE;EAEX,IAAM,IAAqB,EAAW,IAAI,SAAS,sBAAsB;EAMzE,OALI,IACK,EAAW,QAAQ,QAAQ,MACzB,EAAO,cAAc,WAAW,EAAO,cAAc,OAC5D,GAEG,EAAW,QAAQ,MAAM,GAAG,EAAmB;IACrD;EAAC,EAAW;EAAS,EAAW,IAAI;EAAS;EAAmB,CAAC,EAE9D,IAAgB,QACb,EAAW,QAAQ,QAAQ,MAC5B,EAAO,aAAa,OACf,KAEF,EAAO,cAAc,YAAY,EAAO,cAAc,OAC7D,EACD,CAAC,EAAW,QAAQ,CAAC,EAElB,IAAe,QACZ,EAAa,MAAM,MACjB,EAAO,SAAS,OACvB,EACD,CAAC,EAAa,CAAC,EAEZ,KAAmB,QAAc;EACrC,IAAM,IAAsB,EAAa,QAAQ,MACxC,MAAW,EAClB;EAMF,OAJI,EAAoB,WAAW,IAC1B,OAIP,kBAAC,OAAD;GAAK,WAAW;aACb,EAAoB,KAAK,MACjB,kBAAC,QAAD,EAAA,UAAuB,EAAoB,EAAO,EAAQ,EAA/C,EAAO,GAAwC,CACjE;GACE,CAAA;IAEP;EAAC;EAAc;EAAqB;EAAa,CAAC,EAE/C,KAAa,QACb,KAAgB,OACX,OAEF,EAAoB,EAAa,EACvC,CAAC,GAAqB,EAAa,CAAC,EAEjC,KAAW,QAAc;EAC7B,IAAI,EAAW,MAAM,WAAW,GAC9B,OAAO;EAET,IAAM,IAAY,EAAW,MAAM;EAOnC,OANI,KAAa,OACR,OAMP,kBAAC,GAAD;GACW,SALG,EAAW,MAAM,KAAK,OAC7B;IAAE,IAAI,EAAE;IAAI,OAAO,EAAE;IAAI,OAAO,EAAa,EAAE,OAAO,EAAK;IAAE,EAIzD;GACT,OAAO,EAAM,QAAQ,EAAU;GAC/B,MAAK;GACL,WAAW,EAAE,kBAAkB;GAC/B,WAAW,MAAS;IAClB,EAAU;KACR,GAAG;KACH,MAAM;KACP,CAAC;;GAEJ,CAAA;IAEH;EAAC,EAAW;EAAO;EAAW;EAAO;EAAG;EAAK,CAAC,EAE3C,KAAY,QACZ,EAAM,WAAW,IACZ,OAEF,kBAAC,IAAD;EAAsB;EAAO,YAAY;EAAkB,CAAA,EACjE,CAAC,GAAO,EAAe,CAAC,EAErB,KAAiB,QAAc;EACnC,IAAI,EAAc,WAAW,GAC3B,OAAO,EAAE;EAGX,IAAM,IAAkB,EAAa,MAAM,CAAC,aAAa,EACnD,IAA6C,EAAE;EAErD,KAAK,IAAM,KAAU,GAAe;GAClC,IAAM,IAAgB,EAAa,EAAO,OAAO,EAAK;GAKtD,CAHE,MAAoB,MACpB,EAAc,aAAa,CAAC,SAAS,EAAgB,KAGrD,EAAM,KAAK;IACT,IAAI,EAAO;IACX,MACE,kBAAC,IAAD;KAAuB,OAAO;eAC3B,EAAoB,EAAO;KACN,CAAA;IAE3B,CAAC;;EAQN,OAJI,EAAM,WAAW,IACZ,EAAE,GAGJ,CACL;GACE,IAAI;GACJ,OAAO,EAAE,2BAA2B;GACpC;GACD,CACF;IACA;EAAC;EAAe;EAAc;EAAqB;EAAG;EAAK,CAAC,EAEzD,KAAiB,QAAc;EACnC,IAAI,EAAc,WAAW,GAC3B,OAAO;EAET,IAAM,IAAc,EAAM,QACtB,IAAQ,EAAE,kBAAkB;EAMhC,OALI,IAAc,MAChB,IAAQ,EAAE,4BAA4B,EACpC,OAAO,GACR,CAAC,GAGF,kBAAC,GAAD;GACE,MAAK;GACL,SAAQ;GACR,MAAK;GACL,eAAe;IACb,EAAsB,GAAK;;aAG5B;GACM,CAAA;IAEV;EAAC,EAAM;EAAQ,EAAc;EAAQ;EAAE,CAAC,EAOrC,KACJ,kBAAC,IAAD;EACE,QAAQ;EACR,eAAe;GAEb,AADA,EAAsB,GAAM,EAC5B,EAAgB,GAAG;;EAErB,UAAU;EACV,aAAa;EACb,iBAAiB,MAAS;GACxB,EAAgB,EAAK;;EAEvB,SAAS;EACT,YAjBF,EAAa,MAAM,KAAK,KACpB,KAAA,IACA,EAAE,oCAAoC;EAgBxC,CAAA,EAGE,KAAqB,QACrB,MAIA,IAEA,kBAAC,IAAD;EACE,SAAQ;EACR,WAAW,EAAE,iBAAiB;EAC9B,CAAA,GAIF,EAAM,SAAS,IAEf,kBAAC,GAAD;EACE,OAAO,EAAE,6BAA6B;EACtC,aAAa,EAAE,2CAA2C;EAC1D,SACE,kBAAC,GAAD;GACE,MAAK;GACL,SAAQ;GACR,MAAK;GACL,SAAS;aAER,EAAE,6CAA6C;GACzC,CAAA;EAEX,CAAA,GAKJ,kBAAC,GAAD;EACE,OAAO,EAAE,6BAA6B;EACtC,aAAa,EAAE,mCAAmC;EAClD,CAAA,GAEH;EAAC,EAAM;EAAQ;EAAY;EAAgB;EAAkB;EAAE,CAAC,EAE7D,KAAkB,QAClB,OAAO,KAAe,WAaxB,kBAAC,QAAD,EAAA,UACG,EAAE,gBAAgB;EACjB,OAAO,EAAK;EACZ,OAAO;EACR,CAAC,EACG,CAAA,GAjBH,EAAK,WAAW,IACX,OAGP,kBAAC,QAAD,EAAA,UACG,EAAE,eAAe,EAChB,OAAO,EAAK,QACb,CAAC,EACG,CAAA,EAWV;EAAC,EAAK;EAAQ;EAAG;EAAW,CAAC,EAE1B,EAAE,oBAAgB,EAAoC;EAC1D,SAAS;EACT;EACA,WAAW;EACX,aAAa;EACd,CAAC,EAEI,KAAc,GAAQ,SAAS,EAAa,EAAW,OAAO,EAAK,EACnE,KAAiB,GAAQ,UAEzB,KAAe,EAAmB,MAAM,MACrC,EAAO,eAAe,YAAY,EAAO,OAAO,UACvD,EAsBI,KACJ,kBAAC,GAAD;EACE,WAAW,MAAgD;GACzD,IAAM,EAAE,aAAU;GASlB,OACE,kBAAC,IAAD;IACE,MAAK;IACL,OAAO,EAAE,oBAAoB;IAC7B,SACE,kBAAC,GAAD;KACE,MAAK;KACL,SAAQ;KACR,MAAK;KACL,eAhBkB;MAExB,AADA,GAAO,EACH,KACS;;eAeN,EAAE,qBAAqB;KACjB,CAAA;cAGV,EAAE,0BAA0B;IAChB,CAAA;;YA3CrB,kBAAC,IAAD;GACE,SAAS;GACH;GACI;GACV,YAAY;GACZ,WAAW;GACU;GACrB,MAZF,EAAW,IAAI,eAAe,EAAW,YAAY,QAAQ;GAa3D,SAXF,EAAW,IAAI,WAAW,EAAW,YAAY,WAAW;GAY1D,eAAe,MACN,IAAc,KAAK,EAAI,IAAI;GAEpC,CAmCC;EACuB,CAAA,EAGtB,KAAiB,KACrB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,gBACE,MAAc,QAAQ,MAAoB,OACxC,kBAAA,GAAA,EAAA,UAAA,CACG,IACA,GACA,EAAA,CAAA,GACD;EAEN,qBAAqB;EACrB,aAAa;EACb,gBACE,KAAa,OAAO,OAClB,kBAAC,GAAD;GACE,MAAK;GACL,SAAQ;GACR,MAAK;GACL,WAAW;GACX,cAAc,EAAE,0BAA0B;GAC1C,eAAe;IACb,GAAW;;aAGZ,EAAE,uBAAuB;GACnB,CAAA;EAGb,eAAe;EACf,SAAQ;EACR,CAAA,EACD,GACA,EAAA,CAAA,GACD,MAEE,KACJ,kBAAC,OAAD,EAAA,UAAA,CACG,IACD,kBAAC,GAAD;EACE,QAAQ,KAAgB;EACxB,QAAQ,GAAc,UAAU,EAAO;EACvC,OAAO,GAAc,SAAS,EAAE,eAAe;EAC/C,OAAO,GAAc;EACrB,eAAe;GACb,EAAgB,KAAK;;EAEvB,aAAa,MAAO;GAClB,IAAI,KAAgB,MAClB;GAEF,IAAM,IAAY,EAChB,EAAM,OACN,EAAa,UACb,GACA,EAAa,KACd;GACD,EAAU;IAAE,GAAG;IAAO,OAAO;IAAW,CAAC;;EAE3C,CAAA,CACE,EAAA,CAAA,EAMF,KAFJ,EAAK,SAAS,KAAK,KAAiB,IAGpC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD;EAAK,KAAK;EAAa,eAAY;EAAS,CAAA,EAC5C,kBAAC,IAAD;EACE,aAAa,EAAK;EACN;EACC;EACb,WAAW;EACX,aAAa;EACb,cAAc,EAAE,wBAAwB;EACxC,UAAU,EAAE,oBAAoB;EAChC,CAAA,CACD,EAAA,CAAA,GACD;CAoBJ,OAlBI,OAAY,aAEZ,kBAAC,GAAD;EACU;EACD;EACI;YAEX,kBAAC,OAAD;GAAK,WAAW;aAAhB;IACE,kBAAC,OAAD;KAAK,WAAW;eAAwB;KAAkB,CAAA;IACzD;IACA;IACA;IACA;IACG;;EACuB,CAAA,GAKjC,kBAAC,GAAD;EACU;EACD;EACI;YAEX,kBAAC,IAAD;GACE,YACE,kBAAC,IAAD;IACE,OAAO;IACP,UAAU;IACV,SAAS;IACT,CAAA;GAEJ,aAAa;GACb,YAAY;GACD;GACM;GACjB,cAAa;GACb,CAAA;EAC2B,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createContext as e, useCallback as t, useContext as n, useMemo as r } from "react";
|
|
2
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { buildBackofficeListLink as a } from "@plumile/backoffice-core/state/buildListHref.js";
|
|
4
|
+
import { setWhereValue as o } from "@plumile/backoffice-core/filters/where.js";
|
|
5
|
+
//#region src/components/backoffice/scaffolds/BackofficeListFilterContext.tsx
|
|
6
|
+
var s = e(null), c = (e) => {
|
|
7
|
+
let { config: n, state: c, pushState: l, children: u } = e, d = t((e, t, n) => {
|
|
8
|
+
let r = o(c.where, e, t, n);
|
|
9
|
+
l({
|
|
10
|
+
...c,
|
|
11
|
+
where: r
|
|
12
|
+
});
|
|
13
|
+
}, [l, c]), f = t((e, t, r) => {
|
|
14
|
+
let i = o(c.where, e, t, r);
|
|
15
|
+
return a(n, {
|
|
16
|
+
...c,
|
|
17
|
+
where: i
|
|
18
|
+
});
|
|
19
|
+
}, [n, c]), p = r(() => ({
|
|
20
|
+
config: n,
|
|
21
|
+
state: c,
|
|
22
|
+
pushState: l,
|
|
23
|
+
applyFilter: d,
|
|
24
|
+
buildFilterLink: f
|
|
25
|
+
}), [
|
|
26
|
+
d,
|
|
27
|
+
f,
|
|
28
|
+
n,
|
|
29
|
+
l,
|
|
30
|
+
c
|
|
31
|
+
]);
|
|
32
|
+
return /* @__PURE__ */ i(s.Provider, {
|
|
33
|
+
value: p,
|
|
34
|
+
children: u
|
|
35
|
+
});
|
|
36
|
+
}, l = () => n(s);
|
|
37
|
+
//#endregion
|
|
38
|
+
export { c as BackofficeListFilterProvider, s as default, l as useBackofficeListFilterContext };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=BackofficeListFilterContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeListFilterContext.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/BackofficeListFilterContext.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useMemo,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport type {\n BackofficeListState,\n BackofficeRuntimeResolvedListFacetConfig,\n} from '@plumile/backoffice-core/types.js';\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\n\nexport type BackofficeListFilterContextValue = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n state: BackofficeListState<Record<string, unknown>, string>;\n pushState: (\n next: BackofficeListState<Record<string, unknown>, string>,\n ) => void;\n applyFilter: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => void;\n buildFilterLink: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => { pathname: string; search: string };\n};\n\nconst BackofficeListFilterContext =\n createContext<BackofficeListFilterContextValue | null>(null);\n\ntype ProviderProps<\n Where extends Record<string, unknown>,\n Sort extends string,\n> = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n state: BackofficeListState<Where, Sort>;\n pushState: (next: BackofficeListState<Where, Sort>) => void;\n children: ReactNode;\n};\n\nexport const BackofficeListFilterProvider = <\n Where extends Record<string, unknown>,\n Sort extends string,\n>(\n props: ProviderProps<Where, Sort>,\n): JSX.Element => {\n const { config, state, pushState, children } = props;\n\n const applyFilter = useCallback(\n (whereKey: string, value: unknown, path?: readonly string[]) => {\n const nextWhere = setWhereValue(\n state.where,\n whereKey as keyof Where,\n value,\n path,\n );\n pushState({ ...state, where: nextWhere });\n },\n [pushState, state],\n );\n\n const buildFilterLink = useCallback(\n (whereKey: string, value: unknown, path?: readonly string[]) => {\n const nextWhere = setWhereValue(\n state.where,\n whereKey as keyof Where,\n value,\n path,\n );\n return buildBackofficeListLink(config, { ...state, where: nextWhere });\n },\n [config, state],\n );\n\n const contextValue = useMemo<BackofficeListFilterContextValue>(() => {\n return {\n config,\n state,\n pushState: pushState as BackofficeListFilterContextValue['pushState'],\n applyFilter,\n buildFilterLink,\n };\n }, [applyFilter, buildFilterLink, config, pushState, state]);\n\n return (\n <BackofficeListFilterContext.Provider value={contextValue}>\n {children}\n </BackofficeListFilterContext.Provider>\n );\n};\n\nexport const useBackofficeListFilterContext =\n (): BackofficeListFilterContextValue | null => {\n return useContext(BackofficeListFilterContext);\n };\n\nexport default BackofficeListFilterContext;\n"],"mappings":";;;;;AAkCA,IAAM,IACJ,EAAuD,KAAK,EAYjD,KAIX,MACgB;CAChB,IAAM,EAAE,WAAQ,UAAO,cAAW,gBAAa,GAEzC,IAAc,GACjB,GAAkB,GAAgB,MAA6B;EAC9D,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EACD;EACD,EAAU;GAAE,GAAG;GAAO,OAAO;GAAW,CAAC;IAE3C,CAAC,GAAW,EAAM,CACnB,EAEK,IAAkB,GACrB,GAAkB,GAAgB,MAA6B;EAC9D,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EACD;EACD,OAAO,EAAwB,GAAQ;GAAE,GAAG;GAAO,OAAO;GAAW,CAAC;IAExE,CAAC,GAAQ,EAAM,CAChB,EAEK,IAAe,SACZ;EACL;EACA;EACW;EACX;EACA;EACD,GACA;EAAC;EAAa;EAAiB;EAAQ;EAAW;EAAM,CAAC;CAE5D,OACE,kBAAC,EAA4B,UAA7B;EAAsC,OAAO;EAC1C;EACoC,CAAA;GAI9B,UAEF,EAAW,EAA4B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { tabBody as e, tabs as t } from "./backofficeTabbedDetailShell.css.js";
|
|
2
|
+
import { BackofficeTabs as n, DetailPageTemplate as r } from "@plumile/ui";
|
|
3
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/backoffice/scaffolds/BackofficeTabbedDetailShell.tsx
|
|
5
|
+
var a = ({ headerNode: a, tabs: o, activeId: s, children: c }) => {
|
|
6
|
+
let l = null;
|
|
7
|
+
return o != null && o.length > 1 && s != null && (l = /* @__PURE__ */ i(n, {
|
|
8
|
+
items: o,
|
|
9
|
+
activeId: s,
|
|
10
|
+
onChange: () => {},
|
|
11
|
+
className: t
|
|
12
|
+
})), /* @__PURE__ */ i(r, {
|
|
13
|
+
headerNode: a,
|
|
14
|
+
tabsNode: l,
|
|
15
|
+
children: /* @__PURE__ */ i("div", {
|
|
16
|
+
className: e,
|
|
17
|
+
children: c
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { a as BackofficeTabbedDetailShell, a as default };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=BackofficeTabbedDetailShell.js.map
|