@plumile/backoffice-react 0.1.59
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/LICENSE +21 -0
- package/lib/esm/auth/login/AuthPanel.js +28 -0
- package/lib/esm/auth/login/AuthPanel.js.map +1 -0
- package/lib/esm/auth/login/EmailCapturePanel.js +52 -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 +51 -0
- package/lib/esm/auth/login/MethodChooser.js.map +1 -0
- package/lib/esm/auth/login/MfaChallengeForm.js +83 -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 +84 -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 +8 -0
- package/lib/esm/auth/login/loginPage.css.js.map +1 -0
- package/lib/esm/auth/login/synchronizeAuthStatusQuery.js +9 -0
- package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -0
- package/lib/esm/auth/pages/AcceptInvitationScreen.js +120 -0
- package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -0
- package/lib/esm/auth/pages/PasswordResetCompleteScreen.js +105 -0
- package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -0
- package/lib/esm/auth/pages/PasswordResetRequestScreen.js +88 -0
- package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -0
- package/lib/esm/auth/pages/VerifyEmailScreen.js +65 -0
- package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -0
- package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js +525 -0
- package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -0
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +11 -0
- package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -0
- package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +8 -0
- package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +1 -0
- package/lib/esm/components/backoffice/actions/toastViewAction.js +27 -0
- package/lib/esm/components/backoffice/actions/toastViewAction.js.map +1 -0
- package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +60 -0
- package/lib/esm/components/backoffice/columns/buildDataTableColumns.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 +41 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +31 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js +8 -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 +49 -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 +115 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -0
- package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js +33 -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/backofficeDetailBadgeRow.css.js +8 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +8 -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 +8 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +8 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +8 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js +8 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +1 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js +8 -0
- package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.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/components/backoffice/errors/BackofficeErrorBoundary.js +21 -0
- package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js.map +1 -0
- package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +43 -0
- package/lib/esm/components/backoffice/filters/BackofficeFilterAction.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 +51 -0
- package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -0
- package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +8 -0
- package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -0
- package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +8 -0
- package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +1 -0
- package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +8 -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 +38 -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/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js +11 -0
- 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 +8 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +1 -0
- package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js +48 -0
- 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 +183 -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 +44 -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/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 +8 -0
- package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +107 -0
- package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +8 -0
- package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +1 -0
- package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +24 -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 +24 -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/BackofficeRelatedCountLink.js +54 -0
- package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -0
- package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +8 -0
- package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +1 -0
- package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +8 -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 +39 -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 +22 -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 +8 -0
- package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +8 -0
- package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +8 -0
- package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +8 -0
- package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +1 -0
- package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +8 -0
- package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +11 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +446 -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 +25 -0
- package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +8 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +8 -0
- package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.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/backofficeInlineFilterRow.css.js +8 -0
- package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +40 -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 +58 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js +81 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js +16 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js +56 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +20 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +1 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js +56 -0
- package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +8 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +8 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +8 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js +8 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js +8 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js.map +1 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js +8 -0
- package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js.map +1 -0
- package/lib/esm/filters/filterHelpers.js +36 -0
- package/lib/esm/filters/filterHelpers.js.map +1 -0
- package/lib/esm/hooks/useAuth.js +439 -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/useBackofficeListRefetch.js +40 -0
- package/lib/esm/hooks/useBackofficeListRefetch.js.map +1 -0
- package/lib/esm/hooks/useBackofficeListUrlState.js +37 -0
- 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 +28 -0
- package/lib/esm/hooks/useBackofficeSessionAuth.js.map +1 -0
- package/lib/esm/hooks/useBackofficeSidebarPins.js +70 -0
- package/lib/esm/hooks/useBackofficeSidebarPins.js.map +1 -0
- package/lib/esm/hooks/useBackofficeToolsUrlParams.js +15 -0
- package/lib/esm/hooks/useBackofficeToolsUrlParams.js.map +1 -0
- package/lib/esm/hooks/useSidebarGroupCollapse.js +35 -0
- package/lib/esm/hooks/useSidebarGroupCollapse.js.map +1 -0
- package/lib/esm/i18n/createI18nInstance.js +62 -0
- package/lib/esm/i18n/createI18nInstance.js.map +1 -0
- package/lib/esm/i18n/locales/en/backofficeReact.js +249 -0
- package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -0
- package/lib/esm/i18n/locales/en/shared.js +207 -0
- package/lib/esm/i18n/locales/en/shared.js.map +1 -0
- package/lib/esm/i18n/locales/fr/backofficeReact.js +251 -0
- package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -0
- package/lib/esm/i18n/locales/fr/shared.js +207 -0
- package/lib/esm/i18n/locales/fr/shared.js.map +1 -0
- package/lib/esm/i18n/mergeResourceLanguages.js +19 -0
- package/lib/esm/i18n/mergeResourceLanguages.js.map +1 -0
- package/lib/esm/i18n/resources.js +19 -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/useSharedTranslation.js +9 -0
- package/lib/esm/i18n/useSharedTranslation.js.map +1 -0
- package/lib/esm/index.js +2 -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/pages/BackofficeAcceptInvitationPage.js +24 -0
- package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +1 -0
- package/lib/esm/pages/BackofficeDashboardPage.js +198 -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.js +843 -0
- package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js +17 -0
- package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +1 -0
- package/lib/esm/pages/BackofficeEntityListPage.js +363 -0
- package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -0
- package/lib/esm/pages/BackofficeLayoutPage.js +141 -0
- package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -0
- package/lib/esm/pages/BackofficeLoginPage.js +46 -0
- package/lib/esm/pages/BackofficeLoginPage.js.map +1 -0
- package/lib/esm/pages/BackofficePasswordResetCompletePage.js +59 -0
- package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -0
- package/lib/esm/pages/BackofficePasswordResetRequestPage.js +54 -0
- package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -0
- package/lib/esm/pages/BackofficeToolsOperationPage.js +465 -0
- package/lib/esm/pages/BackofficeToolsOperationPage.js.map +1 -0
- package/lib/esm/pages/BackofficeVerifyEmailPage.js +59 -0
- package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -0
- package/lib/esm/pages/backofficeDashboardPage.css.js +8 -0
- package/lib/esm/pages/backofficeDashboardPage.css.js.map +1 -0
- package/lib/esm/pages/backofficeEntityDetailPage.css.js +8 -0
- package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +1 -0
- package/lib/esm/pages/backofficeEntityListPage.css.js +8 -0
- package/lib/esm/pages/backofficeEntityListPage.css.js.map +1 -0
- package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js +11 -0
- 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/pages/detail/pageResolution.js +28 -0
- 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 +142 -0
- package/lib/esm/provider/BackofficeProvider.js.map +1 -0
- package/lib/esm/provider/entityRegistry.js +91 -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 +137 -0
- package/lib/esm/provider/useBackofficeEntityLoader.js.map +1 -0
- package/lib/esm/provider/useBackofficeLazyValue.js +39 -0
- package/lib/esm/provider/useBackofficeLazyValue.js.map +1 -0
- package/lib/esm/relay/RelayProvider.js +12 -0
- package/lib/esm/relay/RelayProvider.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 +46 -0
- package/lib/esm/relay/envHelpers.js.map +1 -0
- package/lib/esm/relay/environment.js +221 -0
- 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/relay/mutationResult.js +47 -0
- package/lib/esm/relay/mutationResult.js.map +1 -0
- package/lib/esm/relay/useRelayEnvironment.js +2 -0
- package/lib/esm/router/backofficeAuthPaths.js +13 -0
- package/lib/esm/router/backofficeAuthPaths.js.map +1 -0
- package/lib/esm/router/createBackofficeRoutes.js +273 -0
- package/lib/esm/router/createBackofficeRoutes.js.map +1 -0
- package/lib/esm/style.css +2 -0
- package/lib/esm/style.js +1 -0
- package/lib/types/auth/login/AuthPanel.d.ts +10 -0
- package/lib/types/auth/login/AuthPanel.d.ts.map +1 -0
- package/lib/types/auth/login/EmailCapturePanel.d.ts +12 -0
- package/lib/types/auth/login/EmailCapturePanel.d.ts.map +1 -0
- package/lib/types/auth/login/LoginFlow.d.ts +11 -0
- package/lib/types/auth/login/LoginFlow.d.ts.map +1 -0
- package/lib/types/auth/login/MethodChooser.d.ts +12 -0
- package/lib/types/auth/login/MethodChooser.d.ts.map +1 -0
- package/lib/types/auth/login/MfaChallengeForm.d.ts +10 -0
- package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -0
- package/lib/types/auth/login/OidcButtons.d.ts +8 -0
- package/lib/types/auth/login/OidcButtons.d.ts.map +1 -0
- package/lib/types/auth/login/PasskeyLoginForm.d.ts +12 -0
- package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -0
- package/lib/types/auth/login/PasswordLoginPanel.d.ts +13 -0
- package/lib/types/auth/login/PasswordLoginPanel.d.ts.map +1 -0
- package/lib/types/auth/login/loginPage.css.d.ts +14 -0
- package/lib/types/auth/login/loginPage.css.d.ts.map +1 -0
- package/lib/types/auth/login/synchronizeAuthStatusQuery.d.ts +3 -0
- package/lib/types/auth/login/synchronizeAuthStatusQuery.d.ts.map +1 -0
- package/lib/types/auth/pages/AcceptInvitationScreen.d.ts +11 -0
- package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -0
- package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts +12 -0
- package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts.map +1 -0
- package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts +10 -0
- package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts.map +1 -0
- package/lib/types/auth/pages/VerifyEmailScreen.d.ts +11 -0
- package/lib/types/auth/pages/VerifyEmailScreen.d.ts.map +1 -0
- package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts +12 -0
- package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -0
- package/lib/types/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.d.ts +5 -0
- package/lib/types/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.d.ts.map +1 -0
- package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts +7 -0
- package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/actions/toastViewAction.d.ts +17 -0
- package/lib/types/components/backoffice/actions/toastViewAction.d.ts.map +1 -0
- package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts +13 -0
- package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailBadgeRow.d.ts +8 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailBadgeRow.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts +14 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts +13 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.css.d.ts +4 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.d.ts +10 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailLayout.d.ts +8 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailLayout.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailPayload.d.ts +10 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailPayload.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts +13 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationList.d.ts +7 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationList.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts +11 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailSection.d.ts +11 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailSection.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailTaggedValue.d.ts +12 -0
- package/lib/types/components/backoffice/detail/BackofficeDetailTaggedValue.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailBadgeRow.css.d.ts +2 -0
- package/lib/types/components/backoffice/detail/backofficeDetailBadgeRow.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailErrorList.css.d.ts +8 -0
- package/lib/types/components/backoffice/detail/backofficeDetailErrorList.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts +13 -0
- package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailLayout.css.d.ts +5 -0
- package/lib/types/components/backoffice/detail/backofficeDetailLayout.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts +4 -0
- package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailRelationList.css.d.ts +2 -0
- package/lib/types/components/backoffice/detail/backofficeDetailRelationList.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailSection.css.d.ts +6 -0
- package/lib/types/components/backoffice/detail/backofficeDetailSection.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/backofficeDetailTaggedValue.css.d.ts +3 -0
- package/lib/types/components/backoffice/detail/backofficeDetailTaggedValue.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/detail/detailPayloadUtils.d.ts +3 -0
- package/lib/types/components/backoffice/detail/detailPayloadUtils.d.ts.map +1 -0
- package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.d.ts +19 -0
- package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts +12 -0
- package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/EntityFilterValue.d.ts +14 -0
- package/lib/types/components/backoffice/filters/EntityFilterValue.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts +12 -0
- package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/backofficeFilterAction.css.d.ts +3 -0
- package/lib/types/components/backoffice/filters/backofficeFilterAction.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts +6 -0
- package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/backofficeSidebarActions.css.d.ts +2 -0
- package/lib/types/components/backoffice/layout/backofficeSidebarActions.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.d.ts +9 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts +8 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.d.ts +7 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts +6 -0
- package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.d.ts +3 -0
- package/lib/types/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts +7 -0
- package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts +21 -0
- package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/breadcrumb/types.d.ts +9 -0
- package/lib/types/components/backoffice/layout/breadcrumb/types.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +22 -0
- package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts +15 -0
- package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts.map +1 -0
- package/lib/types/components/backoffice/layout/sidebarUtils.d.ts +16 -0
- package/lib/types/components/backoffice/layout/sidebarUtils.d.ts.map +1 -0
- package/lib/types/components/backoffice/list/RowFlagsCell.css.d.ts +4 -0
- package/lib/types/components/backoffice/list/RowFlagsCell.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/list/RowFlagsCell.d.ts +10 -0
- package/lib/types/components/backoffice/list/RowFlagsCell.d.ts.map +1 -0
- package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.d.ts +10 -0
- package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.d.ts.map +1 -0
- package/lib/types/components/backoffice/overview/backofficeOverviewLayout.css.d.ts +6 -0
- package/lib/types/components/backoffice/overview/backofficeOverviewLayout.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts +14 -0
- package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -0
- package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts +8 -0
- package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/pickers/shared/EntityPickerList.d.ts +10 -0
- package/lib/types/components/backoffice/pickers/shared/EntityPickerList.d.ts.map +1 -0
- package/lib/types/components/backoffice/pickers/shared/EntityPickerRowBase.d.ts +8 -0
- package/lib/types/components/backoffice/pickers/shared/EntityPickerRowBase.d.ts.map +1 -0
- package/lib/types/components/backoffice/pickers/shared/EntityPickerShell.d.ts +11 -0
- package/lib/types/components/backoffice/pickers/shared/EntityPickerShell.d.ts.map +1 -0
- package/lib/types/components/backoffice/pickers/types.d.ts +14 -0
- package/lib/types/components/backoffice/pickers/types.d.ts.map +1 -0
- package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts +13 -0
- package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts.map +1 -0
- package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts +9 -0
- package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts.map +1 -0
- package/lib/types/components/backoffice/refs/backofficeEntityIdRef.css.d.ts +2 -0
- package/lib/types/components/backoffice/refs/backofficeEntityIdRef.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts +2 -0
- package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/BackofficeContentBoundary.d.ts +7 -0
- package/lib/types/components/backoffice/routing/BackofficeContentBoundary.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts +8 -0
- package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/BackofficeContentFallback.d.ts +4 -0
- package/lib/types/components/backoffice/routing/BackofficeContentFallback.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts +4 -0
- package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/BackofficeRoutePendingBar.d.ts +4 -0
- package/lib/types/components/backoffice/routing/BackofficeRoutePendingBar.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/backofficeContentBoundary.css.d.ts +2 -0
- package/lib/types/components/backoffice/routing/backofficeContentBoundary.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/backofficeContentError.css.d.ts +3 -0
- package/lib/types/components/backoffice/routing/backofficeContentError.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/backofficeContentFallback.css.d.ts +5 -0
- package/lib/types/components/backoffice/routing/backofficeContentFallback.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/backofficeRouteFallback.css.d.ts +3 -0
- package/lib/types/components/backoffice/routing/backofficeRouteFallback.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/routing/backofficeRoutePendingBar.css.d.ts +3 -0
- package/lib/types/components/backoffice/routing/backofficeRoutePendingBar.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.d.ts +13 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +30 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts +23 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts +11 -0
- package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts +5 -0
- package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.d.ts +3 -0
- package/lib/types/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/shared/BackofficeInlineFilterRow.d.ts +8 -0
- package/lib/types/components/backoffice/shared/BackofficeInlineFilterRow.d.ts.map +1 -0
- package/lib/types/components/backoffice/shared/backofficeInlineFilterRow.css.d.ts +2 -0
- package/lib/types/components/backoffice/shared/backofficeInlineFilterRow.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts +11 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts +8 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts +15 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts +13 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts +14 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts +8 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.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/BackofficeToolsScopePicker.d.ts +8 -0
- package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.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 +6 -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/backofficeToolsPageLayout.css.d.ts +13 -0
- package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts +4 -0
- package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts.map +1 -0
- package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts +4 -0
- package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts.map +1 -0
- package/lib/types/filters/filterHelpers.d.ts +5 -0
- package/lib/types/filters/filterHelpers.d.ts.map +1 -0
- package/lib/types/hooks/useAuth.d.ts +170 -0
- package/lib/types/hooks/useAuth.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeAuth.d.ts +3 -0
- package/lib/types/hooks/useBackofficeAuth.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeListRefetch.d.ts +17 -0
- package/lib/types/hooks/useBackofficeListRefetch.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeListUrlState.d.ts +8 -0
- package/lib/types/hooks/useBackofficeListUrlState.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeLoadMore.d.ts +9 -0
- package/lib/types/hooks/useBackofficeLoadMore.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeSessionAuth.d.ts +7 -0
- package/lib/types/hooks/useBackofficeSessionAuth.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeSidebarPins.d.ts +15 -0
- package/lib/types/hooks/useBackofficeSidebarPins.d.ts.map +1 -0
- package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts +8 -0
- package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts.map +1 -0
- package/lib/types/hooks/useSidebarGroupCollapse.d.ts +11 -0
- package/lib/types/hooks/useSidebarGroupCollapse.d.ts.map +1 -0
- package/lib/types/i18n/createI18nInstance.d.ts +17 -0
- package/lib/types/i18n/createI18nInstance.d.ts.map +1 -0
- package/lib/types/i18n/mergeResourceLanguages.d.ts +3 -0
- package/lib/types/i18n/mergeResourceLanguages.d.ts.map +1 -0
- package/lib/types/i18n/resources.d.ts +1010 -0
- package/lib/types/i18n/resources.d.ts.map +1 -0
- package/lib/types/i18n/useBackofficeFormats.d.ts +7 -0
- package/lib/types/i18n/useBackofficeFormats.d.ts.map +1 -0
- package/lib/types/i18n/useBackofficeReactTranslation.d.ts +3 -0
- package/lib/types/i18n/useBackofficeReactTranslation.d.ts.map +1 -0
- package/lib/types/i18n/useSharedTranslation.d.ts +3 -0
- package/lib/types/i18n/useSharedTranslation.d.ts.map +1 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/modules/sharedSchemaTypes.d.ts +7 -0
- package/lib/types/modules/sharedSchemaTypes.d.ts.map +1 -0
- package/lib/types/modules/webauthn.d.ts +6 -0
- package/lib/types/modules/webauthn.d.ts.map +1 -0
- package/lib/types/pages/BackofficeAcceptInvitationPage.d.ts +4 -0
- package/lib/types/pages/BackofficeAcceptInvitationPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeDashboardPage.d.ts +4 -0
- package/lib/types/pages/BackofficeDashboardPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeEntityDetailLayoutPage.d.ts +11 -0
- package/lib/types/pages/BackofficeEntityDetailLayoutPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeEntityDetailPage.d.ts +18 -0
- package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeEntityDetailUnknownPageRedirect.d.ts +13 -0
- package/lib/types/pages/BackofficeEntityDetailUnknownPageRedirect.d.ts.map +1 -0
- package/lib/types/pages/BackofficeEntityListPage.d.ts +10 -0
- package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeLayoutPage.d.ts +17 -0
- package/lib/types/pages/BackofficeLayoutPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeLoginPage.d.ts +11 -0
- package/lib/types/pages/BackofficeLoginPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficePasswordResetCompletePage.d.ts +4 -0
- package/lib/types/pages/BackofficePasswordResetCompletePage.d.ts.map +1 -0
- package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts +4 -0
- package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeToolsOperationPage.d.ts +9 -0
- package/lib/types/pages/BackofficeToolsOperationPage.d.ts.map +1 -0
- package/lib/types/pages/BackofficeVerifyEmailPage.d.ts +4 -0
- package/lib/types/pages/BackofficeVerifyEmailPage.d.ts.map +1 -0
- package/lib/types/pages/backofficeDashboardPage.css.d.ts +5 -0
- package/lib/types/pages/backofficeDashboardPage.css.d.ts.map +1 -0
- package/lib/types/pages/backofficeEntityDetailPage.css.d.ts +5 -0
- package/lib/types/pages/backofficeEntityDetailPage.css.d.ts.map +1 -0
- package/lib/types/pages/backofficeEntityListPage.css.d.ts +4 -0
- package/lib/types/pages/backofficeEntityListPage.css.d.ts.map +1 -0
- package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts +6 -0
- package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts.map +1 -0
- package/lib/types/pages/detail/buildTabsItems.d.ts +12 -0
- package/lib/types/pages/detail/buildTabsItems.d.ts.map +1 -0
- package/lib/types/pages/detail/pageResolution.d.ts +20 -0
- package/lib/types/pages/detail/pageResolution.d.ts.map +1 -0
- package/lib/types/provider/BackofficeConfigContext.d.ts +18 -0
- package/lib/types/provider/BackofficeConfigContext.d.ts.map +1 -0
- package/lib/types/provider/BackofficeProvider.d.ts +7 -0
- package/lib/types/provider/BackofficeProvider.d.ts.map +1 -0
- package/lib/types/provider/entityRegistry.d.ts +28 -0
- package/lib/types/provider/entityRegistry.d.ts.map +1 -0
- package/lib/types/provider/lazyValue.d.ts +7 -0
- package/lib/types/provider/lazyValue.d.ts.map +1 -0
- package/lib/types/provider/types.d.ts +101 -0
- package/lib/types/provider/types.d.ts.map +1 -0
- package/lib/types/provider/useBackofficeEntityLoader.d.ts +39 -0
- package/lib/types/provider/useBackofficeEntityLoader.d.ts.map +1 -0
- package/lib/types/provider/useBackofficeLazyValue.d.ts +13 -0
- package/lib/types/provider/useBackofficeLazyValue.d.ts.map +1 -0
- package/lib/types/relay/RelayProvider.d.ts +7 -0
- package/lib/types/relay/RelayProvider.d.ts.map +1 -0
- package/lib/types/relay/createInlineDataReader.d.ts +2 -0
- package/lib/types/relay/createInlineDataReader.d.ts.map +1 -0
- package/lib/types/relay/createInlineReader.d.ts +4 -0
- package/lib/types/relay/createInlineReader.d.ts.map +1 -0
- package/lib/types/relay/envHelpers.d.ts +16 -0
- package/lib/types/relay/envHelpers.d.ts.map +1 -0
- package/lib/types/relay/environment.d.ts +12 -0
- package/lib/types/relay/environment.d.ts.map +1 -0
- package/lib/types/relay/identityView.d.ts +2 -0
- package/lib/types/relay/identityView.d.ts.map +1 -0
- package/lib/types/relay/mutationResult.d.ts +51 -0
- package/lib/types/relay/mutationResult.d.ts.map +1 -0
- package/lib/types/relay/useRelayEnvironment.d.ts +2 -0
- package/lib/types/relay/useRelayEnvironment.d.ts.map +1 -0
- package/lib/types/router/backofficeAuthPaths.d.ts +3 -0
- package/lib/types/router/backofficeAuthPaths.d.ts.map +1 -0
- package/lib/types/router/createBackofficeRoutes.d.ts +32 -0
- package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -0
- package/lib/types/style.d.ts +2 -0
- package/lib/types/style.d.ts.map +1 -0
- package/package.json +138 -0
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
|
|
2
|
+
import { EntityIdFilterField as t } from "../filters/EntityIdFilterField.js";
|
|
3
|
+
import { BackofficeErrorBoundary as n } from "../errors/BackofficeErrorBoundary.js";
|
|
4
|
+
import { EntityIdPickerDialog as r } from "../pickers/EntityIdPickerDialog.js";
|
|
5
|
+
import { EntityFilterValue as i, EntityFilterValueText as a } from "../filters/EntityFilterValue.js";
|
|
6
|
+
import { BackofficeListFilterProvider as o } from "./BackofficeListFilterContext.js";
|
|
7
|
+
import { controlsRow as s, embeddedContainer as c, embeddedHeader as l, filterInput as ee } from "./backofficeEntityListScaffold.css.js";
|
|
8
|
+
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
9
|
+
import { useTranslation as te } from "react-i18next";
|
|
10
|
+
import { Button as p, SimpleSelect as m } from "@plumile/ui";
|
|
11
|
+
import { useCallback as h, useMemo as g, useState as _ } from "react";
|
|
12
|
+
import { BackofficeEmptyState as v, BackofficeFilterDrawer as ne, BackofficeFilterField as re, BackofficePageHeader as ie, BackofficeTableToolbar as ae } from "@plumile/ui-backoffice";
|
|
13
|
+
import { readWhereValue as y, setWhereValue as b } from "@plumile/backoffice-core/filters/where.js";
|
|
14
|
+
import { BackofficeTableSkeleton as oe } from "@plumile/ui-backoffice/backoffice/molecules/backoffice_table_skeleton/BackofficeTableSkeleton.js";
|
|
15
|
+
import { BackofficeLoadMore as se } from "@plumile/ui-backoffice/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js";
|
|
16
|
+
import { BackofficeVirtualizedConnectionTable as ce } from "@plumile/ui-backoffice/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js";
|
|
17
|
+
import { FilterChipRow as le } from "@plumile/ui-backoffice/backoffice/molecules/filter_chip_row/FilterChipRow.js";
|
|
18
|
+
import { GlobalSearchInput as ue } from "@plumile/ui-backoffice/backoffice/molecules/global_search_input/GlobalSearchInput.js";
|
|
19
|
+
import { InlineBanner as de } from "@plumile/ui-backoffice/backoffice/molecules/inline_banner/InlineBanner.js";
|
|
20
|
+
import { ListPageTemplate as fe } from "@plumile/ui-backoffice/backoffice/templates/list_page_template/ListPageTemplate.js";
|
|
21
|
+
import { denseTableClass as pe } from "@plumile/ui-backoffice/shared/backofficeTableDensity.css.js";
|
|
22
|
+
//#region src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx
|
|
23
|
+
var x = (e, t) => e(t), S = (e, t) => e.fromGraphQL != null && t != null ? e.fromGraphQL(t) : y(t, e.whereKey ?? e.id, e.path), me = (e, t, n) => {
|
|
24
|
+
if (t == null) return null;
|
|
25
|
+
if (Array.isArray(t)) {
|
|
26
|
+
let e = t.map((e) => {
|
|
27
|
+
if (e == null || typeof e != "string" && typeof e != "number" && typeof e != "boolean") return null;
|
|
28
|
+
let t = String(e).trim();
|
|
29
|
+
return t === "" ? null : t;
|
|
30
|
+
}).filter((e) => e != null);
|
|
31
|
+
return e.length === 0 ? null : e.join(", ");
|
|
32
|
+
}
|
|
33
|
+
if (typeof t == "boolean") return e.kind === "boolean" ? n.booleanLabel(t) : t ? n.fallbackBooleanLabels.yes : n.fallbackBooleanLabels.no;
|
|
34
|
+
if (typeof t != "string" && typeof t != "number") return null;
|
|
35
|
+
let r = String(t).trim();
|
|
36
|
+
return r === "" ? null : e.kind === "entityId" ? /* @__PURE__ */ d(i, {
|
|
37
|
+
entityId: e.entity,
|
|
38
|
+
id: r
|
|
39
|
+
}) : e.kind === "enum" ? n.enumLabel(r) : r;
|
|
40
|
+
}, C = (i) => {
|
|
41
|
+
let { t: y } = te(), { t: C } = e(), { config: w, state: T, pushState: E, rows: D, getRowId: he, columns: O, gridTemplateColumns: ge, hasNextPage: k, isLoadingMore: A, onLoadMore: _e, onRefresh: j, totalCount: M, emptyState: N, header: P, headerActions: ve, isLoadingInitial: F = !1, virtualize: I = !0, variant: ye = "page", showFilters: be = !0 } = i, L = w.list, R = w.listDefaults ?? L.defaultState ?? {
|
|
42
|
+
where: null,
|
|
43
|
+
sort: null
|
|
44
|
+
}, xe = g(() => O.some((e) => e.isPrimary === !0) || O.length === 0 ? O : O.map((e, t) => {
|
|
45
|
+
let { header: n } = e;
|
|
46
|
+
return t === 0 ? {
|
|
47
|
+
...e,
|
|
48
|
+
isPrimary: !0,
|
|
49
|
+
header: n
|
|
50
|
+
} : {
|
|
51
|
+
...e,
|
|
52
|
+
header: n
|
|
53
|
+
};
|
|
54
|
+
}), [O]), z = g(() => {
|
|
55
|
+
let e = [];
|
|
56
|
+
for (let t of L.filters) {
|
|
57
|
+
let n = S(t, T.where), r = me(t, n, {
|
|
58
|
+
enumLabel: (e) => {
|
|
59
|
+
if (t.kind !== "enum") return e;
|
|
60
|
+
let n = t.options.find((t) => t.value === e);
|
|
61
|
+
return n == null ? e : x(n.label, y);
|
|
62
|
+
},
|
|
63
|
+
booleanLabel: (e) => {
|
|
64
|
+
if (t.kind === "boolean") {
|
|
65
|
+
if (e && t.trueLabel != null) return x(t.trueLabel, y);
|
|
66
|
+
if (!e && t.falseLabel != null) return x(t.falseLabel, y);
|
|
67
|
+
}
|
|
68
|
+
return C(e ? "filters.boolean.yes" : "filters.boolean.no");
|
|
69
|
+
},
|
|
70
|
+
fallbackBooleanLabels: {
|
|
71
|
+
yes: C("filters.boolean.yes"),
|
|
72
|
+
no: C("filters.boolean.no")
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (r != null) {
|
|
76
|
+
let i = String(n);
|
|
77
|
+
Array.isArray(n) && (i = n.join(","));
|
|
78
|
+
let a = /* @__PURE__ */ f("span", { children: [
|
|
79
|
+
x(t.label, y),
|
|
80
|
+
": ",
|
|
81
|
+
r
|
|
82
|
+
] });
|
|
83
|
+
e.push({
|
|
84
|
+
id: `${t.id}:${i}`,
|
|
85
|
+
label: a,
|
|
86
|
+
onRemove: () => {
|
|
87
|
+
let e = t.whereKey ?? t.id, n = b(T.where, e, null, t.path);
|
|
88
|
+
E({
|
|
89
|
+
...T,
|
|
90
|
+
where: n
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return e;
|
|
97
|
+
}, [
|
|
98
|
+
L.filters,
|
|
99
|
+
E,
|
|
100
|
+
T,
|
|
101
|
+
C,
|
|
102
|
+
y
|
|
103
|
+
]), B = h(() => {
|
|
104
|
+
E({ ...R });
|
|
105
|
+
}, [R, E]), [Se, V] = _(!1), [H, U] = _(""), [W, G] = _(null), K = h((e) => {
|
|
106
|
+
let n = e.whereKey ?? e.id, r = S(e, T.where), i = "";
|
|
107
|
+
typeof r == "string" && (i = r);
|
|
108
|
+
let o = x(e.label, y);
|
|
109
|
+
if (e.kind === "text") {
|
|
110
|
+
let t = C("filters.placeholders.search", { label: e.placeholderLabel == null ? o : x(e.placeholderLabel, y) });
|
|
111
|
+
return e.placeholderText != null && (t = x(e.placeholderText, y)), /* @__PURE__ */ d(ue, {
|
|
112
|
+
value: i,
|
|
113
|
+
onChange: (t) => {
|
|
114
|
+
let r = b(T.where, n, t, e.path);
|
|
115
|
+
E({
|
|
116
|
+
...T,
|
|
117
|
+
where: r
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
placeholder: t,
|
|
121
|
+
className: ee
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
if (e.kind === "enum") return /* @__PURE__ */ d(m, {
|
|
125
|
+
options: [{
|
|
126
|
+
id: "any",
|
|
127
|
+
value: "",
|
|
128
|
+
label: C("filters.all", { label: o })
|
|
129
|
+
}, ...e.options.map((e) => ({
|
|
130
|
+
id: e.value,
|
|
131
|
+
value: e.value,
|
|
132
|
+
label: x(e.label, y)
|
|
133
|
+
}))],
|
|
134
|
+
value: i,
|
|
135
|
+
onChange: (t) => {
|
|
136
|
+
let r = b(T.where, n, t, e.path);
|
|
137
|
+
E({
|
|
138
|
+
...T,
|
|
139
|
+
where: r
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
if (e.kind === "boolean") {
|
|
144
|
+
let t = null;
|
|
145
|
+
typeof r == "boolean" && (t = r);
|
|
146
|
+
let i = "";
|
|
147
|
+
t === !0 && (i = "true"), t === !1 && (i = "false");
|
|
148
|
+
let a = e.trueLabel == null ? C("filters.boolean.yes") : x(e.trueLabel, y), s = e.falseLabel == null ? C("filters.boolean.no") : x(e.falseLabel, y);
|
|
149
|
+
return /* @__PURE__ */ d(m, {
|
|
150
|
+
options: [
|
|
151
|
+
{
|
|
152
|
+
id: "any",
|
|
153
|
+
value: "",
|
|
154
|
+
label: C("filters.all", { label: o })
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
id: "true",
|
|
158
|
+
value: "true",
|
|
159
|
+
label: a
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: "false",
|
|
163
|
+
value: "false",
|
|
164
|
+
label: s
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
value: i,
|
|
168
|
+
onChange: (t) => {
|
|
169
|
+
let r = null;
|
|
170
|
+
t === "true" && (r = !0), t === "false" && (r = !1);
|
|
171
|
+
let i = b(T.where, n, r, e.path);
|
|
172
|
+
E({
|
|
173
|
+
...T,
|
|
174
|
+
where: i
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
let s = (() => {
|
|
180
|
+
if (e.pickerScope != null) return typeof e.pickerScope == "function" ? e.pickerScope(T.where) : e.pickerScope;
|
|
181
|
+
})(), c = null;
|
|
182
|
+
typeof r == "string" && (c = r);
|
|
183
|
+
let l = (r = null) => {
|
|
184
|
+
let i = r?.trim() ?? "";
|
|
185
|
+
return /* @__PURE__ */ d(t, {
|
|
186
|
+
label: o,
|
|
187
|
+
value: c,
|
|
188
|
+
displayValue: i,
|
|
189
|
+
onPick: () => {
|
|
190
|
+
G({
|
|
191
|
+
entity: e.entity,
|
|
192
|
+
whereKey: n,
|
|
193
|
+
label: o,
|
|
194
|
+
path: e.path,
|
|
195
|
+
scope: s
|
|
196
|
+
});
|
|
197
|
+
},
|
|
198
|
+
onClear: () => {
|
|
199
|
+
let t = b(T.where, n, null, e.path);
|
|
200
|
+
E({
|
|
201
|
+
...T,
|
|
202
|
+
where: t
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
return c == null || c.trim() === "" ? l() : /* @__PURE__ */ d(a, {
|
|
208
|
+
entityId: e.entity,
|
|
209
|
+
id: c,
|
|
210
|
+
children: (e) => l(e)
|
|
211
|
+
});
|
|
212
|
+
}, [
|
|
213
|
+
E,
|
|
214
|
+
T,
|
|
215
|
+
C,
|
|
216
|
+
y
|
|
217
|
+
]), q = g(() => L.filters.some((e) => e.placement != null), [L.filters]), J = g(() => L.filters.length === 0 ? [] : q ? L.filters.filter((e) => e.placement === "quick" || e.placement === "both") : L.filters.slice(0, 3), [L.filters, q]), Y = g(() => L.filters.filter((e) => e.placement == null ? !0 : e.placement === "drawer" || e.placement === "both"), [L.filters]), X = g(() => J.find((e) => e.kind === "text"), [J]), Ce = g(() => {
|
|
218
|
+
let e = J.filter((e) => e !== X);
|
|
219
|
+
return e.length === 0 ? null : /* @__PURE__ */ d("div", {
|
|
220
|
+
className: s,
|
|
221
|
+
children: e.map((e) => /* @__PURE__ */ d("span", { children: K(e) }, e.id))
|
|
222
|
+
});
|
|
223
|
+
}, [
|
|
224
|
+
J,
|
|
225
|
+
K,
|
|
226
|
+
X
|
|
227
|
+
]), we = g(() => X == null ? null : K(X), [K, X]), Te = g(() => {
|
|
228
|
+
if (L.sorts.length === 0) return null;
|
|
229
|
+
let e = L.sorts[0];
|
|
230
|
+
return e == null ? null : /* @__PURE__ */ d(m, {
|
|
231
|
+
options: L.sorts.map((e) => ({
|
|
232
|
+
id: e.id,
|
|
233
|
+
value: e.id,
|
|
234
|
+
label: x(e.label, y)
|
|
235
|
+
})),
|
|
236
|
+
value: T.sort ?? e.id,
|
|
237
|
+
onChange: (e) => {
|
|
238
|
+
E({
|
|
239
|
+
...T,
|
|
240
|
+
sort: e
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}, [
|
|
245
|
+
L.sorts,
|
|
246
|
+
E,
|
|
247
|
+
T,
|
|
248
|
+
y
|
|
249
|
+
]), Ee = g(() => /* @__PURE__ */ d(le, {
|
|
250
|
+
chips: z,
|
|
251
|
+
onClearAll: B
|
|
252
|
+
}), [z, B]), De = g(() => {
|
|
253
|
+
if (Y.length === 0) return [];
|
|
254
|
+
let e = H.trim().toLowerCase(), t = [];
|
|
255
|
+
for (let n of Y) {
|
|
256
|
+
let r = x(n.label, y);
|
|
257
|
+
(e === "" || r.toLowerCase().includes(e)) && t.push({
|
|
258
|
+
id: n.id,
|
|
259
|
+
node: /* @__PURE__ */ d(re, {
|
|
260
|
+
label: r,
|
|
261
|
+
children: K(n)
|
|
262
|
+
})
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
return t.length === 0 ? [] : [{
|
|
266
|
+
id: "backoffice.filters.sections.default",
|
|
267
|
+
title: C("filters.sections.default"),
|
|
268
|
+
items: t
|
|
269
|
+
}];
|
|
270
|
+
}, [
|
|
271
|
+
Y,
|
|
272
|
+
H,
|
|
273
|
+
K,
|
|
274
|
+
C,
|
|
275
|
+
y
|
|
276
|
+
]), Oe = g(() => {
|
|
277
|
+
if (Y.length === 0) return null;
|
|
278
|
+
let e = z.length, t = C("filters.allFilters");
|
|
279
|
+
return e > 0 && (t = C("filters.allFiltersWithCount", { count: e })), /* @__PURE__ */ d(p, {
|
|
280
|
+
type: "button",
|
|
281
|
+
variant: "secondary",
|
|
282
|
+
size: "small",
|
|
283
|
+
onClick: () => {
|
|
284
|
+
V(!0);
|
|
285
|
+
},
|
|
286
|
+
children: t
|
|
287
|
+
});
|
|
288
|
+
}, [
|
|
289
|
+
z.length,
|
|
290
|
+
Y.length,
|
|
291
|
+
C
|
|
292
|
+
]), ke = /* @__PURE__ */ d(ne, {
|
|
293
|
+
isOpen: Se,
|
|
294
|
+
onClose: () => {
|
|
295
|
+
V(!1), U("");
|
|
296
|
+
},
|
|
297
|
+
sections: De,
|
|
298
|
+
searchValue: H,
|
|
299
|
+
onSearchChange: (e) => {
|
|
300
|
+
U(e);
|
|
301
|
+
},
|
|
302
|
+
onReset: B
|
|
303
|
+
}), Ae = g(() => N ?? (F ? /* @__PURE__ */ d(oe, {}) : z.length > 0 ? /* @__PURE__ */ d(v, {
|
|
304
|
+
title: C("emptyState.listEmpty.title"),
|
|
305
|
+
description: C("emptyState.listEmptyFiltered.description"),
|
|
306
|
+
actions: /* @__PURE__ */ d(p, {
|
|
307
|
+
type: "button",
|
|
308
|
+
variant: "secondary",
|
|
309
|
+
size: "small",
|
|
310
|
+
onClick: B,
|
|
311
|
+
children: C("emptyState.listEmptyFiltered.actions.reset")
|
|
312
|
+
})
|
|
313
|
+
}) : /* @__PURE__ */ d(v, {
|
|
314
|
+
title: C("emptyState.listEmpty.title"),
|
|
315
|
+
description: C("emptyState.listEmpty.description")
|
|
316
|
+
})), [
|
|
317
|
+
z.length,
|
|
318
|
+
N,
|
|
319
|
+
B,
|
|
320
|
+
F,
|
|
321
|
+
C
|
|
322
|
+
]), je = g(() => typeof M == "number" ? /* @__PURE__ */ d("span", { children: C("list.showing", {
|
|
323
|
+
shown: D.length,
|
|
324
|
+
total: M
|
|
325
|
+
}) }) : null, [
|
|
326
|
+
D.length,
|
|
327
|
+
C,
|
|
328
|
+
M
|
|
329
|
+
]), Z = P?.title ?? x(L.title, y), Me = P?.subtitle, Ne = /* @__PURE__ */ d(n, {
|
|
330
|
+
fallback: (e) => {
|
|
331
|
+
let { reset: t } = e;
|
|
332
|
+
return /* @__PURE__ */ d(de, {
|
|
333
|
+
tone: "danger",
|
|
334
|
+
title: C("list.errors.title"),
|
|
335
|
+
actions: /* @__PURE__ */ d(p, {
|
|
336
|
+
type: "button",
|
|
337
|
+
variant: "secondary",
|
|
338
|
+
size: "small",
|
|
339
|
+
onClick: () => {
|
|
340
|
+
t(), j?.();
|
|
341
|
+
},
|
|
342
|
+
children: C("list.actions.retry")
|
|
343
|
+
}),
|
|
344
|
+
children: C("list.errors.tableFailed")
|
|
345
|
+
});
|
|
346
|
+
},
|
|
347
|
+
children: /* @__PURE__ */ d(ce, {
|
|
348
|
+
columns: xe,
|
|
349
|
+
rows: D,
|
|
350
|
+
getRowId: he,
|
|
351
|
+
emptyState: Ae,
|
|
352
|
+
className: pe,
|
|
353
|
+
gridTemplateColumns: ge,
|
|
354
|
+
virtualization: g(() => I ? {
|
|
355
|
+
enabled: !0,
|
|
356
|
+
rowHeightPx: 52,
|
|
357
|
+
overscan: 10
|
|
358
|
+
} : {
|
|
359
|
+
enabled: !1,
|
|
360
|
+
rowHeightPx: 0,
|
|
361
|
+
overscan: 0
|
|
362
|
+
}, [I]),
|
|
363
|
+
infiniteScroll: {
|
|
364
|
+
enabled: !0,
|
|
365
|
+
thresholdPx: 800,
|
|
366
|
+
autoLoad: !0
|
|
367
|
+
},
|
|
368
|
+
hasNextPage: k,
|
|
369
|
+
isLoadingMore: A,
|
|
370
|
+
onLoadMore: _e
|
|
371
|
+
})
|
|
372
|
+
}), Q = be ? /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(ae, {
|
|
373
|
+
searchSlot: we,
|
|
374
|
+
filtersSlot: /* @__PURE__ */ f(u, { children: [Ce, Oe] }),
|
|
375
|
+
sortSlot: Te,
|
|
376
|
+
refreshSlot: /* @__PURE__ */ d(p, {
|
|
377
|
+
type: "button",
|
|
378
|
+
variant: "text",
|
|
379
|
+
size: "small",
|
|
380
|
+
disabled: j == null,
|
|
381
|
+
onClick: () => {
|
|
382
|
+
j?.();
|
|
383
|
+
},
|
|
384
|
+
children: C("list.actions.refresh")
|
|
385
|
+
}),
|
|
386
|
+
chipsSlot: Ee
|
|
387
|
+
}), ke] }) : null, Pe = /* @__PURE__ */ f("div", { children: [Ne, /* @__PURE__ */ d(r, {
|
|
388
|
+
isOpen: W != null,
|
|
389
|
+
entity: W?.entity ?? w.id,
|
|
390
|
+
title: W?.label ?? C("picker.title"),
|
|
391
|
+
scope: W?.scope,
|
|
392
|
+
onClose: () => {
|
|
393
|
+
G(null);
|
|
394
|
+
},
|
|
395
|
+
onSelectId: (e) => {
|
|
396
|
+
if (W == null) return;
|
|
397
|
+
let t = b(T.where, W.whereKey, e, W.path);
|
|
398
|
+
E({
|
|
399
|
+
...T,
|
|
400
|
+
where: t
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
})] }), $ = /* @__PURE__ */ d(se, {
|
|
404
|
+
hasNextPage: k,
|
|
405
|
+
isLoading: A,
|
|
406
|
+
meta: je,
|
|
407
|
+
loadMoreLabel: C("list.loadMore.more"),
|
|
408
|
+
endLabel: C("list.loadMore.end"),
|
|
409
|
+
loadingLabel: C("list.loadMore.loading")
|
|
410
|
+
});
|
|
411
|
+
return ye === "embedded" ? /* @__PURE__ */ d(o, {
|
|
412
|
+
config: w,
|
|
413
|
+
state: T,
|
|
414
|
+
pushState: E,
|
|
415
|
+
children: /* @__PURE__ */ f("div", {
|
|
416
|
+
className: c,
|
|
417
|
+
children: [
|
|
418
|
+
/* @__PURE__ */ d("div", {
|
|
419
|
+
className: l,
|
|
420
|
+
children: Z
|
|
421
|
+
}),
|
|
422
|
+
Q,
|
|
423
|
+
Pe,
|
|
424
|
+
$
|
|
425
|
+
]
|
|
426
|
+
})
|
|
427
|
+
}) : /* @__PURE__ */ d(o, {
|
|
428
|
+
config: w,
|
|
429
|
+
state: T,
|
|
430
|
+
pushState: E,
|
|
431
|
+
children: /* @__PURE__ */ d(fe, {
|
|
432
|
+
headerNode: /* @__PURE__ */ d(ie, {
|
|
433
|
+
title: Z,
|
|
434
|
+
subtitle: Me,
|
|
435
|
+
actions: ve
|
|
436
|
+
}),
|
|
437
|
+
toolbarNode: Q,
|
|
438
|
+
tableNode: Pe,
|
|
439
|
+
tableFooterNode: $
|
|
440
|
+
})
|
|
441
|
+
});
|
|
442
|
+
};
|
|
443
|
+
//#endregion
|
|
444
|
+
export { C as BackofficeEntityListScaffold, C as default };
|
|
445
|
+
|
|
446
|
+
//# sourceMappingURL=BackofficeEntityListScaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeEntityListScaffold.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n type JSX,\n type ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport type { TFunction } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button,\n SimpleSelect,\n type DataTableColumn,\n type GetRowId,\n} from '@plumile/ui';\nimport { BackofficeLoadMore } from '@plumile/ui-backoffice/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js';\nimport { BackofficeTableSkeleton } from '@plumile/ui-backoffice/backoffice/molecules/backoffice_table_skeleton/BackofficeTableSkeleton.js';\nimport { BackofficeVirtualizedConnectionTable } from '@plumile/ui-backoffice/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js';\nimport {\n FilterChipRow,\n type FilterChip,\n} from '@plumile/ui-backoffice/backoffice/molecules/filter_chip_row/FilterChipRow.js';\nimport { GlobalSearchInput } from '@plumile/ui-backoffice/backoffice/molecules/global_search_input/GlobalSearchInput.js';\nimport { InlineBanner } from '@plumile/ui-backoffice/backoffice/molecules/inline_banner/InlineBanner.js';\nimport { ListPageTemplate } from '@plumile/ui-backoffice/backoffice/templates/list_page_template/ListPageTemplate.js';\n\nimport {\n readWhereValue,\n setWhereValue,\n} from '@plumile/backoffice-core/filters/where.js';\nimport type {\n BackofficeFilterSpec,\n BackofficeListState,\n BackofficePickerScope,\n BackofficeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\n\nimport { BackofficeErrorBoundary } from '../errors/BackofficeErrorBoundary.js';\nimport {\n EntityFilterValue,\n EntityFilterValueText,\n} from '../filters/EntityFilterValue.js';\nimport { EntityIdPickerDialog } from '../pickers/EntityIdPickerDialog.js';\nimport { EntityIdFilterField } from '../filters/EntityIdFilterField.js';\nimport { BackofficeListFilterProvider } from './BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport {\n BackofficeEmptyState,\n BackofficeFilterDrawer,\n BackofficeFilterField,\n BackofficePageHeader,\n BackofficeTableToolbar,\n} from '@plumile/ui-backoffice';\nimport { denseTableClass } from '@plumile/ui-backoffice/shared/backofficeTableDensity.css.js';\n\nimport * as styles from './backofficeEntityListScaffold.css.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nconst getFilterValue = <Where extends Record<string, unknown>>(\n filter: BackofficeFilterSpec<Where>,\n where: Where | null,\n): unknown => {\n if (filter.fromGraphQL != null && where != null) {\n return filter.fromGraphQL(where);\n }\n\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n return readWhereValue(where, key, filter.path);\n};\n\nconst getFilterDisplayValue = <Where extends Record<string, unknown>>(\n filter: BackofficeFilterSpec<Where>,\n raw: unknown,\n options: {\n enumLabel: (value: string) => string;\n booleanLabel: (value: boolean) => string;\n fallbackBooleanLabels: { yes: string; no: string };\n },\n): ReactNode | null => {\n if (raw == null) {\n return null;\n }\n\n if (Array.isArray(raw)) {\n const normalized = raw\n .map((entry) => {\n if (entry == null) {\n return null;\n }\n if (\n typeof entry !== 'string' &&\n typeof entry !== 'number' &&\n typeof entry !== 'boolean'\n ) {\n return null;\n }\n const value = String(entry).trim();\n if (value === '') {\n return null;\n }\n return value;\n })\n .filter((entry): entry is string => {\n return entry != null;\n });\n\n if (normalized.length === 0) {\n return null;\n }\n return normalized.join(', ');\n }\n\n if (typeof raw === 'boolean') {\n if (filter.kind === 'boolean') {\n return options.booleanLabel(raw);\n }\n if (raw) {\n return options.fallbackBooleanLabels.yes;\n }\n return options.fallbackBooleanLabels.no;\n }\n\n if (typeof raw !== 'string' && typeof raw !== 'number') {\n return null;\n }\n\n const rawString = String(raw).trim();\n if (rawString === '') {\n return null;\n }\n\n if (filter.kind === 'entityId') {\n return <EntityFilterValue entityId={filter.entity} id={rawString} />;\n }\n\n if (filter.kind === 'enum') {\n return options.enumLabel(rawString);\n }\n\n return rawString;\n};\n\ntype Props<\n RowView,\n Where extends Record<string, unknown>,\n Sort extends string,\n> = {\n config: BackofficeResolvedListFacetConfig<Where, Sort>;\n state: BackofficeListState<Where, Sort>;\n pushState: (next: BackofficeListState<Where, Sort>) => void;\n header?: {\n title?: string;\n subtitle?: string;\n };\n headerActions?: ReactNode;\n rows: readonly RowView[];\n getRowId: GetRowId<RowView>;\n columns: readonly DataTableColumn<RowView>[];\n gridTemplateColumns?: string;\n hasNextPage: boolean;\n isLoadingMore: boolean;\n onLoadMore: () => void;\n onRefresh?: () => void;\n totalCount?: number | null;\n emptyState?: JSX.Element;\n isLoadingInitial?: boolean;\n virtualize?: boolean;\n variant?: 'page' | 'embedded';\n showFilters?: boolean;\n};\n\nexport const BackofficeEntityListScaffold = <\n RowView,\n Where extends Record<string, unknown>,\n Sort extends string,\n>(\n props: Props<RowView, Where, Sort>,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const {\n config,\n state,\n pushState,\n rows,\n getRowId,\n columns,\n gridTemplateColumns,\n hasNextPage,\n isLoadingMore,\n onLoadMore,\n onRefresh,\n totalCount,\n emptyState,\n header,\n headerActions,\n isLoadingInitial = false,\n virtualize = true,\n variant = 'page',\n showFilters = true,\n } = props;\n const listConfig = config.list;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const listDefaults = config.listDefaults ??\n listConfig.defaultState ?? { where: null, sort: null };\n\n const columnsWithPrimary = useMemo(() => {\n const hasPrimary = columns.some((col) => {\n return col.isPrimary === true;\n });\n if (hasPrimary || columns.length === 0) {\n return columns;\n }\n return columns.map((col, index) => {\n const { header } = col;\n if (index === 0) {\n return { ...col, isPrimary: true, header };\n }\n return { ...col, header };\n });\n }, [columns]);\n\n const chips = useMemo<readonly FilterChip[]>(() => {\n const out: FilterChip[] = [];\n for (const filter of listConfig.filters) {\n const raw = getFilterValue(filter, state.where);\n const displayValue = getFilterDisplayValue(filter, raw, {\n enumLabel: (value) => {\n if (filter.kind !== 'enum') {\n return value;\n }\n const match = filter.options.find((option) => {\n return option.value === value;\n });\n if (match != null) {\n return resolveLabel(match.label, tApp);\n }\n return value;\n },\n booleanLabel: (value) => {\n if (filter.kind === 'boolean') {\n if (value && filter.trueLabel != null) {\n return resolveLabel(filter.trueLabel, tApp);\n }\n if (!value && filter.falseLabel != null) {\n return resolveLabel(filter.falseLabel, tApp);\n }\n }\n if (value) {\n return t('filters.boolean.yes');\n }\n return t('filters.boolean.no');\n },\n fallbackBooleanLabels: {\n yes: t('filters.boolean.yes'),\n no: t('filters.boolean.no'),\n },\n });\n\n if (displayValue != null) {\n let idValue = String(raw);\n if (Array.isArray(raw)) {\n idValue = raw.join(',');\n }\n const label = (\n <span>\n {resolveLabel(filter.label, tApp)}: {displayValue}\n </span>\n );\n out.push({\n id: `${filter.id}:${idValue}`,\n label,\n onRemove: () => {\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n const nextWhere = setWhereValue(\n state.where,\n key,\n null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n },\n });\n }\n }\n return out;\n }, [listConfig.filters, pushState, state, t, tApp]);\n\n const handleClearAll = useCallback(() => {\n pushState({\n ...listDefaults,\n });\n }, [listDefaults, pushState]);\n const [isFilterDrawerOpen, setIsFilterDrawerOpen] = useState(false);\n const [filterSearch, setFilterSearch] = useState('');\n\n const [pickerDialog, setPickerDialog] = useState<{\n entity: string;\n whereKey: keyof Where;\n label: string;\n path?: readonly string[];\n scope?: BackofficePickerScope;\n } | null>(null);\n\n const renderFilterControl = useCallback(\n (filter: BackofficeFilterSpec<Where>): JSX.Element => {\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n const candidate = getFilterValue(filter, state.where);\n let value = '';\n if (typeof candidate === 'string') {\n value = candidate;\n }\n\n const filterLabelText = resolveLabel(filter.label, tApp);\n\n if (filter.kind === 'text') {\n const placeholderLabelText =\n filter.placeholderLabel != null\n ? resolveLabel(filter.placeholderLabel, tApp)\n : filterLabelText;\n let placeholder = t('filters.placeholders.search', {\n label: placeholderLabelText,\n });\n if (filter.placeholderText != null) {\n placeholder = resolveLabel(filter.placeholderText, tApp);\n }\n return (\n <GlobalSearchInput\n value={value}\n onChange={(next) => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n next,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n placeholder={placeholder}\n className={styles.filterInput}\n />\n );\n }\n\n if (filter.kind === 'enum') {\n const options = [\n {\n id: 'any',\n value: '',\n label: t('filters.all', {\n label: filterLabelText,\n }),\n },\n ...filter.options.map((option) => {\n return {\n id: option.value,\n value: option.value,\n label: resolveLabel(option.label, tApp),\n };\n }),\n ];\n\n return (\n <SimpleSelect\n options={options}\n value={value}\n onChange={(next) => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n next,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n }\n\n if (filter.kind === 'boolean') {\n let current: boolean | null = null;\n if (typeof candidate === 'boolean') {\n current = candidate;\n }\n\n let selectValue = '';\n if (current === true) {\n selectValue = 'true';\n }\n if (current === false) {\n selectValue = 'false';\n }\n\n const trueLabel =\n filter.trueLabel != null\n ? resolveLabel(filter.trueLabel, tApp)\n : t('filters.boolean.yes');\n const falseLabel =\n filter.falseLabel != null\n ? resolveLabel(filter.falseLabel, tApp)\n : t('filters.boolean.no');\n const options = [\n {\n id: 'any',\n value: '',\n label: t('filters.all', {\n label: filterLabelText,\n }),\n },\n {\n id: 'true',\n value: 'true',\n label: trueLabel,\n },\n {\n id: 'false',\n value: 'false',\n label: falseLabel,\n },\n ];\n\n return (\n <SimpleSelect\n options={options}\n value={selectValue}\n onChange={(next) => {\n let parsed: boolean | null = null;\n if (next === 'true') {\n parsed = true;\n }\n if (next === 'false') {\n parsed = false;\n }\n const nextWhere = setWhereValue(\n state.where,\n key,\n parsed,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n }\n\n const pickerScope = (() => {\n if (filter.pickerScope == null) {\n return undefined;\n }\n if (typeof filter.pickerScope === 'function') {\n return filter.pickerScope(state.where);\n }\n return filter.pickerScope;\n })();\n let currentId: string | null = null;\n if (typeof candidate === 'string') {\n currentId = candidate;\n }\n\n const renderField = (displayValue: string | null = null) => {\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n return (\n <EntityIdFilterField\n label={filterLabelText}\n value={currentId}\n displayValue={normalizedDisplayValue}\n onPick={() => {\n setPickerDialog({\n entity: filter.entity,\n whereKey: key,\n label: filterLabelText,\n path: filter.path,\n scope: pickerScope,\n });\n }}\n onClear={() => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n };\n\n if (currentId == null || currentId.trim() === '') {\n return renderField();\n }\n\n return (\n <EntityFilterValueText entityId={filter.entity} id={currentId}>\n {(label) => {\n return renderField(label);\n }}\n </EntityFilterValueText>\n );\n },\n [pushState, state, t, tApp],\n );\n\n const hasPlacementConfig = useMemo(() => {\n return listConfig.filters.some((filter) => {\n return filter.placement != null;\n });\n }, [listConfig.filters]);\n\n const quickFilters = useMemo(() => {\n if (listConfig.filters.length === 0) {\n return [];\n }\n if (hasPlacementConfig) {\n return listConfig.filters.filter((filter) => {\n return filter.placement === 'quick' || filter.placement === 'both';\n });\n }\n return listConfig.filters.slice(0, 3);\n }, [listConfig.filters, hasPlacementConfig]);\n\n const drawerFilters = useMemo(() => {\n return listConfig.filters.filter((filter) => {\n if (filter.placement == null) {\n return true;\n }\n return filter.placement === 'drawer' || filter.placement === 'both';\n });\n }, [listConfig.filters]);\n\n const searchFilter = useMemo(() => {\n return quickFilters.find((filter) => {\n return filter.kind === 'text';\n });\n }, [quickFilters]);\n\n const quickFiltersNode = useMemo(() => {\n const visibleQuickFilters = quickFilters.filter((filter) => {\n return filter !== searchFilter;\n });\n\n if (visibleQuickFilters.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.controlsRow}>\n {visibleQuickFilters.map((filter) => {\n return <span key={filter.id}>{renderFilterControl(filter)}</span>;\n })}\n </div>\n );\n }, [quickFilters, renderFilterControl, searchFilter]);\n\n const searchNode = useMemo(() => {\n if (searchFilter == null) {\n return null;\n }\n return renderFilterControl(searchFilter);\n }, [renderFilterControl, searchFilter]);\n\n const sortNode = useMemo(() => {\n if (listConfig.sorts.length === 0) {\n return null;\n }\n const firstSort = listConfig.sorts[0];\n if (firstSort == null) {\n return null;\n }\n const options = listConfig.sorts.map((s) => {\n return { id: s.id, value: s.id, label: resolveLabel(s.label, tApp) };\n });\n return (\n <SimpleSelect\n options={options}\n value={state.sort ?? firstSort.id}\n onChange={(next) => {\n pushState({\n ...state,\n sort: next as Sort,\n });\n }}\n />\n );\n }, [listConfig.sorts, pushState, state, tApp]);\n\n const chipsNode = useMemo(() => {\n return <FilterChipRow chips={chips} onClearAll={handleClearAll} />;\n }, [chips, handleClearAll]);\n\n const drawerSections = useMemo(() => {\n if (drawerFilters.length === 0) {\n return [];\n }\n\n const normalizedQuery = filterSearch.trim().toLowerCase();\n const items: { id: string; node: JSX.Element }[] = [];\n\n for (const filter of drawerFilters) {\n const resolvedLabel = resolveLabel(filter.label, tApp);\n const matchesQuery =\n normalizedQuery === '' ||\n resolvedLabel.toLowerCase().includes(normalizedQuery);\n\n if (matchesQuery) {\n items.push({\n id: filter.id,\n node: (\n <BackofficeFilterField label={resolvedLabel}>\n {renderFilterControl(filter)}\n </BackofficeFilterField>\n ),\n });\n }\n }\n\n if (items.length === 0) {\n return [];\n }\n\n return [\n {\n id: 'backoffice.filters.sections.default',\n title: t('filters.sections.default'),\n items,\n },\n ];\n }, [drawerFilters, filterSearch, renderFilterControl, t, tApp]);\n\n const allFiltersNode = useMemo(() => {\n if (drawerFilters.length === 0) {\n return null;\n }\n const activeCount = chips.length;\n let label = t('filters.allFilters');\n if (activeCount > 0) {\n label = t('filters.allFiltersWithCount', {\n count: activeCount,\n });\n }\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={() => {\n setIsFilterDrawerOpen(true);\n }}\n >\n {label}\n </Button>\n );\n }, [chips.length, drawerFilters.length, t]);\n\n const filterDrawerNode = (\n <BackofficeFilterDrawer\n isOpen={isFilterDrawerOpen}\n onClose={() => {\n setIsFilterDrawerOpen(false);\n setFilterSearch('');\n }}\n sections={drawerSections}\n searchValue={filterSearch}\n onSearchChange={(next) => {\n setFilterSearch(next);\n }}\n onReset={handleClearAll}\n />\n );\n\n const resolvedEmptyState = useMemo((): JSX.Element => {\n if (emptyState != null) {\n return emptyState;\n }\n\n if (isLoadingInitial) {\n return <BackofficeTableSkeleton />;\n }\n\n if (chips.length > 0) {\n return (\n <BackofficeEmptyState\n title={t('emptyState.listEmpty.title')}\n description={t('emptyState.listEmptyFiltered.description')}\n actions={\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleClearAll}\n >\n {t('emptyState.listEmptyFiltered.actions.reset')}\n </Button>\n }\n />\n );\n }\n\n return (\n <BackofficeEmptyState\n title={t('emptyState.listEmpty.title')}\n description={t('emptyState.listEmpty.description')}\n />\n );\n }, [chips.length, emptyState, handleClearAll, isLoadingInitial, t]);\n\n const tableFooterMeta = useMemo(() => {\n if (typeof totalCount !== 'number') {\n return null;\n }\n return (\n <span>\n {t('list.showing', {\n shown: rows.length,\n total: totalCount,\n })}\n </span>\n );\n }, [rows.length, t, totalCount]);\n\n const headerTitle = header?.title ?? resolveLabel(listConfig.title, tApp);\n const headerSubtitle = header?.subtitle;\n\n const virtualizationConfig = useMemo(() => {\n if (!virtualize) {\n return { enabled: false, rowHeightPx: 0, overscan: 0 };\n }\n\n return { enabled: true, rowHeightPx: 52, overscan: 10 };\n }, [virtualize]);\n\n const tableInnerNode = (\n <BackofficeVirtualizedConnectionTable\n columns={columnsWithPrimary}\n rows={rows}\n getRowId={getRowId}\n emptyState={resolvedEmptyState}\n className={denseTableClass}\n gridTemplateColumns={gridTemplateColumns}\n virtualization={virtualizationConfig}\n infiniteScroll={{\n enabled: true,\n thresholdPx: 800,\n autoLoad: true,\n }}\n hasNextPage={hasNextPage}\n isLoadingMore={isLoadingMore}\n onLoadMore={onLoadMore}\n />\n );\n\n const tableNodeWithErrorBoundary = (\n <BackofficeErrorBoundary\n fallback={(args: { error: unknown; reset: () => void }) => {\n const { reset } = args;\n\n const retry = (): void => {\n reset();\n if (onRefresh != null) {\n onRefresh();\n }\n };\n\n return (\n <InlineBanner\n tone=\"danger\"\n title={t('list.errors.title')}\n actions={\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={retry}\n >\n {t('list.actions.retry')}\n </Button>\n }\n >\n {t('list.errors.tableFailed')}\n </InlineBanner>\n );\n }}\n >\n {tableInnerNode}\n </BackofficeErrorBoundary>\n );\n\n const filtersBarNode = showFilters ? (\n <>\n <BackofficeTableToolbar\n searchSlot={searchNode}\n filtersSlot={\n <>\n {quickFiltersNode}\n {allFiltersNode}\n </>\n }\n sortSlot={sortNode}\n refreshSlot={\n <Button\n type=\"button\"\n variant=\"text\"\n size=\"small\"\n disabled={onRefresh == null}\n onClick={() => {\n if (onRefresh != null) {\n onRefresh();\n }\n }}\n >\n {t('list.actions.refresh')}\n </Button>\n }\n chipsSlot={chipsNode}\n />\n {filterDrawerNode}\n </>\n ) : null;\n\n const tableNode = (\n <div>\n {tableNodeWithErrorBoundary}\n <EntityIdPickerDialog\n isOpen={pickerDialog != null}\n entity={pickerDialog?.entity ?? config.id}\n title={pickerDialog?.label ?? t('picker.title')}\n scope={pickerDialog?.scope}\n onClose={() => {\n setPickerDialog(null);\n }}\n onSelectId={(id) => {\n if (pickerDialog == null) {\n return;\n }\n const nextWhere = setWhereValue(\n state.where,\n pickerDialog.whereKey,\n id,\n pickerDialog.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n </div>\n );\n\n const tableFooterNode = (\n <BackofficeLoadMore\n hasNextPage={hasNextPage}\n isLoading={isLoadingMore}\n meta={tableFooterMeta}\n loadMoreLabel={t('list.loadMore.more')}\n endLabel={t('list.loadMore.end')}\n loadingLabel={t('list.loadMore.loading')}\n />\n );\n\n if (variant === 'embedded') {\n return (\n <BackofficeListFilterProvider\n config={config}\n state={state}\n pushState={pushState}\n >\n <div className={styles.embeddedContainer}>\n <div className={styles.embeddedHeader}>{headerTitle}</div>\n {filtersBarNode}\n {tableNode}\n {tableFooterNode}\n </div>\n </BackofficeListFilterProvider>\n );\n }\n\n return (\n <BackofficeListFilterProvider\n config={config}\n state={state}\n pushState={pushState}\n >\n <ListPageTemplate\n headerNode={\n <BackofficePageHeader\n title={headerTitle}\n subtitle={headerSubtitle}\n actions={headerActions}\n />\n }\n toolbarNode={filtersBarNode}\n tableNode={tableNode}\n tableFooterNode={tableFooterNode}\n />\n </BackofficeListFilterProvider>\n );\n};\n\nexport default BackofficeEntityListScaffold;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as t, useCallback as n, useContext as r, useMemo as i } from "react";
|
|
3
|
+
import { buildBackofficeListLink as a } from "@plumile/backoffice-core/state/buildListHref.js";
|
|
4
|
+
import { setWhereValue as o } from "@plumile/backoffice-core/filters/where.js";
|
|
5
|
+
//#region src/components/backoffice/scaffolds/BackofficeListFilterContext.tsx
|
|
6
|
+
var s = t(null), c = (t) => {
|
|
7
|
+
let { config: r, state: c, pushState: l, children: u } = t, d = n((e, t, n) => {
|
|
8
|
+
let r = o(c.where, e, t, n);
|
|
9
|
+
l({
|
|
10
|
+
...c,
|
|
11
|
+
where: r
|
|
12
|
+
});
|
|
13
|
+
}, [l, c]), f = n((e, t, n) => {
|
|
14
|
+
let i = o(c.where, e, t, n);
|
|
15
|
+
return a(r, {
|
|
16
|
+
...c,
|
|
17
|
+
where: i
|
|
18
|
+
});
|
|
19
|
+
}, [r, c]), p = i(() => ({
|
|
20
|
+
config: r,
|
|
21
|
+
state: c,
|
|
22
|
+
pushState: l,
|
|
23
|
+
applyFilter: d,
|
|
24
|
+
buildFilterLink: f
|
|
25
|
+
}), [
|
|
26
|
+
d,
|
|
27
|
+
f,
|
|
28
|
+
r,
|
|
29
|
+
l,
|
|
30
|
+
c
|
|
31
|
+
]);
|
|
32
|
+
return /* @__PURE__ */ e(s.Provider, {
|
|
33
|
+
value: p,
|
|
34
|
+
children: u
|
|
35
|
+
});
|
|
36
|
+
}, l = () => r(s);
|
|
37
|
+
//#endregion
|
|
38
|
+
export { c as BackofficeListFilterProvider, s as default, l as useBackofficeListFilterContext };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=BackofficeListFilterContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeListFilterContext.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/BackofficeListFilterContext.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useMemo,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport type {\n BackofficeListState,\n BackofficeResolvedListFacetConfig,\n} from '@plumile/backoffice-core/types.js';\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\n\nexport type BackofficeListFilterContextValue = {\n config: BackofficeResolvedListFacetConfig;\n state: BackofficeListState<Record<string, unknown>, string>;\n pushState: (\n next: BackofficeListState<Record<string, unknown>, string>,\n ) => void;\n applyFilter: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => void;\n buildFilterLink: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => { pathname: string; search: string };\n};\n\nconst BackofficeListFilterContext =\n createContext<BackofficeListFilterContextValue | null>(null);\n\ntype ProviderProps<\n Where extends Record<string, unknown>,\n Sort extends string,\n> = {\n config: BackofficeResolvedListFacetConfig<Where, Sort>;\n state: BackofficeListState<Where, Sort>;\n pushState: (next: BackofficeListState<Where, Sort>) => void;\n children: ReactNode;\n};\n\nexport const BackofficeListFilterProvider = <\n Where extends Record<string, unknown>,\n Sort extends string,\n>(\n props: ProviderProps<Where, Sort>,\n): JSX.Element => {\n const { config, state, pushState, children } = props;\n\n const applyFilter = useCallback(\n (whereKey: string, value: unknown, path?: readonly string[]) => {\n const nextWhere = setWhereValue(\n state.where,\n whereKey as keyof Where,\n value,\n path,\n );\n pushState({ ...state, where: nextWhere });\n },\n [pushState, state],\n );\n\n const buildFilterLink = useCallback(\n (whereKey: string, value: unknown, path?: readonly string[]) => {\n const nextWhere = setWhereValue(\n state.where,\n whereKey as keyof Where,\n value,\n path,\n );\n return buildBackofficeListLink(config, { ...state, where: nextWhere });\n },\n [config, state],\n );\n\n const contextValue = useMemo<BackofficeListFilterContextValue>(() => {\n return {\n config: config as BackofficeResolvedListFacetConfig,\n state: state as unknown as BackofficeListState<\n Record<string, unknown>,\n string\n >,\n pushState: pushState as BackofficeListFilterContextValue['pushState'],\n applyFilter,\n buildFilterLink,\n };\n }, [applyFilter, buildFilterLink, config, pushState, state]);\n\n return (\n <BackofficeListFilterContext.Provider value={contextValue}>\n {children}\n </BackofficeListFilterContext.Provider>\n );\n};\n\nexport const useBackofficeListFilterContext =\n (): BackofficeListFilterContextValue | null => {\n return useContext(BackofficeListFilterContext);\n };\n\nexport default BackofficeListFilterContext;\n"],"mappings":";;;;;AAkCA,IAAM,IACJ,EAAuD,KAAK,EAYjD,KAIX,MACgB;CAChB,IAAM,EAAE,WAAQ,UAAO,cAAW,gBAAa,GAEzC,IAAc,GACjB,GAAkB,GAAgB,MAA6B;EAC9D,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EACD;AACD,IAAU;GAAE,GAAG;GAAO,OAAO;GAAW,CAAC;IAE3C,CAAC,GAAW,EAAM,CACnB,EAEK,IAAkB,GACrB,GAAkB,GAAgB,MAA6B;EAC9D,IAAM,IAAY,EAChB,EAAM,OACN,GACA,GACA,EACD;AACD,SAAO,EAAwB,GAAQ;GAAE,GAAG;GAAO,OAAO;GAAW,CAAC;IAExE,CAAC,GAAQ,EAAM,CAChB,EAEK,IAAe,SACZ;EACG;EACD;EAII;EACX;EACA;EACD,GACA;EAAC;EAAa;EAAiB;EAAQ;EAAW;EAAM,CAAC;AAE5D,QACE,kBAAC,EAA4B,UAA7B;EAAsC,OAAO;EAC1C;EACoC,CAAA;GAI9B,UAEF,EAAW,EAA4B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { tabBody as e, tabs as t } from "./backofficeTabbedDetailShell.css.js";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { DetailPageTemplate as r } from "@plumile/ui-backoffice/backoffice/templates/detail_page_template/DetailPageTemplate.js";
|
|
4
|
+
import { BackofficeTabs as i } from "@plumile/ui-backoffice/backoffice/molecules/backoffice_tabs/BackofficeTabs.js";
|
|
5
|
+
//#region src/components/backoffice/scaffolds/BackofficeTabbedDetailShell.tsx
|
|
6
|
+
var a = ({ headerNode: a, tabs: o, activeId: s, children: c }) => {
|
|
7
|
+
let l = null;
|
|
8
|
+
return o != null && o.length > 1 && s != null && (l = /* @__PURE__ */ n(i, {
|
|
9
|
+
items: o,
|
|
10
|
+
activeId: s,
|
|
11
|
+
onChange: () => {},
|
|
12
|
+
className: t
|
|
13
|
+
})), /* @__PURE__ */ n(r, {
|
|
14
|
+
headerNode: a,
|
|
15
|
+
tabsNode: l,
|
|
16
|
+
children: /* @__PURE__ */ n("div", {
|
|
17
|
+
className: e,
|
|
18
|
+
children: c
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { a as BackofficeTabbedDetailShell, a as default };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=BackofficeTabbedDetailShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeTabbedDetailShell.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/BackofficeTabbedDetailShell.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { DetailPageTemplate } from '@plumile/ui-backoffice/backoffice/templates/detail_page_template/DetailPageTemplate.js';\nimport {\n BackofficeTabs,\n type BackofficeTabItem,\n} from '@plumile/ui-backoffice/backoffice/molecules/backoffice_tabs/BackofficeTabs.js';\n\nimport * as styles from './backofficeTabbedDetailShell.css.js';\n\nexport type BackofficeTabbedDetailShellProps = {\n headerNode: ReactNode;\n tabs?: readonly BackofficeTabItem[];\n activeId?: string;\n children: ReactNode;\n};\n\nexport const BackofficeTabbedDetailShell = ({\n headerNode,\n tabs,\n activeId,\n children,\n}: BackofficeTabbedDetailShellProps): JSX.Element => {\n let tabsNode: JSX.Element | null = null;\n if (tabs != null && tabs.length > 1 && activeId != null) {\n tabsNode = (\n <BackofficeTabs\n items={tabs}\n activeId={activeId}\n onChange={() => {}}\n className={styles.tabs}\n />\n );\n }\n\n return (\n <DetailPageTemplate headerNode={headerNode} tabsNode={tabsNode}>\n <div className={styles.tabBody}>{children}</div>\n </DetailPageTemplate>\n );\n};\n\nexport default BackofficeTabbedDetailShell;\n"],"mappings":";;;;;AAiBA,IAAa,KAA+B,EAC1C,eACA,MAAA,GACA,aACA,kBACmD;CACnD,IAAI,IAA+B;AAYnC,QAXI,KAAQ,QAAQ,EAAK,SAAS,KAAK,KAAY,SACjD,IACE,kBAAC,GAAD;EACE,OAAO;EACG;EACV,gBAAgB;EAChB,WAAW;EACX,CAAA,GAKJ,kBAAC,GAAD;EAAgC;EAAsB;YACpD,kBAAC,OAAD;GAAK,WAAW;GAAiB;GAAe,CAAA;EAC7B,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
//#region src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts
|
|
4
|
+
var e = "_8gc5760 vncd899io vncd89ajx vncd89co vncd89ao6", t = "_8gc5761 vncd89u3f vncd89jdo", n = "_8gc5762 vncd899io vncd89ai6 vncd89aof", r = "_8gc5763 vncd8996 vncd89amo vncd89v8p";
|
|
5
|
+
//#endregion
|
|
6
|
+
export { e as controlsRow, n as embeddedContainer, r as embeddedHeader, t as filterInput };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=backofficeEntityListScaffold.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backofficeEntityListScaffold.css.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const controlsRow = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: 2,\n});\n\nexport const filterInput = sprinkles({\n width: 72,\n maxWidth: 'full',\n});\n\nexport const embeddedContainer = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const embeddedHeader = sprinkles({\n fontSize: 'base',\n fontWeight: 'semibold',\n color: 'text',\n});\n"],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
//#region src/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.ts
|
|
4
|
+
var e = "_12zehnj0 vncd899io", t = "_12zehnj1 vncd899io vncd89ai6 vncd89aoo";
|
|
5
|
+
//#endregion
|
|
6
|
+
export { t as tabBody, e as tabs };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=backofficeTabbedDetailShell.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backofficeTabbedDetailShell.css.js","names":[],"sources":["../../../../../src/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const tabs = sprinkles({\n display: 'flex',\n});\n\nexport const tabBody = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n"],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { container as e } from "./backofficeInlineFilterRow.css.js";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
import { cx as n } from "@plumile/ui/theme/tools.js";
|
|
4
|
+
//#region src/components/backoffice/shared/BackofficeInlineFilterRow.tsx
|
|
5
|
+
var r = ({ children: r, className: i }) => /* @__PURE__ */ t("span", {
|
|
6
|
+
className: n(e, i),
|
|
7
|
+
children: r
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
export { r as BackofficeInlineFilterRow, r as default };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=BackofficeInlineFilterRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackofficeInlineFilterRow.js","names":[],"sources":["../../../../../src/components/backoffice/shared/BackofficeInlineFilterRow.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { cx } from '@plumile/ui/theme/tools.js';\n\nimport * as styles from './backofficeInlineFilterRow.css.js';\n\nexport type BackofficeInlineFilterRowProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport const BackofficeInlineFilterRow = ({\n children,\n className,\n}: BackofficeInlineFilterRowProps): JSX.Element => {\n return <span className={cx(styles.container, className)}>{children}</span>;\n};\n\nexport default BackofficeInlineFilterRow;\n"],"mappings":";;;;AAWA,IAAa,KAA6B,EACxC,aACA,mBAEO,kBAAC,QAAD;CAAM,WAAW,EAAG,GAAkB,EAAU;CAAG;CAAgB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
//#region src/components/backoffice/shared/backofficeInlineFilterRow.css.ts
|
|
4
|
+
var e = "_11j0ox80 vncd899jf vncd89co vncd89anx vncd89ajx";
|
|
5
|
+
//#endregion
|
|
6
|
+
export { e as container };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=backofficeInlineFilterRow.css.js.map
|