@plumile/backoffice-react 0.1.104 → 0.1.106
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-B1IPafwD.js → auth/pages/AcceptInvitationScreen.js} +13 -13
- 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/components/backoffice/actions/BackofficeEntityActionFormDialog.js +591 -0
- package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -0
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +26 -0
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -0
- package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +7 -0
- package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +1 -0
- package/lib/esm/{toastViewAction-DJkv_4p9.js → components/backoffice/actions/toastViewAction.js} +2 -2
- package/lib/esm/{toastViewAction-DJkv_4p9.js.map → components/backoffice/actions/toastViewAction.js.map} +1 -1
- package/lib/esm/{buildDataTableColumns-DGPjPK4N.js → components/backoffice/columns/buildDataTableColumns.js} +18 -18
- package/lib/esm/{buildDataTableColumns-DGPjPK4N.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-CmWwudBU.js → components/backoffice/layout/BackofficePermissionsContext.js} +2 -2
- package/lib/esm/{BackofficePermissionsContext-CmWwudBU.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-CphoSrZD.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-C9cyiXb7.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/components/backoffice/layout/sidebarUtils.js +98 -0
- package/lib/esm/components/backoffice/layout/sidebarUtils.js.map +1 -0
- 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-D4fx5O7u.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-xupMeril.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/pages/BackofficeHubPage.js +122 -0
- 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-OApMUiOi.js → pages/BackofficePasswordResetCompletePage.js} +17 -17
- package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -0
- package/lib/esm/{BackofficePasswordResetRequestPage-DPDImb37.js → pages/BackofficePasswordResetRequestPage.js} +14 -15
- package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -0
- package/lib/esm/{BackofficeVerifyEmailPage-DHuSOxDf.js → pages/BackofficeVerifyEmailPage.js} +17 -17
- 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-DeuH5PCW.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-hAQA5C6S.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-CoIAK-5N.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-CcQMY13J.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-2KMmkBLv.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/auth/login/LoginFlow.d.ts.map +1 -1
- package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -1
- package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -1
- package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -1
- package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -1
- package/lib/types/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.d.ts.map +1 -1
- package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts +4 -0
- package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts.map +1 -1
- 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/BackofficeDetailRelationLink.d.ts +3 -5
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts.map +1 -1
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts +3 -4
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts.map +1 -1
- package/lib/types/components/backoffice/detail/BackofficeDetailSection.d.ts.map +1 -1
- 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/backofficeDetailField.css.d.ts +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/detail/backofficeDetailLayout.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts +2 -0
- package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts.map +1 -1
- 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/BackofficeFilterAction.d.ts +4 -4
- package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -1
- package/lib/types/components/backoffice/filters/DeferredFilterSearchInput.d.ts +13 -0
- package/lib/types/components/backoffice/filters/DeferredFilterSearchInput.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts +4 -0
- package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts.map +1 -1
- 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/filters/deferredFilterSearchInput.css.d.ts +3 -0
- package/lib/types/components/backoffice/filters/deferredFilterSearchInput.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts +3 -0
- package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/hub/BackofficeHubTemplate.d.ts +36 -0
- package/lib/types/components/backoffice/hub/BackofficeHubTemplate.d.ts.map +1 -0
- package/lib/types/{pages/backofficeHubPage.css.d.ts → components/backoffice/hub/backofficeHubTemplate.css.d.ts} +5 -3
- package/lib/types/components/backoffice/hub/backofficeHubTemplate.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts.map +1 -1
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts +2 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts.map +1 -1
- package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts +3 -0
- package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts +2 -2
- package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts.map +1 -1
- package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +1 -0
- package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -1
- package/lib/types/components/backoffice/layout/sidebarUtils.d.ts +2 -1
- package/lib/types/components/backoffice/layout/sidebarUtils.d.ts.map +1 -1
- package/lib/types/components/backoffice/lists/BackofficeListToolbar.d.ts +16 -0
- package/lib/types/components/backoffice/lists/BackofficeListToolbar.d.ts.map +1 -0
- package/lib/types/components/backoffice/lists/backofficeListToolbar.css.d.ts +16 -0
- package/lib/types/components/backoffice/lists/backofficeListToolbar.css.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/pickers/EntityIdPickerDialog.d.ts +1 -1
- package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
- package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts +2 -0
- package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/pickers/shared/EntityPickerList.d.ts.map +1 -1
- package/lib/types/components/backoffice/pickers/shared/EntityPickerShell.d.ts.map +1 -1
- package/lib/types/components/backoffice/pickers/types.d.ts +1 -1
- package/lib/types/components/backoffice/pickers/types.d.ts.map +1 -1
- package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts +4 -4
- package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts.map +1 -1
- 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/refs/BackofficeRelatedCountLink.d.ts.map +1 -1
- package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts +2 -0
- package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts +1 -1
- package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts.map +1 -1
- package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts +4 -0
- package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts.map +1 -1
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.d.ts.map +1 -1
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +10 -6
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
- package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts +3 -3
- package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts.map +1 -1
- 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/scaffolds/backofficeEntityListScaffold.css.d.ts.map +1 -1
- package/lib/types/components/backoffice/shared/BackofficeFilterableCell.d.ts +13 -0
- package/lib/types/components/backoffice/shared/BackofficeFilterableCell.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/shared/backofficeFilterableCell.css.d.ts +12 -0
- package/lib/types/components/backoffice/shared/backofficeFilterableCell.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/shared/backofficeInlineFilterRow.css.d.ts.map +1 -1
- 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/filters/filterHelpers.d.ts +3 -3
- package/lib/types/filters/filterHelpers.d.ts.map +1 -1
- package/lib/types/hooks/useAuth.d.ts.map +1 -1
- package/lib/types/hooks/useBackofficeInfiniteScrollSentinel.d.ts.map +1 -1
- package/lib/types/hooks/useBackofficeListRefetch.d.ts +7 -3
- package/lib/types/hooks/useBackofficeListRefetch.d.ts.map +1 -1
- package/lib/types/hooks/useBackofficeListUrlState.d.ts +2 -2
- package/lib/types/hooks/useBackofficeListUrlState.d.ts.map +1 -1
- 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 +138 -7
- package/lib/types/i18n/resources.d.ts.map +1 -1
- package/lib/types/index.d.ts +31 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/pages/BackofficeDashboardPage.d.ts.map +1 -1
- package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
- package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts +3 -8
- package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts.map +1 -1
- package/lib/types/pages/BackofficeEntityListPage.d.ts +2 -2
- package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -1
- package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts +8 -4
- package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts.map +1 -1
- package/lib/types/pages/BackofficeHubPage.d.ts.map +1 -1
- package/lib/types/pages/BackofficeLayoutPage.d.ts.map +1 -1
- package/lib/types/pages/BackofficePasswordResetCompletePage.d.ts.map +1 -1
- package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts.map +1 -1
- package/lib/types/pages/BackofficeVerifyEmailPage.d.ts.map +1 -1
- package/lib/types/pages/backofficeDashboardPage.css.d.ts +1 -14
- package/lib/types/pages/backofficeDashboardPage.css.d.ts.map +1 -1
- package/lib/types/pages/backofficeEntityDetailPage.css.d.ts +2 -0
- package/lib/types/pages/backofficeEntityDetailPage.css.d.ts.map +1 -1
- package/lib/types/pages/dashboard/DashboardMetricGroup.d.ts +14 -0
- package/lib/types/pages/dashboard/DashboardMetricGroup.d.ts.map +1 -0
- package/lib/types/pages/dashboard/DashboardPanel.d.ts +9 -0
- package/lib/types/pages/dashboard/DashboardPanel.d.ts.map +1 -0
- package/lib/types/pages/dashboard/DashboardQuickActions.d.ts +13 -0
- package/lib/types/pages/dashboard/DashboardQuickActions.d.ts.map +1 -0
- package/lib/types/pages/dashboard/DashboardStatusList.d.ts +13 -0
- package/lib/types/pages/dashboard/DashboardStatusList.d.ts.map +1 -0
- package/lib/types/pages/dashboard/dashboardMetricGroup.css.d.ts +4 -0
- package/lib/types/pages/dashboard/dashboardMetricGroup.css.d.ts.map +1 -0
- package/lib/types/pages/dashboard/dashboardPanel.css.d.ts +2 -0
- package/lib/types/pages/dashboard/dashboardPanel.css.d.ts.map +1 -0
- package/lib/types/pages/dashboard/dashboardQuickActions.css.d.ts +5 -0
- package/lib/types/pages/dashboard/dashboardQuickActions.css.d.ts.map +1 -0
- package/lib/types/pages/dashboard/dashboardStatusList.css.d.ts +6 -0
- package/lib/types/pages/dashboard/dashboardStatusList.css.d.ts.map +1 -0
- package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
- package/lib/types/provider/types.d.ts +5 -1
- package/lib/types/provider/types.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/router/createBackofficeRoutes.d.ts.map +1 -1
- 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-B1IPafwD.js.map +0 -1
- package/lib/esm/AuthPanel-BaIRFGbX.js.map +0 -1
- package/lib/esm/BackofficeAcceptInvitationPage-BfRsORii.js +0 -24
- package/lib/esm/BackofficeAcceptInvitationPage-BfRsORii.js.map +0 -1
- package/lib/esm/BackofficeDashboardPage-CZAcZwRc.js +0 -344
- package/lib/esm/BackofficeDashboardPage-CZAcZwRc.js.map +0 -1
- package/lib/esm/BackofficeDetailPayload-P61MDRLE.js +0 -94
- package/lib/esm/BackofficeDetailPayload-P61MDRLE.js.map +0 -1
- package/lib/esm/BackofficeEntityActionFormDialog-BgMuhyU8.js +0 -512
- package/lib/esm/BackofficeEntityActionFormDialog-BgMuhyU8.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailLayoutContext-DeuH5PCW.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailLayoutPage-Duc_DcIV.js +0 -18
- package/lib/esm/BackofficeEntityDetailLayoutPage-Duc_DcIV.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailPage-ChxBrqz8.js +0 -1053
- package/lib/esm/BackofficeEntityDetailPage-ChxBrqz8.js.map +0 -1
- package/lib/esm/BackofficeEntityDetailUnknownPageRedirect-xupMeril.js.map +0 -1
- package/lib/esm/BackofficeEntityListPage-BACvfX6c.js +0 -404
- package/lib/esm/BackofficeEntityListPage-BACvfX6c.js.map +0 -1
- package/lib/esm/BackofficeHubPage-BsUXulN0.js +0 -136
- package/lib/esm/BackofficeHubPage-BsUXulN0.js.map +0 -1
- package/lib/esm/BackofficeLayoutPage-r6dXo9SI.js +0 -699
- package/lib/esm/BackofficeLayoutPage-r6dXo9SI.js.map +0 -1
- package/lib/esm/BackofficeLoginPage-BMPhO1cr.js +0 -46
- package/lib/esm/BackofficeLoginPage-BMPhO1cr.js.map +0 -1
- package/lib/esm/BackofficePasswordResetCompletePage-OApMUiOi.js.map +0 -1
- package/lib/esm/BackofficePasswordResetRequestPage-DPDImb37.js.map +0 -1
- package/lib/esm/BackofficeRightPageLayout-BZb7LhT-.js +0 -53
- package/lib/esm/BackofficeRightPageLayout-BZb7LhT-.js.map +0 -1
- package/lib/esm/BackofficeTopbarPortalContext-CphoSrZD.js.map +0 -1
- package/lib/esm/BackofficeVerifyEmailPage-DHuSOxDf.js.map +0 -1
- package/lib/esm/EntityFilterValue-BWUdPBwp.js +0 -78
- package/lib/esm/EntityFilterValue-BWUdPBwp.js.map +0 -1
- package/lib/esm/EntityIdPickerDialog-Yhmr-WsV.js +0 -308
- package/lib/esm/EntityIdPickerDialog-Yhmr-WsV.js.map +0 -1
- package/lib/esm/LazyBackofficeEntityActionFormDialog-uyYFFJGM.js +0 -522
- package/lib/esm/LazyBackofficeEntityActionFormDialog-uyYFFJGM.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 -1687
- package/lib/esm/backoffice-react.js.map +0 -1
- package/lib/esm/backofficeAuthPaths-2KMmkBLv.js.map +0 -1
- package/lib/esm/buildBreadcrumbs-C9cyiXb7.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-CcQMY13J.js.map +0 -1
- package/lib/esm/pageResolution-hAQA5C6S.js.map +0 -1
- package/lib/esm/sidebarUtils-BZETlHea.js +0 -74
- package/lib/esm/sidebarUtils-BZETlHea.js.map +0 -1
- package/lib/esm/synchronizeAuthStatusQuery-BoPKMrP1.js +0 -324
- package/lib/esm/synchronizeAuthStatusQuery-BoPKMrP1.js.map +0 -1
- package/lib/esm/useAuth-CheTnq60.js +0 -544
- package/lib/esm/useAuth-CheTnq60.js.map +0 -1
- package/lib/esm/useBackofficeAuth-DVAXNAjP.js +0 -89
- package/lib/esm/useBackofficeAuth-DVAXNAjP.js.map +0 -1
- package/lib/esm/useBackofficeLazyValue-CoIAK-5N.js.map +0 -1
- package/lib/esm/useBackofficeListUrlState-D4fx5O7u.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
- package/lib/types/pages/backofficeHubPage.css.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildBreadcrumbs.js","names":[],"sources":["../../../../../../src/components/backoffice/layout/breadcrumb/buildBreadcrumbs.ts"],"sourcesContent":["import type { TFunction } from 'i18next';\n\nimport type {\n BackofficeResolvedDetailLayoutFacetConfig,\n BackofficeResolvedDetailPageFacetConfig,\n BackofficeRuntimeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\n\nimport type { BackofficeTopbarBreadcrumbItem } from './types.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const resolveEntityTitleFromDetailHeader = <\n LayoutView extends object,\n>(input: {\n layoutView: LayoutView;\n detailHeader: BackofficeResolvedDetailLayoutFacetConfig['header'];\n tApp: TFunction;\n}): string => {\n const titleValue = input.detailHeader.titleValue?.(\n input.layoutView,\n input.tApp,\n );\n if (typeof titleValue === 'string' && titleValue.trim() !== '') {\n return titleValue;\n }\n\n const title = resolveLabel(input.detailHeader.title, input.tApp);\n if (title.trim() !== '') {\n return title;\n }\n\n const maybeId = (input.layoutView as { id?: unknown }).id;\n if (typeof maybeId === 'string' && maybeId.trim() !== '') {\n return maybeId;\n }\n\n return '';\n};\n\nexport const buildDashboardBreadcrumb = (\n t: TFunction,\n): readonly BackofficeTopbarBreadcrumbItem[] => {\n return [\n {\n id: 'dashboard',\n label: t('dashboard.title'),\n isCurrent: true,\n },\n ];\n};\n\nexport const buildHubBreadcrumb = (input: {\n id: string;\n title: string;\n}): readonly BackofficeTopbarBreadcrumbItem[] => {\n return [\n {\n id: `hub-${input.id}`,\n label: input.title,\n isCurrent: true,\n },\n ];\n};\n\nexport const buildEntityListBreadcrumb = (\n config: BackofficeRuntimeResolvedListFacetConfig,\n tApp: TFunction,\n): readonly BackofficeTopbarBreadcrumbItem[] => {\n return [\n {\n id: `${config.id}-list`,\n label: resolveLabel(config.label, tApp),\n isCurrent: true,\n },\n ];\n};\n\nexport const buildEntityDetailBreadcrumb = (input: {\n config:\n | BackofficeResolvedDetailLayoutFacetConfig\n | BackofficeResolvedDetailPageFacetConfig;\n tApp: TFunction;\n entityId: string;\n layoutView: unknown;\n pageLabel: string;\n}): readonly BackofficeTopbarBreadcrumbItem[] => {\n const listLabel = resolveLabel(input.config.label, input.tApp);\n const entityTitle = resolveEntityTitleFromDetailHeader({\n layoutView: input.layoutView as object,\n detailHeader: input.config.header,\n tApp: input.tApp,\n });\n\n return [\n {\n id: `${input.config.id}-list`,\n label: listLabel,\n to: input.config.routes.list,\n },\n {\n id: `${input.config.id}-entity-${input.entityId}`,\n label: entityTitle,\n to: input.config.routes.detail(input.entityId),\n },\n {\n id: `${input.config.id}-page-${input.pageLabel}`,\n label: input.pageLabel,\n isCurrent: true,\n },\n ];\n};\n\nexport const buildToolBreadcrumb = (input: {\n title: string;\n}): readonly BackofficeTopbarBreadcrumbItem[] => {\n return [\n {\n id: `tool-${input.title}`,\n label: input.title,\n isCurrent: true,\n },\n ];\n};\n"],"mappings":";AAWA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGP,KAEX,MAIY;CACZ,IAAM,IAAa,EAAM,aAAa,aACpC,EAAM,YACN,EAAM,KACP;CACD,IAAI,OAAO,KAAe,YAAY,EAAW,MAAM,KAAK,IAC1D,OAAO;CAGT,IAAM,IAAQ,EAAa,EAAM,aAAa,OAAO,EAAM,KAAK;CAChE,IAAI,EAAM,MAAM,KAAK,IACnB,OAAO;CAGT,IAAM,IAAW,EAAM,WAAgC;CAKvD,OAJI,OAAO,KAAY,YAAY,EAAQ,MAAM,KAAK,KAC7C,IAGF;GAGI,KACX,MAEO,CACL;CACE,IAAI;CACJ,OAAO,EAAE,kBAAkB;CAC3B,WAAW;CACZ,CACF,EAGU,KAAsB,MAI1B,CACL;CACE,IAAI,OAAO,EAAM;CACjB,OAAO,EAAM;CACb,WAAW;CACZ,CACF,EAGU,KACX,GACA,MAEO,CACL;CACE,IAAI,GAAG,EAAO,GAAG;CACjB,OAAO,EAAa,EAAO,OAAO,EAAK;CACvC,WAAW;CACZ,CACF,EAGU,KAA+B,MAQK;CAC/C,IAAM,IAAY,EAAa,EAAM,OAAO,OAAO,EAAM,KAAK,EACxD,IAAc,EAAmC;EACrD,YAAY,EAAM;EAClB,cAAc,EAAM,OAAO;EAC3B,MAAM,EAAM;EACb,CAAC;CAEF,OAAO;EACL;GACE,IAAI,GAAG,EAAM,OAAO,GAAG;GACvB,OAAO;GACP,IAAI,EAAM,OAAO,OAAO;GACzB;EACD;GACE,IAAI,GAAG,EAAM,OAAO,GAAG,UAAU,EAAM;GACvC,OAAO;GACP,IAAI,EAAM,OAAO,OAAO,OAAO,EAAM,SAAS;GAC/C;EACD;GACE,IAAI,GAAG,EAAM,OAAO,GAAG,QAAQ,EAAM;GACrC,OAAO,EAAM;GACb,WAAW;GACZ;EACF;GAGU,KAAuB,MAG3B,CACL;CACE,IAAI,QAAQ,EAAM;CAClB,OAAO,EAAM;CACb,WAAW;CACZ,CACF"}
|
|
File without changes
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { actionButton as e } from "./backofficeSidebarActions.css.js";
|
|
2
|
+
import { buildEntityGroupLookup as t, isActivePath as n, resolveGroupItems as r, resolveHubEntityIds as i, resolveLabel as a, resolveSidebarGroups as o, resolveSidebarHub as s } from "./sidebarUtils.js";
|
|
3
|
+
import { BackofficeSidebarHistorySvg as c, GripDotsSvg as l, PinFilledSvg as u, PinSvg as d, SidebarHomeSvg as f, SidebarTasksSvg as p } from "@plumile/ui";
|
|
4
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/backoffice/layout/buildSidebarSections.tsx
|
|
6
|
+
var h = (e, t, n = 18) => e == null ? t ?? null : /* @__PURE__ */ m(e, {
|
|
7
|
+
width: n,
|
|
8
|
+
height: n,
|
|
9
|
+
"aria-hidden": "true"
|
|
10
|
+
});
|
|
11
|
+
function g(g) {
|
|
12
|
+
let { basePath: _, pathname: v, entities: y, sidebar: b, permissions: x, searchQuery: S, tApp: C, t: w, pinnedEntityIds: T = [], recentItems: E = [], onTogglePin: D, onReorderPin: O, collapsedByGroupId: k, onGroupCollapsedChange: A, sidebarCollapsed: j = !1 } = g, M = o(y, b), N = Object.entries(M), P = new Set(T), F = w("sidebar.actions.pin"), I = w("sidebar.actions.unpin"), L = w("sidebar.actions.reorder"), R = t(M, b), z = S?.trim().toLowerCase() ?? "", B = (e) => z === "" || e.toLowerCase().includes(z), V = (t) => {
|
|
13
|
+
if (D == null) return null;
|
|
14
|
+
let n = P.has(t), r = F, i = d;
|
|
15
|
+
return n && (r = I, i = u), /* @__PURE__ */ m("button", {
|
|
16
|
+
type: "button",
|
|
17
|
+
className: e,
|
|
18
|
+
"aria-pressed": n,
|
|
19
|
+
"aria-label": r,
|
|
20
|
+
title: r,
|
|
21
|
+
onClick: (e) => {
|
|
22
|
+
e.preventDefault(), e.stopPropagation(), D(t);
|
|
23
|
+
},
|
|
24
|
+
children: /* @__PURE__ */ m(i, {
|
|
25
|
+
width: 14,
|
|
26
|
+
height: 14,
|
|
27
|
+
"aria-hidden": "true"
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}, H = (e) => {
|
|
31
|
+
if (b?.isItemVisible?.({
|
|
32
|
+
kind: "dashboard",
|
|
33
|
+
id: "dashboard"
|
|
34
|
+
}, x) === !1) return null;
|
|
35
|
+
let t = w("sidebar.items.dashboard");
|
|
36
|
+
return B(t) ? {
|
|
37
|
+
id: "dashboard",
|
|
38
|
+
data: {
|
|
39
|
+
kind: "dashboard",
|
|
40
|
+
id: "dashboard",
|
|
41
|
+
groupId: e
|
|
42
|
+
},
|
|
43
|
+
label: t,
|
|
44
|
+
href: _,
|
|
45
|
+
icon: h(void 0, /* @__PURE__ */ m(f, {
|
|
46
|
+
width: 18,
|
|
47
|
+
height: 18,
|
|
48
|
+
"aria-hidden": "true"
|
|
49
|
+
})),
|
|
50
|
+
isActive: n(v, _),
|
|
51
|
+
ariaLabel: t
|
|
52
|
+
} : null;
|
|
53
|
+
}, U = (e) => {
|
|
54
|
+
let { entityId: t, groupId: r, groupIcon: i, itemIcon: o, itemLabel: s, enableReorder: c } = e, u = y[t];
|
|
55
|
+
if (u == null) return null;
|
|
56
|
+
let d = {
|
|
57
|
+
kind: "entity",
|
|
58
|
+
id: t
|
|
59
|
+
};
|
|
60
|
+
if (u.kind === "tool" && (d = {
|
|
61
|
+
kind: "tool",
|
|
62
|
+
id: t
|
|
63
|
+
}), b?.isItemVisible?.(d, x) === !1) return null;
|
|
64
|
+
if (u.kind === "tool") {
|
|
65
|
+
let e = s ?? a(u.label, C);
|
|
66
|
+
return z !== "" && !e.toLowerCase().includes(z) ? null : {
|
|
67
|
+
id: `tool-${t}`,
|
|
68
|
+
data: {
|
|
69
|
+
kind: "tool",
|
|
70
|
+
id: t,
|
|
71
|
+
groupId: r
|
|
72
|
+
},
|
|
73
|
+
label: e,
|
|
74
|
+
href: u.routes.list,
|
|
75
|
+
icon: h(o ?? i, /* @__PURE__ */ m(p, {
|
|
76
|
+
width: 18,
|
|
77
|
+
height: 18,
|
|
78
|
+
"aria-hidden": "true"
|
|
79
|
+
})),
|
|
80
|
+
isActive: n(v, u.routes.list),
|
|
81
|
+
ariaLabel: e,
|
|
82
|
+
actionSlot: V(t)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (!u.hasList) return null;
|
|
86
|
+
let f = s ?? a(u.label, C);
|
|
87
|
+
if (z !== "" && !f.toLowerCase().includes(z)) return null;
|
|
88
|
+
let g, _, S, w, T = !1;
|
|
89
|
+
c === !0 && O != null && (T = !0, g = /* @__PURE__ */ m(l, {
|
|
90
|
+
width: 14,
|
|
91
|
+
height: 14,
|
|
92
|
+
"aria-hidden": "true"
|
|
93
|
+
}), _ = (e) => {
|
|
94
|
+
let { dataTransfer: n } = e;
|
|
95
|
+
n.effectAllowed = "move", n.setData("text/plain", t);
|
|
96
|
+
}, S = (e) => {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
let { dataTransfer: t } = e;
|
|
99
|
+
t.dropEffect = "move";
|
|
100
|
+
}, w = (e) => {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
let n = e.dataTransfer.getData("text/plain");
|
|
103
|
+
n === "" || n === t || O(n, t);
|
|
104
|
+
});
|
|
105
|
+
let E;
|
|
106
|
+
return g != null && (E = L), {
|
|
107
|
+
id: t,
|
|
108
|
+
data: {
|
|
109
|
+
kind: "entity",
|
|
110
|
+
id: t,
|
|
111
|
+
groupId: r
|
|
112
|
+
},
|
|
113
|
+
label: f,
|
|
114
|
+
href: u.routes.list,
|
|
115
|
+
icon: h(o ?? i, /* @__PURE__ */ m(p, {
|
|
116
|
+
width: 18,
|
|
117
|
+
height: 18,
|
|
118
|
+
"aria-hidden": "true"
|
|
119
|
+
})),
|
|
120
|
+
isActive: n(v, u.routes.list),
|
|
121
|
+
ariaLabel: f,
|
|
122
|
+
actionSlot: V(t),
|
|
123
|
+
dragHandleSlot: g,
|
|
124
|
+
dragHandleLabel: E,
|
|
125
|
+
draggable: T,
|
|
126
|
+
onDragStart: _,
|
|
127
|
+
onDragOver: S,
|
|
128
|
+
onDrop: w
|
|
129
|
+
};
|
|
130
|
+
}, W = (e) => {
|
|
131
|
+
let { hub: t, groupId: r, icon: o } = e, s = {
|
|
132
|
+
kind: "hub",
|
|
133
|
+
id: t.id
|
|
134
|
+
};
|
|
135
|
+
if (b?.isItemVisible?.(s, x) === !1) return null;
|
|
136
|
+
let c = i(t), l = c.map((e) => y[e] ?? null).filter((e) => {
|
|
137
|
+
if (e == null) return !1;
|
|
138
|
+
let t = "entity";
|
|
139
|
+
e.kind === "tool" && (t = "tool");
|
|
140
|
+
let n = {
|
|
141
|
+
kind: t,
|
|
142
|
+
id: e.id
|
|
143
|
+
};
|
|
144
|
+
return !(b?.isItemVisible?.(n, x) === !1 || e.kind !== "tool" && !e.hasList);
|
|
145
|
+
});
|
|
146
|
+
if (c.length > 0 && l.length === 0) return null;
|
|
147
|
+
let u = a(t.title, C), d = B(u), f = l.some((e) => B(a(e.label, C)));
|
|
148
|
+
if (!d && !f) return null;
|
|
149
|
+
let g = n(v, t.href) || l.some((e) => n(v, e.routes.list));
|
|
150
|
+
return {
|
|
151
|
+
id: `hub-${t.id}`,
|
|
152
|
+
data: {
|
|
153
|
+
kind: "hub",
|
|
154
|
+
id: t.id,
|
|
155
|
+
groupId: r
|
|
156
|
+
},
|
|
157
|
+
label: u,
|
|
158
|
+
href: t.href,
|
|
159
|
+
icon: h(o, /* @__PURE__ */ m(p, {
|
|
160
|
+
width: 18,
|
|
161
|
+
height: 18,
|
|
162
|
+
"aria-hidden": "true"
|
|
163
|
+
})),
|
|
164
|
+
isActive: g,
|
|
165
|
+
ariaLabel: u
|
|
166
|
+
};
|
|
167
|
+
}, G = [], K = b?.primaryItems ?? [];
|
|
168
|
+
if (K.length > 0) {
|
|
169
|
+
let e = K.map((e) => {
|
|
170
|
+
if (e.kind === "dashboard") return H();
|
|
171
|
+
if (e.kind === "hub") return W({
|
|
172
|
+
hub: s(e, b),
|
|
173
|
+
icon: e.icon
|
|
174
|
+
});
|
|
175
|
+
let t;
|
|
176
|
+
return e.label != null && (t = a(e.label, C)), U({
|
|
177
|
+
entityId: e.id,
|
|
178
|
+
itemIcon: e.icon,
|
|
179
|
+
itemLabel: t
|
|
180
|
+
});
|
|
181
|
+
}).filter((e) => e != null);
|
|
182
|
+
e.length > 0 && G.push({
|
|
183
|
+
id: "primary",
|
|
184
|
+
items: e,
|
|
185
|
+
collapsible: !1
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
if (T.length > 0) {
|
|
189
|
+
let e = T.map((e) => {
|
|
190
|
+
let t = R.get(e);
|
|
191
|
+
return U({
|
|
192
|
+
entityId: e,
|
|
193
|
+
groupId: t?.groupId,
|
|
194
|
+
groupIcon: t?.groupIcon,
|
|
195
|
+
itemIcon: t?.itemIcon,
|
|
196
|
+
enableReorder: !0
|
|
197
|
+
});
|
|
198
|
+
}).filter((e) => e != null);
|
|
199
|
+
e.length > 0 && G.push({
|
|
200
|
+
id: "pinned",
|
|
201
|
+
title: w("sidebar.sections.pinned"),
|
|
202
|
+
icon: h(void 0, /* @__PURE__ */ m(d, {
|
|
203
|
+
width: 16,
|
|
204
|
+
height: 16,
|
|
205
|
+
"aria-hidden": "true"
|
|
206
|
+
})),
|
|
207
|
+
items: e,
|
|
208
|
+
collapsible: !1
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (E.length > 0) {
|
|
212
|
+
let e = E.map((e) => {
|
|
213
|
+
if (y[e.id] == null) return null;
|
|
214
|
+
let t = {
|
|
215
|
+
kind: e.kind,
|
|
216
|
+
id: e.id
|
|
217
|
+
};
|
|
218
|
+
if (b?.isItemVisible?.(t, x) === !1 || z !== "" && !e.label.toLowerCase().includes(z)) return null;
|
|
219
|
+
let r = R.get(e.id);
|
|
220
|
+
return {
|
|
221
|
+
id: `recent-${e.kind}-${e.id}`,
|
|
222
|
+
data: {
|
|
223
|
+
kind: e.kind,
|
|
224
|
+
id: e.id,
|
|
225
|
+
groupId: r?.groupId
|
|
226
|
+
},
|
|
227
|
+
label: e.label,
|
|
228
|
+
href: e.href,
|
|
229
|
+
icon: h(r?.itemIcon ?? r?.groupIcon, /* @__PURE__ */ m(p, {
|
|
230
|
+
width: 18,
|
|
231
|
+
height: 18,
|
|
232
|
+
"aria-hidden": "true"
|
|
233
|
+
})),
|
|
234
|
+
isActive: n(v, e.href),
|
|
235
|
+
ariaLabel: e.label
|
|
236
|
+
};
|
|
237
|
+
}).filter((e) => e != null);
|
|
238
|
+
e.length > 0 && G.push({
|
|
239
|
+
id: "recent",
|
|
240
|
+
title: w("sidebar.sections.recent"),
|
|
241
|
+
icon: h(void 0, /* @__PURE__ */ m(c, {
|
|
242
|
+
width: 16,
|
|
243
|
+
height: 16,
|
|
244
|
+
"aria-hidden": "true"
|
|
245
|
+
})),
|
|
246
|
+
items: e,
|
|
247
|
+
collapsible: !1
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
return N.forEach(([e, t]) => {
|
|
251
|
+
if (t.isVisible != null && !t.isVisible(x)) return;
|
|
252
|
+
let n = [], i = r(t);
|
|
253
|
+
i.length > 0 && i.forEach((r) => {
|
|
254
|
+
if (r.kind === "dashboard") {
|
|
255
|
+
let t = H(e);
|
|
256
|
+
t != null && n.push(t);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (r.kind === "hub") {
|
|
260
|
+
let i = W({
|
|
261
|
+
hub: s(r, b),
|
|
262
|
+
groupId: e,
|
|
263
|
+
icon: r.icon ?? t.icon
|
|
264
|
+
});
|
|
265
|
+
i != null && n.push(i);
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
let i;
|
|
269
|
+
r.label != null && (i = a(r.label, C));
|
|
270
|
+
let o = U({
|
|
271
|
+
entityId: r.id,
|
|
272
|
+
groupId: e,
|
|
273
|
+
groupIcon: t.icon,
|
|
274
|
+
itemIcon: r.icon,
|
|
275
|
+
itemLabel: i
|
|
276
|
+
});
|
|
277
|
+
o != null && n.push(o);
|
|
278
|
+
});
|
|
279
|
+
let o = n;
|
|
280
|
+
if (j && t.behavior?.showInCollapsedRail !== !0 && (o = n.filter((e) => e.id === "dashboard" || e.isActive === !0)), o.length === 0) return;
|
|
281
|
+
let c;
|
|
282
|
+
t.title != null && (c = a(t.title, C));
|
|
283
|
+
let l = k?.[e], u;
|
|
284
|
+
A != null && (u = (t) => {
|
|
285
|
+
A(e, t);
|
|
286
|
+
}), G.push({
|
|
287
|
+
id: e,
|
|
288
|
+
title: c,
|
|
289
|
+
icon: h(t.icon, void 0, 16),
|
|
290
|
+
items: o,
|
|
291
|
+
collapsible: t.behavior?.collapsible ?? !0,
|
|
292
|
+
defaultCollapsed: t.behavior?.defaultCollapsed ?? !0,
|
|
293
|
+
isCollapsed: l,
|
|
294
|
+
onCollapsedChange: u
|
|
295
|
+
});
|
|
296
|
+
}), G;
|
|
297
|
+
}
|
|
298
|
+
//#endregion
|
|
299
|
+
export { g as buildSidebarSections };
|
|
300
|
+
|
|
301
|
+
//# sourceMappingURL=buildSidebarSections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSidebarSections.js","names":[],"sources":["../../../../../src/components/backoffice/layout/buildSidebarSections.tsx"],"sourcesContent":["import { type DragEvent, type ReactNode } from 'react';\nimport type { TFunction } from 'i18next';\n\nimport type { BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\nimport type {\n BackofficeSidebarConfig,\n BackofficeSidebarItemDescriptor,\n BackofficeIconComponent,\n BackofficeSidebarRecentItem,\n} from '../../../provider/types.js';\nimport {\n type AdminSidebarSection,\n type SidebarNavSectionItem,\n GripDotsSvg,\n PinFilledSvg,\n PinSvg,\n BackofficeSidebarHistorySvg,\n SidebarHomeSvg,\n SidebarTasksSvg,\n} from '@plumile/ui';\nimport type { SidebarGroupCollapseState } from '../../../hooks/useSidebarGroupCollapse.js';\nimport * as styles from './backofficeSidebarActions.css.js';\nimport {\n buildEntityGroupLookup,\n isActivePath,\n resolveLabel,\n resolveGroupItems,\n resolveHubEntityIds,\n resolveSidebarHub,\n resolveSidebarGroups,\n} from './sidebarUtils.js';\n\nconst renderIcon = (\n Icon?: BackofficeIconComponent,\n fallback?: ReactNode,\n size = 18,\n): ReactNode => {\n if (Icon != null) {\n return <Icon width={size} height={size} aria-hidden=\"true\" />;\n }\n return fallback ?? null;\n};\n\nexport type BuildSidebarSectionsInput = {\n basePath: string;\n pathname: string;\n entities: BackofficeEntityManifestMap;\n sidebar?: BackofficeSidebarConfig;\n permissions: unknown;\n searchQuery?: string;\n tApp: TFunction;\n t: TFunction;\n pinnedEntityIds?: readonly string[];\n recentItems?: readonly BackofficeSidebarRecentItem[];\n onTogglePin?: (entityId: string) => void;\n onReorderPin?: (fromId: string, toId: string) => void;\n collapsedByGroupId?: SidebarGroupCollapseState;\n onGroupCollapsedChange?: (groupId: string, collapsed: boolean) => void;\n sidebarCollapsed?: boolean;\n};\n\n/**\n * Builds the sidebar sections for the backoffice layout.\n */\nexport function buildSidebarSections(\n input: BuildSidebarSectionsInput,\n): readonly AdminSidebarSection[] {\n const {\n basePath,\n pathname,\n entities,\n sidebar,\n permissions,\n searchQuery,\n tApp,\n t,\n pinnedEntityIds = [],\n recentItems = [],\n onTogglePin,\n onReorderPin,\n collapsedByGroupId,\n onGroupCollapsedChange,\n sidebarCollapsed = false,\n } = input;\n\n const groups = resolveSidebarGroups(entities, sidebar);\n const entries = Object.entries(groups);\n const pinnedSet = new Set(pinnedEntityIds);\n const pinLabel = t('sidebar.actions.pin');\n const unpinLabel = t('sidebar.actions.unpin');\n const reorderLabel = t('sidebar.actions.reorder');\n const entityGroupLookup = buildEntityGroupLookup(groups, sidebar);\n const normalizedQuery = searchQuery?.trim().toLowerCase() ?? '';\n\n const labelMatchesQuery = (label: string): boolean => {\n return (\n normalizedQuery === '' || label.toLowerCase().includes(normalizedQuery)\n );\n };\n\n const renderPinAction = (entityId: string): ReactNode | null => {\n if (onTogglePin == null) {\n return null;\n }\n const isPinned = pinnedSet.has(entityId);\n let label = pinLabel;\n let Icon = PinSvg;\n if (isPinned) {\n label = unpinLabel;\n Icon = PinFilledSvg;\n }\n\n return (\n <button\n type=\"button\"\n className={styles.actionButton}\n aria-pressed={isPinned}\n aria-label={label}\n title={label}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onTogglePin(entityId);\n }}\n >\n <Icon width={14} height={14} aria-hidden=\"true\" />\n </button>\n );\n };\n\n const buildDashboardItem = (\n groupId?: string,\n ): SidebarNavSectionItem | null => {\n const dashboardDescriptor: BackofficeSidebarItemDescriptor = {\n kind: 'dashboard',\n id: 'dashboard',\n };\n const isDashboardVisible = sidebar?.isItemVisible?.(\n dashboardDescriptor,\n permissions,\n );\n if (isDashboardVisible === false) {\n return null;\n }\n\n const label = t('sidebar.items.dashboard');\n if (!labelMatchesQuery(label)) {\n return null;\n }\n\n return {\n id: 'dashboard',\n data: {\n kind: 'dashboard',\n id: 'dashboard',\n groupId,\n },\n label,\n href: basePath,\n icon: renderIcon(\n undefined,\n <SidebarHomeSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, basePath),\n ariaLabel: label,\n };\n };\n\n const buildEntityItem = (inputItem: {\n entityId: string;\n groupId?: string;\n groupIcon?: BackofficeIconComponent;\n itemIcon?: BackofficeIconComponent;\n itemLabel?: string;\n enableReorder?: boolean;\n }): SidebarNavSectionItem | null => {\n const { entityId, groupId, groupIcon, itemIcon, itemLabel, enableReorder } =\n inputItem;\n const config = entities[entityId];\n if (config == null) {\n return null;\n }\n\n let descriptor: BackofficeSidebarItemDescriptor = {\n kind: 'entity',\n id: entityId,\n };\n if (config.kind === 'tool') {\n descriptor = { kind: 'tool', id: entityId };\n }\n const isEntityVisible = sidebar?.isItemVisible?.(descriptor, permissions);\n if (isEntityVisible === false) {\n return null;\n }\n\n if (config.kind === 'tool') {\n const label = itemLabel ?? resolveLabel(config.label, tApp);\n if (\n normalizedQuery !== '' &&\n !label.toLowerCase().includes(normalizedQuery)\n ) {\n return null;\n }\n return {\n id: `tool-${entityId}`,\n data: {\n kind: 'tool',\n id: entityId,\n groupId,\n },\n label,\n href: config.routes.list,\n icon: renderIcon(\n itemIcon ?? groupIcon,\n <SidebarTasksSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, config.routes.list),\n ariaLabel: label,\n actionSlot: renderPinAction(entityId),\n };\n }\n\n if (!config.hasList) {\n return null;\n }\n\n const label = itemLabel ?? resolveLabel(config.label, tApp);\n if (\n normalizedQuery !== '' &&\n !label.toLowerCase().includes(normalizedQuery)\n ) {\n return null;\n }\n\n let dragHandleSlot: ReactNode | undefined;\n let onDragStart: ((event: DragEvent) => void) | undefined;\n let onDragOver: ((event: DragEvent) => void) | undefined;\n let onDrop: ((event: DragEvent) => void) | undefined;\n let draggable = false;\n\n if (enableReorder === true && onReorderPin != null) {\n draggable = true;\n dragHandleSlot = (\n <GripDotsSvg width={14} height={14} aria-hidden=\"true\" />\n );\n onDragStart = (event) => {\n const { dataTransfer } = event;\n dataTransfer.effectAllowed = 'move';\n dataTransfer.setData('text/plain', entityId);\n };\n onDragOver = (event) => {\n event.preventDefault();\n const { dataTransfer } = event;\n dataTransfer.dropEffect = 'move';\n };\n onDrop = (event) => {\n event.preventDefault();\n const fromId = event.dataTransfer.getData('text/plain');\n if (fromId === '' || fromId === entityId) {\n return;\n }\n onReorderPin(fromId, entityId);\n };\n }\n\n let dragHandleLabel: string | undefined;\n if (dragHandleSlot != null) {\n dragHandleLabel = reorderLabel;\n }\n\n return {\n id: entityId,\n data: {\n kind: 'entity',\n id: entityId,\n groupId,\n },\n label,\n href: config.routes.list,\n icon: renderIcon(\n itemIcon ?? groupIcon,\n <SidebarTasksSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, config.routes.list),\n ariaLabel: label,\n actionSlot: renderPinAction(entityId),\n dragHandleSlot,\n dragHandleLabel,\n draggable,\n onDragStart,\n onDragOver,\n onDrop,\n };\n };\n\n const buildHubItem = (inputItem: {\n hub: ReturnType<typeof resolveSidebarHub>;\n groupId?: string;\n icon?: BackofficeIconComponent;\n }): SidebarNavSectionItem | null => {\n const { hub, groupId, icon } = inputItem;\n const descriptor: BackofficeSidebarItemDescriptor = {\n kind: 'hub',\n id: hub.id,\n };\n const isVisible = sidebar?.isItemVisible?.(descriptor, permissions);\n if (isVisible === false) {\n return null;\n }\n const childEntityIds = resolveHubEntityIds(hub);\n const visibleChildConfigs = childEntityIds\n .map((entityId) => {\n return entities[entityId] ?? null;\n })\n .filter((config): config is BackofficeEntityManifestMap[string] => {\n if (config == null) {\n return false;\n }\n let childKind: BackofficeSidebarItemDescriptor['kind'] = 'entity';\n if (config.kind === 'tool') {\n childKind = 'tool';\n }\n const childDescriptor: BackofficeSidebarItemDescriptor = {\n kind: childKind,\n id: config.id,\n };\n const isChildVisible = sidebar?.isItemVisible?.(\n childDescriptor,\n permissions,\n );\n if (isChildVisible === false) {\n return false;\n }\n if (config.kind !== 'tool' && !config.hasList) {\n return false;\n }\n return true;\n });\n if (childEntityIds.length > 0 && visibleChildConfigs.length === 0) {\n return null;\n }\n const label = resolveLabel(hub.title, tApp);\n const matchesHub = labelMatchesQuery(label);\n const matchesChild = visibleChildConfigs.some((config) => {\n return labelMatchesQuery(resolveLabel(config.label, tApp));\n });\n if (!matchesHub && !matchesChild) {\n return null;\n }\n const isActive =\n isActivePath(pathname, hub.href) ||\n visibleChildConfigs.some((config) => {\n return isActivePath(pathname, config.routes.list);\n });\n return {\n id: `hub-${hub.id}`,\n data: {\n kind: 'hub',\n id: hub.id,\n groupId,\n },\n label,\n href: hub.href,\n icon: renderIcon(\n icon,\n <SidebarTasksSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive,\n ariaLabel: label,\n };\n };\n\n const sections: AdminSidebarSection[] = [];\n\n const primaryItems = sidebar?.primaryItems ?? [];\n if (primaryItems.length > 0) {\n const primarySectionItems = primaryItems\n .map((primaryItem): SidebarNavSectionItem | null => {\n if (primaryItem.kind === 'dashboard') {\n return buildDashboardItem();\n }\n if (primaryItem.kind === 'hub') {\n const hub = resolveSidebarHub(primaryItem, sidebar);\n return buildHubItem({\n hub,\n icon: primaryItem.icon,\n });\n }\n let itemLabel: string | undefined;\n if (primaryItem.label != null) {\n itemLabel = resolveLabel(primaryItem.label, tApp);\n }\n return buildEntityItem({\n entityId: primaryItem.id,\n itemIcon: primaryItem.icon,\n itemLabel,\n });\n })\n .filter((item): item is SidebarNavSectionItem => {\n return item != null;\n });\n\n if (primarySectionItems.length > 0) {\n sections.push({\n id: 'primary',\n items: primarySectionItems,\n collapsible: false,\n });\n }\n }\n\n if (pinnedEntityIds.length > 0) {\n const pinnedItems = pinnedEntityIds\n .map((entityId) => {\n const groupMeta = entityGroupLookup.get(entityId);\n return buildEntityItem({\n entityId,\n groupId: groupMeta?.groupId,\n groupIcon: groupMeta?.groupIcon,\n itemIcon: groupMeta?.itemIcon,\n enableReorder: true,\n });\n })\n .filter((item): item is SidebarNavSectionItem => {\n return item != null;\n });\n\n if (pinnedItems.length > 0) {\n sections.push({\n id: 'pinned',\n title: t('sidebar.sections.pinned'),\n icon: renderIcon(\n undefined,\n <PinSvg width={16} height={16} aria-hidden=\"true\" />,\n ),\n items: pinnedItems,\n collapsible: false,\n });\n }\n }\n\n if (recentItems.length > 0) {\n const recentSectionItems = recentItems\n .map((recentItem): SidebarNavSectionItem | null => {\n const config = entities[recentItem.id];\n if (config == null) {\n return null;\n }\n const descriptor: BackofficeSidebarItemDescriptor = {\n kind: recentItem.kind,\n id: recentItem.id,\n };\n const isVisible = sidebar?.isItemVisible?.(descriptor, permissions);\n if (isVisible === false) {\n return null;\n }\n if (\n normalizedQuery !== '' &&\n !recentItem.label.toLowerCase().includes(normalizedQuery)\n ) {\n return null;\n }\n const groupMeta = entityGroupLookup.get(recentItem.id);\n return {\n id: `recent-${recentItem.kind}-${recentItem.id}`,\n data: {\n kind: recentItem.kind,\n id: recentItem.id,\n groupId: groupMeta?.groupId,\n },\n label: recentItem.label,\n href: recentItem.href,\n icon: renderIcon(\n groupMeta?.itemIcon ?? groupMeta?.groupIcon,\n <SidebarTasksSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, recentItem.href),\n ariaLabel: recentItem.label,\n } satisfies SidebarNavSectionItem;\n })\n .filter((item): item is SidebarNavSectionItem => {\n return item != null;\n });\n\n if (recentSectionItems.length > 0) {\n sections.push({\n id: 'recent',\n title: t('sidebar.sections.recent'),\n icon: renderIcon(\n undefined,\n <BackofficeSidebarHistorySvg\n width={16}\n height={16}\n aria-hidden=\"true\"\n />,\n ),\n items: recentSectionItems,\n collapsible: false,\n });\n }\n }\n\n entries.forEach(([groupId, group]) => {\n if (group.isVisible != null && !group.isVisible(permissions)) {\n return;\n }\n\n const items: SidebarNavSectionItem[] = [];\n\n const groupItems = resolveGroupItems(group);\n if (groupItems.length > 0) {\n groupItems.forEach((groupItem) => {\n if (groupItem.kind === 'dashboard') {\n const item = buildDashboardItem(groupId);\n if (item != null) {\n items.push(item);\n }\n return;\n }\n if (groupItem.kind === 'hub') {\n const hub = resolveSidebarHub(groupItem, sidebar);\n const item = buildHubItem({\n hub,\n groupId,\n icon: groupItem.icon ?? group.icon,\n });\n if (item != null) {\n items.push(item);\n }\n return;\n }\n let itemLabel: string | undefined;\n if (groupItem.label != null) {\n itemLabel = resolveLabel(groupItem.label, tApp);\n }\n const item = buildEntityItem({\n entityId: groupItem.id,\n groupId,\n groupIcon: group.icon,\n itemIcon: groupItem.icon,\n itemLabel,\n });\n if (item != null) {\n items.push(item);\n }\n });\n }\n\n let sectionItems: SidebarNavSectionItem[] = items;\n if (sidebarCollapsed && group.behavior?.showInCollapsedRail !== true) {\n sectionItems = items.filter((item) => {\n return item.id === 'dashboard' || item.isActive === true;\n });\n }\n\n if (sectionItems.length === 0) {\n return;\n }\n\n let title: string | undefined;\n if (group.title != null) {\n title = resolveLabel(group.title, tApp);\n }\n\n const isCollapsed = collapsedByGroupId?.[groupId];\n let onCollapsedChange: ((collapsed: boolean) => void) | undefined;\n if (onGroupCollapsedChange != null) {\n onCollapsedChange = (collapsed: boolean) => {\n onGroupCollapsedChange(groupId, collapsed);\n };\n }\n\n sections.push({\n id: groupId,\n title,\n icon: renderIcon(group.icon, undefined, 16),\n items: sectionItems,\n collapsible: group.behavior?.collapsible ?? true,\n defaultCollapsed: group.behavior?.defaultCollapsed ?? true,\n isCollapsed,\n onCollapsedChange,\n });\n });\n\n return sections;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/components/backoffice/layout/mapViewerToSidebarProfileView.ts
|
|
2
|
+
var e = (e) => e?.trim() ?? "", t = ({ viewer: t, unknownUserLabel: n }) => {
|
|
3
|
+
let r = [e(t?.firstName), e(t?.lastName)].filter((e) => e !== "").join(" ").trim();
|
|
4
|
+
r === "" && (r = n);
|
|
5
|
+
let i = e(t?.email), a = e(t?.initials);
|
|
6
|
+
a === "" && (a = "?");
|
|
7
|
+
let o = [r];
|
|
8
|
+
return i !== "" && o.push(i), {
|
|
9
|
+
displayName: r,
|
|
10
|
+
email: i,
|
|
11
|
+
initials: a,
|
|
12
|
+
ariaLabel: o.join(" - ")
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { t as default, t as mapViewerToSidebarProfileView };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=mapViewerToSidebarProfileView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapViewerToSidebarProfileView.js","names":[],"sources":["../../../../../src/components/backoffice/layout/mapViewerToSidebarProfileView.ts"],"sourcesContent":["import type { BackofficeSidebarProfileViewer } from '@plumile/ui';\n\nexport type BackofficeViewerIdentity = {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n};\n\ntype MapViewerToSidebarProfileViewInput = {\n viewer: BackofficeViewerIdentity | null | undefined;\n unknownUserLabel: string;\n};\n\nconst sanitizeToken = (value: string | null | undefined): string => {\n return value?.trim() ?? '';\n};\n\nexport const mapViewerToSidebarProfileView = ({\n viewer,\n unknownUserLabel,\n}: MapViewerToSidebarProfileViewInput): BackofficeSidebarProfileViewer => {\n const firstName = sanitizeToken(viewer?.firstName);\n const lastName = sanitizeToken(viewer?.lastName);\n const joinedDisplayName = [firstName, lastName]\n .filter((token) => {\n return token !== '';\n })\n .join(' ')\n .trim();\n let displayName = joinedDisplayName;\n if (displayName === '') {\n displayName = unknownUserLabel;\n }\n\n const email = sanitizeToken(viewer?.email);\n const initialsToken = sanitizeToken(viewer?.initials);\n let initials = initialsToken;\n if (initials === '') {\n initials = '?';\n }\n\n const ariaParts = [displayName];\n if (email !== '') {\n ariaParts.push(email);\n }\n\n return {\n displayName,\n email,\n initials,\n ariaLabel: ariaParts.join(' - '),\n };\n};\n\nexport default mapViewerToSidebarProfileView;\n"],"mappings":";AAeA,IAAM,KAAiB,MACd,GAAO,MAAM,IAAI,IAGb,KAAiC,EAC5C,WACA,0BACwE;CASxE,IAAI,IANsB,CAFR,EAAc,GAAQ,UAEb,EADV,EAAc,GAAQ,SACD,CAAS,CAC5C,QAAQ,MACA,MAAU,GACjB,CACD,KAAK,IAAI,CACT,MACe;CAClB,AAAI,MAAgB,OAClB,IAAc;CAGhB,IAAM,IAAQ,EAAc,GAAQ,MAAM,EAEtC,IADkB,EAAc,GAAQ,SAC7B;CACf,AAAI,MAAa,OACf,IAAW;CAGb,IAAM,IAAY,CAAC,EAAY;CAK/B,OAJI,MAAU,MACZ,EAAU,KAAK,EAAM,EAGhB;EACL;EACA;EACA;EACA,WAAW,EAAU,KAAK,MAAM;EACjC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
//#region src/components/backoffice/layout/sidebarUtils.ts
|
|
2
|
+
var e = (e, t) => e(t), t = (e, t) => !!(e === t || t !== "/" && e.startsWith(`${t}/`)), n = (e) => ({ main: { entities: Object.keys(e) } }), r = (e, t) => t?.groups ?? n(e), i = (e) => e.kind === "dashboard" ? {
|
|
3
|
+
kind: "dashboard",
|
|
4
|
+
id: e.id ?? "dashboard"
|
|
5
|
+
} : {
|
|
6
|
+
kind: e.kind,
|
|
7
|
+
id: e.id
|
|
8
|
+
}, a = (e) => e.items == null ? e.entities?.map((e) => ({
|
|
9
|
+
kind: "entity",
|
|
10
|
+
id: e
|
|
11
|
+
})) ?? [] : e.items, o = (e, t) => {
|
|
12
|
+
let n = t?.hubs?.[e.id];
|
|
13
|
+
return {
|
|
14
|
+
...n,
|
|
15
|
+
...e,
|
|
16
|
+
groups: e.groups ?? n?.groups ?? []
|
|
17
|
+
};
|
|
18
|
+
}, s = (e) => {
|
|
19
|
+
let t = [], n = /* @__PURE__ */ new Set();
|
|
20
|
+
return e.groups.forEach((e) => {
|
|
21
|
+
e.items.forEach((e) => {
|
|
22
|
+
n.has(e.id) || (n.add(e.id), t.push(e.id));
|
|
23
|
+
});
|
|
24
|
+
}), t;
|
|
25
|
+
}, c = (e, t) => {
|
|
26
|
+
let n = [], r = /* @__PURE__ */ new Set();
|
|
27
|
+
return Object.entries(e).forEach(([e, i]) => {
|
|
28
|
+
a(i).forEach((a) => {
|
|
29
|
+
a.kind !== "hub" || r.has(a.id) || (r.add(a.id), n.push({
|
|
30
|
+
groupId: e,
|
|
31
|
+
hub: o(a, t),
|
|
32
|
+
icon: a.icon ?? i.icon
|
|
33
|
+
}));
|
|
34
|
+
});
|
|
35
|
+
}), Object.values(t?.hubs ?? {}).forEach((e) => {
|
|
36
|
+
r.has(e.id) || (r.add(e.id), n.push({
|
|
37
|
+
groupId: null,
|
|
38
|
+
hub: o(e, t),
|
|
39
|
+
icon: e.icon
|
|
40
|
+
}));
|
|
41
|
+
}), n;
|
|
42
|
+
}, l = (e, t) => a(e).flatMap((e) => e.kind === "entity" || e.kind === "tool" ? [e.id] : e.kind === "hub" ? s(o(e, t)) : []), u = (e, t) => {
|
|
43
|
+
let n = /* @__PURE__ */ new Map();
|
|
44
|
+
return Object.entries(e).forEach(([e, r]) => {
|
|
45
|
+
a(r).forEach((i) => {
|
|
46
|
+
if (i.kind !== "dashboard") {
|
|
47
|
+
if (i.kind === "hub") {
|
|
48
|
+
let a = o(i, t);
|
|
49
|
+
s(a).forEach((t) => {
|
|
50
|
+
n.has(t) || n.set(t, {
|
|
51
|
+
groupId: e,
|
|
52
|
+
groupIcon: r.icon,
|
|
53
|
+
itemIcon: i.icon ?? a.icon
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
n.has(i.id) || n.set(i.id, {
|
|
59
|
+
groupId: e,
|
|
60
|
+
groupIcon: r.icon,
|
|
61
|
+
itemIcon: i.icon
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}), n;
|
|
66
|
+
}, d = (e, t, n, r) => {
|
|
67
|
+
let i = t[e];
|
|
68
|
+
if (i == null) return !1;
|
|
69
|
+
let a = {
|
|
70
|
+
kind: "entity",
|
|
71
|
+
id: e
|
|
72
|
+
};
|
|
73
|
+
return i.kind === "tool" && (a = {
|
|
74
|
+
kind: "tool",
|
|
75
|
+
id: e
|
|
76
|
+
}), n?.isItemVisible == null ? i.kind === "tool" ? !0 : i.hasList : n.isItemVisible(a, r);
|
|
77
|
+
}, f = (e, t, n, r) => {
|
|
78
|
+
let i = [], a = /* @__PURE__ */ new Set();
|
|
79
|
+
return Object.entries(e).forEach(([, e]) => {
|
|
80
|
+
e.isVisible != null && !e.isVisible(r) || l(e, n).forEach((e) => {
|
|
81
|
+
a.has(e) || d(e, t, n, r) && (a.add(e), i.push(e));
|
|
82
|
+
});
|
|
83
|
+
}), i;
|
|
84
|
+
}, p = (e, n) => {
|
|
85
|
+
let r = Object.entries(n);
|
|
86
|
+
for (let [n, i] of r) if (i.kind === "tool") {
|
|
87
|
+
if (t(e, i.routes.list)) return n;
|
|
88
|
+
} else if (i.hasList && t(e, i.routes.list)) return n;
|
|
89
|
+
return null;
|
|
90
|
+
}, m = (e, t, n, r, i) => {
|
|
91
|
+
if (t == null || !d(t, n, r, i)) return null;
|
|
92
|
+
for (let [n, a] of Object.entries(e)) if ((a.isVisible == null || a.isVisible(i)) && l(a, r).includes(t)) return n;
|
|
93
|
+
return null;
|
|
94
|
+
};
|
|
95
|
+
//#endregion
|
|
96
|
+
export { n as buildDefaultGroups, u as buildEntityGroupLookup, t as isActivePath, p as resolveActiveEntityId, m as resolveActiveGroupId, l as resolveGroupEntityIds, a as resolveGroupItems, s as resolveHubEntityIds, i as resolveItemDescriptor, e as resolveLabel, r as resolveSidebarGroups, o as resolveSidebarHub, c as resolveSidebarHubEntries, f as resolveVisibleEntityIds };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=sidebarUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebarUtils.js","names":[],"sources":["../../../../../src/components/backoffice/layout/sidebarUtils.ts"],"sourcesContent":["import type { TFunction } from 'i18next';\n\nimport type {\n BackofficeEntityManifestMap,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type {\n BackofficeSidebarConfig,\n BackofficeIconComponent,\n BackofficeSidebarGroupConfig,\n BackofficeSidebarItemDescriptor,\n BackofficeSidebarItemConfig,\n BackofficeSidebarHubConfig,\n BackofficeResolvedSidebarHubConfig,\n} from '../../../provider/types.js';\n\nexport const resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const isActivePath = (pathname: string, href: string): boolean => {\n if (pathname === href) {\n return true;\n }\n if (href !== '/' && pathname.startsWith(`${href}/`)) {\n return true;\n }\n return false;\n};\n\nexport const buildDefaultGroups = (\n entities: BackofficeEntityManifestMap,\n): Record<string, BackofficeSidebarGroupConfig> => {\n const entityIds = Object.keys(entities);\n\n return {\n main: {\n entities: entityIds,\n },\n };\n};\n\nexport const resolveSidebarGroups = (\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n): Record<string, BackofficeSidebarGroupConfig> => {\n return sidebar?.groups ?? buildDefaultGroups(entities);\n};\n\nexport type EntityGroupLookup = Map<\n string,\n {\n groupId: string;\n groupIcon?: BackofficeIconComponent;\n itemIcon?: BackofficeIconComponent;\n }\n>;\n\nexport const resolveItemDescriptor = (\n item: BackofficeSidebarItemConfig,\n): BackofficeSidebarItemDescriptor => {\n if (item.kind === 'dashboard') {\n return { kind: 'dashboard', id: item.id ?? 'dashboard' };\n }\n return { kind: item.kind, id: item.id };\n};\n\nexport const resolveGroupItems = (\n group: BackofficeSidebarGroupConfig,\n): readonly BackofficeSidebarItemConfig[] => {\n if (group.items != null) {\n return group.items;\n }\n return (\n group.entities?.map((entityId) => {\n return { kind: 'entity', id: entityId } as const;\n }) ?? []\n );\n};\n\nexport const resolveSidebarHub = (\n item: BackofficeSidebarHubConfig,\n sidebar: BackofficeSidebarConfig | undefined,\n): BackofficeResolvedSidebarHubConfig => {\n const registeredHub = sidebar?.hubs?.[item.id];\n return {\n ...registeredHub,\n ...item,\n groups: item.groups ?? registeredHub?.groups ?? [],\n };\n};\n\nexport const resolveHubEntityIds = (\n hub: BackofficeResolvedSidebarHubConfig,\n): readonly string[] => {\n const output: string[] = [];\n const seen = new Set<string>();\n hub.groups.forEach((group) => {\n group.items.forEach((item) => {\n if (seen.has(item.id)) {\n return;\n }\n seen.add(item.id);\n output.push(item.id);\n });\n });\n return output;\n};\n\nexport type ResolvedSidebarHubEntry = {\n groupId: string | null;\n hub: BackofficeResolvedSidebarHubConfig;\n icon?: BackofficeIconComponent;\n};\n\nexport const resolveSidebarHubEntries = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n sidebar: BackofficeSidebarConfig | undefined,\n): readonly ResolvedSidebarHubEntry[] => {\n const output: ResolvedSidebarHubEntry[] = [];\n const seen = new Set<string>();\n\n Object.entries(groups).forEach(([groupId, group]) => {\n resolveGroupItems(group).forEach((item) => {\n if (item.kind !== 'hub' || seen.has(item.id)) {\n return;\n }\n seen.add(item.id);\n output.push({\n groupId,\n hub: resolveSidebarHub(item, sidebar),\n icon: item.icon ?? group.icon,\n });\n });\n });\n\n Object.values(sidebar?.hubs ?? {}).forEach((hub) => {\n if (seen.has(hub.id)) {\n return;\n }\n seen.add(hub.id);\n output.push({\n groupId: null,\n hub: resolveSidebarHub(hub, sidebar),\n icon: hub.icon,\n });\n });\n\n return output;\n};\n\nexport const resolveGroupEntityIds = (\n group: BackofficeSidebarGroupConfig,\n sidebar?: BackofficeSidebarConfig,\n): readonly string[] => {\n return resolveGroupItems(group).flatMap((item) => {\n if (item.kind === 'entity' || item.kind === 'tool') {\n return [item.id];\n }\n if (item.kind === 'hub') {\n return resolveHubEntityIds(resolveSidebarHub(item, sidebar));\n }\n return [];\n });\n};\n\nexport const buildEntityGroupLookup = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n sidebar?: BackofficeSidebarConfig,\n): EntityGroupLookup => {\n const lookup: EntityGroupLookup = new Map();\n\n Object.entries(groups).forEach(([groupId, group]) => {\n resolveGroupItems(group).forEach((item) => {\n if (item.kind === 'dashboard') {\n return;\n }\n\n if (item.kind === 'hub') {\n const hub = resolveSidebarHub(item, sidebar);\n resolveHubEntityIds(hub).forEach((entityId) => {\n if (!lookup.has(entityId)) {\n lookup.set(entityId, {\n groupId,\n groupIcon: group.icon,\n itemIcon: item.icon ?? hub.icon,\n });\n }\n });\n return;\n }\n\n if (!lookup.has(item.id)) {\n lookup.set(item.id, {\n groupId,\n groupIcon: group.icon,\n itemIcon: item.icon,\n });\n }\n });\n });\n\n return lookup;\n};\n\nconst isEntityVisible = (\n entityId: string,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): boolean => {\n const config = entities[entityId];\n if (config == null) {\n return false;\n }\n\n let descriptor: BackofficeSidebarItemDescriptor = {\n kind: 'entity',\n id: entityId,\n };\n if (config.kind === 'tool') {\n descriptor = { kind: 'tool', id: entityId };\n }\n\n if (sidebar?.isItemVisible != null) {\n return sidebar.isItemVisible(descriptor, permissions);\n }\n\n if (config.kind === 'tool') {\n return true;\n }\n return config.hasList;\n};\n\nexport const resolveVisibleEntityIds = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): string[] => {\n const output: string[] = [];\n const seen = new Set<string>();\n\n Object.entries(groups).forEach(([, group]) => {\n if (group.isVisible != null && !group.isVisible(permissions)) {\n return;\n }\n resolveGroupEntityIds(group, sidebar).forEach((entityId) => {\n if (seen.has(entityId)) {\n return;\n }\n if (!isEntityVisible(entityId, entities, sidebar, permissions)) {\n return;\n }\n seen.add(entityId);\n output.push(entityId);\n });\n });\n\n return output;\n};\n\nexport const resolveActiveEntityId = (\n pathname: string,\n entities: BackofficeEntityManifestMap,\n): string | null => {\n const entries = Object.entries(entities);\n for (const [entityId, config] of entries) {\n if (config.kind === 'tool') {\n if (isActivePath(pathname, config.routes.list)) {\n return entityId;\n }\n } else if (config.hasList && isActivePath(pathname, config.routes.list)) {\n return entityId;\n }\n }\n return null;\n};\n\nexport const resolveActiveGroupId = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n activeEntityId: string | null,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): string | null => {\n if (activeEntityId == null) {\n return null;\n }\n\n if (!isEntityVisible(activeEntityId, entities, sidebar, permissions)) {\n return null;\n }\n\n for (const [groupId, group] of Object.entries(groups)) {\n const isVisible = group.isVisible == null || group.isVisible(permissions);\n if (\n isVisible &&\n resolveGroupEntityIds(group, sidebar).includes(activeEntityId)\n ) {\n return groupId;\n }\n }\n\n return null;\n};\n"],"mappings":";AAgBA,IAAa,KAAgB,GAAkB,MACtC,EAAM,EAAK,EAGP,KAAgB,GAAkB,MAI7C,GAHI,MAAa,KAGb,MAAS,OAAO,EAAS,WAAW,GAAG,EAAK,GAAG,GAMxC,KACX,OAIO,EACL,MAAM,EACJ,UAJc,OAAO,KAAK,EAIhB,EACX,EACF,GAGU,KACX,GACA,MAEO,GAAS,UAAU,EAAmB,EAAS,EAY3C,KACX,MAEI,EAAK,SAAS,cACT;CAAE,MAAM;CAAa,IAAI,EAAK,MAAM;CAAa,GAEnD;CAAE,MAAM,EAAK;CAAM,IAAI,EAAK;CAAI,EAG5B,KACX,MAEI,EAAM,SAAS,OAIjB,EAAM,UAAU,KAAK,OACZ;CAAE,MAAM;CAAU,IAAI;CAAU,EACvC,IAAI,EAAE,GALD,EAAM,OASJ,KACX,GACA,MACuC;CACvC,IAAM,IAAgB,GAAS,OAAO,EAAK;CAC3C,OAAO;EACL,GAAG;EACH,GAAG;EACH,QAAQ,EAAK,UAAU,GAAe,UAAU,EAAE;EACnD;GAGU,KACX,MACsB;CACtB,IAAM,IAAmB,EAAE,EACrB,oBAAO,IAAI,KAAa;CAU9B,OATA,EAAI,OAAO,SAAS,MAAU;EAC5B,EAAM,MAAM,SAAS,MAAS;GACxB,EAAK,IAAI,EAAK,GAAG,KAGrB,EAAK,IAAI,EAAK,GAAG,EACjB,EAAO,KAAK,EAAK,GAAG;IACpB;GACF,EACK;GASI,KACX,GACA,MACuC;CACvC,IAAM,IAAoC,EAAE,EACtC,oBAAO,IAAI,KAAa;CA4B9B,OA1BA,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,GAAS,OAAW;EACnD,EAAkB,EAAM,CAAC,SAAS,MAAS;GACrC,EAAK,SAAS,SAAS,EAAK,IAAI,EAAK,GAAG,KAG5C,EAAK,IAAI,EAAK,GAAG,EACjB,EAAO,KAAK;IACV;IACA,KAAK,EAAkB,GAAM,EAAQ;IACrC,MAAM,EAAK,QAAQ,EAAM;IAC1B,CAAC;IACF;GACF,EAEF,OAAO,OAAO,GAAS,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAQ;EAC9C,EAAK,IAAI,EAAI,GAAG,KAGpB,EAAK,IAAI,EAAI,GAAG,EAChB,EAAO,KAAK;GACV,SAAS;GACT,KAAK,EAAkB,GAAK,EAAQ;GACpC,MAAM,EAAI;GACX,CAAC;GACF,EAEK;GAGI,KACX,GACA,MAEO,EAAkB,EAAM,CAAC,SAAS,MACnC,EAAK,SAAS,YAAY,EAAK,SAAS,SACnC,CAAC,EAAK,GAAG,GAEd,EAAK,SAAS,QACT,EAAoB,EAAkB,GAAM,EAAQ,CAAC,GAEvD,EAAE,CACT,EAGS,KACX,GACA,MACsB;CACtB,IAAM,oBAA4B,IAAI,KAAK;CAgC3C,OA9BA,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,GAAS,OAAW;EACnD,EAAkB,EAAM,CAAC,SAAS,MAAS;GACrC,MAAK,SAAS,aAIlB;QAAI,EAAK,SAAS,OAAO;KACvB,IAAM,IAAM,EAAkB,GAAM,EAAQ;KAC5C,EAAoB,EAAI,CAAC,SAAS,MAAa;MAC7C,AAAK,EAAO,IAAI,EAAS,IACvB,EAAO,IAAI,GAAU;OACnB;OACA,WAAW,EAAM;OACjB,UAAU,EAAK,QAAQ,EAAI;OAC5B,CAAC;OAEJ;KACF;;IAGF,AAAK,EAAO,IAAI,EAAK,GAAG,IACtB,EAAO,IAAI,EAAK,IAAI;KAClB;KACA,WAAW,EAAM;KACjB,UAAU,EAAK;KAChB,CAAC;;IAEJ;GACF,EAEK;GAGH,KACJ,GACA,GACA,GACA,MACY;CACZ,IAAM,IAAS,EAAS;CACxB,IAAI,KAAU,MACZ,OAAO;CAGT,IAAI,IAA8C;EAChD,MAAM;EACN,IAAI;EACL;CAYD,OAXI,EAAO,SAAS,WAClB,IAAa;EAAE,MAAM;EAAQ,IAAI;EAAU,GAGzC,GAAS,iBAAiB,OAI1B,EAAO,SAAS,SACX,KAEF,EAAO,UANL,EAAQ,cAAc,GAAY,EAAY;GAS5C,KACX,GACA,GACA,GACA,MACa;CACb,IAAM,IAAmB,EAAE,EACrB,oBAAO,IAAI,KAAa;CAkB9B,OAhBA,OAAO,QAAQ,EAAO,CAAC,SAAS,GAAG,OAAW;EACxC,EAAM,aAAa,QAAQ,CAAC,EAAM,UAAU,EAAY,IAG5D,EAAsB,GAAO,EAAQ,CAAC,SAAS,MAAa;GACtD,EAAK,IAAI,EAAS,IAGjB,EAAgB,GAAU,GAAU,GAAS,EAAY,KAG9D,EAAK,IAAI,EAAS,EAClB,EAAO,KAAK,EAAS;IACrB;GACF,EAEK;GAGI,KACX,GACA,MACkB;CAClB,IAAM,IAAU,OAAO,QAAQ,EAAS;CACxC,KAAK,IAAM,CAAC,GAAU,MAAW,GAC/B,IAAI,EAAO,SAAS;MACd,EAAa,GAAU,EAAO,OAAO,KAAK,EAC5C,OAAO;QAEJ,IAAI,EAAO,WAAW,EAAa,GAAU,EAAO,OAAO,KAAK,EACrE,OAAO;CAGX,OAAO;GAGI,KACX,GACA,GACA,GACA,GACA,MACkB;CAKlB,IAJI,KAAkB,QAIlB,CAAC,EAAgB,GAAgB,GAAU,GAAS,EAAY,EAClE,OAAO;CAGT,KAAK,IAAM,CAAC,GAAS,MAAU,OAAO,QAAQ,EAAO,EAEnD,KADkB,EAAM,aAAa,QAAQ,EAAM,UAAU,EAAY,KAGvE,EAAsB,GAAO,EAAQ,CAAC,SAAS,EAAe,EAE9D,OAAO;CAIX,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowFlagsCell.css.js","names":[],"sources":["../../../../../src/components/backoffice/list/RowFlagsCell.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nexport const rowFlagsColumnCell = style({\n justifyContent: 'center',\n padding: '0 4px',\n});\n\nexport const container = style({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n width: '100%',\n});\n\nexport const flag = style({\n display: 'grid',\n placeItems: 'center',\n width: 24,\n height: 24,\n});\n"],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { container as e, flag as t } from "./RowFlagsCell.css.js";
|
|
2
|
+
import { useMemo as n } from "react";
|
|
3
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/backoffice/list/RowFlagsCell.tsx
|
|
5
|
+
var i = ({ row: i, flags: a, tApp: o }) => {
|
|
6
|
+
let s = n(() => {
|
|
7
|
+
let e = [];
|
|
8
|
+
for (let t of a) {
|
|
9
|
+
let n = t.render(i);
|
|
10
|
+
n != null && n !== "" && n !== !1 && e.push({
|
|
11
|
+
id: t.id,
|
|
12
|
+
node: n,
|
|
13
|
+
label: t.label(i)(o)
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return e;
|
|
17
|
+
}, [
|
|
18
|
+
a,
|
|
19
|
+
i,
|
|
20
|
+
o
|
|
21
|
+
]), c = s.map((e) => e.label.trim()).filter((e) => e !== "").join(", "), l;
|
|
22
|
+
return c !== "" && (l = c), /* @__PURE__ */ r("div", {
|
|
23
|
+
className: e,
|
|
24
|
+
"aria-label": l,
|
|
25
|
+
children: s.map((e) => /* @__PURE__ */ r("span", {
|
|
26
|
+
className: t,
|
|
27
|
+
title: e.label,
|
|
28
|
+
role: "img",
|
|
29
|
+
"aria-label": e.label,
|
|
30
|
+
children: e.node
|
|
31
|
+
}, e.id))
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
export { i as RowFlagsCell };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=RowFlagsCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowFlagsCell.js","names":[],"sources":["../../../../../src/components/backoffice/list/RowFlagsCell.tsx"],"sourcesContent":["import { useMemo, type JSX, type ReactNode } from 'react';\nimport type { TFunction } from 'i18next';\n\nimport type { BackofficeRowFlagSpec } from '@plumile/backoffice-core/types.js';\n\nimport * as styles from './RowFlagsCell.css.js';\n\nexport type RowFlagsCellProps<Row> = {\n row: Row;\n flags: readonly BackofficeRowFlagSpec<Row>[];\n tApp: TFunction;\n};\n\n/**\n * Renders row-level flags (icons) in a dedicated compact column.\n */\nexport const RowFlagsCell = <Row,>({\n row,\n flags,\n tApp,\n}: RowFlagsCellProps<Row>): JSX.Element => {\n const resolved = useMemo(() => {\n const out: { id: string; node: ReactNode; label: string }[] = [];\n for (const flag of flags) {\n const node = flag.render(row) as ReactNode;\n if (node != null && node !== '' && node !== false) {\n out.push({ id: flag.id, node, label: flag.label(row)(tApp) });\n }\n }\n return out;\n }, [flags, row, tApp]);\n\n const ariaLabel = resolved\n .map((entry) => {\n return entry.label.trim();\n })\n .filter((label) => {\n return label !== '';\n })\n .join(', ');\n\n let ariaLabelProp: string | undefined;\n if (ariaLabel !== '') {\n ariaLabelProp = ariaLabel;\n }\n\n return (\n <div className={styles.container} aria-label={ariaLabelProp}>\n {resolved.map((entry) => {\n return (\n <span\n key={entry.id}\n className={styles.flag}\n title={entry.label}\n role=\"img\"\n aria-label={entry.label}\n >\n {entry.node}\n </span>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;AAgBA,IAAa,KAAsB,EACjC,QACA,UACA,cACyC;CACzC,IAAM,IAAW,QAAc;EAC7B,IAAM,IAAwD,EAAE;EAChE,KAAK,IAAM,KAAQ,GAAO;GACxB,IAAM,IAAO,EAAK,OAAO,EAAI;GAC7B,AAAI,KAAQ,QAAQ,MAAS,MAAM,MAAS,MAC1C,EAAI,KAAK;IAAE,IAAI,EAAK;IAAI;IAAM,OAAO,EAAK,MAAM,EAAI,CAAC,EAAK;IAAE,CAAC;;EAGjE,OAAO;IACN;EAAC;EAAO;EAAK;EAAK,CAAC,EAEhB,IAAY,EACf,KAAK,MACG,EAAM,MAAM,MAAM,CACzB,CACD,QAAQ,MACA,MAAU,GACjB,CACD,KAAK,KAAK,EAET;CAKJ,OAJI,MAAc,OAChB,IAAgB,IAIhB,kBAAC,OAAD;EAAK,WAAW;EAAkB,cAAY;YAC3C,EAAS,KAAK,MAEX,kBAAC,QAAD;GAEE,WAAW;GACX,OAAO,EAAM;GACb,MAAK;GACL,cAAY,EAAM;aAEjB,EAAM;GACF,EAPA,EAAM,GAON,CAET;EACE,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { container as e, density as t, responsiveMode as n } from "./backofficeListToolbar.css.js";
|
|
2
|
+
import { cx as r } from "@plumile/ui";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/backoffice/lists/BackofficeListToolbar.tsx
|
|
5
|
+
var o = ({ activeFilters: o, className: s, density: c = "compact", filterDrawerTrigger: l, primaryFilters: u, responsiveMode: d = "auto", sortControl: f, utilityActions: p }) => {
|
|
6
|
+
let m = u != null || l != null, h = f != null || p != null, g = m || h, _ = o != null;
|
|
7
|
+
return !g && !_ ? null : /* @__PURE__ */ a("div", {
|
|
8
|
+
className: r(e, t[c], n[d], s),
|
|
9
|
+
children: [g && /* @__PURE__ */ a("div", {
|
|
10
|
+
className: "sqlyj42 txvbqb9iy txvbqbcp txvbqbao7 txvbqbu7g",
|
|
11
|
+
children: [m && /* @__PURE__ */ a("div", {
|
|
12
|
+
className: "sqlyj43 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7 txvbqbk5y",
|
|
13
|
+
children: [u, l]
|
|
14
|
+
}), h && /* @__PURE__ */ a("div", {
|
|
15
|
+
className: "sqlyj44 txvbqb9ip txvbqbcp txvbqbdp7 txvbqbajy txvbqbao7 txvbqbk5y",
|
|
16
|
+
children: [f != null && /* @__PURE__ */ i("div", {
|
|
17
|
+
className: "sqlyj45 txvbqb9ip txvbqbcp txvbqbk5y",
|
|
18
|
+
children: f
|
|
19
|
+
}), p != null && /* @__PURE__ */ i("div", {
|
|
20
|
+
className: "sqlyj46 txvbqb9ip txvbqbcp txvbqbdp7 txvbqbajy txvbqbao7",
|
|
21
|
+
children: p
|
|
22
|
+
})]
|
|
23
|
+
})]
|
|
24
|
+
}), _ && /* @__PURE__ */ i("div", {
|
|
25
|
+
className: "txvbqb9ip txvbqbcp txvbqbajy txvbqbao7 txvbqbp6g txvbqb4sg txvbqb1qg txvbqb2cg",
|
|
26
|
+
children: o
|
|
27
|
+
})]
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { o as BackofficeListToolbar, o as default };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=BackofficeListToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeListToolbar.js","names":[],"sources":["../../../../../src/components/backoffice/lists/BackofficeListToolbar.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { cx } from '@plumile/ui';\n\nimport * as styles from './backofficeListToolbar.css.js';\n\nexport type BackofficeListToolbarDensity = 'compact' | 'default';\n\nexport type BackofficeListToolbarResponsiveMode = 'auto' | 'stacked';\n\nexport type BackofficeListToolbarProps = {\n primaryFilters?: ReactNode;\n filterDrawerTrigger?: ReactNode;\n sortControl?: ReactNode;\n utilityActions?: ReactNode;\n activeFilters?: ReactNode;\n density?: BackofficeListToolbarDensity;\n responsiveMode?: BackofficeListToolbarResponsiveMode;\n className?: string;\n};\n\nexport const BackofficeListToolbar = ({\n activeFilters,\n className,\n density = 'compact',\n filterDrawerTrigger,\n primaryFilters,\n responsiveMode = 'auto',\n sortControl,\n utilityActions,\n}: BackofficeListToolbarProps): JSX.Element | null => {\n const hasFilters = primaryFilters != null || filterDrawerTrigger != null;\n const hasRightControls = sortControl != null || utilityActions != null;\n const hasMainRow = hasFilters || hasRightControls;\n const hasActiveFilters = activeFilters != null;\n\n if (!hasMainRow && !hasActiveFilters) {\n return null;\n }\n\n return (\n <div\n className={cx(\n styles.container,\n styles.density[density],\n styles.responsiveMode[responsiveMode],\n className,\n )}\n >\n {hasMainRow && (\n <div className={styles.mainRow}>\n {hasFilters && (\n <div className={styles.filtersGroup}>\n {primaryFilters}\n {filterDrawerTrigger}\n </div>\n )}\n {hasRightControls && (\n <div className={styles.rightGroup}>\n {sortControl != null && (\n <div className={styles.sortGroup}>{sortControl}</div>\n )}\n {utilityActions != null && (\n <div className={styles.actionsGroup}>{utilityActions}</div>\n )}\n </div>\n )}\n </div>\n )}\n {hasActiveFilters && (\n <div className={styles.activeFiltersRow}>{activeFilters}</div>\n )}\n </div>\n );\n};\n\nexport default BackofficeListToolbar;\n"],"mappings":";;;;AAqBA,IAAa,KAAyB,EACpC,kBACA,cACA,SAAA,IAAU,WACV,wBACA,mBACA,gBAAA,IAAiB,QACjB,gBACA,wBACoD;CACpD,IAAM,IAAa,KAAkB,QAAQ,KAAuB,MAC9D,IAAmB,KAAe,QAAQ,KAAkB,MAC5D,IAAa,KAAc,GAC3B,IAAmB,KAAiB;CAM1C,OAJI,CAAC,KAAc,CAAC,IACX,OAIP,kBAAC,OAAD;EACE,WAAW,EACT,GACA,EAAe,IACf,EAAsB,IACtB,EACD;YANH,CAQG,KACC,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACG,KACC,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACG,GACA,EACG;OAEP,KACC,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACG,KAAe,QACd,kBAAC,OAAD;KAAK,WAAW;eAAmB;KAAkB,CAAA,EAEtD,KAAkB,QACjB,kBAAC,OAAD;KAAK,WAAW;eAAsB;KAAqB,CAAA,CAEzD;MAEJ;MAEP,KACC,kBAAC,OAAD;GAAK,WAAW;aAA0B;GAAoB,CAAA,CAE5D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
//#region src/components/backoffice/lists/backofficeListToolbar.css.ts
|
|
3
|
+
var e = "txvbqb9ip txvbqbai7 txvbqbao7 txvbqbu7g", t = {
|
|
4
|
+
compact: "txvbqbao7",
|
|
5
|
+
default: "txvbqbaog"
|
|
6
|
+
}, n = {
|
|
7
|
+
auto: "sqlyj40",
|
|
8
|
+
stacked: "sqlyj41"
|
|
9
|
+
}, r = "sqlyj42 txvbqb9iy txvbqbcp txvbqbao7 txvbqbu7g", i = "sqlyj43 txvbqb9ip txvbqbcp txvbqbajy txvbqbao7 txvbqbk5y", a = "sqlyj44 txvbqb9ip txvbqbcp txvbqbdp7 txvbqbajy txvbqbao7 txvbqbk5y", o = "sqlyj45 txvbqb9ip txvbqbcp txvbqbk5y", s = "sqlyj46 txvbqb9ip txvbqbcp txvbqbdp7 txvbqbajy txvbqbao7", c = "txvbqb9ip txvbqbcp txvbqbajy txvbqbao7 txvbqbp6g txvbqb4sg txvbqb1qg txvbqb2cg";
|
|
10
|
+
//#endregion
|
|
11
|
+
export { s as actionsGroup, c as activeFiltersRow, e as container, t as density, i as filtersGroup, r as mainRow, n as responsiveMode, a as rightGroup, o as sortGroup };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=backofficeListToolbar.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backofficeListToolbar.css.js","names":[],"sources":["../../../../../src/components/backoffice/lists/backofficeListToolbar.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '@plumile/ui';\n\nconst MOBILE_MEDIA_QUERY = 'screen and (max-width: 767px)';\nconst TABLET_MEDIA_QUERY = 'screen and (max-width: 1023px)';\n\nexport const container = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n width: 'full',\n});\n\nexport const density = {\n compact: sprinkles({\n gap: 2,\n }),\n default: sprinkles({\n gap: 3,\n }),\n};\n\nexport const responsiveMode = {\n auto: style({}),\n stacked: style({}),\n};\n\nexport const mainRow = style([\n sprinkles({\n display: 'grid',\n alignItems: 'center',\n gap: 2,\n width: 'full',\n }),\n {\n gridTemplateColumns: 'minmax(0, 1fr) auto',\n selectors: {\n [`${responsiveMode.stacked} &`]: {\n gridTemplateColumns: 'minmax(0, 1fr)',\n },\n },\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n gridTemplateColumns: 'minmax(0, 1fr)',\n },\n },\n },\n]);\n\nexport const filtersGroup = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: 2,\n minWidth: 0,\n }),\n {\n '@media': {\n [MOBILE_MEDIA_QUERY]: {\n alignItems: 'stretch',\n width: '100%',\n },\n },\n },\n]);\n\nexport const rightGroup = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n gap: 2,\n minWidth: 0,\n }),\n {\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n justifyContent: 'flex-start',\n },\n [MOBILE_MEDIA_QUERY]: {\n alignItems: 'stretch',\n width: '100%',\n },\n },\n },\n]);\n\nexport const sortGroup = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n minWidth: 0,\n }),\n {\n width: '11.5rem',\n '@media': {\n [MOBILE_MEDIA_QUERY]: {\n width: '100%',\n },\n },\n },\n]);\n\nexport const actionsGroup = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n gap: 2,\n }),\n {\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n justifyContent: 'flex-start',\n },\n [MOBILE_MEDIA_QUERY]: {\n alignItems: 'stretch',\n width: '100%',\n },\n },\n },\n]);\n\nexport const activeFiltersRow = sprinkles({\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: 2,\n paddingTop: 2,\n borderTopWidth: 'px',\n borderStyle: 'solid',\n borderTopColor: 'borderSubtle',\n});\n"],"mappings":""}
|