@atlashub/smartstack 3.11.0 → 3.14.0
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/dist/AiDocPage-CM7j_50_.cjs.map +1 -1
- package/dist/AiDocPage-rnKBvVof.js.map +1 -1
- package/dist/ArchitecturePage-Cn_XCDAo.cjs.map +1 -1
- package/dist/ArchitecturePage-DNwzHKk0.js.map +1 -1
- package/dist/{AuthCallbackPage-Cu74zAX1.js → AuthCallbackPage-CoJi12d0.js} +2 -2
- package/dist/AuthCallbackPage-CoJi12d0.js.map +1 -0
- package/dist/{AuthCallbackPage-Bv2Cyn80.cjs → AuthCallbackPage-D_g2VCjj.cjs} +2 -2
- package/dist/AuthCallbackPage-D_g2VCjj.cjs.map +1 -0
- package/dist/{BaIndexPage-Dkp_Eixx.js → BaIndexPage-B5scAEin.js} +2 -2
- package/dist/BaIndexPage-B5scAEin.js.map +1 -0
- package/dist/BaIndexPage-C3osYS_6.cjs +2 -0
- package/dist/BaIndexPage-C3osYS_6.cjs.map +1 -0
- package/dist/BaViewerPage-BPucPOSy.cjs +2 -0
- package/dist/BaViewerPage-BPucPOSy.cjs.map +1 -0
- package/dist/{BaViewerPage-DxD0eZm-.js → BaViewerPage-TL6IHeQx.js} +26 -26
- package/dist/BaViewerPage-TL6IHeQx.js.map +1 -0
- package/dist/{ConfirmEmailPage-su3Fvl0e.cjs → ConfirmEmailPage-B3mrPUvg.cjs} +2 -2
- package/dist/ConfirmEmailPage-B3mrPUvg.cjs.map +1 -0
- package/dist/{ConfirmEmailPage-BTp8J0pw.js → ConfirmEmailPage-DDp2IPE_.js} +2 -2
- package/dist/ConfirmEmailPage-DDp2IPE_.js.map +1 -0
- package/dist/CrossSchemaFkPage-BchJFOmH.js.map +1 -1
- package/dist/CrossSchemaFkPage-DqFNORYd.cjs.map +1 -1
- package/dist/{DatabasePage-DFIK8cSM.js → DatabasePage-BnaX9sis.js} +44 -48
- package/dist/DatabasePage-BnaX9sis.js.map +1 -0
- package/dist/DatabasePage-DAzb3FnS.cjs +2 -0
- package/dist/DatabasePage-DAzb3FnS.cjs.map +1 -0
- package/dist/DeveloperIndexPage-CtBfD2JI.cjs.map +1 -1
- package/dist/DeveloperIndexPage-D4zD_pop.js.map +1 -1
- package/dist/{DocRenderer-CcEn1iaa.js → DocRenderer-C5pM9SWP.js} +99 -94
- package/dist/DocRenderer-C5pM9SWP.js.map +1 -0
- package/dist/DocRenderer-D7hi9Oa-.cjs +2 -0
- package/dist/DocRenderer-D7hi9Oa-.cjs.map +1 -0
- package/dist/DocsIndexPage-BD6OOCak.js.map +1 -1
- package/dist/DocsIndexPage-BPfi0FQD.cjs.map +1 -1
- package/dist/{DualDbContextPage-BujD_coN.js → DualDbContextPage-CVBjCvGp.js} +2 -2
- package/dist/DualDbContextPage-CVBjCvGp.js.map +1 -0
- package/dist/{DualDbContextPage--Qk-qEgD.cjs → DualDbContextPage-Dz8NAewk.cjs} +2 -2
- package/dist/DualDbContextPage-Dz8NAewk.cjs.map +1 -0
- package/dist/{ForceChangePasswordPage-kEFsb5Aq.cjs → ForceChangePasswordPage-BqNyswSy.cjs} +2 -2
- package/dist/ForceChangePasswordPage-BqNyswSy.cjs.map +1 -0
- package/dist/{ForceChangePasswordPage-ClENqzCH.js → ForceChangePasswordPage-DkpGGEn7.js} +2 -2
- package/dist/ForceChangePasswordPage-DkpGGEn7.js.map +1 -0
- package/dist/{ForgotPasswordPage--Wl0Vxbv.cjs → ForgotPasswordPage-C7mySa8O.cjs} +2 -2
- package/dist/ForgotPasswordPage-C7mySa8O.cjs.map +1 -0
- package/dist/{ForgotPasswordPage-BEgvV5f-.js → ForgotPasswordPage-Dmi6wpMM.js} +2 -2
- package/dist/ForgotPasswordPage-Dmi6wpMM.js.map +1 -0
- package/dist/InfrastructurePage-D4ZjLzI_.cjs.map +1 -1
- package/dist/InfrastructurePage-q_y1z8T_.js.map +1 -1
- package/dist/InstallationPage-BJ-GBVPp.cjs.map +1 -1
- package/dist/InstallationPage-CXKmzZuN.js.map +1 -1
- package/dist/ModulesPage-B3p8e07v.js.map +1 -1
- package/dist/ModulesPage-lz8DUm3X.cjs.map +1 -1
- package/dist/{OnboardingWizardPage-Bx1UlTbr.js → OnboardingWizardPage-BeCNpdPL.js} +2 -2
- package/dist/OnboardingWizardPage-BeCNpdPL.js.map +1 -0
- package/dist/{OnboardingWizardPage-C7vendrq.cjs → OnboardingWizardPage-CgEpUx9X.cjs} +2 -2
- package/dist/OnboardingWizardPage-CgEpUx9X.cjs.map +1 -0
- package/dist/{RegisterPage-DKr8quRk.cjs → RegisterPage-BejbbAl9.cjs} +2 -2
- package/dist/RegisterPage-BejbbAl9.cjs.map +1 -0
- package/dist/{RegisterPage-BzV0sCTe.js → RegisterPage-CcuYYRBS.js} +2 -2
- package/dist/RegisterPage-CcuYYRBS.js.map +1 -0
- package/dist/{ResetPasswordPage-x4do1o-j.cjs → ResetPasswordPage-7brP8dT7.cjs} +2 -2
- package/dist/ResetPasswordPage-7brP8dT7.cjs.map +1 -0
- package/dist/{ResetPasswordPage-DphmJrcJ.js → ResetPasswordPage-BX3wnSSM.js} +2 -2
- package/dist/ResetPasswordPage-BX3wnSSM.js.map +1 -0
- package/dist/SettingsDocPage-DYXvb3M-.js.map +1 -1
- package/dist/SettingsDocPage-Dqj8KzOa.cjs.map +1 -1
- package/dist/SlaDocPage-D44QWNY8.cjs.map +1 -1
- package/dist/SlaDocPage-hLFLqLVa.js.map +1 -1
- package/dist/SmartStackPresentationPage-52Nb7F0X.cjs.map +1 -1
- package/dist/SmartStackPresentationPage-D3ku9GtQ.js.map +1 -1
- package/dist/{SupportDashboardDocPage-CLotzEwA.js → SupportDashboardDocPage-CG_Ahacx.js} +2 -2
- package/dist/SupportDashboardDocPage-CG_Ahacx.js.map +1 -0
- package/dist/{SupportDashboardDocPage-DpgGq5Mm.cjs → SupportDashboardDocPage-DfV-9_8r.cjs} +2 -2
- package/dist/SupportDashboardDocPage-DfV-9_8r.cjs.map +1 -0
- package/dist/{SupportEscalationDocPage-B-_ChfdN.js → SupportEscalationDocPage-C481D7pF.js} +2 -2
- package/dist/SupportEscalationDocPage-C481D7pF.js.map +1 -0
- package/dist/{SupportEscalationDocPage-WXkAQr8k.cjs → SupportEscalationDocPage-C65oCDZL.cjs} +2 -2
- package/dist/SupportEscalationDocPage-C65oCDZL.cjs.map +1 -0
- package/dist/SupportIndexPage-Bb0giRKn.js.map +1 -1
- package/dist/SupportIndexPage-CsDQ35Cu.cjs.map +1 -1
- package/dist/{SupportMyTicketsDocPage-DeRUdAIi.js → SupportMyTicketsDocPage-D2f6DaKb.js} +2 -2
- package/dist/SupportMyTicketsDocPage-D2f6DaKb.js.map +1 -0
- package/dist/{SupportMyTicketsDocPage-jE1UMaIY.cjs → SupportMyTicketsDocPage-Dbp6XBnH.cjs} +2 -2
- package/dist/SupportMyTicketsDocPage-Dbp6XBnH.cjs.map +1 -0
- package/dist/{SupportTemplatesDocPage-ajO-cHmK.cjs → SupportTemplatesDocPage-BkeDpR-8.cjs} +2 -2
- package/dist/SupportTemplatesDocPage-BkeDpR-8.cjs.map +1 -0
- package/dist/{SupportTemplatesDocPage-C8ZLzFJc.js → SupportTemplatesDocPage-sCKQlZFJ.js} +2 -2
- package/dist/SupportTemplatesDocPage-sCKQlZFJ.js.map +1 -0
- package/dist/{SupportTicketsDocPage-C_ybDTjC.cjs → SupportTicketsDocPage-B_603CpY.cjs} +2 -2
- package/dist/SupportTicketsDocPage-B_603CpY.cjs.map +1 -0
- package/dist/{SupportTicketsDocPage-DQhHfa6J.js → SupportTicketsDocPage-ClBa3qeY.js} +2 -2
- package/dist/SupportTicketsDocPage-ClBa3qeY.js.map +1 -0
- package/dist/TeamsIntegrationPage-BwhBcPAK.js.map +1 -1
- package/dist/TeamsIntegrationPage-DXj5MDRS.cjs.map +1 -1
- package/dist/ThemeDocPage-B6x55uSE.cjs.map +1 -1
- package/dist/ThemeDocPage-xkMbvMJG.js.map +1 -1
- package/dist/UserIndexPage-DSDfRWFx.js.map +1 -1
- package/dist/UserIndexPage-DahU6wzK.cjs.map +1 -1
- package/dist/components/ThemeSync.d.ts +2 -1
- package/dist/components/ThemeSync.d.ts.map +1 -1
- package/dist/components/auth/PermissionSyncHandler.d.ts +2 -1
- package/dist/components/auth/PermissionSyncHandler.d.ts.map +1 -1
- package/dist/components/dashboard/ApplicationActivityPieChart.d.ts +1 -1
- package/dist/components/dashboard/ApplicationActivityPieChart.d.ts.map +1 -1
- package/dist/components/dashboard/ApplicationUsageChart.d.ts +3 -2
- package/dist/components/dashboard/ApplicationUsageChart.d.ts.map +1 -1
- package/dist/components/dashboard/CurrentSessionCard.d.ts +3 -2
- package/dist/components/dashboard/CurrentSessionCard.d.ts.map +1 -1
- package/dist/components/dashboard/DeviceBreakdownChart.d.ts +1 -1
- package/dist/components/dashboard/DeviceBreakdownChart.d.ts.map +1 -1
- package/dist/components/dashboard/DeviceStatsCard.d.ts +3 -2
- package/dist/components/dashboard/DeviceStatsCard.d.ts.map +1 -1
- package/dist/components/dashboard/EngagementMetricsCard.d.ts +1 -1
- package/dist/components/dashboard/EngagementMetricsCard.d.ts.map +1 -1
- package/dist/components/dashboard/HierarchyDrillDownChart.d.ts +2 -2
- package/dist/components/dashboard/HierarchyDrillDownChart.d.ts.map +1 -1
- package/dist/components/dashboard/HourlyUsageChart.d.ts +3 -2
- package/dist/components/dashboard/HourlyUsageChart.d.ts.map +1 -1
- package/dist/components/dashboard/LoginErrorsTable.d.ts +3 -2
- package/dist/components/dashboard/LoginErrorsTable.d.ts.map +1 -1
- package/dist/components/dashboard/ModulePopularityChart.d.ts +2 -2
- package/dist/components/dashboard/ModulePopularityChart.d.ts.map +1 -1
- package/dist/components/dashboard/SessionAnalyticsChart.d.ts +3 -2
- package/dist/components/dashboard/SessionAnalyticsChart.d.ts.map +1 -1
- package/dist/components/dashboard/TenantActivityPieChart.d.ts +2 -2
- package/dist/components/dashboard/TenantActivityPieChart.d.ts.map +1 -1
- package/dist/components/dashboard/TenantPopularityChart.d.ts +2 -2
- package/dist/components/dashboard/TenantPopularityChart.d.ts.map +1 -1
- package/dist/components/dashboard/TenantUsageTrendChart.d.ts +2 -2
- package/dist/components/dashboard/TenantUsageTrendChart.d.ts.map +1 -1
- package/dist/components/dashboard/UsageTrendChart.d.ts +2 -2
- package/dist/components/dashboard/UsageTrendChart.d.ts.map +1 -1
- package/dist/components/dashboard/WeeklyUsageChart.d.ts +3 -2
- package/dist/components/dashboard/WeeklyUsageChart.d.ts.map +1 -1
- package/dist/components/docs/DocRenderer.d.ts +6 -5
- package/dist/components/docs/DocRenderer.d.ts.map +1 -1
- package/dist/components/docs/DocsSearch.d.ts +5 -4
- package/dist/components/docs/DocsSearch.d.ts.map +1 -1
- package/dist/components/email/EmailEditor.d.ts +7 -6
- package/dist/components/email/EmailEditor.d.ts.map +1 -1
- package/dist/components/errors/AccessDenied.d.ts +8 -7
- package/dist/components/errors/AccessDenied.d.ts.map +1 -1
- package/dist/components/errors/ErrorFallback.d.ts +4 -3
- package/dist/components/errors/ErrorFallback.d.ts.map +1 -1
- package/dist/components/errors/GlobalErrorBoundary.d.ts +3 -2
- package/dist/components/errors/GlobalErrorBoundary.d.ts.map +1 -1
- package/dist/components/errors/NoActiveWorkspace.d.ts +2 -1
- package/dist/components/errors/NoActiveWorkspace.d.ts.map +1 -1
- package/dist/components/errors/RouteErrorBoundary.d.ts +3 -2
- package/dist/components/errors/RouteErrorBoundary.d.ts.map +1 -1
- package/dist/components/favorites/FavoritesBar.d.ts +3 -2
- package/dist/components/favorites/FavoritesBar.d.ts.map +1 -1
- package/dist/components/favorites/FavoritesModal.d.ts +4 -3
- package/dist/components/favorites/FavoritesModal.d.ts.map +1 -1
- package/dist/components/layout/AdminHeader.d.ts +3 -2
- package/dist/components/layout/AdminHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminSidebar.d.ts +4 -3
- package/dist/components/layout/AdminSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppHeader.d.ts +3 -2
- package/dist/components/layout/AppHeader.d.ts.map +1 -1
- package/dist/components/layout/BusinessHeader.d.ts +3 -2
- package/dist/components/layout/BusinessHeader.d.ts.map +1 -1
- package/dist/components/layout/Footer.d.ts +2 -1
- package/dist/components/layout/Footer.d.ts.map +1 -1
- package/dist/components/layout/Header.d.ts +2 -1
- package/dist/components/layout/Header.d.ts.map +1 -1
- package/dist/components/layout/ModuleSidebar.d.ts +4 -3
- package/dist/components/layout/ModuleSidebar.d.ts.map +1 -1
- package/dist/components/layout/ResizableMainContent.d.ts +3 -2
- package/dist/components/layout/ResizableMainContent.d.ts.map +1 -1
- package/dist/components/layout/UserHeader.d.ts +3 -2
- package/dist/components/layout/UserHeader.d.ts.map +1 -1
- package/dist/components/layout/UserSidebar.d.ts +4 -3
- package/dist/components/layout/UserSidebar.d.ts.map +1 -1
- package/dist/components/license/FeatureGate.d.ts +6 -6
- package/dist/components/license/FeatureGate.d.ts.map +1 -1
- package/dist/components/license/FeatureRouteGuard.d.ts +3 -2
- package/dist/components/license/FeatureRouteGuard.d.ts.map +1 -1
- package/dist/components/license/LicenseActivationDialog.d.ts +4 -3
- package/dist/components/license/LicenseActivationDialog.d.ts.map +1 -1
- package/dist/components/license/LicenseAlertBanner.d.ts +2 -1
- package/dist/components/license/LicenseAlertBanner.d.ts.map +1 -1
- package/dist/components/license/LicenseBlockOverlay.d.ts +2 -1
- package/dist/components/license/LicenseBlockOverlay.d.ts.map +1 -1
- package/dist/components/license/LicenseContentBanner.d.ts +2 -1
- package/dist/components/license/LicenseContentBanner.d.ts.map +1 -1
- package/dist/components/license/LicenseGuard.d.ts +2 -1
- package/dist/components/license/LicenseGuard.d.ts.map +1 -1
- package/dist/components/license/LicenseStatusBadge.d.ts +3 -2
- package/dist/components/license/LicenseStatusBadge.d.ts.map +1 -1
- package/dist/components/notifications/NotificationBell.d.ts +2 -1
- package/dist/components/notifications/NotificationBell.d.ts.map +1 -1
- package/dist/components/platform/administration/ApplicationAccessCustomizeDrawer.d.ts +9 -8
- package/dist/components/platform/administration/ApplicationAccessCustomizeDrawer.d.ts.map +1 -1
- package/dist/components/platform/administration/ApplicationCard.d.ts +8 -8
- package/dist/components/platform/administration/ApplicationCard.d.ts.map +1 -1
- package/dist/components/platform/administration/ConflictDiffView.d.ts +4 -3
- package/dist/components/platform/administration/ConflictDiffView.d.ts.map +1 -1
- package/dist/components/platform/administration/EntraGroupRoleAssignment.d.ts +8 -7
- package/dist/components/platform/administration/EntraGroupRoleAssignment.d.ts.map +1 -1
- package/dist/components/platform/administration/GroupApplicationsTab.d.ts +4 -3
- package/dist/components/platform/administration/GroupApplicationsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/GroupMembersTab.d.ts +5 -4
- package/dist/components/platform/administration/GroupMembersTab.d.ts.map +1 -1
- package/dist/components/platform/administration/GroupPermissionsView.d.ts +3 -2
- package/dist/components/platform/administration/GroupPermissionsView.d.ts.map +1 -1
- package/dist/components/platform/administration/GroupRoleAssignment.d.ts +10 -9
- package/dist/components/platform/administration/GroupRoleAssignment.d.ts.map +1 -1
- package/dist/components/platform/administration/GroupTenantsTab.d.ts +4 -3
- package/dist/components/platform/administration/GroupTenantsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/PermissionDrillDownBar.d.ts +8 -7
- package/dist/components/platform/administration/PermissionDrillDownBar.d.ts.map +1 -1
- package/dist/components/platform/administration/PermissionMatrixFilters.d.ts +10 -9
- package/dist/components/platform/administration/PermissionMatrixFilters.d.ts.map +1 -1
- package/dist/components/platform/administration/PermissionMatrixTable.d.ts +15 -14
- package/dist/components/platform/administration/PermissionMatrixTable.d.ts.map +1 -1
- package/dist/components/platform/administration/PermissionPopover.d.ts +12 -11
- package/dist/components/platform/administration/PermissionPopover.d.ts.map +1 -1
- package/dist/components/platform/administration/TenantAccessCustomizeDrawer.d.ts +8 -7
- package/dist/components/platform/administration/TenantAccessCustomizeDrawer.d.ts.map +1 -1
- package/dist/components/platform/administration/TenantEntraTab.d.ts +5 -4
- package/dist/components/platform/administration/TenantEntraTab.d.ts.map +1 -1
- package/dist/components/platform/administration/UserGroupsTab.d.ts +4 -3
- package/dist/components/platform/administration/UserGroupsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/UserRoleAssignment.d.ts +13 -12
- package/dist/components/platform/administration/UserRoleAssignment.d.ts.map +1 -1
- package/dist/components/platform/administration/access-requests/AccessRequestApprovalModal.d.ts +8 -7
- package/dist/components/platform/administration/access-requests/AccessRequestApprovalModal.d.ts.map +1 -1
- package/dist/components/platform/administration/access-requests/AccessRequestStatusBadge.d.ts +3 -2
- package/dist/components/platform/administration/access-requests/AccessRequestStatusBadge.d.ts.map +1 -1
- package/dist/components/platform/administration/access-requests/AccessRequestsListTab.d.ts +6 -5
- package/dist/components/platform/administration/access-requests/AccessRequestsListTab.d.ts.map +1 -1
- package/dist/components/platform/administration/access-requests/RequestAccessButton.d.ts +6 -5
- package/dist/components/platform/administration/access-requests/RequestAccessButton.d.ts.map +1 -1
- package/dist/components/platform/administration/ai/AiModelsTab.d.ts +6 -5
- package/dist/components/platform/administration/ai/AiModelsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/ai/AiProfilesTab.d.ts +18 -17
- package/dist/components/platform/administration/ai/AiProfilesTab.d.ts.map +1 -1
- package/dist/components/platform/administration/ai/AiProvidersTab.d.ts +3 -2
- package/dist/components/platform/administration/ai/AiProvidersTab.d.ts.map +1 -1
- package/dist/components/platform/administration/ai/PromptTestPanel.d.ts +4 -3
- package/dist/components/platform/administration/ai/PromptTestPanel.d.ts.map +1 -1
- package/dist/components/platform/administration/applications/ApplicationAccessTab.d.ts +4 -3
- package/dist/components/platform/administration/applications/ApplicationAccessTab.d.ts.map +1 -1
- package/dist/components/platform/administration/applications/ApplicationInfoTab.d.ts +16 -16
- package/dist/components/platform/administration/applications/ApplicationInfoTab.d.ts.map +1 -1
- package/dist/components/platform/administration/applications/ApplicationModulesTab.d.ts +30 -29
- package/dist/components/platform/administration/applications/ApplicationModulesTab.d.ts.map +1 -1
- package/dist/components/platform/administration/applications/ApplicationPermissionsTab.d.ts +5 -4
- package/dist/components/platform/administration/applications/ApplicationPermissionsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/applications/ApplicationPublicationTab.d.ts +49 -49
- package/dist/components/platform/administration/applications/ApplicationPublicationTab.d.ts.map +1 -1
- package/dist/components/platform/administration/entra/ConflictCard.d.ts +5 -4
- package/dist/components/platform/administration/entra/ConflictCard.d.ts.map +1 -1
- package/dist/components/platform/administration/entra/ResolutionModal.d.ts +6 -5
- package/dist/components/platform/administration/entra/ResolutionModal.d.ts.map +1 -1
- package/dist/components/platform/administration/organisations/CreateOrganisationForm.d.ts +8 -7
- package/dist/components/platform/administration/organisations/CreateOrganisationForm.d.ts.map +1 -1
- package/dist/components/platform/administration/permissions/GroupPermissionMatrix.d.ts +6 -5
- package/dist/components/platform/administration/permissions/GroupPermissionMatrix.d.ts.map +1 -1
- package/dist/components/platform/administration/permissions/PermissionStatusIndicator.d.ts +6 -5
- package/dist/components/platform/administration/permissions/PermissionStatusIndicator.d.ts.map +1 -1
- package/dist/components/platform/administration/permissions/RolePermissionMatrix.d.ts +3 -2
- package/dist/components/platform/administration/permissions/RolePermissionMatrix.d.ts.map +1 -1
- package/dist/components/platform/administration/permissions/UserPermissionMatrix.d.ts +5 -4
- package/dist/components/platform/administration/permissions/UserPermissionMatrix.d.ts.map +1 -1
- package/dist/components/platform/administration/settings/SettingsHistoryModal.d.ts +2 -1
- package/dist/components/platform/administration/settings/SettingsHistoryModal.d.ts.map +1 -1
- package/dist/components/platform/administration/tenants/TenantApplicationsTab.d.ts +55 -54
- package/dist/components/platform/administration/tenants/TenantApplicationsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/tenants/TenantGroupsTab.d.ts +8 -7
- package/dist/components/platform/administration/tenants/TenantGroupsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/tenants/TenantMembersTab.d.ts +8 -7
- package/dist/components/platform/administration/tenants/TenantMembersTab.d.ts.map +1 -1
- package/dist/components/platform/administration/tenants/TenantOverviewTab.d.ts +12 -11
- package/dist/components/platform/administration/tenants/TenantOverviewTab.d.ts.map +1 -1
- package/dist/components/platform/administration/tenants/TenantRolesTab.d.ts +2 -1
- package/dist/components/platform/administration/tenants/TenantRolesTab.d.ts.map +1 -1
- package/dist/components/platform/administration/tenants/TenantSupportSettingsTab.d.ts +4 -3
- package/dist/components/platform/administration/tenants/TenantSupportSettingsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/users/UserActivitySessionsTab.d.ts +8 -7
- package/dist/components/platform/administration/users/UserActivitySessionsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/users/UserApplicationsTab.d.ts +4 -3
- package/dist/components/platform/administration/users/UserApplicationsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/users/UserHistoryTab.d.ts +7 -6
- package/dist/components/platform/administration/users/UserHistoryTab.d.ts.map +1 -1
- package/dist/components/platform/administration/users/UserInfoTab.d.ts +15 -14
- package/dist/components/platform/administration/users/UserInfoTab.d.ts.map +1 -1
- package/dist/components/platform/administration/users/UserSecurityTab.d.ts +23 -22
- package/dist/components/platform/administration/users/UserSecurityTab.d.ts.map +1 -1
- package/dist/components/platform/administration/users/UserTenantsTab.d.ts +22 -21
- package/dist/components/platform/administration/users/UserTenantsTab.d.ts.map +1 -1
- package/dist/components/platform/administration/workflows/WorkflowStepsEditor.d.ts +6 -5
- package/dist/components/platform/administration/workflows/WorkflowStepsEditor.d.ts.map +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppAuditTab.d.ts +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppAuditTab.d.ts.map +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppExportsTab.d.ts +6 -5
- package/dist/components/platform/api/external-apps/ExternalAppExportsTab.d.ts.map +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppInfoTab.d.ts +6 -5
- package/dist/components/platform/api/external-apps/ExternalAppInfoTab.d.ts.map +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppKeysTab.d.ts +6 -5
- package/dist/components/platform/api/external-apps/ExternalAppKeysTab.d.ts.map +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppPromptTab.d.ts +3 -2
- package/dist/components/platform/api/external-apps/ExternalAppPromptTab.d.ts.map +1 -1
- package/dist/components/platform/api/external-apps/ExternalAppRolesTab.d.ts +6 -5
- package/dist/components/platform/api/external-apps/ExternalAppRolesTab.d.ts.map +1 -1
- package/dist/components/platform/support/ActivityTimeline.d.ts +5 -4
- package/dist/components/platform/support/ActivityTimeline.d.ts.map +1 -1
- package/dist/components/platform/support/AiClassificationBadge.d.ts +7 -6
- package/dist/components/platform/support/AiClassificationBadge.d.ts.map +1 -1
- package/dist/components/platform/support/AiRoutingSuggestionPanel.d.ts +9 -8
- package/dist/components/platform/support/AiRoutingSuggestionPanel.d.ts.map +1 -1
- package/dist/components/platform/support/AiTicketSummary.d.ts +8 -7
- package/dist/components/platform/support/AiTicketSummary.d.ts.map +1 -1
- package/dist/components/platform/support/FilePreviewModal.d.ts +6 -5
- package/dist/components/platform/support/FilePreviewModal.d.ts.map +1 -1
- package/dist/components/platform/support/ScreenshotAnnotator.d.ts +6 -5
- package/dist/components/platform/support/ScreenshotAnnotator.d.ts.map +1 -1
- package/dist/components/platform/support/SlaBadge.d.ts +12 -11
- package/dist/components/platform/support/SlaBadge.d.ts.map +1 -1
- package/dist/components/platform/support/TemplatePicker.d.ts +6 -5
- package/dist/components/platform/support/TemplatePicker.d.ts.map +1 -1
- package/dist/components/platform/support/TicketConversation.d.ts +31 -30
- package/dist/components/platform/support/TicketConversation.d.ts.map +1 -1
- package/dist/components/platform/support/TicketDetailView.d.ts +3 -2
- package/dist/components/platform/support/TicketDetailView.d.ts.map +1 -1
- package/dist/components/platform/support/TicketSidebar.d.ts +19 -18
- package/dist/components/platform/support/TicketSidebar.d.ts.map +1 -1
- package/dist/components/platform/support/TicketSolutionPanel.d.ts +10 -9
- package/dist/components/platform/support/TicketSolutionPanel.d.ts.map +1 -1
- package/dist/components/platform/support/TicketWorkflow.d.ts +10 -9
- package/dist/components/platform/support/TicketWorkflow.d.ts.map +1 -1
- package/dist/components/platform/support/TicketWorkflowHorizontal.d.ts +19 -18
- package/dist/components/platform/support/TicketWorkflowHorizontal.d.ts.map +1 -1
- package/dist/components/platform/support/TicketsListView.d.ts +8 -7
- package/dist/components/platform/support/TicketsListView.d.ts.map +1 -1
- package/dist/components/routing/DocRoutes.d.ts +1 -1
- package/dist/components/routing/DocRoutes.d.ts.map +1 -1
- package/dist/components/routing/DynamicRouter.d.ts +2 -1
- package/dist/components/routing/DynamicRouter.d.ts.map +1 -1
- package/dist/components/routing/ProtectedRoute.d.ts +2 -1
- package/dist/components/routing/ProtectedRoute.d.ts.map +1 -1
- package/dist/components/routing/TenantNavigate.d.ts +4 -3
- package/dist/components/routing/TenantNavigate.d.ts.map +1 -1
- package/dist/components/routing/TenantRouteWrapper.d.ts +2 -1
- package/dist/components/routing/TenantRouteWrapper.d.ts.map +1 -1
- package/dist/components/session/SessionProvider.d.ts +2 -1
- package/dist/components/session/SessionProvider.d.ts.map +1 -1
- package/dist/components/session/SessionWarningModal.d.ts +6 -5
- package/dist/components/session/SessionWarningModal.d.ts.map +1 -1
- package/dist/components/tenants/TenantCard.d.ts +13 -12
- package/dist/components/tenants/TenantCard.d.ts.map +1 -1
- package/dist/components/tickets/CreateTicketButton.d.ts +4 -3
- package/dist/components/tickets/CreateTicketButton.d.ts.map +1 -1
- package/dist/components/tracking/PageTracker.d.ts +2 -1
- package/dist/components/tracking/PageTracker.d.ts.map +1 -1
- package/dist/components/tracking/TenantTracker.d.ts +2 -1
- package/dist/components/tracking/TenantTracker.d.ts.map +1 -1
- package/dist/components/ui/AppSwitcher.d.ts +2 -1
- package/dist/components/ui/AppSwitcher.d.ts.map +1 -1
- package/dist/components/ui/AvatarMenu.d.ts +2 -1
- package/dist/components/ui/AvatarMenu.d.ts.map +1 -1
- package/dist/components/ui/Breadcrumb.d.ts +7 -6
- package/dist/components/ui/Breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/ConfirmModal.d.ts +11 -11
- package/dist/components/ui/ConfirmModal.d.ts.map +1 -1
- package/dist/components/ui/DataTable.d.ts +2 -1
- package/dist/components/ui/DataTable.d.ts.map +1 -1
- package/dist/components/ui/DataView.d.ts +54 -53
- package/dist/components/ui/DataView.d.ts.map +1 -1
- package/dist/components/ui/DocEdgeButton.d.ts +2 -1
- package/dist/components/ui/DocEdgeButton.d.ts.map +1 -1
- package/dist/components/ui/DocPanel.d.ts +2 -1
- package/dist/components/ui/DocPanel.d.ts.map +1 -1
- package/dist/components/ui/DocToggleButton.d.ts +4 -3
- package/dist/components/ui/DocToggleButton.d.ts.map +1 -1
- package/dist/components/ui/Drawer.d.ts +9 -8
- package/dist/components/ui/Drawer.d.ts.map +1 -1
- package/dist/components/ui/EntityCard.d.ts +75 -74
- package/dist/components/ui/EntityCard.d.ts.map +1 -1
- package/dist/components/ui/KanbanBoard.d.ts +23 -22
- package/dist/components/ui/KanbanBoard.d.ts.map +1 -1
- package/dist/components/ui/LanguageSwitcher.d.ts +2 -1
- package/dist/components/ui/LanguageSwitcher.d.ts.map +1 -1
- package/dist/components/ui/PageHeader.d.ts +6 -6
- package/dist/components/ui/PageHeader.d.ts.map +1 -1
- package/dist/components/ui/PageLoader.d.ts +2 -1
- package/dist/components/ui/PageLoader.d.ts.map +1 -1
- package/dist/components/ui/PermissionMatrix.d.ts +2 -1
- package/dist/components/ui/PermissionMatrix.d.ts.map +1 -1
- package/dist/components/ui/ProtectedButton.d.ts +9 -8
- package/dist/components/ui/ProtectedButton.d.ts.map +1 -1
- package/dist/components/ui/RestrictedModuleBanner.d.ts +2 -1
- package/dist/components/ui/RestrictedModuleBanner.d.ts.map +1 -1
- package/dist/components/ui/ScopeBanner.d.ts +5 -4
- package/dist/components/ui/ScopeBanner.d.ts.map +1 -1
- package/dist/components/ui/SelectWithOther.d.ts +10 -9
- package/dist/components/ui/SelectWithOther.d.ts.map +1 -1
- package/dist/components/ui/SortableList.d.ts +6 -5
- package/dist/components/ui/SortableList.d.ts.map +1 -1
- package/dist/components/ui/TenantScopeFilter.d.ts +8 -7
- package/dist/components/ui/TenantScopeFilter.d.ts.map +1 -1
- package/dist/components/ui/TenantScopeSelector.d.ts +8 -7
- package/dist/components/ui/TenantScopeSelector.d.ts.map +1 -1
- package/dist/components/ui/TenantSelector.d.ts +2 -1
- package/dist/components/ui/TenantSelector.d.ts.map +1 -1
- package/dist/components/ui/ThemeCustomizer.d.ts +5 -4
- package/dist/components/ui/ThemeCustomizer.d.ts.map +1 -1
- package/dist/components/ui/ThemeScopeSelector.d.ts +3 -2
- package/dist/components/ui/ThemeScopeSelector.d.ts.map +1 -1
- package/dist/components/ui/ThemeSwitcher.d.ts +2 -1
- package/dist/components/ui/ThemeSwitcher.d.ts.map +1 -1
- package/dist/components/ui/Tooltip.d.ts +14 -13
- package/dist/components/ui/Tooltip.d.ts.map +1 -1
- package/dist/components/ui/UnderDevelopment.d.ts +8 -7
- package/dist/components/ui/UnderDevelopment.d.ts.map +1 -1
- package/dist/components/ui/UnlockAccountModal.d.ts +6 -5
- package/dist/components/ui/UnlockAccountModal.d.ts.map +1 -1
- package/dist/components/ui/ViewModeToggle.d.ts +4 -3
- package/dist/components/ui/ViewModeToggle.d.ts.map +1 -1
- package/dist/contexts/AuthContext.d.ts +2 -1
- package/dist/contexts/AuthContext.d.ts.map +1 -1
- package/dist/contexts/DocPanelContext.d.ts +2 -1
- package/dist/contexts/DocPanelContext.d.ts.map +1 -1
- package/dist/contexts/FavoritesContext.d.ts +2 -1
- package/dist/contexts/FavoritesContext.d.ts.map +1 -1
- package/dist/contexts/FeatureConfigContext.d.ts +3 -2
- package/dist/contexts/FeatureConfigContext.d.ts.map +1 -1
- package/dist/contexts/LicenseContext.d.ts +2 -1
- package/dist/contexts/LicenseContext.d.ts.map +1 -1
- package/dist/contexts/NavigationContext.d.ts +2 -1
- package/dist/contexts/NavigationContext.d.ts.map +1 -1
- package/dist/contexts/SidebarContext.d.ts +2 -1
- package/dist/contexts/SidebarContext.d.ts.map +1 -1
- package/dist/contexts/SignalRContext.d.ts +2 -1
- package/dist/contexts/SignalRContext.d.ts.map +1 -1
- package/dist/contexts/TenantContext.d.ts +2 -1
- package/dist/contexts/TenantContext.d.ts.map +1 -1
- package/dist/contexts/ThemeContext.d.ts +2 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/extensions/ExtensionContext.d.ts +4 -3
- package/dist/extensions/ExtensionContext.d.ts.map +1 -1
- package/dist/extensions/PageRegistry.d.ts +6 -5
- package/dist/extensions/PageRegistry.d.ts.map +1 -1
- package/dist/extensions/SlotFill.d.ts +13 -13
- package/dist/extensions/SlotFill.d.ts.map +1 -1
- package/dist/extensions/types.d.ts +10 -10
- package/dist/extensions/types.d.ts.map +1 -1
- package/dist/hooks/useAccessRequestActions.d.ts.map +1 -1
- package/dist/hooks/useAccessRequests.d.ts.map +1 -1
- package/dist/hooks/useAdminTenants.d.ts.map +1 -1
- package/dist/hooks/useClientContext.d.ts.map +1 -1
- package/dist/hooks/useCollapsibleState.d.ts.map +1 -1
- package/dist/hooks/useCreateSupportTicket.d.ts +23 -21
- package/dist/hooks/useCreateSupportTicket.d.ts.map +1 -1
- package/dist/hooks/useLocale.d.ts.map +1 -1
- package/dist/hooks/useLoginForm.d.ts +5 -4
- package/dist/hooks/useLoginForm.d.ts.map +1 -1
- package/dist/hooks/useNotifications.d.ts.map +1 -1
- package/dist/hooks/usePageTracking.d.ts.map +1 -1
- package/dist/hooks/usePagination.d.ts +1 -1
- package/dist/hooks/usePagination.d.ts.map +1 -1
- package/dist/hooks/usePermissionSync.d.ts +2 -1
- package/dist/hooks/usePermissionSync.d.ts.map +1 -1
- package/dist/hooks/useRestrictedModuleCheck.d.ts.map +1 -1
- package/dist/hooks/useSessionMonitor.d.ts +7 -5
- package/dist/hooks/useSessionMonitor.d.ts.map +1 -1
- package/dist/hooks/useSettingsSection.d.ts.map +1 -1
- package/dist/hooks/useSignalR.d.ts.map +1 -1
- package/dist/hooks/useTenantCreateForm.d.ts +24 -22
- package/dist/hooks/useTenantCreateForm.d.ts.map +1 -1
- package/dist/hooks/useTenantFavorites.d.ts.map +1 -1
- package/dist/hooks/useTenantFilters.d.ts.map +1 -1
- package/dist/hooks/useTenantTracking.d.ts.map +1 -1
- package/dist/hooks/useTicketSignalR.d.ts.map +1 -1
- package/dist/hooks/useUserAccessRequests.d.ts.map +1 -1
- package/dist/i18n/config.d.ts +1 -1
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/{index-DGeNdATi.js → index-3lcyR754.js} +2 -2
- package/dist/{index-DGeNdATi.js.map → index-3lcyR754.js.map} +1 -1
- package/dist/{index-DJXny6rD.cjs → index-AM9K908G.cjs} +2 -2
- package/dist/{index-DJXny6rD.cjs.map → index-AM9K908G.cjs.map} +1 -1
- package/dist/{index-ASxPhrgZ.cjs → index-BASU1QDx.cjs} +2 -2
- package/dist/index-BASU1QDx.cjs.map +1 -0
- package/dist/{index-ChVCBF4t.js → index-BBFFDXgT.js} +2 -2
- package/dist/{index-ChVCBF4t.js.map → index-BBFFDXgT.js.map} +1 -1
- package/dist/{index-C54HbULX.cjs → index-BBQMnq4P.cjs} +2 -2
- package/dist/index-BBQMnq4P.cjs.map +1 -0
- package/dist/{index-CUISVUMx.js → index-BEOtfRxa.js} +16 -16
- package/dist/index-BEOtfRxa.js.map +1 -0
- package/dist/{index-D4u23zHI.js → index-BEeLN5ui.js} +24 -24
- package/dist/index-BEeLN5ui.js.map +1 -0
- package/dist/{index-Du4fQfix.cjs → index-BEpBEF5G.cjs} +2 -2
- package/dist/index-BEpBEF5G.cjs.map +1 -0
- package/dist/{index-BlHDI4zj.js → index-BIB3FxMF.js} +14 -14
- package/dist/index-BIB3FxMF.js.map +1 -0
- package/dist/{index-Txfokhn3.cjs → index-BVUCDL0k.cjs} +2 -2
- package/dist/index-BVUCDL0k.cjs.map +1 -0
- package/dist/{index-jpSTOjXU.js → index-BYYgvEcO.js} +17 -17
- package/dist/index-BYYgvEcO.js.map +1 -0
- package/dist/{index-CU66n-zU.js → index-B_lFRwmY.js} +13 -13
- package/dist/index-B_lFRwmY.js.map +1 -0
- package/dist/{index-Blfc9wKG.js → index-Bbd3D6A4.js} +8 -8
- package/dist/index-Bbd3D6A4.js.map +1 -0
- package/dist/index-BfMaHuWh.cjs +48 -0
- package/dist/index-BfMaHuWh.cjs.map +1 -0
- package/dist/index-C0AgM8YN.cjs.map +1 -1
- package/dist/index-C0rFTzxZ.cjs +2 -0
- package/dist/index-C0rFTzxZ.cjs.map +1 -0
- package/dist/{index-By0u9UFY.js → index-CCS0saZk.js} +10 -10
- package/dist/index-CCS0saZk.js.map +1 -0
- package/dist/{index-C40Dlolq.js → index-CID51vRa.js} +28 -28
- package/dist/index-CID51vRa.js.map +1 -0
- package/dist/index-CO5QP9C1.cjs +2 -0
- package/dist/index-CO5QP9C1.cjs.map +1 -0
- package/dist/{index-CI1DJrFE.js → index-CaI6ZbEo.js} +12 -12
- package/dist/index-CaI6ZbEo.js.map +1 -0
- package/dist/{index-DKRiN1hJ.cjs → index-CaLDUVLs.cjs} +2 -2
- package/dist/{index-DKRiN1hJ.cjs.map → index-CaLDUVLs.cjs.map} +1 -1
- package/dist/index-CdORB0b4.cjs.map +1 -1
- package/dist/{index-Dxau-XnQ.cjs → index-Cdu0fSs8.cjs} +2 -2
- package/dist/index-Cdu0fSs8.cjs.map +1 -0
- package/dist/{index-Bup-dL1l.cjs → index-CiAIT31Y.cjs} +2 -2
- package/dist/{index-Bup-dL1l.cjs.map → index-CiAIT31Y.cjs.map} +1 -1
- package/dist/{index-ClIOix1g.js → index-ClrwWu9J.js} +2 -2
- package/dist/{index-ClIOix1g.js.map → index-ClrwWu9J.js.map} +1 -1
- package/dist/{index-DdsLBKHV.cjs → index-CtcTcQqt.cjs} +2 -2
- package/dist/{index-DdsLBKHV.cjs.map → index-CtcTcQqt.cjs.map} +1 -1
- package/dist/{index-DM5ogbum.js → index-CzCt3Aan.js} +2 -2
- package/dist/{index-DM5ogbum.js.map → index-CzCt3Aan.js.map} +1 -1
- package/dist/index-D1WPBG1_.cjs +2 -0
- package/dist/index-D1WPBG1_.cjs.map +1 -0
- package/dist/{index-Dsbkiw3B.js → index-DA3kbmS5.js} +2 -2
- package/dist/{index-Dsbkiw3B.js.map → index-DA3kbmS5.js.map} +1 -1
- package/dist/{index-D6zlXbv_.js → index-DE40yc39.js} +2 -2
- package/dist/{index-D6zlXbv_.js.map → index-DE40yc39.js.map} +1 -1
- package/dist/{index-DmuVa7Ye.cjs → index-DIuoVYFu.cjs} +2 -2
- package/dist/index-DIuoVYFu.cjs.map +1 -0
- package/dist/{index-DDJTWztK.cjs → index-DLSMVKFE.cjs} +2 -2
- package/dist/{index-DDJTWztK.cjs.map → index-DLSMVKFE.cjs.map} +1 -1
- package/dist/index-DQBVnnd6.cjs +2 -0
- package/dist/index-DQBVnnd6.cjs.map +1 -0
- package/dist/{index-BYhFG50Z.cjs → index-DRT2wvEs.cjs} +2 -2
- package/dist/index-DRT2wvEs.cjs.map +1 -0
- package/dist/{index-Cv7iWoG8.js → index-DRc5qb2I.js} +15 -15
- package/dist/index-DRc5qb2I.js.map +1 -0
- package/dist/index-DTAZtzQ6.js.map +1 -1
- package/dist/{index-BnWMDCRU.cjs → index-DYJbiXHU.cjs} +2 -2
- package/dist/index-DYJbiXHU.cjs.map +1 -0
- package/dist/{index-D8xuGyjU.js → index-DhVauF9E.js} +16 -16
- package/dist/index-DhVauF9E.js.map +1 -0
- package/dist/index-DiQ2SDvl.js.map +1 -1
- package/dist/{index-BcO3pBlL.js → index-Dm5ZLB9x.js} +14 -14
- package/dist/index-Dm5ZLB9x.js.map +1 -0
- package/dist/{index-CBOLnJkG.cjs → index-HWG-CG1i.cjs} +2 -2
- package/dist/index-HWG-CG1i.cjs.map +1 -0
- package/dist/{index-0Jhdcj59.js → index-Kn_ynW2m.js} +3298 -3200
- package/dist/index-Kn_ynW2m.js.map +1 -0
- package/dist/{index-B2rKKVDN.js → index-L994YeGJ.js} +7 -7
- package/dist/index-L994YeGJ.js.map +1 -0
- package/dist/{index-1tvWzIw0.cjs → index-OhzFdH9N.cjs} +2 -2
- package/dist/{index-1tvWzIw0.cjs.map → index-OhzFdH9N.cjs.map} +1 -1
- package/dist/{index-CnmIX2MY.js → index-Z6aHkjiA.js} +23 -20
- package/dist/index-Z6aHkjiA.js.map +1 -0
- package/dist/index-p2jNjCTo.cjs +2 -0
- package/dist/index-p2jNjCTo.cjs.map +1 -0
- package/dist/{index-DwATtWun.js → index-vUb_gIjC.js} +11 -11
- package/dist/index-vUb_gIjC.js.map +1 -0
- package/dist/{index-eAHjmtzn.cjs → index-xCGnOlox.cjs} +2 -2
- package/dist/index-xCGnOlox.cjs.map +1 -0
- package/dist/layouts/AdminLayout.d.ts +2 -1
- package/dist/layouts/AdminLayout.d.ts.map +1 -1
- package/dist/layouts/AppLayout.d.ts +2 -1
- package/dist/layouts/AppLayout.d.ts.map +1 -1
- package/dist/layouts/AuthLayout.d.ts +2 -1
- package/dist/layouts/AuthLayout.d.ts.map +1 -1
- package/dist/layouts/BusinessLayout.d.ts +2 -1
- package/dist/layouts/BusinessLayout.d.ts.map +1 -1
- package/dist/layouts/DocsLayout.d.ts +2 -1
- package/dist/layouts/DocsLayout.d.ts.map +1 -1
- package/dist/layouts/PublicLayout.d.ts +2 -1
- package/dist/layouts/PublicLayout.d.ts.map +1 -1
- package/dist/layouts/UserLayout.d.ts +2 -1
- package/dist/layouts/UserLayout.d.ts.map +1 -1
- package/dist/pages/ApplicationsPage.d.ts +2 -1
- package/dist/pages/ApplicationsPage.d.ts.map +1 -1
- package/dist/pages/HomePage.d.ts +2 -1
- package/dist/pages/HomePage.d.ts.map +1 -1
- package/dist/pages/LoginPage.d.ts +2 -1
- package/dist/pages/LoginPage.d.ts.map +1 -1
- package/dist/pages/NotFoundPage.d.ts +2 -1
- package/dist/pages/NotFoundPage.d.ts.map +1 -1
- package/dist/pages/auth/AuthCallbackPage.d.ts +2 -1
- package/dist/pages/auth/AuthCallbackPage.d.ts.map +1 -1
- package/dist/pages/auth/ConfirmEmailPage.d.ts +2 -1
- package/dist/pages/auth/ConfirmEmailPage.d.ts.map +1 -1
- package/dist/pages/auth/ForceChangePasswordPage.d.ts +2 -1
- package/dist/pages/auth/ForceChangePasswordPage.d.ts.map +1 -1
- package/dist/pages/auth/ForgotPasswordPage.d.ts +2 -1
- package/dist/pages/auth/ForgotPasswordPage.d.ts.map +1 -1
- package/dist/pages/auth/OnboardingWizardPage.d.ts +2 -1
- package/dist/pages/auth/OnboardingWizardPage.d.ts.map +1 -1
- package/dist/pages/auth/RegisterPage.d.ts +2 -1
- package/dist/pages/auth/RegisterPage.d.ts.map +1 -1
- package/dist/pages/auth/ResetPasswordPage.d.ts +2 -1
- package/dist/pages/auth/ResetPasswordPage.d.ts.map +1 -1
- package/dist/pages/business/BusinessApplicationsGridPage.d.ts +2 -1
- package/dist/pages/business/BusinessApplicationsGridPage.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/ai/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/ai/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/applications/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/applications/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/configuration/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/configuration/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/configuration/license/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/configuration/license/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/entra/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/entra/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/permissions/assignments/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/permissions/assignments/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/permissions/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/permissions/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/access-requests/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/access-requests/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/applications/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/applications/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/business/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/business/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/organisations/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/organisations/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/other/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/other/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/personal/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/personal/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/tenants/template/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/tenants/template/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/users/dashboard/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/users/dashboard/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/users/groups/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/users/groups/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/users/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/users/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/users/references/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/users/references/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/administration/workflows/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/administration/workflows/index.d.ts.map +1 -1
- package/dist/pages/docs/business/platform/support/tickets/index.d.ts +2 -1
- package/dist/pages/docs/business/platform/support/tickets/index.d.ts.map +1 -1
- package/dist/pages/notifications/NotificationsPage.d.ts +2 -1
- package/dist/pages/notifications/NotificationsPage.d.ts.map +1 -1
- package/dist/pages/personal/myspace/MyAccessRequestsPage.d.ts +2 -1
- package/dist/pages/personal/myspace/MyAccessRequestsPage.d.ts.map +1 -1
- package/dist/pages/personal/myspace/MyTenantsPage.d.ts +2 -1
- package/dist/pages/personal/myspace/MyTenantsPage.d.ts.map +1 -1
- package/dist/pages/personal/myspace/PortalDashboardPage.d.ts +2 -1
- package/dist/pages/personal/myspace/PortalDashboardPage.d.ts.map +1 -1
- package/dist/pages/personal/myspace/PreferencesPage.d.ts +2 -1
- package/dist/pages/personal/myspace/PreferencesPage.d.ts.map +1 -1
- package/dist/pages/personal/myspace/ProfilePage.d.ts +2 -1
- package/dist/pages/personal/myspace/ProfilePage.d.ts.map +1 -1
- package/dist/pages/personal/myspace/UserDashboardPage.d.ts +2 -1
- package/dist/pages/personal/myspace/UserDashboardPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/DashboardPage.d.ts +2 -1
- package/dist/pages/platform/administration/DashboardPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiAgentDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiAgentDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiAgentEditPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiAgentEditPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiAgentsPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiAgentsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiBlockDefinitionDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiBlockDefinitionDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiBlockDefinitionEditPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiBlockDefinitionEditPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiBlockDefinitionsListPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiBlockDefinitionsListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiDashboardPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiDashboardPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiMonitoringPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiMonitoringPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiPromptsListPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiPromptsListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiPromptsPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiPromptsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiSettingsPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiSettingsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiSkillsDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiSkillsDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/ai/AiSkillsEditPage.d.ts +2 -1
- package/dist/pages/platform/administration/ai/AiSkillsEditPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/applications/ApplicationDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/applications/ApplicationDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/applications/ApplicationsGridPage.d.ts +2 -1
- package/dist/pages/platform/administration/applications/ApplicationsGridPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/applications/ApplicationsListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/applications/NavigationAppsPage.d.ts +2 -1
- package/dist/pages/platform/administration/applications/NavigationAppsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/appsettings/AppSettingsPage.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/appsettings/AppSettingsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/appsettings/AuthenticationSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/appsettings/AuthenticationSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/appsettings/EmailSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/appsettings/EmailSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/appsettings/EntraSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/appsettings/EntraSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/appsettings/InfrastructureSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/appsettings/InfrastructureSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/appsettings/LoggingSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/appsettings/LoggingSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/license/LicenseManagementPage.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/license/LicenseManagementPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/settings/FileUploadSettingsSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/settings/FileUploadSettingsSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/settings/GeneralSettingsSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/settings/GeneralSettingsSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/settings/LegalFileSettingsSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/settings/LegalFileSettingsSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/settings/SettingsPage.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/settings/SettingsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/configuration/settings/StorageInfoSection.d.ts +2 -1
- package/dist/pages/platform/administration/configuration/settings/StorageInfoSection.d.ts.map +1 -1
- package/dist/pages/platform/administration/entra/EntraConflictsPage.d.ts +2 -1
- package/dist/pages/platform/administration/entra/EntraConflictsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/entra/EntraDashboardPage.d.ts +2 -1
- package/dist/pages/platform/administration/entra/EntraDashboardPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/entra/EntraGroupsPage.d.ts +2 -1
- package/dist/pages/platform/administration/entra/EntraGroupsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/entra/EntraSettingsPage.d.ts +2 -1
- package/dist/pages/platform/administration/entra/EntraSettingsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/entra/EntraUsersPage.d.ts +2 -1
- package/dist/pages/platform/administration/entra/EntraUsersPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/permissions/AssignmentsPage.d.ts +2 -1
- package/dist/pages/platform/administration/permissions/AssignmentsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/permissions/PermissionDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/permissions/PermissionDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/permissions/PermissionsPage.d.ts +2 -1
- package/dist/pages/platform/administration/permissions/PermissionsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/permissions/RoleDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/permissions/RoleDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/permissions/RolesPage.d.ts +2 -1
- package/dist/pages/platform/administration/permissions/RolesPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/OrganisationCreatePage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/OrganisationCreatePage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/OrganisationDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/OrganisationDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/OrganisationsListPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/OrganisationsListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantAccessRequestsPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantAccessRequestsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantCreatePage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantCreatePage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantSettingsPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantSettingsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantTemplateCreatePage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantTemplateCreatePage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantTemplateDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantTemplateDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsBusinessPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantsBusinessPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsDashboardPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantsDashboardPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsOtherPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantsOtherPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsPage.d.ts +4 -3
- package/dist/pages/platform/administration/tenants/TenantsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsPersonalPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantsPersonalPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsSystemPage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantsSystemPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/tenants/TenantsTemplatePage.d.ts +2 -1
- package/dist/pages/platform/administration/tenants/TenantsTemplatePage.d.ts.map +1 -1
- package/dist/pages/platform/administration/users/GroupDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/users/GroupDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/users/ReferencesManagementPage.d.ts +2 -1
- package/dist/pages/platform/administration/users/ReferencesManagementPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/users/ReferencesPage.d.ts +2 -1
- package/dist/pages/platform/administration/users/ReferencesPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/users/UserDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/users/UserDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/users/UsersGroupsPage.d.ts +2 -1
- package/dist/pages/platform/administration/users/UsersGroupsPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/users/UsersPage.d.ts +2 -1
- package/dist/pages/platform/administration/users/UsersPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/EmailTemplateCreatePage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/EmailTemplateCreatePage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/EmailTemplateDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/EmailTemplateDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/EmailTemplateEditPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/EmailTemplateEditPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/EmailTemplatesListPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/EmailTemplatesListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/SmsTemplatesListPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/SmsTemplatesListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/WorkflowCreatePage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/WorkflowCreatePage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/WorkflowDetailPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/WorkflowDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/WorkflowEditPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/WorkflowEditPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/WorkflowHistoryPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/WorkflowHistoryPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/WorkflowsListPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/WorkflowsListPage.d.ts.map +1 -1
- package/dist/pages/platform/administration/workflows/WorkflowsTriggersPage.d.ts +2 -1
- package/dist/pages/platform/administration/workflows/WorkflowsTriggersPage.d.ts.map +1 -1
- package/dist/pages/platform/api/apis/ApiCatalogDetailPage.d.ts +2 -1
- package/dist/pages/platform/api/apis/ApiCatalogDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/api/apis/ApiCatalogPage.d.ts +2 -1
- package/dist/pages/platform/api/apis/ApiCatalogPage.d.ts.map +1 -1
- package/dist/pages/platform/api/external-apps/ExternalAppDetailPage.d.ts +2 -1
- package/dist/pages/platform/api/external-apps/ExternalAppDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/api/external-apps/ExternalAppsListPage.d.ts.map +1 -1
- package/dist/pages/platform/support/AgentSkillsPage.d.ts +2 -1
- package/dist/pages/platform/support/AgentSkillsPage.d.ts.map +1 -1
- package/dist/pages/platform/support/AgentWorkloadPage.d.ts +2 -1
- package/dist/pages/platform/support/AgentWorkloadPage.d.ts.map +1 -1
- package/dist/pages/platform/support/AssignmentRulesPage.d.ts +2 -1
- package/dist/pages/platform/support/AssignmentRulesPage.d.ts.map +1 -1
- package/dist/pages/platform/support/CreateSupportTicketPage.d.ts +2 -1
- package/dist/pages/platform/support/CreateSupportTicketPage.d.ts.map +1 -1
- package/dist/pages/platform/support/DashboardPage.d.ts +2 -1
- package/dist/pages/platform/support/DashboardPage.d.ts.map +1 -1
- package/dist/pages/platform/support/EscalationConfigPage.d.ts +2 -1
- package/dist/pages/platform/support/EscalationConfigPage.d.ts.map +1 -1
- package/dist/pages/platform/support/MyAgentTicketsPage.d.ts +2 -1
- package/dist/pages/platform/support/MyAgentTicketsPage.d.ts.map +1 -1
- package/dist/pages/platform/support/MyTicketsPage.d.ts +2 -1
- package/dist/pages/platform/support/MyTicketsPage.d.ts.map +1 -1
- package/dist/pages/platform/support/SlaConfigPage.d.ts +2 -1
- package/dist/pages/platform/support/SlaConfigPage.d.ts.map +1 -1
- package/dist/pages/platform/support/SupportPermissionsPage.d.ts +2 -1
- package/dist/pages/platform/support/SupportPermissionsPage.d.ts.map +1 -1
- package/dist/pages/platform/support/TemplatesPage.d.ts +2 -1
- package/dist/pages/platform/support/TemplatesPage.d.ts.map +1 -1
- package/dist/pages/platform/support/TestBugPage.d.ts +2 -1
- package/dist/pages/platform/support/TestBugPage.d.ts.map +1 -1
- package/dist/pages/platform/support/TicketDetailPage.d.ts +2 -1
- package/dist/pages/platform/support/TicketDetailPage.d.ts.map +1 -1
- package/dist/pages/platform/support/TicketsPage.d.ts +2 -1
- package/dist/pages/platform/support/TicketsPage.d.ts.map +1 -1
- package/dist/pages/platform/support/UserCreateTicketPage.d.ts +2 -1
- package/dist/pages/platform/support/UserCreateTicketPage.d.ts.map +1 -1
- package/dist/pages/platform/support/UserTicketDetailPage.d.ts +2 -1
- package/dist/pages/platform/support/UserTicketDetailPage.d.ts.map +1 -1
- package/dist/pages/system/docs/DocsIndexPage.d.ts +2 -1
- package/dist/pages/system/docs/DocsIndexPage.d.ts.map +1 -1
- package/dist/pages/system/docs/SmartStackPresentationPage.d.ts +2 -1
- package/dist/pages/system/docs/SmartStackPresentationPage.d.ts.map +1 -1
- package/dist/pages/system/docs/ba/BaIndexPage.d.ts +2 -1
- package/dist/pages/system/docs/ba/BaIndexPage.d.ts.map +1 -1
- package/dist/pages/system/docs/ba/BaViewerPage.d.ts +2 -1
- package/dist/pages/system/docs/ba/BaViewerPage.d.ts.map +1 -1
- package/dist/pages/system/docs/ba/components/CadrageTab.d.ts +3 -2
- package/dist/pages/system/docs/ba/components/CadrageTab.d.ts.map +1 -1
- package/dist/pages/system/docs/ba/components/SpecificationTab.d.ts +4 -3
- package/dist/pages/system/docs/ba/components/SpecificationTab.d.ts.map +1 -1
- package/dist/pages/system/docs/ba/components/SyntheseTab.d.ts +3 -2
- package/dist/pages/system/docs/ba/components/SyntheseTab.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/CrossSchemaFkPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/CrossSchemaFkPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/DatabasePage.d.ts +2 -1
- package/dist/pages/system/docs/developer/DatabasePage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/DeveloperIndexPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/DeveloperIndexPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/DualDbContextPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/DualDbContextPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/InfrastructurePage.d.ts +2 -1
- package/dist/pages/system/docs/developer/InfrastructurePage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/InstallationPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/InstallationPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/TeamsIntegrationPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/TeamsIntegrationPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/tenants/MultiTenantModePage.d.ts +2 -1
- package/dist/pages/system/docs/developer/tenants/MultiTenantModePage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/tenants/TenantB2CPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/tenants/TenantB2CPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/tenants/TenantIndexPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/tenants/TenantIndexPage.d.ts.map +1 -1
- package/dist/pages/system/docs/developer/testing/SecurityTestingPage.d.ts +2 -1
- package/dist/pages/system/docs/developer/testing/SecurityTestingPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/AiDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/AiDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/ArchitecturePage.d.ts +2 -1
- package/dist/pages/system/docs/user/ArchitecturePage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/ModulesPage.d.ts +2 -1
- package/dist/pages/system/docs/user/ModulesPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SettingsDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SettingsDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SlaDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SlaDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SupportDashboardDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SupportDashboardDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SupportEscalationDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SupportEscalationDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SupportIndexPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SupportIndexPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SupportMyTicketsDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SupportMyTicketsDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SupportTemplatesDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SupportTemplatesDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/SupportTicketsDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/SupportTicketsDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/ThemeDocPage.d.ts +2 -1
- package/dist/pages/system/docs/user/ThemeDocPage.d.ts.map +1 -1
- package/dist/pages/system/docs/user/UserIndexPage.d.ts +2 -1
- package/dist/pages/system/docs/user/UserIndexPage.d.ts.map +1 -1
- package/dist/provider/SmartStackProvider.d.ts +4 -3
- package/dist/provider/SmartStackProvider.d.ts.map +1 -1
- package/dist/services/api/adminApi/applications.d.ts +4 -1
- package/dist/services/api/adminApi/applications.d.ts.map +1 -1
- package/dist/services/api/adminApi/dashboard.d.ts +4 -1
- package/dist/services/api/adminApi/dashboard.d.ts.map +1 -1
- package/dist/services/api/adminApi/externalApps.d.ts +7 -2
- package/dist/services/api/adminApi/externalApps.d.ts.map +1 -1
- package/dist/services/api/adminApi/index.d.ts.map +1 -1
- package/dist/services/api/adminApi/roles.d.ts +7 -2
- package/dist/services/api/adminApi/roles.d.ts.map +1 -1
- package/dist/services/api/adminApi/settings.d.ts +7 -2
- package/dist/services/api/adminApi/settings.d.ts.map +1 -1
- package/dist/services/api/adminApi/tenants.d.ts +13 -4
- package/dist/services/api/adminApi/tenants.d.ts.map +1 -1
- package/dist/services/api/adminApi/users.d.ts +3 -1
- package/dist/services/api/adminApi/users.d.ts.map +1 -1
- package/dist/services/api/groupsApi.d.ts +4 -1
- package/dist/services/api/groupsApi.d.ts.map +1 -1
- package/dist/services/api/referencesApi.d.ts +4 -1
- package/dist/services/api/referencesApi.d.ts.map +1 -1
- package/dist/services/logging/logService.d.ts.map +1 -1
- package/dist/smartstack.cjs +1 -1
- package/dist/smartstack.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils/deviceDetection.d.ts.map +1 -1
- package/dist/utils/renderLucideIcon.d.ts +2 -1
- package/dist/utils/renderLucideIcon.d.ts.map +1 -1
- package/dist/utils/tenantUrl.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/AuthCallbackPage-Bv2Cyn80.cjs.map +0 -1
- package/dist/AuthCallbackPage-Cu74zAX1.js.map +0 -1
- package/dist/BaIndexPage-BhdOX87v.cjs +0 -2
- package/dist/BaIndexPage-BhdOX87v.cjs.map +0 -1
- package/dist/BaIndexPage-Dkp_Eixx.js.map +0 -1
- package/dist/BaViewerPage-DxD0eZm-.js.map +0 -1
- package/dist/BaViewerPage-SYgjCF7x.cjs +0 -2
- package/dist/BaViewerPage-SYgjCF7x.cjs.map +0 -1
- package/dist/ConfirmEmailPage-BTp8J0pw.js.map +0 -1
- package/dist/ConfirmEmailPage-su3Fvl0e.cjs.map +0 -1
- package/dist/DatabasePage-CRq_-Yo2.cjs +0 -2
- package/dist/DatabasePage-CRq_-Yo2.cjs.map +0 -1
- package/dist/DatabasePage-DFIK8cSM.js.map +0 -1
- package/dist/DocRenderer-B-1NdDfC.cjs +0 -2
- package/dist/DocRenderer-B-1NdDfC.cjs.map +0 -1
- package/dist/DocRenderer-CcEn1iaa.js.map +0 -1
- package/dist/DualDbContextPage--Qk-qEgD.cjs.map +0 -1
- package/dist/DualDbContextPage-BujD_coN.js.map +0 -1
- package/dist/ForceChangePasswordPage-ClENqzCH.js.map +0 -1
- package/dist/ForceChangePasswordPage-kEFsb5Aq.cjs.map +0 -1
- package/dist/ForgotPasswordPage--Wl0Vxbv.cjs.map +0 -1
- package/dist/ForgotPasswordPage-BEgvV5f-.js.map +0 -1
- package/dist/OnboardingWizardPage-Bx1UlTbr.js.map +0 -1
- package/dist/OnboardingWizardPage-C7vendrq.cjs.map +0 -1
- package/dist/RegisterPage-BzV0sCTe.js.map +0 -1
- package/dist/RegisterPage-DKr8quRk.cjs.map +0 -1
- package/dist/ResetPasswordPage-DphmJrcJ.js.map +0 -1
- package/dist/ResetPasswordPage-x4do1o-j.cjs.map +0 -1
- package/dist/SupportDashboardDocPage-CLotzEwA.js.map +0 -1
- package/dist/SupportDashboardDocPage-DpgGq5Mm.cjs.map +0 -1
- package/dist/SupportEscalationDocPage-B-_ChfdN.js.map +0 -1
- package/dist/SupportEscalationDocPage-WXkAQr8k.cjs.map +0 -1
- package/dist/SupportMyTicketsDocPage-DeRUdAIi.js.map +0 -1
- package/dist/SupportMyTicketsDocPage-jE1UMaIY.cjs.map +0 -1
- package/dist/SupportTemplatesDocPage-C8ZLzFJc.js.map +0 -1
- package/dist/SupportTemplatesDocPage-ajO-cHmK.cjs.map +0 -1
- package/dist/SupportTicketsDocPage-C_ybDTjC.cjs.map +0 -1
- package/dist/SupportTicketsDocPage-DQhHfa6J.js.map +0 -1
- package/dist/index-0Jhdcj59.js.map +0 -1
- package/dist/index-ASxPhrgZ.cjs.map +0 -1
- package/dist/index-B2rKKVDN.js.map +0 -1
- package/dist/index-BP5i2CQo.cjs +0 -2
- package/dist/index-BP5i2CQo.cjs.map +0 -1
- package/dist/index-BYhFG50Z.cjs.map +0 -1
- package/dist/index-BcO3pBlL.js.map +0 -1
- package/dist/index-BlHDI4zj.js.map +0 -1
- package/dist/index-Blfc9wKG.js.map +0 -1
- package/dist/index-BnWMDCRU.cjs.map +0 -1
- package/dist/index-By0u9UFY.js.map +0 -1
- package/dist/index-C40Dlolq.js.map +0 -1
- package/dist/index-C54HbULX.cjs.map +0 -1
- package/dist/index-C6C5XmVj.cjs +0 -48
- package/dist/index-C6C5XmVj.cjs.map +0 -1
- package/dist/index-C9BaizLE.cjs +0 -2
- package/dist/index-C9BaizLE.cjs.map +0 -1
- package/dist/index-CBOLnJkG.cjs.map +0 -1
- package/dist/index-CI1DJrFE.js.map +0 -1
- package/dist/index-CU66n-zU.js.map +0 -1
- package/dist/index-CUISVUMx.js.map +0 -1
- package/dist/index-CnmIX2MY.js.map +0 -1
- package/dist/index-CtcdHE_9.cjs +0 -2
- package/dist/index-CtcdHE_9.cjs.map +0 -1
- package/dist/index-Cv7iWoG8.js.map +0 -1
- package/dist/index-D4u23zHI.js.map +0 -1
- package/dist/index-D8xuGyjU.js.map +0 -1
- package/dist/index-DKK07NF1.cjs +0 -2
- package/dist/index-DKK07NF1.cjs.map +0 -1
- package/dist/index-DmuVa7Ye.cjs.map +0 -1
- package/dist/index-Du4fQfix.cjs.map +0 -1
- package/dist/index-DwATtWun.js.map +0 -1
- package/dist/index-Dxau-XnQ.cjs.map +0 -1
- package/dist/index-Txfokhn3.cjs.map +0 -1
- package/dist/index-ZVUUUZmv.cjs +0 -2
- package/dist/index-ZVUUUZmv.cjs.map +0 -1
- package/dist/index-eAHjmtzn.cjs.map +0 -1
- package/dist/index-jpSTOjXU.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmEmailPage-DDp2IPE_.js","sources":["../src/pages/auth/ConfirmEmailPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useSearchParams, Link } from 'react-router-dom';\r\nimport { CheckCircle2, XCircle, Loader2, Mail, RefreshCw } from 'lucide-react';\r\nimport { ThemeSwitcher } from '@/components/ui/ThemeSwitcher';\r\nimport { authApi } from '@/services/api/authApi';\r\n\r\ntype Status = 'loading' | 'success' | 'error' | 'expired' | 'already_used';\r\n\r\nexport function ConfirmEmailPage(): ReactElement {\r\n const [searchParams] = useSearchParams();\r\n const token = searchParams.get('token');\r\n\r\n const [status, setStatus] = useState<Status>('loading');\r\n const [message, setMessage] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [resendEmail, setResendEmail] = useState('');\r\n const [isResending, setIsResending] = useState(false);\r\n const [resendMessage, setResendMessage] = useState('');\r\n\r\n useEffect(() => {\r\n if (!token) {\r\n setStatus('error');\r\n setMessage('Lien de confirmation invalide. Aucun token fourni.');\r\n return;\r\n }\r\n\r\n const confirmEmail = async () => {\r\n try {\r\n const response = await authApi.confirmEmail(token);\r\n setStatus('success');\r\n setMessage(response.message);\r\n setEmail(response.email);\r\n } catch (err) {\r\n const error = err as { message?: string; code?: string };\r\n const code = (err as { code?: string })?.code;\r\n\r\n if (code === 'TOKEN_EXPIRED') {\r\n setStatus('expired');\r\n } else if (code === 'TOKEN_ALREADY_USED') {\r\n setStatus('already_used');\r\n } else {\r\n setStatus('error');\r\n }\r\n setMessage(error?.message || 'Une erreur est survenue lors de la confirmation.');\r\n }\r\n };\r\n\r\n confirmEmail();\r\n }, [token]);\r\n\r\n const handleResendConfirmation = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (!resendEmail) return;\r\n\r\n setIsResending(true);\r\n setResendMessage('');\r\n\r\n try {\r\n const response = await authApi.resendConfirmation(resendEmail);\r\n setResendMessage(response.message);\r\n } catch (err) {\r\n const error = err as { message?: string };\r\n setResendMessage(error?.message || 'Erreur lors de l\\'envoi.');\r\n } finally {\r\n setIsResending(false);\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-900 p-8\">\r\n <div className=\"w-full max-w-md\">\r\n <div className=\"flex justify-end mb-8\">\r\n <ThemeSwitcher />\r\n </div>\r\n\r\n <div className=\"bg-white dark:bg-gray-800 rounded-2xl shadow-xl p-8\">\r\n {/* Loading State */}\r\n {status === 'loading' && (\r\n <div className=\"text-center\">\r\n <Loader2 className=\"w-16 h-16 text-blue-500 animate-spin mx-auto mb-4\" />\r\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-white mb-2\">\r\n Confirmation en cours...\r\n </h2>\r\n <p className=\"text-gray-600 dark:text-gray-400\">\r\n Veuillez patienter pendant que nous vérifions votre email.\r\n </p>\r\n </div>\r\n )}\r\n\r\n {/* Success State */}\r\n {status === 'success' && (\r\n <div className=\"text-center\">\r\n <div className=\"w-16 h-16 bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center mx-auto mb-4\">\r\n <CheckCircle2 className=\"w-10 h-10 text-green-600 dark:text-green-400\" />\r\n </div>\r\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-white mb-2\">\r\n Email confirmé !\r\n </h2>\r\n <p className=\"text-gray-600 dark:text-gray-400 mb-6\">\r\n {message}\r\n </p>\r\n {email && (\r\n <p className=\"text-sm text-gray-500 dark:text-gray-400 mb-6\">\r\n Compte : <strong>{email}</strong>\r\n </p>\r\n )}\r\n <Link\r\n to=\"/login\"\r\n className=\"inline-flex items-center justify-center gap-2 px-6 py-3 bg-gradient-to-r from-blue-600 to-purple-600 text-white rounded-lg font-medium hover:from-blue-700 hover:to-purple-700 transition-all\"\r\n >\r\n Se connecter\r\n </Link>\r\n </div>\r\n )}\r\n\r\n {/* Error / Expired / Already Used States */}\r\n {(status === 'error' || status === 'expired' || status === 'already_used') && (\r\n <div className=\"text-center\">\r\n <div className={`w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4 ${\r\n status === 'already_used'\r\n ? 'bg-amber-100 dark:bg-amber-900/30'\r\n : 'bg-red-100 dark:bg-red-900/30'\r\n }`}>\r\n {status === 'already_used' ? (\r\n <CheckCircle2 className=\"w-10 h-10 text-amber-600 dark:text-amber-400\" />\r\n ) : (\r\n <XCircle className=\"w-10 h-10 text-red-600 dark:text-red-400\" />\r\n )}\r\n </div>\r\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-white mb-2\">\r\n {status === 'expired' && 'Lien expiré'}\r\n {status === 'already_used' && 'Lien déjà utilisé'}\r\n {status === 'error' && 'Erreur de confirmation'}\r\n </h2>\r\n <p className=\"text-gray-600 dark:text-gray-400 mb-6\">\r\n {message}\r\n </p>\r\n\r\n {/* Resend Form */}\r\n {(status === 'expired' || status === 'error') && (\r\n <div className=\"border-t border-gray-200 dark:border-gray-700 pt-6 mt-6\">\r\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-4\">\r\n Demander un nouveau lien de confirmation :\r\n </p>\r\n <form onSubmit={handleResendConfirmation} className=\"space-y-3\">\r\n <div className=\"relative\">\r\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\r\n <Mail className=\"h-5 w-5 text-gray-400\" />\r\n </div>\r\n <input\r\n type=\"email\"\r\n value={resendEmail}\r\n onChange={(e) => setResendEmail(e.target.value)}\r\n placeholder=\"Votre email\"\r\n className=\"block w-full pl-10 pr-3 py-2.5 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\r\n required\r\n />\r\n </div>\r\n <button\r\n type=\"submit\"\r\n disabled={isResending}\r\n className=\"w-full flex items-center justify-center gap-2 px-4 py-2.5 bg-blue-600 text-white rounded-lg font-medium hover:bg-blue-700 disabled:opacity-50 transition-colors\"\r\n >\r\n {isResending ? (\r\n <Loader2 className=\"w-5 h-5 animate-spin\" />\r\n ) : (\r\n <RefreshCw className=\"w-5 h-5\" />\r\n )}\r\n Renvoyer le lien\r\n </button>\r\n </form>\r\n {resendMessage && (\r\n <p className=\"mt-3 text-sm text-green-600 dark:text-green-400\">\r\n {resendMessage}\r\n </p>\r\n )}\r\n </div>\r\n )}\r\n\r\n {status === 'already_used' && (\r\n <Link\r\n to=\"/login\"\r\n className=\"inline-flex items-center justify-center gap-2 px-6 py-3 bg-gradient-to-r from-blue-600 to-purple-600 text-white rounded-lg font-medium hover:from-blue-700 hover:to-purple-700 transition-all\"\r\n >\r\n Se connecter\r\n </Link>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n <p className=\"text-center text-sm text-gray-500 dark:text-gray-400 mt-6\">\r\n <Link to=\"/login\" className=\"hover:underline\">\r\n Retour à la connexion\r\n </Link>\r\n </p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["ConfirmEmailPage","searchParams","useSearchParams","token","status","setStatus","useState","message","setMessage","email","setEmail","resendEmail","setResendEmail","isResending","setIsResending","resendMessage","setResendMessage","useEffect","response","authApi","err","error","code","jsxs","jsx","ThemeSwitcher","Loader2","CheckCircle2","Link","XCircle","e","Mail","RefreshCw"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossSchemaFkPage-BchJFOmH.js","sources":["../src/pages/system/docs/developer/CrossSchemaFkPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport { Link2, AlertTriangle, CheckCircle2, XCircle, Code2, ArrowRight, Zap } from 'lucide-react';\r\n\r\nfunction CodeBlock({ code, language = 'csharp', title }: { code: string; language?: string; title?: string }) {\r\n return (\r\n <div className=\"rounded-lg overflow-hidden\">\r\n {title && (\r\n <div className=\"bg-[var(--bg-tertiary)] px-4 py-2 border-b border-[var(--border-color)]\">\r\n <span className=\"text-sm font-medium\">{title}</span>\r\n </div>\r\n )}\r\n <pre className=\"bg-[var(--bg-tertiary)] p-4 overflow-x-auto\">\r\n <code className={`language-${language} text-sm`}>{code}</code>\r\n </pre>\r\n </div>\r\n );\r\n}\r\n\r\nexport function CrossSchemaFkPage() {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/developer\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.developer')}</Link>\r\n <span>/</span>\r\n <span>{t('developer.crossSchemaFk.breadcrumb.fkCrossSchema')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Link2 className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('developer.crossSchemaFk.header.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.header.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Problem Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <AlertTriangle className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.problem.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ExtensionsDbContext</code> {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">CoreDbContext</code>.\r\n </p>\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro2')}\r\n </p>\r\n <ul className=\"list-disc list-inside space-y-2 ml-4\">\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item1')}</li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item2')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">.Include()</code></li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item3')}</li>\r\n </ul>\r\n </div>\r\n\r\n <div className=\"mt-6\">\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <XCircle className=\"w-4 h-4 text-[var(--error-text)]\" />\r\n {t('developer.crossSchemaFk.problem.badExample.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.problem.badExample.codeTitle')} code={`// NE FAITES PAS CELA\r\npublic class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n public Guid CustomerId { get; private set; }\r\n\r\n // ERREUR: ExtensionsDbContext ne connait pas User\r\n public User Customer { get; private set; } // <-- NE FONCTIONNE PAS\r\n}\r\n\r\n// ERREUR: Include impossible\r\nvar order = await _context.Orders\r\n .Include(o => o.Customer) // <-- ERREUR DE COMPILATION\r\n .FirstOrDefaultAsync(o => o.Id == id);`} />\r\n </div>\r\n </section>\r\n\r\n {/* Solution Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-5 h-5 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.solution.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ICoreDataService</code>\r\n </p>\r\n </div>\r\n\r\n <div className=\"grid md:grid-cols-2 gap-6 mt-6\">\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.entity.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.entity.codeTitle')} code={`public class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n\r\n // Stocker seulement le GUID\r\n public Guid CustomerId { get; private set; }\r\n\r\n // PAS de navigation property vers User\r\n // private User Customer; // NON!\r\n\r\n // Factory method\r\n public static Order Create(\r\n string orderNumber,\r\n Guid customerId, // <-- GUID seulement\r\n decimal totalAmount)\r\n {\r\n return new Order\r\n {\r\n OrderNumber = orderNumber,\r\n CustomerId = customerId,\r\n // ...\r\n };\r\n }\r\n}`} />\r\n </div>\r\n\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.service.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.service.codeTitle')} code={`public class OrderService : IOrderService\r\n{\r\n private readonly IExtensionsDbContext _context;\r\n private readonly ICoreDataService _coreData;\r\n\r\n public OrderService(\r\n IExtensionsDbContext context,\r\n ICoreDataService coreData)\r\n {\r\n _context = context;\r\n _coreData = coreData;\r\n }\r\n\r\n public async Task<OrderDto> GetOrderAsync(Guid id)\r\n {\r\n // 1. Recuperer l'order\r\n var order = await _context.Orders\r\n .FirstOrDefaultAsync(o => o.Id == id);\r\n\r\n // 2. Recuperer le user via ICoreDataService\r\n var customer = await _coreData\r\n .GetUserBasicInfoAsync(order.CustomerId);\r\n\r\n // 3. Combiner les donnees\r\n return new OrderDto\r\n {\r\n Id = order.Id,\r\n OrderNumber = order.OrderNumber,\r\n CustomerName = customer?.DisplayName\r\n };\r\n }\r\n}`} />\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* ICoreDataService Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.coreDataService.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.coreDataService.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.coreDataService.codeTitle')} code={`public interface ICoreDataService\r\n{\r\n // === USERS ===\r\n Task<User?> GetUserByIdAsync(Guid userId, CancellationToken ct = default);\r\n Task<IReadOnlyList<User>> GetUsersByIdsAsync(IEnumerable<Guid> userIds, CancellationToken ct = default);\r\n Task<User?> GetUserByEmailAsync(string email, CancellationToken ct = default);\r\n Task<UserBasicInfo?> GetUserBasicInfoAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === ROLES ===\r\n Task<Role?> GetRoleByIdAsync(Guid roleId, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetRolesByIdsAsync(IEnumerable<Guid> roleIds, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetUserRolesAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === NAVIGATION ===\r\n Task<NavigationApplication?> GetNavigationApplicationByIdAsync(Guid appId, CancellationToken ct = default);\r\n Task<NavigationModule?> GetNavigationModuleByIdAsync(Guid moduleId, CancellationToken ct = default);\r\n\r\n // === TENANT ===\r\n Task<Organisation?> GetTenantByIdAsync(Guid tenantId, CancellationToken ct = default);\r\n Task<bool> TenantExistsAsync(Guid tenantId, CancellationToken ct = default);\r\n}`} />\r\n </section>\r\n\r\n {/* Performance Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Zap className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.performance.title')}\r\n </h2>\r\n\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.performance.intro')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"mt-4\">\r\n <CodeBlock title={t('developer.crossSchemaFk.performance.codeTitle')} code={`public async Task<IReadOnlyList<OrderDto>> GetOrdersAsync()\r\n{\r\n // 1. Charger tous les orders\r\n var orders = await _context.Orders\r\n .AsNoTracking()\r\n .ToListAsync();\r\n\r\n // 2. Extraire les IDs uniques\r\n var customerIds = orders\r\n .Select(o => o.CustomerId)\r\n .Distinct()\r\n .ToList();\r\n\r\n // 3. Charger tous les users en UNE requete\r\n var customers = await _coreData\r\n .GetUsersBasicInfoAsync(customerIds);\r\n\r\n // 4. Creer un dictionnaire pour lookup rapide\r\n var customerDict = customers.ToDictionary(c => c.Id);\r\n\r\n // 5. Mapper les resultats\r\n return orders.Select(o => new OrderDto\r\n {\r\n Id = o.Id,\r\n OrderNumber = o.OrderNumber,\r\n CustomerName = customerDict.TryGetValue(o.CustomerId, out var c)\r\n ? c.DisplayName\r\n : \"Unknown\"\r\n }).ToList();\r\n}`} />\r\n </div>\r\n </section>\r\n\r\n {/* Configuration Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.configuration.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.configuration.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.configuration.codeTitle')} code={`public class OrderConfiguration : IEntityTypeConfiguration<Order>\r\n{\r\n public void Configure(EntityTypeBuilder<Order> builder)\r\n {\r\n builder.ToTable(\"biz_Orders\", SchemaConstants.Extensions);\r\n\r\n builder.HasKey(e => e.Id);\r\n\r\n // CustomerId est un GUID simple, pas une FK EF Core\r\n builder.Property(e => e.CustomerId)\r\n .IsRequired();\r\n\r\n // Index pour les recherches par customer\r\n builder.HasIndex(e => e.CustomerId);\r\n\r\n // PAS DE .HasOne() ou .HasForeignKey() vers User!\r\n // builder.HasOne<User>()... // NON!\r\n }\r\n}`} />\r\n </section>\r\n\r\n {/* FAQ Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4\">{t('developer.crossSchemaFk.faq.title')}</h2>\r\n <div className=\"space-y-4\">\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question1')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer1')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question2')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer2')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question3')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer3')}\r\n </p>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-4 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/developer/dual-dbcontext\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n {t('developer.crossSchemaFk.navigation.prevPage')}\r\n </Link>\r\n <Link\r\n to=\"/system/docs/developer/infrastructure\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n {t('developer.crossSchemaFk.navigation.nextPage')}\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["CodeBlock","code","language","title","jsxs","jsx","CrossSchemaFkPage","t","useTranslation","Link","Link2","AlertTriangle","XCircle","CheckCircle2","Code2","Zap","ArrowRight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CrossSchemaFkPage-BchJFOmH.js","sources":["../src/pages/system/docs/developer/CrossSchemaFkPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport { Link2, AlertTriangle, CheckCircle2, XCircle, Code2, ArrowRight, Zap } from 'lucide-react';\r\n\r\nfunction CodeBlock({ code, language = 'csharp', title }: { code: string; language?: string; title?: string }) {\r\n return (\r\n <div className=\"rounded-lg overflow-hidden\">\r\n {title && (\r\n <div className=\"bg-[var(--bg-tertiary)] px-4 py-2 border-b border-[var(--border-color)]\">\r\n <span className=\"text-sm font-medium\">{title}</span>\r\n </div>\r\n )}\r\n <pre className=\"bg-[var(--bg-tertiary)] p-4 overflow-x-auto\">\r\n <code className={`language-${language} text-sm`}>{code}</code>\r\n </pre>\r\n </div>\r\n );\r\n}\r\n\r\nexport function CrossSchemaFkPage(): ReactElement {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/developer\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.developer')}</Link>\r\n <span>/</span>\r\n <span>{t('developer.crossSchemaFk.breadcrumb.fkCrossSchema')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Link2 className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('developer.crossSchemaFk.header.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.header.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Problem Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <AlertTriangle className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.problem.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ExtensionsDbContext</code> {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">CoreDbContext</code>.\r\n </p>\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro2')}\r\n </p>\r\n <ul className=\"list-disc list-inside space-y-2 ml-4\">\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item1')}</li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item2')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">.Include()</code></li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item3')}</li>\r\n </ul>\r\n </div>\r\n\r\n <div className=\"mt-6\">\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <XCircle className=\"w-4 h-4 text-[var(--error-text)]\" />\r\n {t('developer.crossSchemaFk.problem.badExample.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.problem.badExample.codeTitle')} code={`// NE FAITES PAS CELA\r\npublic class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n public Guid CustomerId { get; private set; }\r\n\r\n // ERREUR: ExtensionsDbContext ne connait pas User\r\n public User Customer { get; private set; } // <-- NE FONCTIONNE PAS\r\n}\r\n\r\n// ERREUR: Include impossible\r\nvar order = await _context.Orders\r\n .Include(o => o.Customer) // <-- ERREUR DE COMPILATION\r\n .FirstOrDefaultAsync(o => o.Id == id);`} />\r\n </div>\r\n </section>\r\n\r\n {/* Solution Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-5 h-5 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.solution.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ICoreDataService</code>\r\n </p>\r\n </div>\r\n\r\n <div className=\"grid md:grid-cols-2 gap-6 mt-6\">\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.entity.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.entity.codeTitle')} code={`public class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n\r\n // Stocker seulement le GUID\r\n public Guid CustomerId { get; private set; }\r\n\r\n // PAS de navigation property vers User\r\n // private User Customer; // NON!\r\n\r\n // Factory method\r\n public static Order Create(\r\n string orderNumber,\r\n Guid customerId, // <-- GUID seulement\r\n decimal totalAmount)\r\n {\r\n return new Order\r\n {\r\n OrderNumber = orderNumber,\r\n CustomerId = customerId,\r\n // ...\r\n };\r\n }\r\n}`} />\r\n </div>\r\n\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.service.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.service.codeTitle')} code={`public class OrderService : IOrderService\r\n{\r\n private readonly IExtensionsDbContext _context;\r\n private readonly ICoreDataService _coreData;\r\n\r\n public OrderService(\r\n IExtensionsDbContext context,\r\n ICoreDataService coreData)\r\n {\r\n _context = context;\r\n _coreData = coreData;\r\n }\r\n\r\n public async Task<OrderDto> GetOrderAsync(Guid id)\r\n {\r\n // 1. Recuperer l'order\r\n var order = await _context.Orders\r\n .FirstOrDefaultAsync(o => o.Id == id);\r\n\r\n // 2. Recuperer le user via ICoreDataService\r\n var customer = await _coreData\r\n .GetUserBasicInfoAsync(order.CustomerId);\r\n\r\n // 3. Combiner les donnees\r\n return new OrderDto\r\n {\r\n Id = order.Id,\r\n OrderNumber = order.OrderNumber,\r\n CustomerName = customer?.DisplayName\r\n };\r\n }\r\n}`} />\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* ICoreDataService Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.coreDataService.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.coreDataService.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.coreDataService.codeTitle')} code={`public interface ICoreDataService\r\n{\r\n // === USERS ===\r\n Task<User?> GetUserByIdAsync(Guid userId, CancellationToken ct = default);\r\n Task<IReadOnlyList<User>> GetUsersByIdsAsync(IEnumerable<Guid> userIds, CancellationToken ct = default);\r\n Task<User?> GetUserByEmailAsync(string email, CancellationToken ct = default);\r\n Task<UserBasicInfo?> GetUserBasicInfoAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === ROLES ===\r\n Task<Role?> GetRoleByIdAsync(Guid roleId, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetRolesByIdsAsync(IEnumerable<Guid> roleIds, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetUserRolesAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === NAVIGATION ===\r\n Task<NavigationApplication?> GetNavigationApplicationByIdAsync(Guid appId, CancellationToken ct = default);\r\n Task<NavigationModule?> GetNavigationModuleByIdAsync(Guid moduleId, CancellationToken ct = default);\r\n\r\n // === TENANT ===\r\n Task<Organisation?> GetTenantByIdAsync(Guid tenantId, CancellationToken ct = default);\r\n Task<bool> TenantExistsAsync(Guid tenantId, CancellationToken ct = default);\r\n}`} />\r\n </section>\r\n\r\n {/* Performance Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Zap className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.performance.title')}\r\n </h2>\r\n\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.performance.intro')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"mt-4\">\r\n <CodeBlock title={t('developer.crossSchemaFk.performance.codeTitle')} code={`public async Task<IReadOnlyList<OrderDto>> GetOrdersAsync()\r\n{\r\n // 1. Charger tous les orders\r\n var orders = await _context.Orders\r\n .AsNoTracking()\r\n .ToListAsync();\r\n\r\n // 2. Extraire les IDs uniques\r\n var customerIds = orders\r\n .Select(o => o.CustomerId)\r\n .Distinct()\r\n .ToList();\r\n\r\n // 3. Charger tous les users en UNE requete\r\n var customers = await _coreData\r\n .GetUsersBasicInfoAsync(customerIds);\r\n\r\n // 4. Creer un dictionnaire pour lookup rapide\r\n var customerDict = customers.ToDictionary(c => c.Id);\r\n\r\n // 5. Mapper les resultats\r\n return orders.Select(o => new OrderDto\r\n {\r\n Id = o.Id,\r\n OrderNumber = o.OrderNumber,\r\n CustomerName = customerDict.TryGetValue(o.CustomerId, out var c)\r\n ? c.DisplayName\r\n : \"Unknown\"\r\n }).ToList();\r\n}`} />\r\n </div>\r\n </section>\r\n\r\n {/* Configuration Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.configuration.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.configuration.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.configuration.codeTitle')} code={`public class OrderConfiguration : IEntityTypeConfiguration<Order>\r\n{\r\n public void Configure(EntityTypeBuilder<Order> builder)\r\n {\r\n builder.ToTable(\"biz_Orders\", SchemaConstants.Extensions);\r\n\r\n builder.HasKey(e => e.Id);\r\n\r\n // CustomerId est un GUID simple, pas une FK EF Core\r\n builder.Property(e => e.CustomerId)\r\n .IsRequired();\r\n\r\n // Index pour les recherches par customer\r\n builder.HasIndex(e => e.CustomerId);\r\n\r\n // PAS DE .HasOne() ou .HasForeignKey() vers User!\r\n // builder.HasOne<User>()... // NON!\r\n }\r\n}`} />\r\n </section>\r\n\r\n {/* FAQ Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4\">{t('developer.crossSchemaFk.faq.title')}</h2>\r\n <div className=\"space-y-4\">\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question1')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer1')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question2')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer2')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question3')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer3')}\r\n </p>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-4 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/developer/dual-dbcontext\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n {t('developer.crossSchemaFk.navigation.prevPage')}\r\n </Link>\r\n <Link\r\n to=\"/system/docs/developer/infrastructure\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n {t('developer.crossSchemaFk.navigation.nextPage')}\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["CodeBlock","code","language","title","jsxs","jsx","CrossSchemaFkPage","t","useTranslation","Link","Link2","AlertTriangle","XCircle","CheckCircle2","Code2","Zap","ArrowRight"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossSchemaFkPage-DqFNORYd.cjs","sources":["../src/pages/system/docs/developer/CrossSchemaFkPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport { Link2, AlertTriangle, CheckCircle2, XCircle, Code2, ArrowRight, Zap } from 'lucide-react';\r\n\r\nfunction CodeBlock({ code, language = 'csharp', title }: { code: string; language?: string; title?: string }) {\r\n return (\r\n <div className=\"rounded-lg overflow-hidden\">\r\n {title && (\r\n <div className=\"bg-[var(--bg-tertiary)] px-4 py-2 border-b border-[var(--border-color)]\">\r\n <span className=\"text-sm font-medium\">{title}</span>\r\n </div>\r\n )}\r\n <pre className=\"bg-[var(--bg-tertiary)] p-4 overflow-x-auto\">\r\n <code className={`language-${language} text-sm`}>{code}</code>\r\n </pre>\r\n </div>\r\n );\r\n}\r\n\r\nexport function CrossSchemaFkPage() {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/developer\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.developer')}</Link>\r\n <span>/</span>\r\n <span>{t('developer.crossSchemaFk.breadcrumb.fkCrossSchema')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Link2 className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('developer.crossSchemaFk.header.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.header.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Problem Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <AlertTriangle className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.problem.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ExtensionsDbContext</code> {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">CoreDbContext</code>.\r\n </p>\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro2')}\r\n </p>\r\n <ul className=\"list-disc list-inside space-y-2 ml-4\">\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item1')}</li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item2')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">.Include()</code></li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item3')}</li>\r\n </ul>\r\n </div>\r\n\r\n <div className=\"mt-6\">\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <XCircle className=\"w-4 h-4 text-[var(--error-text)]\" />\r\n {t('developer.crossSchemaFk.problem.badExample.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.problem.badExample.codeTitle')} code={`// NE FAITES PAS CELA\r\npublic class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n public Guid CustomerId { get; private set; }\r\n\r\n // ERREUR: ExtensionsDbContext ne connait pas User\r\n public User Customer { get; private set; } // <-- NE FONCTIONNE PAS\r\n}\r\n\r\n// ERREUR: Include impossible\r\nvar order = await _context.Orders\r\n .Include(o => o.Customer) // <-- ERREUR DE COMPILATION\r\n .FirstOrDefaultAsync(o => o.Id == id);`} />\r\n </div>\r\n </section>\r\n\r\n {/* Solution Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-5 h-5 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.solution.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ICoreDataService</code>\r\n </p>\r\n </div>\r\n\r\n <div className=\"grid md:grid-cols-2 gap-6 mt-6\">\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.entity.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.entity.codeTitle')} code={`public class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n\r\n // Stocker seulement le GUID\r\n public Guid CustomerId { get; private set; }\r\n\r\n // PAS de navigation property vers User\r\n // private User Customer; // NON!\r\n\r\n // Factory method\r\n public static Order Create(\r\n string orderNumber,\r\n Guid customerId, // <-- GUID seulement\r\n decimal totalAmount)\r\n {\r\n return new Order\r\n {\r\n OrderNumber = orderNumber,\r\n CustomerId = customerId,\r\n // ...\r\n };\r\n }\r\n}`} />\r\n </div>\r\n\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.service.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.service.codeTitle')} code={`public class OrderService : IOrderService\r\n{\r\n private readonly IExtensionsDbContext _context;\r\n private readonly ICoreDataService _coreData;\r\n\r\n public OrderService(\r\n IExtensionsDbContext context,\r\n ICoreDataService coreData)\r\n {\r\n _context = context;\r\n _coreData = coreData;\r\n }\r\n\r\n public async Task<OrderDto> GetOrderAsync(Guid id)\r\n {\r\n // 1. Recuperer l'order\r\n var order = await _context.Orders\r\n .FirstOrDefaultAsync(o => o.Id == id);\r\n\r\n // 2. Recuperer le user via ICoreDataService\r\n var customer = await _coreData\r\n .GetUserBasicInfoAsync(order.CustomerId);\r\n\r\n // 3. Combiner les donnees\r\n return new OrderDto\r\n {\r\n Id = order.Id,\r\n OrderNumber = order.OrderNumber,\r\n CustomerName = customer?.DisplayName\r\n };\r\n }\r\n}`} />\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* ICoreDataService Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.coreDataService.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.coreDataService.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.coreDataService.codeTitle')} code={`public interface ICoreDataService\r\n{\r\n // === USERS ===\r\n Task<User?> GetUserByIdAsync(Guid userId, CancellationToken ct = default);\r\n Task<IReadOnlyList<User>> GetUsersByIdsAsync(IEnumerable<Guid> userIds, CancellationToken ct = default);\r\n Task<User?> GetUserByEmailAsync(string email, CancellationToken ct = default);\r\n Task<UserBasicInfo?> GetUserBasicInfoAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === ROLES ===\r\n Task<Role?> GetRoleByIdAsync(Guid roleId, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetRolesByIdsAsync(IEnumerable<Guid> roleIds, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetUserRolesAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === NAVIGATION ===\r\n Task<NavigationApplication?> GetNavigationApplicationByIdAsync(Guid appId, CancellationToken ct = default);\r\n Task<NavigationModule?> GetNavigationModuleByIdAsync(Guid moduleId, CancellationToken ct = default);\r\n\r\n // === TENANT ===\r\n Task<Organisation?> GetTenantByIdAsync(Guid tenantId, CancellationToken ct = default);\r\n Task<bool> TenantExistsAsync(Guid tenantId, CancellationToken ct = default);\r\n}`} />\r\n </section>\r\n\r\n {/* Performance Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Zap className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.performance.title')}\r\n </h2>\r\n\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.performance.intro')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"mt-4\">\r\n <CodeBlock title={t('developer.crossSchemaFk.performance.codeTitle')} code={`public async Task<IReadOnlyList<OrderDto>> GetOrdersAsync()\r\n{\r\n // 1. Charger tous les orders\r\n var orders = await _context.Orders\r\n .AsNoTracking()\r\n .ToListAsync();\r\n\r\n // 2. Extraire les IDs uniques\r\n var customerIds = orders\r\n .Select(o => o.CustomerId)\r\n .Distinct()\r\n .ToList();\r\n\r\n // 3. Charger tous les users en UNE requete\r\n var customers = await _coreData\r\n .GetUsersBasicInfoAsync(customerIds);\r\n\r\n // 4. Creer un dictionnaire pour lookup rapide\r\n var customerDict = customers.ToDictionary(c => c.Id);\r\n\r\n // 5. Mapper les resultats\r\n return orders.Select(o => new OrderDto\r\n {\r\n Id = o.Id,\r\n OrderNumber = o.OrderNumber,\r\n CustomerName = customerDict.TryGetValue(o.CustomerId, out var c)\r\n ? c.DisplayName\r\n : \"Unknown\"\r\n }).ToList();\r\n}`} />\r\n </div>\r\n </section>\r\n\r\n {/* Configuration Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.configuration.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.configuration.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.configuration.codeTitle')} code={`public class OrderConfiguration : IEntityTypeConfiguration<Order>\r\n{\r\n public void Configure(EntityTypeBuilder<Order> builder)\r\n {\r\n builder.ToTable(\"biz_Orders\", SchemaConstants.Extensions);\r\n\r\n builder.HasKey(e => e.Id);\r\n\r\n // CustomerId est un GUID simple, pas une FK EF Core\r\n builder.Property(e => e.CustomerId)\r\n .IsRequired();\r\n\r\n // Index pour les recherches par customer\r\n builder.HasIndex(e => e.CustomerId);\r\n\r\n // PAS DE .HasOne() ou .HasForeignKey() vers User!\r\n // builder.HasOne<User>()... // NON!\r\n }\r\n}`} />\r\n </section>\r\n\r\n {/* FAQ Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4\">{t('developer.crossSchemaFk.faq.title')}</h2>\r\n <div className=\"space-y-4\">\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question1')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer1')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question2')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer2')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question3')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer3')}\r\n </p>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-4 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/developer/dual-dbcontext\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n {t('developer.crossSchemaFk.navigation.prevPage')}\r\n </Link>\r\n <Link\r\n to=\"/system/docs/developer/infrastructure\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n {t('developer.crossSchemaFk.navigation.nextPage')}\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["CodeBlock","code","language","title","jsxs","jsx","CrossSchemaFkPage","t","useTranslation","Link","Link2","AlertTriangle","XCircle","CheckCircle2","Code2","Zap","ArrowRight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CrossSchemaFkPage-DqFNORYd.cjs","sources":["../src/pages/system/docs/developer/CrossSchemaFkPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport { Link2, AlertTriangle, CheckCircle2, XCircle, Code2, ArrowRight, Zap } from 'lucide-react';\r\n\r\nfunction CodeBlock({ code, language = 'csharp', title }: { code: string; language?: string; title?: string }) {\r\n return (\r\n <div className=\"rounded-lg overflow-hidden\">\r\n {title && (\r\n <div className=\"bg-[var(--bg-tertiary)] px-4 py-2 border-b border-[var(--border-color)]\">\r\n <span className=\"text-sm font-medium\">{title}</span>\r\n </div>\r\n )}\r\n <pre className=\"bg-[var(--bg-tertiary)] p-4 overflow-x-auto\">\r\n <code className={`language-${language} text-sm`}>{code}</code>\r\n </pre>\r\n </div>\r\n );\r\n}\r\n\r\nexport function CrossSchemaFkPage(): ReactElement {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/developer\" className=\"hover:text-[var(--color-primary-600)]\">{t('developer.crossSchemaFk.breadcrumb.developer')}</Link>\r\n <span>/</span>\r\n <span>{t('developer.crossSchemaFk.breadcrumb.fkCrossSchema')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Link2 className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('developer.crossSchemaFk.header.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.header.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Problem Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <AlertTriangle className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.problem.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ExtensionsDbContext</code> {t('developer.crossSchemaFk.problem.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">CoreDbContext</code>.\r\n </p>\r\n <p>\r\n {t('developer.crossSchemaFk.problem.intro2')}\r\n </p>\r\n <ul className=\"list-disc list-inside space-y-2 ml-4\">\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item1')}</li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item2')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">.Include()</code></li>\r\n <li>{t('developer.crossSchemaFk.problem.limitations.item3')}</li>\r\n </ul>\r\n </div>\r\n\r\n <div className=\"mt-6\">\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <XCircle className=\"w-4 h-4 text-[var(--error-text)]\" />\r\n {t('developer.crossSchemaFk.problem.badExample.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.problem.badExample.codeTitle')} code={`// NE FAITES PAS CELA\r\npublic class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n public Guid CustomerId { get; private set; }\r\n\r\n // ERREUR: ExtensionsDbContext ne connait pas User\r\n public User Customer { get; private set; } // <-- NE FONCTIONNE PAS\r\n}\r\n\r\n// ERREUR: Include impossible\r\nvar order = await _context.Orders\r\n .Include(o => o.Customer) // <-- ERREUR DE COMPILATION\r\n .FirstOrDefaultAsync(o => o.Id == id);`} />\r\n </div>\r\n </section>\r\n\r\n {/* Solution Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-5 h-5 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.title')}\r\n </h2>\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.solution.intro')} <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">ICoreDataService</code>\r\n </p>\r\n </div>\r\n\r\n <div className=\"grid md:grid-cols-2 gap-6 mt-6\">\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.entity.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.entity.codeTitle')} code={`public class Order : BaseAuditableEntity\r\n{\r\n public string OrderNumber { get; private set; }\r\n\r\n // Stocker seulement le GUID\r\n public Guid CustomerId { get; private set; }\r\n\r\n // PAS de navigation property vers User\r\n // private User Customer; // NON!\r\n\r\n // Factory method\r\n public static Order Create(\r\n string orderNumber,\r\n Guid customerId, // <-- GUID seulement\r\n decimal totalAmount)\r\n {\r\n return new Order\r\n {\r\n OrderNumber = orderNumber,\r\n CustomerId = customerId,\r\n // ...\r\n };\r\n }\r\n}`} />\r\n </div>\r\n\r\n <div>\r\n <h3 className=\"font-semibold mb-2 flex items-center gap-2\">\r\n <CheckCircle2 className=\"w-4 h-4 text-[var(--success-text)]\" />\r\n {t('developer.crossSchemaFk.solution.service.title')}\r\n </h3>\r\n <CodeBlock title={t('developer.crossSchemaFk.solution.service.codeTitle')} code={`public class OrderService : IOrderService\r\n{\r\n private readonly IExtensionsDbContext _context;\r\n private readonly ICoreDataService _coreData;\r\n\r\n public OrderService(\r\n IExtensionsDbContext context,\r\n ICoreDataService coreData)\r\n {\r\n _context = context;\r\n _coreData = coreData;\r\n }\r\n\r\n public async Task<OrderDto> GetOrderAsync(Guid id)\r\n {\r\n // 1. Recuperer l'order\r\n var order = await _context.Orders\r\n .FirstOrDefaultAsync(o => o.Id == id);\r\n\r\n // 2. Recuperer le user via ICoreDataService\r\n var customer = await _coreData\r\n .GetUserBasicInfoAsync(order.CustomerId);\r\n\r\n // 3. Combiner les donnees\r\n return new OrderDto\r\n {\r\n Id = order.Id,\r\n OrderNumber = order.OrderNumber,\r\n CustomerName = customer?.DisplayName\r\n };\r\n }\r\n}`} />\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* ICoreDataService Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.coreDataService.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.coreDataService.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.coreDataService.codeTitle')} code={`public interface ICoreDataService\r\n{\r\n // === USERS ===\r\n Task<User?> GetUserByIdAsync(Guid userId, CancellationToken ct = default);\r\n Task<IReadOnlyList<User>> GetUsersByIdsAsync(IEnumerable<Guid> userIds, CancellationToken ct = default);\r\n Task<User?> GetUserByEmailAsync(string email, CancellationToken ct = default);\r\n Task<UserBasicInfo?> GetUserBasicInfoAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === ROLES ===\r\n Task<Role?> GetRoleByIdAsync(Guid roleId, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetRolesByIdsAsync(IEnumerable<Guid> roleIds, CancellationToken ct = default);\r\n Task<IReadOnlyList<Role>> GetUserRolesAsync(Guid userId, CancellationToken ct = default);\r\n\r\n // === NAVIGATION ===\r\n Task<NavigationApplication?> GetNavigationApplicationByIdAsync(Guid appId, CancellationToken ct = default);\r\n Task<NavigationModule?> GetNavigationModuleByIdAsync(Guid moduleId, CancellationToken ct = default);\r\n\r\n // === TENANT ===\r\n Task<Organisation?> GetTenantByIdAsync(Guid tenantId, CancellationToken ct = default);\r\n Task<bool> TenantExistsAsync(Guid tenantId, CancellationToken ct = default);\r\n}`} />\r\n </section>\r\n\r\n {/* Performance Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Zap className=\"w-5 h-5 text-[var(--warning-text)]\" />\r\n {t('developer.crossSchemaFk.performance.title')}\r\n </h2>\r\n\r\n <div className=\"space-y-4 text-[var(--text-secondary)]\">\r\n <p>\r\n {t('developer.crossSchemaFk.performance.intro')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"mt-4\">\r\n <CodeBlock title={t('developer.crossSchemaFk.performance.codeTitle')} code={`public async Task<IReadOnlyList<OrderDto>> GetOrdersAsync()\r\n{\r\n // 1. Charger tous les orders\r\n var orders = await _context.Orders\r\n .AsNoTracking()\r\n .ToListAsync();\r\n\r\n // 2. Extraire les IDs uniques\r\n var customerIds = orders\r\n .Select(o => o.CustomerId)\r\n .Distinct()\r\n .ToList();\r\n\r\n // 3. Charger tous les users en UNE requete\r\n var customers = await _coreData\r\n .GetUsersBasicInfoAsync(customerIds);\r\n\r\n // 4. Creer un dictionnaire pour lookup rapide\r\n var customerDict = customers.ToDictionary(c => c.Id);\r\n\r\n // 5. Mapper les resultats\r\n return orders.Select(o => new OrderDto\r\n {\r\n Id = o.Id,\r\n OrderNumber = o.OrderNumber,\r\n CustomerName = customerDict.TryGetValue(o.CustomerId, out var c)\r\n ? c.DisplayName\r\n : \"Unknown\"\r\n }).ToList();\r\n}`} />\r\n </div>\r\n </section>\r\n\r\n {/* Configuration Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4 flex items-center gap-2\">\r\n <Code2 className=\"w-5 h-5\" />\r\n {t('developer.crossSchemaFk.configuration.title')}\r\n </h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n {t('developer.crossSchemaFk.configuration.intro')}\r\n </p>\r\n\r\n <CodeBlock title={t('developer.crossSchemaFk.configuration.codeTitle')} code={`public class OrderConfiguration : IEntityTypeConfiguration<Order>\r\n{\r\n public void Configure(EntityTypeBuilder<Order> builder)\r\n {\r\n builder.ToTable(\"biz_Orders\", SchemaConstants.Extensions);\r\n\r\n builder.HasKey(e => e.Id);\r\n\r\n // CustomerId est un GUID simple, pas une FK EF Core\r\n builder.Property(e => e.CustomerId)\r\n .IsRequired();\r\n\r\n // Index pour les recherches par customer\r\n builder.HasIndex(e => e.CustomerId);\r\n\r\n // PAS DE .HasOne() ou .HasForeignKey() vers User!\r\n // builder.HasOne<User>()... // NON!\r\n }\r\n}`} />\r\n </section>\r\n\r\n {/* FAQ Section */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-bold mb-4\">{t('developer.crossSchemaFk.faq.title')}</h2>\r\n <div className=\"space-y-4\">\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question1')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer1')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question2')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer2')}\r\n </p>\r\n </div>\r\n\r\n <div className=\"p-4 bg-[var(--bg-secondary)] rounded-lg\">\r\n <h3 className=\"font-semibold mb-2\">{t('developer.crossSchemaFk.faq.question3')}</h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {t('developer.crossSchemaFk.faq.answer3')}\r\n </p>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-4 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/developer/dual-dbcontext\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n {t('developer.crossSchemaFk.navigation.prevPage')}\r\n </Link>\r\n <Link\r\n to=\"/system/docs/developer/infrastructure\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n {t('developer.crossSchemaFk.navigation.nextPage')}\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["CodeBlock","code","language","title","jsxs","jsx","CrossSchemaFkPage","t","useTranslation","Link","Link2","AlertTriangle","XCircle","CheckCircle2","Code2","Zap","ArrowRight"],"mappings":"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"}
|
|
@@ -2,17 +2,17 @@ import { jsxs as s, jsx as a, Fragment as z } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as N, useMemo as T, useRef as H, useEffect as J } from "react";
|
|
3
3
|
import { Link as A } from "react-router-dom";
|
|
4
4
|
import { useTranslation as _ } from "react-i18next";
|
|
5
|
-
import { Database as Y, Key as x, Link2 as E, ArrowRight as P, Layers as
|
|
5
|
+
import { Database as Y, Key as x, Link2 as E, ArrowRight as P, Layers as M, Shield as Z, Users as ee, Headphones as ae, Building2 as se, Bot as ne, Mail as oe, Settings as re, CloudCog as te, Briefcase as me, Globe as de, KeyRound as ce, ZoomOut as ie, ZoomIn as le, Maximize2 as pe, Table as S, X as ue, ChevronRight as ve } from "lucide-react";
|
|
6
6
|
function ye(e) {
|
|
7
|
-
const
|
|
8
|
-
return
|
|
7
|
+
const p = /^(\w+)\s*\(([^)]+)\)$/.exec(e);
|
|
8
|
+
return p ? { targetTable: p[1], cardinality: p[2] } : null;
|
|
9
9
|
}
|
|
10
10
|
function be(e) {
|
|
11
11
|
return [
|
|
12
12
|
{
|
|
13
13
|
name: "nav",
|
|
14
14
|
description: e("developer.database.schema.nav.description"),
|
|
15
|
-
icon:
|
|
15
|
+
icon: M,
|
|
16
16
|
color: "from-blue-500 to-cyan-500",
|
|
17
17
|
tables: [
|
|
18
18
|
{
|
|
@@ -881,25 +881,21 @@ function be(e) {
|
|
|
881
881
|
}
|
|
882
882
|
];
|
|
883
883
|
}
|
|
884
|
-
function he({ table: e, schemaName:
|
|
884
|
+
function he({ table: e, schemaName: p, schemaColor: d, onClose: u, t: o }) {
|
|
885
885
|
J(() => {
|
|
886
|
-
const n = (
|
|
887
|
-
|
|
886
|
+
const n = (l) => {
|
|
887
|
+
l.key === "Escape" && u();
|
|
888
888
|
};
|
|
889
889
|
return document.addEventListener("keydown", n), () => document.removeEventListener("keydown", n);
|
|
890
|
-
}, [
|
|
891
|
-
const c = e.columns.filter((n) => n.isPrimaryKey), t = e.columns.filter((n) => n.isForeignKey && !n.isPrimaryKey), m = e.columns.filter((n) => !n.isPrimaryKey && !n.isForeignKey), b = e.columns.filter((n) => n.enumValues
|
|
890
|
+
}, [u]);
|
|
891
|
+
const c = e.columns.filter((n) => n.isPrimaryKey), t = e.columns.filter((n) => n.isForeignKey && !n.isPrimaryKey), m = e.columns.filter((n) => !n.isPrimaryKey && !n.isForeignKey), b = e.columns.filter((n) => (n.enumValues?.length ?? 0) > 0);
|
|
892
892
|
return /* @__PURE__ */ s("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
|
|
893
893
|
/* @__PURE__ */ a(
|
|
894
|
-
"
|
|
894
|
+
"button",
|
|
895
895
|
{
|
|
896
|
+
type: "button",
|
|
896
897
|
className: "absolute inset-0 bg-black/50 backdrop-blur-sm",
|
|
897
|
-
onClick:
|
|
898
|
-
onKeyDown: (n) => {
|
|
899
|
-
(n.key === "Enter" || n.key === " ") && l();
|
|
900
|
-
},
|
|
901
|
-
role: "button",
|
|
902
|
-
tabIndex: 0,
|
|
898
|
+
onClick: u,
|
|
903
899
|
"aria-label": "Close modal"
|
|
904
900
|
}
|
|
905
901
|
),
|
|
@@ -909,7 +905,7 @@ function he({ table: e, schemaName: u, schemaColor: d, onClose: l, t: o }) {
|
|
|
909
905
|
/* @__PURE__ */ a(S, { className: "w-6 h-6" }),
|
|
910
906
|
/* @__PURE__ */ s("div", { children: [
|
|
911
907
|
/* @__PURE__ */ s("h2", { className: "text-xl font-bold", children: [
|
|
912
|
-
|
|
908
|
+
p,
|
|
913
909
|
".",
|
|
914
910
|
e.name
|
|
915
911
|
] }),
|
|
@@ -919,7 +915,7 @@ function he({ table: e, schemaName: u, schemaColor: d, onClose: l, t: o }) {
|
|
|
919
915
|
/* @__PURE__ */ a(
|
|
920
916
|
"button",
|
|
921
917
|
{
|
|
922
|
-
onClick:
|
|
918
|
+
onClick: u,
|
|
923
919
|
className: "p-2 hover:bg-white/20 rounded-lg transition-colors",
|
|
924
920
|
children: /* @__PURE__ */ a(ue, { className: "w-5 h-5" })
|
|
925
921
|
}
|
|
@@ -992,25 +988,25 @@ function he({ table: e, schemaName: u, schemaColor: d, onClose: l, t: o }) {
|
|
|
992
988
|
/* @__PURE__ */ a("p", { className: "text-sm text-[var(--text-secondary)] mt-1", children: n.description })
|
|
993
989
|
] }, n.name)) })
|
|
994
990
|
] }),
|
|
995
|
-
e.relations
|
|
991
|
+
(e.relations?.length ?? 0) > 0 && /* @__PURE__ */ s("div", { children: [
|
|
996
992
|
/* @__PURE__ */ s("h3", { className: "text-sm font-semibold text-[var(--text-primary)] mb-2 flex items-center gap-2", children: [
|
|
997
993
|
/* @__PURE__ */ a(E, { className: "w-4 h-4" }),
|
|
998
994
|
o("developer.database.modal.relations"),
|
|
999
995
|
" (",
|
|
1000
|
-
e.relations
|
|
996
|
+
e.relations?.length,
|
|
1001
997
|
")"
|
|
1002
998
|
] }),
|
|
1003
|
-
/* @__PURE__ */ a("div", { className: "flex flex-wrap gap-2", children: e.relations
|
|
1004
|
-
const
|
|
999
|
+
/* @__PURE__ */ a("div", { className: "flex flex-wrap gap-2", children: e.relations?.map((n) => {
|
|
1000
|
+
const l = ye(n);
|
|
1005
1001
|
return /* @__PURE__ */ a(
|
|
1006
1002
|
"span",
|
|
1007
1003
|
{
|
|
1008
1004
|
className: "px-3 py-1.5 rounded-lg bg-[var(--bg-secondary)] border border-[var(--border-color)] text-sm",
|
|
1009
|
-
children:
|
|
1010
|
-
/* @__PURE__ */ a("span", { className: "font-semibold", children:
|
|
1005
|
+
children: l ? /* @__PURE__ */ s(z, { children: [
|
|
1006
|
+
/* @__PURE__ */ a("span", { className: "font-semibold", children: l.targetTable }),
|
|
1011
1007
|
/* @__PURE__ */ s("span", { className: "text-[var(--text-tertiary)] ml-1", children: [
|
|
1012
1008
|
"(",
|
|
1013
|
-
|
|
1009
|
+
l.cardinality,
|
|
1014
1010
|
")"
|
|
1015
1011
|
] })
|
|
1016
1012
|
] }) : n
|
|
@@ -1021,7 +1017,7 @@ function he({ table: e, schemaName: u, schemaColor: d, onClose: l, t: o }) {
|
|
|
1021
1017
|
] }),
|
|
1022
1018
|
b.length > 0 && /* @__PURE__ */ s("div", { children: [
|
|
1023
1019
|
/* @__PURE__ */ s("h3", { className: "text-sm font-semibold text-[var(--color-primary-600)] mb-3 flex items-center gap-2", children: [
|
|
1024
|
-
/* @__PURE__ */ a(
|
|
1020
|
+
/* @__PURE__ */ a(M, { className: "w-4 h-4" }),
|
|
1025
1021
|
o("developer.database.modal.enumValues"),
|
|
1026
1022
|
" (",
|
|
1027
1023
|
b.length,
|
|
@@ -1036,16 +1032,16 @@ function he({ table: e, schemaName: u, schemaColor: d, onClose: l, t: o }) {
|
|
|
1036
1032
|
")"
|
|
1037
1033
|
] })
|
|
1038
1034
|
] }),
|
|
1039
|
-
/* @__PURE__ */ a("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-2", children: n.enumValues?.map((
|
|
1035
|
+
/* @__PURE__ */ a("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-2", children: n.enumValues?.map((l) => /* @__PURE__ */ s(
|
|
1040
1036
|
"div",
|
|
1041
1037
|
{
|
|
1042
1038
|
className: "flex items-center justify-between px-3 py-2 rounded bg-[var(--bg-primary)] border border-[var(--border-color)]",
|
|
1043
1039
|
children: [
|
|
1044
|
-
/* @__PURE__ */ a("span", { className: "font-medium text-sm", children:
|
|
1045
|
-
/* @__PURE__ */ a("span", { className: "text-xs font-mono px-2 py-0.5 rounded bg-[var(--color-primary-600)]/10 text-[var(--color-primary-600)]", children:
|
|
1040
|
+
/* @__PURE__ */ a("span", { className: "font-medium text-sm", children: l.name }),
|
|
1041
|
+
/* @__PURE__ */ a("span", { className: "text-xs font-mono px-2 py-0.5 rounded bg-[var(--color-primary-600)]/10 text-[var(--color-primary-600)]", children: l.value })
|
|
1046
1042
|
]
|
|
1047
1043
|
},
|
|
1048
|
-
|
|
1044
|
+
l.value
|
|
1049
1045
|
)) })
|
|
1050
1046
|
] }, n.name)) })
|
|
1051
1047
|
] })
|
|
@@ -1068,9 +1064,9 @@ function he({ table: e, schemaName: u, schemaColor: d, onClose: l, t: o }) {
|
|
|
1068
1064
|
] })
|
|
1069
1065
|
] });
|
|
1070
1066
|
}
|
|
1071
|
-
function Ie({ table: e, position:
|
|
1067
|
+
function Ie({ table: e, position: p, isHighlighted: d, onClick: u, t: o }) {
|
|
1072
1068
|
const c = e.columns.filter((n) => n.isPrimaryKey), t = e.columns.filter((n) => n.isForeignKey && !n.isPrimaryKey), m = [...c, ...t].slice(0, 5), b = e.columns.length > m.length;
|
|
1073
|
-
return /* @__PURE__ */ s("g", { transform: `translate(${
|
|
1069
|
+
return /* @__PURE__ */ s("g", { transform: `translate(${p.x}, ${p.y})`, children: [
|
|
1074
1070
|
/* @__PURE__ */ a(
|
|
1075
1071
|
"rect",
|
|
1076
1072
|
{
|
|
@@ -1080,7 +1076,7 @@ function Ie({ table: e, position: u, isHighlighted: d, onClick: l, t: o }) {
|
|
|
1080
1076
|
height: 60 + m.length * 22 + (b ? 20 : 0),
|
|
1081
1077
|
rx: "8",
|
|
1082
1078
|
className: `fill-[var(--bg-primary)] stroke-[var(--border-color)] stroke-1 cursor-pointer transition-all ${d ? "stroke-[var(--color-primary-600)] stroke-2" : ""}`,
|
|
1083
|
-
onClick:
|
|
1079
|
+
onClick: u,
|
|
1084
1080
|
style: { filter: d ? "drop-shadow(0 4px 12px rgba(var(--color-primary-rgb), 0.3))" : "drop-shadow(0 2px 4px rgba(0,0,0,0.1))" }
|
|
1085
1081
|
}
|
|
1086
1082
|
),
|
|
@@ -1093,7 +1089,7 @@ function Ie({ table: e, position: u, isHighlighted: d, onClick: l, t: o }) {
|
|
|
1093
1089
|
height: "36",
|
|
1094
1090
|
rx: "8",
|
|
1095
1091
|
className: "fill-[var(--color-primary-600)] cursor-pointer",
|
|
1096
|
-
onClick:
|
|
1092
|
+
onClick: u
|
|
1097
1093
|
}
|
|
1098
1094
|
),
|
|
1099
1095
|
/* @__PURE__ */ a(
|
|
@@ -1112,11 +1108,11 @@ function Ie({ table: e, position: u, isHighlighted: d, onClick: l, t: o }) {
|
|
|
1112
1108
|
x: "10",
|
|
1113
1109
|
y: "24",
|
|
1114
1110
|
className: "fill-white text-xs font-semibold cursor-pointer",
|
|
1115
|
-
onClick:
|
|
1111
|
+
onClick: u,
|
|
1116
1112
|
children: e.name
|
|
1117
1113
|
}
|
|
1118
1114
|
),
|
|
1119
|
-
m.map((n,
|
|
1115
|
+
m.map((n, l) => /* @__PURE__ */ s("g", { transform: `translate(0, ${44 + l * 22})`, children: [
|
|
1120
1116
|
n.isPrimaryKey ? /* @__PURE__ */ a("circle", { cx: "14", cy: "6", r: "4", className: "fill-[var(--warning-text)]" }) : /* @__PURE__ */ a("circle", { cx: "14", cy: "6", r: "4", className: "fill-[var(--info-text)]" }),
|
|
1121
1117
|
/* @__PURE__ */ a("text", { x: "26", y: "10", className: "fill-[var(--text-primary)] text-[10px] font-mono", children: n.name }),
|
|
1122
1118
|
/* @__PURE__ */ a("text", { x: "170", y: "10", textAnchor: "end", className: "fill-[var(--text-tertiary)] text-[8px] font-mono", children: n.type.length > 12 ? n.type.slice(0, 12) + "..." : n.type })
|
|
@@ -1128,7 +1124,7 @@ function Ie({ table: e, position: u, isHighlighted: d, onClick: l, t: o }) {
|
|
|
1128
1124
|
y: 54 + m.length * 22,
|
|
1129
1125
|
textAnchor: "middle",
|
|
1130
1126
|
className: "fill-[var(--text-tertiary)] text-[10px] cursor-pointer",
|
|
1131
|
-
onClick:
|
|
1127
|
+
onClick: u,
|
|
1132
1128
|
children: [
|
|
1133
1129
|
"+",
|
|
1134
1130
|
e.columns.length - m.length,
|
|
@@ -1139,8 +1135,8 @@ function Ie({ table: e, position: u, isHighlighted: d, onClick: l, t: o }) {
|
|
|
1139
1135
|
)
|
|
1140
1136
|
] });
|
|
1141
1137
|
}
|
|
1142
|
-
function Ne({ schema: e, onTableClick:
|
|
1143
|
-
const
|
|
1138
|
+
function Ne({ schema: e, onTableClick: p, t: d }) {
|
|
1139
|
+
const u = H(null), o = H(null), [c, t] = N(1), [m, b] = N({ x: 0, y: 0 }), [n, l] = N(!1), [D, K] = N({ x: 0, y: 0 }), [f, V] = N(null), h = T(() => {
|
|
1144
1140
|
const r = {}, i = Math.ceil(Math.sqrt(e.tables.length)), v = 220, R = 200;
|
|
1145
1141
|
return e.tables.forEach((y, I) => {
|
|
1146
1142
|
const g = I % i, C = Math.floor(I / i);
|
|
@@ -1165,11 +1161,11 @@ function Ne({ schema: e, onTableClick: u, t: d }) {
|
|
|
1165
1161
|
const r = Math.max(...Object.values(h).map((i) => i.y)) + 250;
|
|
1166
1162
|
return Math.max(r, 400);
|
|
1167
1163
|
}, [h]), B = (r) => {
|
|
1168
|
-
r.button === 0 && (
|
|
1164
|
+
r.button === 0 && (l(!0), K({ x: r.clientX - m.x, y: r.clientY - m.y }));
|
|
1169
1165
|
}, L = (r) => {
|
|
1170
1166
|
n && b({ x: r.clientX - D.x, y: r.clientY - D.y });
|
|
1171
1167
|
}, F = () => {
|
|
1172
|
-
|
|
1168
|
+
l(!1);
|
|
1173
1169
|
}, O = () => t((r) => Math.min(r + 0.2, 2)), G = () => t((r) => Math.max(r - 0.2, 0.4)), $ = () => {
|
|
1174
1170
|
t(1), b({ x: 0, y: 0 });
|
|
1175
1171
|
}, X = (r, i) => {
|
|
@@ -1236,7 +1232,7 @@ function Ne({ schema: e, onTableClick: u, t: d }) {
|
|
|
1236
1232
|
children: /* @__PURE__ */ s(
|
|
1237
1233
|
"svg",
|
|
1238
1234
|
{
|
|
1239
|
-
ref:
|
|
1235
|
+
ref: u,
|
|
1240
1236
|
width: "100%",
|
|
1241
1237
|
height: "100%",
|
|
1242
1238
|
viewBox: `${-m.x / c} ${-m.y / c} ${k / c} ${w / c}`,
|
|
@@ -1274,7 +1270,7 @@ function Ne({ schema: e, onTableClick: u, t: d }) {
|
|
|
1274
1270
|
schemaName: e.name,
|
|
1275
1271
|
position: h[r.name],
|
|
1276
1272
|
isHighlighted: f === r.name,
|
|
1277
|
-
onClick: () =>
|
|
1273
|
+
onClick: () => p(r),
|
|
1278
1274
|
t: d
|
|
1279
1275
|
}
|
|
1280
1276
|
)
|
|
@@ -1303,7 +1299,7 @@ function Ne({ schema: e, onTableClick: u, t: d }) {
|
|
|
1303
1299
|
] });
|
|
1304
1300
|
}
|
|
1305
1301
|
function Ce() {
|
|
1306
|
-
const [e,
|
|
1302
|
+
const [e, p] = N(null), [d, u] = N(null), { t: o } = _("docs"), c = T(() => be(o), [o]);
|
|
1307
1303
|
return /* @__PURE__ */ s("div", { className: "space-y-8", children: [
|
|
1308
1304
|
/* @__PURE__ */ s("div", { className: "flex items-center gap-2 text-sm text-[var(--text-secondary)]", children: [
|
|
1309
1305
|
/* @__PURE__ */ a(A, { to: "/system/docs", className: "hover:text-[var(--color-primary-600)]", children: o("breadcrumb.documentation") }),
|
|
@@ -1338,7 +1334,7 @@ function Ce() {
|
|
|
1338
1334
|
"button",
|
|
1339
1335
|
{
|
|
1340
1336
|
onClick: () => {
|
|
1341
|
-
|
|
1337
|
+
u(d === t.name ? null : t.name), document.getElementById(`schema-${t.name}`)?.scrollIntoView({ behavior: "smooth" });
|
|
1342
1338
|
},
|
|
1343
1339
|
className: `px-3 py-2 rounded-lg border transition-all flex items-center gap-2 ${d === t.name ? "border-[var(--color-primary-600)] bg-[var(--color-primary-600)]/10 text-[var(--color-primary-600)]" : "border-[var(--border-color)] hover:border-[var(--color-primary-600)] hover:bg-[var(--bg-hover)]"}`,
|
|
1344
1340
|
children: [
|
|
@@ -1368,7 +1364,7 @@ function Ce() {
|
|
|
1368
1364
|
Ne,
|
|
1369
1365
|
{
|
|
1370
1366
|
schema: t,
|
|
1371
|
-
onTableClick: (m) =>
|
|
1367
|
+
onTableClick: (m) => p({ table: m, schema: t }),
|
|
1372
1368
|
t: o
|
|
1373
1369
|
}
|
|
1374
1370
|
)
|
|
@@ -1448,7 +1444,7 @@ function Ce() {
|
|
|
1448
1444
|
table: e.table,
|
|
1449
1445
|
schemaName: e.schema.name,
|
|
1450
1446
|
schemaColor: e.schema.color,
|
|
1451
|
-
onClose: () =>
|
|
1447
|
+
onClose: () => p(null),
|
|
1452
1448
|
t: o
|
|
1453
1449
|
}
|
|
1454
1450
|
)
|
|
@@ -1457,4 +1453,4 @@ function Ce() {
|
|
|
1457
1453
|
export {
|
|
1458
1454
|
Ce as DatabasePage
|
|
1459
1455
|
};
|
|
1460
|
-
//# sourceMappingURL=DatabasePage-
|
|
1456
|
+
//# sourceMappingURL=DatabasePage-BnaX9sis.js.map
|