@atlashub/smartstack 3.30.0 → 3.32.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/chunks/{AgentSkillsPage-DJb49NMA.js → AgentSkillsPage-BMxOA-nm.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-DJb49NMA.js.map → AgentSkillsPage-BMxOA-nm.js.map} +1 -1
- package/dist/chunks/{AgentSkillsPage-CVq3qZoe.js → AgentSkillsPage-DSwfoazB.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-CVq3qZoe.js.map → AgentSkillsPage-DSwfoazB.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-oHEi-sFh.js → AgentWorkloadPage-B_emq8kd.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-oHEi-sFh.js.map → AgentWorkloadPage-B_emq8kd.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-D_nk3gKj.js → AgentWorkloadPage-_USTeYWz.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-D_nk3gKj.js.map → AgentWorkloadPage-_USTeYWz.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-Cr0q2HnB.js → ApiCatalogDetailPage-BC_HxVu5.js} +3 -3
- package/dist/chunks/{ApiCatalogDetailPage-Cr0q2HnB.js.map → ApiCatalogDetailPage-BC_HxVu5.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-DX8buBkV.js → ApiCatalogDetailPage-BI7zyZAd.js} +2 -2
- package/dist/chunks/{ApiCatalogDetailPage-DX8buBkV.js.map → ApiCatalogDetailPage-BI7zyZAd.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-DqboIzZE.js → ApiCatalogPage-CutaHo5K.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-DqboIzZE.js.map → ApiCatalogPage-CutaHo5K.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-DN7sazvI.js → ApiCatalogPage-M80MorHU.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-DN7sazvI.js.map → ApiCatalogPage-M80MorHU.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage--9YwwS5A.js → ApplicationDetailPage-DVY0wua0.js} +2 -2
- package/dist/chunks/{ApplicationDetailPage--9YwwS5A.js.map → ApplicationDetailPage-DVY0wua0.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-CCNjr64K.js → ApplicationDetailPage-DzszwaIZ.js} +4 -4
- package/dist/chunks/{ApplicationDetailPage-CCNjr64K.js.map → ApplicationDetailPage-DzszwaIZ.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-Bs-Xgca4.js → ApplicationsDashboardPage-B3ptvnJz.js} +3 -3
- package/dist/chunks/{ApplicationsDashboardPage-Bs-Xgca4.js.map → ApplicationsDashboardPage-B3ptvnJz.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-BSsHN3Yj.js → ApplicationsDashboardPage-D0pxqbEc.js} +2 -2
- package/dist/chunks/{ApplicationsDashboardPage-BSsHN3Yj.js.map → ApplicationsDashboardPage-D0pxqbEc.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-DDysNWJ5.js → ApplicationsGridPage-Ca23FBSP.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-DDysNWJ5.js.map → ApplicationsGridPage-Ca23FBSP.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-s1WEzOXS.js → ApplicationsGridPage-qi2UCD24.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-s1WEzOXS.js.map → ApplicationsGridPage-qi2UCD24.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-B3CSMiV0.js → ApplicationsListPage-CEUmBXN0.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-B3CSMiV0.js.map → ApplicationsListPage-CEUmBXN0.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-B6ZCecIl.js → ApplicationsListPage-cE82bv8j.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-B6ZCecIl.js.map → ApplicationsListPage-cE82bv8j.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-ztPwoAGt.js → ApplicationsPage-DW1BrVVN.js} +4 -4
- package/dist/chunks/{ApplicationsPage-ztPwoAGt.js.map → ApplicationsPage-DW1BrVVN.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-BBaiBM--.js → ApplicationsPage-RAqTs5HI.js} +2 -2
- package/dist/chunks/{ApplicationsPage-BBaiBM--.js.map → ApplicationsPage-RAqTs5HI.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-CK4L4rBO.js → AssignmentRulesPage-C0qnk3oR.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-CK4L4rBO.js.map → AssignmentRulesPage-C0qnk3oR.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-DFSVFFXr.js → AssignmentRulesPage-CVgFmhEs.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-DFSVFFXr.js.map → AssignmentRulesPage-CVgFmhEs.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-JCLpyg94.js → AssignmentsPage-Bv9HYtYN.js} +2 -2
- package/dist/chunks/{AssignmentsPage-JCLpyg94.js.map → AssignmentsPage-Bv9HYtYN.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-Bp7oQD7Q.js → AssignmentsPage-z1q1C9Uz.js} +2 -2
- package/dist/chunks/{AssignmentsPage-Bp7oQD7Q.js.map → AssignmentsPage-z1q1C9Uz.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-Bl9xlJ3h.js → AuthCallbackPage-CcteN6Kv.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-Bl9xlJ3h.js.map → AuthCallbackPage-CcteN6Kv.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-CzMHz4jy.js → AuthCallbackPage-DL5PJUYJ.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-CzMHz4jy.js.map → AuthCallbackPage-DL5PJUYJ.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-D_8T1vqV.js → ConfirmEmailPage-BP8VUz-A.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-D_8T1vqV.js.map → ConfirmEmailPage-BP8VUz-A.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-M7mJgXvn.js → ConfirmEmailPage-CeflKXpN.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-M7mJgXvn.js.map → ConfirmEmailPage-CeflKXpN.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-BNEGavlu.js → CreateSupportTicketPage-BAdvWb_8.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-BNEGavlu.js.map → CreateSupportTicketPage-BAdvWb_8.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-C2X2mfds.js → CreateSupportTicketPage-DDiv79-p.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-C2X2mfds.js.map → CreateSupportTicketPage-DDiv79-p.js.map} +1 -1
- package/dist/chunks/{DashboardPage-4oy2YqvT.js → DashboardPage-B_uyyRRE.js} +2 -2
- package/dist/chunks/{DashboardPage-4oy2YqvT.js.map → DashboardPage-B_uyyRRE.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CPArUG-S.js → DashboardPage-CpoduSu7.js} +2 -2
- package/dist/chunks/{DashboardPage-CPArUG-S.js.map → DashboardPage-CpoduSu7.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CO-8B8EI.js → DashboardPage-D4pyUgdM.js} +3 -3
- package/dist/chunks/{DashboardPage-CO-8B8EI.js.map → DashboardPage-D4pyUgdM.js.map} +1 -1
- package/dist/chunks/{DashboardPage-D5MRMxEV.js → DashboardPage-Kp-MCxW4.js} +3 -3
- package/dist/chunks/{DashboardPage-D5MRMxEV.js.map → DashboardPage-Kp-MCxW4.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-DnjLFXnL.js → EscalationConfigPage-D-WCN6YS.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-DnjLFXnL.js.map → EscalationConfigPage-D-WCN6YS.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-CwdnfJbJ.js → EscalationConfigPage-UrLJarSI.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-CwdnfJbJ.js.map → EscalationConfigPage-UrLJarSI.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-sh-3h_H9.js → ForceChangePasswordPage-BIh1SF5C.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-sh-3h_H9.js.map → ForceChangePasswordPage-BIh1SF5C.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-ZEIfyqwE.js → ForceChangePasswordPage-FFZZRpU7.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-ZEIfyqwE.js.map → ForceChangePasswordPage-FFZZRpU7.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-B4M6-xeM.js → ForgotPasswordPage-BKqRF7SF.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-B4M6-xeM.js.map → ForgotPasswordPage-BKqRF7SF.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-MIu-U7p0.js → ForgotPasswordPage-BXp8qQUX.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-MIu-U7p0.js.map → ForgotPasswordPage-BXp8qQUX.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-4XK3Bs_r.js → GroupDetailPage-a0hBx-LO.js} +5 -5
- package/dist/chunks/{GroupDetailPage-4XK3Bs_r.js.map → GroupDetailPage-a0hBx-LO.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-C-kvtd2T.js → GroupDetailPage-eGGJCqgq.js} +2 -2
- package/dist/chunks/{GroupDetailPage-C-kvtd2T.js.map → GroupDetailPage-eGGJCqgq.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-CP41FzHi.js → MyAccessRequestsPage-BgQSyy5d.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-CP41FzHi.js.map → MyAccessRequestsPage-BgQSyy5d.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-DzrXTrVi.js → MyAccessRequestsPage-Dmb0rUHO.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-DzrXTrVi.js.map → MyAccessRequestsPage-Dmb0rUHO.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-V_SwYio2.js → MyTenantsPage-BZTeqyDr.js} +3 -3
- package/dist/chunks/{MyTenantsPage-V_SwYio2.js.map → MyTenantsPage-BZTeqyDr.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-CZRkMbh8.js → MyTenantsPage-kCHBF2uA.js} +2 -2
- package/dist/chunks/{MyTenantsPage-CZRkMbh8.js.map → MyTenantsPage-kCHBF2uA.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-DOUhaLal.js → MyTicketsPage-BwNIqpCE.js} +2 -2
- package/dist/chunks/{MyTicketsPage-DOUhaLal.js.map → MyTicketsPage-BwNIqpCE.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-DnvAIeyr.js → MyTicketsPage-CTpjkA5t.js} +2 -2
- package/dist/chunks/{MyTicketsPage-DnvAIeyr.js.map → MyTicketsPage-CTpjkA5t.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-DfTa4jCG.js → NavigationAppsPage-DO5bTibb.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-DfTa4jCG.js.map → NavigationAppsPage-DO5bTibb.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-DXvpLsbt.js → NavigationAppsPage-vx_n07SD.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-DXvpLsbt.js.map → NavigationAppsPage-vx_n07SD.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-I1yCk7tk.js → NotificationsPage-Br9sb9AQ.js} +2 -2
- package/dist/chunks/{NotificationsPage-I1yCk7tk.js.map → NotificationsPage-Br9sb9AQ.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-D76MdAs-.js → NotificationsPage-CRhd752L.js} +2 -2
- package/dist/chunks/{NotificationsPage-D76MdAs-.js.map → NotificationsPage-CRhd752L.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-DtWUPCh3.js → OnboardingWizardPage-BIl3Usew.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-DtWUPCh3.js.map → OnboardingWizardPage-BIl3Usew.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-BRUzcl1A.js → OnboardingWizardPage-CjqxWX7h.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-BRUzcl1A.js.map → OnboardingWizardPage-CjqxWX7h.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-DJJGbXoX.js → PermissionDetailPage-COIuJXH-.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-DJJGbXoX.js.map → PermissionDetailPage-COIuJXH-.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-CUNKbl7t.js → PermissionDetailPage-P_d6xnY0.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-CUNKbl7t.js.map → PermissionDetailPage-P_d6xnY0.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-B8wmawPV.js → PermissionsPage-BhjnMyFY.js} +2 -2
- package/dist/chunks/{PermissionsPage-B8wmawPV.js.map → PermissionsPage-BhjnMyFY.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-Dbjcctuh.js → PermissionsPage-CHYy8XFr.js} +2 -2
- package/dist/chunks/{PermissionsPage-Dbjcctuh.js.map → PermissionsPage-CHYy8XFr.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-zii0ll57.js → PortalDashboardPage-BwQ4NQrH.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-zii0ll57.js.map → PortalDashboardPage-BwQ4NQrH.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-BeNfBZmb.js → PortalDashboardPage-hLJcfGnT.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-BeNfBZmb.js.map → PortalDashboardPage-hLJcfGnT.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-BmvrBaAD.js → PreferencesPage-DYYqisR0.js} +2 -2
- package/dist/chunks/{PreferencesPage-BmvrBaAD.js.map → PreferencesPage-DYYqisR0.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-BCpuIGzv.js → PreferencesPage-DzpM-lpD.js} +2 -2
- package/dist/chunks/{PreferencesPage-BCpuIGzv.js.map → PreferencesPage-DzpM-lpD.js.map} +1 -1
- package/dist/chunks/{ProfilePage-eowQd59_.js → ProfilePage-D98bvXeT.js} +2 -2
- package/dist/chunks/{ProfilePage-eowQd59_.js.map → ProfilePage-D98bvXeT.js.map} +1 -1
- package/dist/chunks/{ProfilePage-mf5wI0-n.js → ProfilePage-DWRDN0fo.js} +2 -2
- package/dist/chunks/{ProfilePage-mf5wI0-n.js.map → ProfilePage-DWRDN0fo.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-CLsaUNqA.js → ReferencesManagementPage-B0Cq9BHS.js} +2 -2
- package/dist/chunks/{ReferencesManagementPage-CLsaUNqA.js.map → ReferencesManagementPage-B0Cq9BHS.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-8UPgkVE8.js → ReferencesManagementPage-CxbfOBs2.js} +3 -3
- package/dist/chunks/{ReferencesManagementPage-8UPgkVE8.js.map → ReferencesManagementPage-CxbfOBs2.js.map} +1 -1
- package/dist/chunks/{RegisterPage-57X-ILDb.js → RegisterPage-DMeq3GzW.js} +2 -2
- package/dist/chunks/{RegisterPage-57X-ILDb.js.map → RegisterPage-DMeq3GzW.js.map} +1 -1
- package/dist/chunks/{RegisterPage-CNyHSbqs.js → RegisterPage-DvG2Php7.js} +2 -2
- package/dist/chunks/{RegisterPage-CNyHSbqs.js.map → RegisterPage-DvG2Php7.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-JW8-mh_k.js → ResetPasswordPage-DOTswepm.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-JW8-mh_k.js.map → ResetPasswordPage-DOTswepm.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-CyV8l-Zo.js → ResetPasswordPage-ntMMFvDo.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-CyV8l-Zo.js.map → ResetPasswordPage-ntMMFvDo.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-wddG59kg.js → ResolutionModal-CKt73sIZ.js} +2 -2
- package/dist/chunks/{ResolutionModal-wddG59kg.js.map → ResolutionModal-CKt73sIZ.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-CjwE73NX.js → ResolutionModal-XGHCELez.js} +2 -2
- package/dist/chunks/{ResolutionModal-CjwE73NX.js.map → ResolutionModal-XGHCELez.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-CrioVHFI.js → RoleDetailPage-BtnYTVN6.js} +3 -3
- package/dist/chunks/{RoleDetailPage-CrioVHFI.js.map → RoleDetailPage-BtnYTVN6.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-TUOGR1ow.js → RoleDetailPage-DAp65p0d.js} +2 -2
- package/dist/chunks/{RoleDetailPage-TUOGR1ow.js.map → RoleDetailPage-DAp65p0d.js.map} +1 -1
- package/dist/chunks/{RolesPage-CAcols3D.js → RolesPage-DyEhJHxw.js} +2 -2
- package/dist/chunks/{RolesPage-CAcols3D.js.map → RolesPage-DyEhJHxw.js.map} +1 -1
- package/dist/chunks/{RolesPage-sJBWaNff.js → RolesPage-FmZCLEYo.js} +2 -2
- package/dist/chunks/{RolesPage-sJBWaNff.js.map → RolesPage-FmZCLEYo.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-BPGRloOS.js → SlaConfigPage-DTtP2Q4t.js} +2 -2
- package/dist/chunks/{SlaConfigPage-BPGRloOS.js.map → SlaConfigPage-DTtP2Q4t.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-D5TRn7Ir.js → SlaConfigPage-LpVD_ai4.js} +2 -2
- package/dist/chunks/{SlaConfigPage-D5TRn7Ir.js.map → SlaConfigPage-LpVD_ai4.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-UXmYLrIq.js → SupportPermissionsPage-BV8F_Tl3.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-UXmYLrIq.js.map → SupportPermissionsPage-BV8F_Tl3.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-Dc2bWTzG.js → SupportPermissionsPage-Bzfq6pKf.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-Dc2bWTzG.js.map → SupportPermissionsPage-Bzfq6pKf.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-nTY85sNA.js → TemplatesPage-CYHH5WlP.js} +2 -2
- package/dist/chunks/{TemplatesPage-nTY85sNA.js.map → TemplatesPage-CYHH5WlP.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-dmPlqqiD.js → TemplatesPage-czt_RH5f.js} +2 -2
- package/dist/chunks/{TemplatesPage-dmPlqqiD.js.map → TemplatesPage-czt_RH5f.js.map} +1 -1
- package/dist/chunks/{TenantCard-BhT-31ls.js → TenantCard-Bqh5PGJx.js} +2 -2
- package/dist/chunks/{TenantCard-BhT-31ls.js.map → TenantCard-Bqh5PGJx.js.map} +1 -1
- package/dist/chunks/{TenantCard-BUXfstRZ.js → TenantCard-C6qKD480.js} +2 -2
- package/dist/chunks/{TenantCard-BUXfstRZ.js.map → TenantCard-C6qKD480.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-B-SRDR2R.js → TenantScopeSelector-DWUP8Le7.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-B-SRDR2R.js.map → TenantScopeSelector-DWUP8Le7.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-3_mzBLNI.js → TenantScopeSelector-DxQ7HNbh.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-3_mzBLNI.js.map → TenantScopeSelector-DxQ7HNbh.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-xN3wPnFL.js → TicketDetailPage-BuxXLcJi.js} +2 -2
- package/dist/chunks/{TicketDetailPage-xN3wPnFL.js.map → TicketDetailPage-BuxXLcJi.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-B4cR3rOC.js → TicketDetailPage-Dy4pg33-.js} +2 -2
- package/dist/chunks/{TicketDetailPage-B4cR3rOC.js.map → TicketDetailPage-Dy4pg33-.js.map} +1 -1
- package/dist/chunks/{TicketsPage-CkHgXSxU.js → TicketsPage-Ck-HUgte.js} +2 -2
- package/dist/chunks/{TicketsPage-CkHgXSxU.js.map → TicketsPage-Ck-HUgte.js.map} +1 -1
- package/dist/chunks/{TicketsPage-Dwi2xpMI.js → TicketsPage-jlN9JDzm.js} +2 -2
- package/dist/chunks/{TicketsPage-Dwi2xpMI.js.map → TicketsPage-jlN9JDzm.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-D2a3EOey.js → UserCreateTicketPage-BrRZyXMn.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-D2a3EOey.js.map → UserCreateTicketPage-BrRZyXMn.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-bcbSLglE.js → UserCreateTicketPage-D58Ro4Nb.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-bcbSLglE.js.map → UserCreateTicketPage-D58Ro4Nb.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-DwnDRNoW.js → UserDashboardPage-C5ulSzaI.js} +2 -2
- package/dist/chunks/{UserDashboardPage-DwnDRNoW.js.map → UserDashboardPage-C5ulSzaI.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-ZMsx8LWw.js → UserDashboardPage-CjAx5OHh.js} +2 -2
- package/dist/chunks/{UserDashboardPage-ZMsx8LWw.js.map → UserDashboardPage-CjAx5OHh.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-BRFowOFL.js → UserDetailPage-Bhpry9xq.js} +2 -2
- package/dist/chunks/{UserDetailPage-BRFowOFL.js.map → UserDetailPage-Bhpry9xq.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-CZyV-zsg.js → UserDetailPage-DUu2mA_n.js} +5 -5
- package/dist/chunks/{UserDetailPage-CZyV-zsg.js.map → UserDetailPage-DUu2mA_n.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-DzB_pELt.js → UserTicketDetailPage-DpFFjIso.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-DzB_pELt.js.map → UserTicketDetailPage-DpFFjIso.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-BstGk_BP.js → UserTicketDetailPage-YJvBWFEu.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-BstGk_BP.js.map → UserTicketDetailPage-YJvBWFEu.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-DTmhzttW.js → UsersGroupsPage-b2PTQX_m.js} +2 -2
- package/dist/chunks/{UsersGroupsPage-DTmhzttW.js.map → UsersGroupsPage-b2PTQX_m.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-BygTv_kK.js → UsersGroupsPage-l33K3Nca.js} +3 -3
- package/dist/chunks/{UsersGroupsPage-BygTv_kK.js.map → UsersGroupsPage-l33K3Nca.js.map} +1 -1
- package/dist/chunks/{UsersPage-TIqSHgHj.js → UsersPage-BjC5ZqTa.js} +2 -2
- package/dist/chunks/{UsersPage-TIqSHgHj.js.map → UsersPage-BjC5ZqTa.js.map} +1 -1
- package/dist/chunks/{UsersPage-DcwLyMAX.js → UsersPage-NsTukS8m.js} +2 -2
- package/dist/chunks/{UsersPage-DcwLyMAX.js.map → UsersPage-NsTukS8m.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-B6dsJzvH.js → accessRequestsApi-C2usKVGJ.js} +2 -2
- package/dist/chunks/{accessRequestsApi-B6dsJzvH.js.map → accessRequestsApi-C2usKVGJ.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-3FjMFbpa.js → accessRequestsApi-LuovcP6l.js} +2 -2
- package/dist/chunks/{accessRequestsApi-3FjMFbpa.js.map → accessRequestsApi-LuovcP6l.js.map} +1 -1
- package/dist/chunks/{aiApi-DXOdsoxr.js → aiApi-B03u3zUH.js} +2 -2
- package/dist/chunks/{aiApi-DXOdsoxr.js.map → aiApi-B03u3zUH.js.map} +1 -1
- package/dist/chunks/{aiApi-9G4wG_mT.js → aiApi-Cwg0B8PJ.js} +2 -2
- package/dist/chunks/{aiApi-9G4wG_mT.js.map → aiApi-Cwg0B8PJ.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-DhOd6idI.js → applicationAnalyticsApi-BobBdehV.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-DhOd6idI.js.map → applicationAnalyticsApi-BobBdehV.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-D0DEp9Y-.js → applicationAnalyticsApi-jCZhWKOx.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-D0DEp9Y-.js.map → applicationAnalyticsApi-jCZhWKOx.js.map} +1 -1
- package/dist/chunks/{groupsApi-Db8G2lLs.js → groupsApi-CoxnW9vH.js} +2 -2
- package/dist/chunks/{groupsApi-Db8G2lLs.js.map → groupsApi-CoxnW9vH.js.map} +1 -1
- package/dist/chunks/{groupsApi-lbxNsHFv.js → groupsApi-D2lFFcgu.js} +2 -2
- package/dist/chunks/{groupsApi-lbxNsHFv.js.map → groupsApi-D2lFFcgu.js.map} +1 -1
- package/dist/chunks/{index-xhRXN1Jq.js → index-B5U_Jp0-.js} +2 -2
- package/dist/chunks/{index-xhRXN1Jq.js.map → index-B5U_Jp0-.js.map} +1 -1
- package/dist/chunks/{index-Bn8HzILk.js → index-BDB_a-p7.js} +4 -4
- package/dist/chunks/{index-Bn8HzILk.js.map → index-BDB_a-p7.js.map} +1 -1
- package/dist/chunks/{index-DF93KQFR.js → index-BbHRJz-n.js} +2 -2
- package/dist/chunks/{index-DF93KQFR.js.map → index-BbHRJz-n.js.map} +1 -1
- package/dist/chunks/{index-DqbVFB1H.js → index-CI2WU5ZZ.js} +2 -2
- package/dist/chunks/{index-DqbVFB1H.js.map → index-CI2WU5ZZ.js.map} +1 -1
- package/dist/chunks/{index-DjC1u2hI.js → index-CLk9ClC2.js} +3 -3
- package/dist/chunks/{index-DjC1u2hI.js.map → index-CLk9ClC2.js.map} +1 -1
- package/dist/chunks/{index-CgtbaFf5.js → index-CmTKGOa_.js} +2 -2
- package/dist/chunks/{index-CgtbaFf5.js.map → index-CmTKGOa_.js.map} +1 -1
- package/dist/chunks/{index-DwqLhQ8S.js → index-D5oIr6PO.js} +2 -2
- package/dist/chunks/{index-DwqLhQ8S.js.map → index-D5oIr6PO.js.map} +1 -1
- package/dist/chunks/{index-CTGSmYvs.js → index-DC6TBJV_.js} +2 -2
- package/dist/chunks/{index-CTGSmYvs.js.map → index-DC6TBJV_.js.map} +1 -1
- package/dist/chunks/{index-CN2WRyg1.js → index-DN97bp_f.js} +1145 -1108
- package/dist/chunks/index-DN97bp_f.js.map +1 -0
- package/dist/chunks/{index-DUS-tunb.js → index-DRW5qV_L.js} +2 -2
- package/dist/chunks/{index-DUS-tunb.js.map → index-DRW5qV_L.js.map} +1 -1
- package/dist/chunks/{index-DLekpNSE.js → index-DcLZao1q.js} +2 -2
- package/dist/chunks/{index-DLekpNSE.js.map → index-DcLZao1q.js.map} +1 -1
- package/dist/chunks/{index-HsAOBno4.js → index-DcMOmGtX.js} +2 -2
- package/dist/chunks/{index-HsAOBno4.js.map → index-DcMOmGtX.js.map} +1 -1
- package/dist/chunks/{index-cAikSVW0.js → index-DnML-nfd.js} +10 -10
- package/dist/chunks/index-DnML-nfd.js.map +1 -0
- package/dist/chunks/{index-DEtq-xUL.js → index-Drd59qAP.js} +8 -8
- package/dist/chunks/{index-DEtq-xUL.js.map → index-Drd59qAP.js.map} +1 -1
- package/dist/chunks/{index-TiWOcC0g.js → index-EiIHjIgi.js} +2 -2
- package/dist/chunks/{index-TiWOcC0g.js.map → index-EiIHjIgi.js.map} +1 -1
- package/dist/chunks/{index-D0HS542b.js → index-axYz6ptj.js} +2 -2
- package/dist/chunks/{index-D0HS542b.js.map → index-axYz6ptj.js.map} +1 -1
- package/dist/chunks/{index-BI2dc1FS.js → index-lXrXnhFc.js} +2 -2
- package/dist/chunks/{index-BI2dc1FS.js.map → index-lXrXnhFc.js.map} +1 -1
- package/dist/chunks/{index-CUICSveU.js → index-rI-1r6c2.js} +2 -2
- package/dist/chunks/{index-CUICSveU.js.map → index-rI-1r6c2.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-__FKj6CN.js → tenantIconMap-B4wAYGWP.js} +2 -2
- package/dist/chunks/{tenantIconMap-__FKj6CN.js.map → tenantIconMap-B4wAYGWP.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-CHeS7oLt.js → tenantIconMap-Cfm15HwB.js} +2 -2
- package/dist/chunks/{tenantIconMap-CHeS7oLt.js.map → tenantIconMap-Cfm15HwB.js.map} +1 -1
- package/dist/chunks/{ticketingApi-DF4RwD_6.js → ticketingApi-CLMAPZDw.js} +2 -2
- package/dist/chunks/{ticketingApi-DF4RwD_6.js.map → ticketingApi-CLMAPZDw.js.map} +1 -1
- package/dist/chunks/{ticketingApi-Cj239hYB.js → ticketingApi-CTap4NdE.js} +2 -2
- package/dist/chunks/{ticketingApi-Cj239hYB.js.map → ticketingApi-CTap4NdE.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-CViOUwyF.js → useAccessRequests-CBpDkq9o.js} +2 -2
- package/dist/chunks/{useAccessRequests-CViOUwyF.js.map → useAccessRequests-CBpDkq9o.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-CFam8zFR.js → useAccessRequests-Cj2-OoAW.js} +3 -3
- package/dist/chunks/{useAccessRequests-CFam8zFR.js.map → useAccessRequests-Cj2-OoAW.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-CslSQeBJ.js → useUserAccessRequests-C6l2VMe1.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-CslSQeBJ.js.map → useUserAccessRequests-C6l2VMe1.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-B-Cs6NX1.js → useUserAccessRequests-Ds3K-ENU.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-B-Cs6NX1.js.map → useUserAccessRequests-Ds3K-ENU.js.map} +1 -1
- package/dist/components/routing/DynamicRouter.d.ts.map +1 -1
- package/dist/contexts/AuthContext.d.ts.map +1 -1
- package/dist/contexts/NavigationContext.d.ts.map +1 -1
- package/dist/extensions/PageRegistry.d.ts +2 -0
- package/dist/extensions/PageRegistry.d.ts.map +1 -1
- package/dist/services/api/adminApi/settings.d.ts +8 -3
- package/dist/services/api/adminApi/settings.d.ts.map +1 -1
- package/dist/smartstack.cjs +1 -1
- package/dist/smartstack.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/index-CN2WRyg1.js.map +0 -1
- package/dist/chunks/index-cAikSVW0.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupsApi-lbxNsHFv.js","sources":["../../src/services/api/groupsApi.ts"],"sourcesContent":["import { api, apiClient } from './apiClient';\r\nimport type { UserApplicationAccessDto } from './adminApi';\r\n\r\n/**\r\n * Creates API methods with a specific tenant context.\r\n * Used when Super Admins view tenant-specific pages without \"switching\" to that tenant.\r\n */\r\nconst withTenantContext = (tenantSlug?: string) => ({\r\n get: <T>(url: string, config?: Parameters<typeof apiClient.get>[1]) =>\r\n apiClient.get<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n post: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.post>[2]) =>\r\n apiClient.post<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n put: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.put>[2]) =>\r\n apiClient.put<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n patch: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.patch>[2]) =>\r\n apiClient.patch<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n delete: <T>(url: string, config?: Parameters<typeof apiClient.delete>[1]) =>\r\n apiClient.delete<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n});\r\n\r\n// Types\r\nexport interface GroupListDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n memberCount: number;\r\n roles: string[];\r\n createdAt: string;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n childCount: number;\r\n}\r\n\r\nexport interface GroupDetailDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n mail: string | null;\r\n mailNickname: string | null;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n members: GroupMemberDto[];\r\n roles: GroupRoleDto[];\r\n childGroups: GroupChildDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n createdBy: string | null;\r\n updatedBy: string | null;\r\n}\r\n\r\nexport interface GroupMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface GroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n assignedAt: string;\r\n assignedBy: string;\r\n isInheritable: boolean;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n}\r\n\r\nexport interface GroupChildDto {\r\n id: string;\r\n name: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface CreateGroupRequest {\r\n name: string;\r\n description?: string;\r\n isSecurityGroup?: boolean;\r\n parentGroupId?: string;\r\n}\r\n\r\nexport interface UpdateGroupRequest {\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface LinkEntraRequest {\r\n entraObjectId: string;\r\n}\r\n\r\nexport interface AddMemberRequest {\r\n userId: string;\r\n}\r\n\r\nexport interface AssignRoleRequest {\r\n roleId: string;\r\n isInheritable?: boolean;\r\n tenantId?: string | null;\r\n}\r\n\r\nexport interface SetInheritableRequest {\r\n isInheritable: boolean;\r\n}\r\n\r\nexport interface SetParentGroupRequest {\r\n parentGroupId: string | null;\r\n}\r\n\r\nexport interface InheritedTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n}\r\n\r\nexport interface InheritedMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface InheritedGroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface GroupTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface AddToTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface CustomRoleDetailDto {\r\n id: string;\r\n name: string;\r\n shortName: string;\r\n category: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n permissions: CustomRolePermissionDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CustomRolePermissionDto {\r\n id: string;\r\n path: string;\r\n description: string | null;\r\n}\r\n\r\nconst BASE_URL = '/api/administration/users/groups';\r\n\r\n/**\r\n * Factory function to create groups API with explicit tenant context.\r\n * @param tenantSlug - Optional tenant slug to use for all requests\r\n */\r\nconst _createGroupsApi = (tenantSlug?: string) => {\r\n const apiContext = tenantSlug ? withTenantContext(tenantSlug) : api;\r\n\r\n return {\r\n // === CRUD OPERATIONS ===\r\n\r\n getAll: async (\r\n search?: string,\r\n isActive?: boolean,\r\n syncedFromEntra?: boolean\r\n ): Promise<GroupListDto[]> => {\r\n const params = new URLSearchParams();\r\n if (search) params.append('search', search);\r\n if (isActive !== undefined) params.append('isActive', String(isActive));\r\n if (syncedFromEntra !== undefined) params.append('syncedFromEntra', String(syncedFromEntra));\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${BASE_URL}?${queryString}` : BASE_URL;\r\n const response = await apiContext.get<GroupListDto[]>(url);\r\n return response;\r\n },\r\n\r\n getById: async (id: string): Promise<GroupDetailDto> => {\r\n const response = await apiContext.get<GroupDetailDto>(`${BASE_URL}/${id}`);\r\n return response;\r\n },\r\n\r\n create: async (data: CreateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.post<GroupDetailDto>(BASE_URL, data);\r\n return response;\r\n },\r\n\r\n update: async (id: string, data: UpdateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.put<GroupDetailDto>(`${BASE_URL}/${id}`, data);\r\n return response;\r\n },\r\n\r\n delete: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}`);\r\n },\r\n\r\n activate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/activate`);\r\n },\r\n\r\n deactivate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/deactivate`);\r\n },\r\n\r\n // === ENTRA LINKING ===\r\n\r\n linkToEntra: async (id: string, data: LinkEntraRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/link-entra`, data);\r\n },\r\n\r\n unlinkFromEntra: async (id: string): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/unlink-entra`);\r\n },\r\n\r\n // === MEMBER MANAGEMENT ===\r\n\r\n getMembers: async (id: string): Promise<GroupMemberDto[]> => {\r\n const response = await apiContext.get<GroupMemberDto[]>(`${BASE_URL}/${id}/members`);\r\n return response;\r\n },\r\n\r\n addMember: async (id: string, data: AddMemberRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/members`, data);\r\n },\r\n\r\n removeMember: async (groupId: string, userId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/members/${userId}`);\r\n },\r\n\r\n // === ROLE MANAGEMENT ===\r\n\r\n getRoles: async (id: string): Promise<GroupRoleDto[]> => {\r\n const response = await apiContext.get<GroupRoleDto[]>(`${BASE_URL}/${id}/roles`);\r\n return response;\r\n },\r\n\r\n assignRole: async (id: string, data: AssignRoleRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/roles`, data);\r\n },\r\n\r\n removeRole: async (groupId: string, roleId: string, tenantId?: string | null): Promise<void> => {\r\n const params = tenantId ? `?tenantId=${tenantId}` : '';\r\n await apiContext.delete(`${BASE_URL}/${groupId}/roles/${roleId}${params}`);\r\n },\r\n\r\n setRoleInheritable: async (\r\n groupId: string,\r\n roleId: string,\r\n data: SetInheritableRequest\r\n ): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${groupId}/roles/${roleId}/inheritable`, data);\r\n },\r\n\r\n // === HIERARCHY ===\r\n\r\n getChildGroups: async (id: string): Promise<GroupChildDto[]> => {\r\n const response = await apiContext.get<GroupChildDto[]>(`${BASE_URL}/${id}/children`);\r\n return response;\r\n },\r\n\r\n setParentGroup: async (id: string, data: SetParentGroupRequest): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/parent`, data);\r\n },\r\n\r\n // === TENANT MANAGEMENT ===\r\n\r\n getTenants: async (id: string): Promise<GroupTenantDto[]> => {\r\n const response = await apiContext.get<GroupTenantDto[]>(`${BASE_URL}/${id}/tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedTenants: async (id: string): Promise<InheritedTenantDto[]> => {\r\n const response = await apiContext.get<InheritedTenantDto[]>(`${BASE_URL}/${id}/inherited-tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedMembers: async (id: string): Promise<InheritedMemberDto[]> => {\r\n const response = await apiContext.get<InheritedMemberDto[]>(`${BASE_URL}/${id}/inherited-members`);\r\n return response;\r\n },\r\n\r\n getInheritedRoles: async (id: string): Promise<InheritedGroupRoleDto[]> => {\r\n const response = await apiContext.get<InheritedGroupRoleDto[]>(`${BASE_URL}/${id}/inherited-roles`);\r\n return response;\r\n },\r\n\r\n addToTenant: async (id: string, data: AddToTenantRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/tenants`, data);\r\n },\r\n\r\n removeFromTenant: async (groupId: string, tenantId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/tenants/${tenantId}`);\r\n },\r\n\r\n // === APPLICATION ACCESS ===\r\n\r\n getApplicationAccess: async (id: string, tenantId?: string): Promise<UserApplicationAccessDto[]> => {\r\n const url = tenantId\r\n ? `${BASE_URL}/${id}/application-access?tenantId=${tenantId}`\r\n : `${BASE_URL}/${id}/application-access`;\r\n const response = await apiContext.get<UserApplicationAccessDto[]>(url);\r\n return response;\r\n },\r\n\r\n // === CUSTOM ROLE ===\r\n\r\n getCustomRole: async (id: string): Promise<CustomRoleDetailDto | null> => {\r\n const response = await apiContext.get<CustomRoleDetailDto | null>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n createCustomRole: async (id: string): Promise<CustomRoleDetailDto> => {\r\n const response = await apiContext.post<CustomRoleDetailDto>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n deleteCustomRole: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}/custom-role`);\r\n },\r\n };\r\n};\r\nexport type GroupsApi = ReturnType<typeof _createGroupsApi>;\r\nexport const createGroupsApi: (tenantSlug?: string) => GroupsApi = _createGroupsApi;\r\n\r\n// Default export uses localStorage tenant slug (backward compatible)\r\nexport const groupsApi = createGroupsApi();\r\n"],"names":["withTenantContext","tenantSlug","url","config","apiClient","res","data","BASE_URL","_createGroupsApi","apiContext","api","search","isActive","syncedFromEntra","params","queryString","id","groupId","userId","roleId","tenantId","createGroupsApi","groupsApi"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"groupsApi-D2lFFcgu.js","sources":["../../src/services/api/groupsApi.ts"],"sourcesContent":["import { api, apiClient } from './apiClient';\r\nimport type { UserApplicationAccessDto } from './adminApi';\r\n\r\n/**\r\n * Creates API methods with a specific tenant context.\r\n * Used when Super Admins view tenant-specific pages without \"switching\" to that tenant.\r\n */\r\nconst withTenantContext = (tenantSlug?: string) => ({\r\n get: <T>(url: string, config?: Parameters<typeof apiClient.get>[1]) =>\r\n apiClient.get<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n post: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.post>[2]) =>\r\n apiClient.post<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n put: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.put>[2]) =>\r\n apiClient.put<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n patch: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.patch>[2]) =>\r\n apiClient.patch<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n delete: <T>(url: string, config?: Parameters<typeof apiClient.delete>[1]) =>\r\n apiClient.delete<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n});\r\n\r\n// Types\r\nexport interface GroupListDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n memberCount: number;\r\n roles: string[];\r\n createdAt: string;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n childCount: number;\r\n}\r\n\r\nexport interface GroupDetailDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n mail: string | null;\r\n mailNickname: string | null;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n members: GroupMemberDto[];\r\n roles: GroupRoleDto[];\r\n childGroups: GroupChildDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n createdBy: string | null;\r\n updatedBy: string | null;\r\n}\r\n\r\nexport interface GroupMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface GroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n assignedAt: string;\r\n assignedBy: string;\r\n isInheritable: boolean;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n}\r\n\r\nexport interface GroupChildDto {\r\n id: string;\r\n name: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface CreateGroupRequest {\r\n name: string;\r\n description?: string;\r\n isSecurityGroup?: boolean;\r\n parentGroupId?: string;\r\n}\r\n\r\nexport interface UpdateGroupRequest {\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface LinkEntraRequest {\r\n entraObjectId: string;\r\n}\r\n\r\nexport interface AddMemberRequest {\r\n userId: string;\r\n}\r\n\r\nexport interface AssignRoleRequest {\r\n roleId: string;\r\n isInheritable?: boolean;\r\n tenantId?: string | null;\r\n}\r\n\r\nexport interface SetInheritableRequest {\r\n isInheritable: boolean;\r\n}\r\n\r\nexport interface SetParentGroupRequest {\r\n parentGroupId: string | null;\r\n}\r\n\r\nexport interface InheritedTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n}\r\n\r\nexport interface InheritedMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface InheritedGroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface GroupTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface AddToTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface CustomRoleDetailDto {\r\n id: string;\r\n name: string;\r\n shortName: string;\r\n category: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n permissions: CustomRolePermissionDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CustomRolePermissionDto {\r\n id: string;\r\n path: string;\r\n description: string | null;\r\n}\r\n\r\nconst BASE_URL = '/api/administration/users/groups';\r\n\r\n/**\r\n * Factory function to create groups API with explicit tenant context.\r\n * @param tenantSlug - Optional tenant slug to use for all requests\r\n */\r\nconst _createGroupsApi = (tenantSlug?: string) => {\r\n const apiContext = tenantSlug ? withTenantContext(tenantSlug) : api;\r\n\r\n return {\r\n // === CRUD OPERATIONS ===\r\n\r\n getAll: async (\r\n search?: string,\r\n isActive?: boolean,\r\n syncedFromEntra?: boolean\r\n ): Promise<GroupListDto[]> => {\r\n const params = new URLSearchParams();\r\n if (search) params.append('search', search);\r\n if (isActive !== undefined) params.append('isActive', String(isActive));\r\n if (syncedFromEntra !== undefined) params.append('syncedFromEntra', String(syncedFromEntra));\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${BASE_URL}?${queryString}` : BASE_URL;\r\n const response = await apiContext.get<GroupListDto[]>(url);\r\n return response;\r\n },\r\n\r\n getById: async (id: string): Promise<GroupDetailDto> => {\r\n const response = await apiContext.get<GroupDetailDto>(`${BASE_URL}/${id}`);\r\n return response;\r\n },\r\n\r\n create: async (data: CreateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.post<GroupDetailDto>(BASE_URL, data);\r\n return response;\r\n },\r\n\r\n update: async (id: string, data: UpdateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.put<GroupDetailDto>(`${BASE_URL}/${id}`, data);\r\n return response;\r\n },\r\n\r\n delete: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}`);\r\n },\r\n\r\n activate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/activate`);\r\n },\r\n\r\n deactivate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/deactivate`);\r\n },\r\n\r\n // === ENTRA LINKING ===\r\n\r\n linkToEntra: async (id: string, data: LinkEntraRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/link-entra`, data);\r\n },\r\n\r\n unlinkFromEntra: async (id: string): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/unlink-entra`);\r\n },\r\n\r\n // === MEMBER MANAGEMENT ===\r\n\r\n getMembers: async (id: string): Promise<GroupMemberDto[]> => {\r\n const response = await apiContext.get<GroupMemberDto[]>(`${BASE_URL}/${id}/members`);\r\n return response;\r\n },\r\n\r\n addMember: async (id: string, data: AddMemberRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/members`, data);\r\n },\r\n\r\n removeMember: async (groupId: string, userId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/members/${userId}`);\r\n },\r\n\r\n // === ROLE MANAGEMENT ===\r\n\r\n getRoles: async (id: string): Promise<GroupRoleDto[]> => {\r\n const response = await apiContext.get<GroupRoleDto[]>(`${BASE_URL}/${id}/roles`);\r\n return response;\r\n },\r\n\r\n assignRole: async (id: string, data: AssignRoleRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/roles`, data);\r\n },\r\n\r\n removeRole: async (groupId: string, roleId: string, tenantId?: string | null): Promise<void> => {\r\n const params = tenantId ? `?tenantId=${tenantId}` : '';\r\n await apiContext.delete(`${BASE_URL}/${groupId}/roles/${roleId}${params}`);\r\n },\r\n\r\n setRoleInheritable: async (\r\n groupId: string,\r\n roleId: string,\r\n data: SetInheritableRequest\r\n ): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${groupId}/roles/${roleId}/inheritable`, data);\r\n },\r\n\r\n // === HIERARCHY ===\r\n\r\n getChildGroups: async (id: string): Promise<GroupChildDto[]> => {\r\n const response = await apiContext.get<GroupChildDto[]>(`${BASE_URL}/${id}/children`);\r\n return response;\r\n },\r\n\r\n setParentGroup: async (id: string, data: SetParentGroupRequest): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/parent`, data);\r\n },\r\n\r\n // === TENANT MANAGEMENT ===\r\n\r\n getTenants: async (id: string): Promise<GroupTenantDto[]> => {\r\n const response = await apiContext.get<GroupTenantDto[]>(`${BASE_URL}/${id}/tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedTenants: async (id: string): Promise<InheritedTenantDto[]> => {\r\n const response = await apiContext.get<InheritedTenantDto[]>(`${BASE_URL}/${id}/inherited-tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedMembers: async (id: string): Promise<InheritedMemberDto[]> => {\r\n const response = await apiContext.get<InheritedMemberDto[]>(`${BASE_URL}/${id}/inherited-members`);\r\n return response;\r\n },\r\n\r\n getInheritedRoles: async (id: string): Promise<InheritedGroupRoleDto[]> => {\r\n const response = await apiContext.get<InheritedGroupRoleDto[]>(`${BASE_URL}/${id}/inherited-roles`);\r\n return response;\r\n },\r\n\r\n addToTenant: async (id: string, data: AddToTenantRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/tenants`, data);\r\n },\r\n\r\n removeFromTenant: async (groupId: string, tenantId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/tenants/${tenantId}`);\r\n },\r\n\r\n // === APPLICATION ACCESS ===\r\n\r\n getApplicationAccess: async (id: string, tenantId?: string): Promise<UserApplicationAccessDto[]> => {\r\n const url = tenantId\r\n ? `${BASE_URL}/${id}/application-access?tenantId=${tenantId}`\r\n : `${BASE_URL}/${id}/application-access`;\r\n const response = await apiContext.get<UserApplicationAccessDto[]>(url);\r\n return response;\r\n },\r\n\r\n // === CUSTOM ROLE ===\r\n\r\n getCustomRole: async (id: string): Promise<CustomRoleDetailDto | null> => {\r\n const response = await apiContext.get<CustomRoleDetailDto | null>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n createCustomRole: async (id: string): Promise<CustomRoleDetailDto> => {\r\n const response = await apiContext.post<CustomRoleDetailDto>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n deleteCustomRole: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}/custom-role`);\r\n },\r\n };\r\n};\r\nexport type GroupsApi = ReturnType<typeof _createGroupsApi>;\r\nexport const createGroupsApi: (tenantSlug?: string) => GroupsApi = _createGroupsApi;\r\n\r\n// Default export uses localStorage tenant slug (backward compatible)\r\nexport const groupsApi = createGroupsApi();\r\n"],"names":["withTenantContext","tenantSlug","url","config","apiClient","res","data","BASE_URL","_createGroupsApi","apiContext","api","search","isActive","syncedFromEntra","params","queryString","id","groupId","userId","roleId","tenantId","createGroupsApi","groupsApi"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),D=require("react"),$=require("react-i18next"),S=require("react-router-dom"),I=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),D=require("react"),$=require("react-i18next"),S=require("react-router-dom"),I=require("./index-DnML-nfd.js"),a=require("lucide-react"),E=[{id:"infrastructure",labelKey:"appsettings.tabs.infrastructure",icon:a.Server,route:"/administration/configuration/appsettings/infrastructure"},{id:"authentication",labelKey:"appsettings.tabs.authentication",icon:a.Shield,route:"/administration/configuration/appsettings/authentication"},{id:"logging",labelKey:"appsettings.tabs.logging",icon:a.FileText,route:"/administration/configuration/appsettings/logging"},{id:"email",labelKey:"appsettings.tabs.email",icon:a.Mail,route:"/administration/configuration/appsettings/email"},{id:"entra",labelKey:"appsettings.tabs.entra",icon:a.Cloud,route:"/administration/configuration/appsettings/entra"}];function L(){const{t}=$.useTranslation("admin"),y=S.useNavigate(),l=S.useLocation(),[x,u]=D.useState([]),[h,v]=D.useState(!0),f=D.useCallback(async()=>{try{v(!0);const d=(await I.adminApi.settings.getAll()).filter(o=>o.source==="AppSettings"||o.source==="Environment"||o.source==="Computed");u(d)}catch(s){console.error("Failed to load settings:",s)}finally{v(!1)}},[]);D.useEffect(()=>{f()},[f]);const c=()=>{const s=l.pathname;return E.find(o=>s.includes(o.id))?.id||"infrastructure"},i=s=>{const d=E.find(o=>o.id===s);d&&y(d.route)};return h?e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsx(a.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-accent-600)]"})}):e.jsxs("div",{className:"space-y-6",children:[e.jsx(I.Breadcrumb,{items:[{label:t("header.title"),href:"/administration"},{label:t("appsettings.title","Application Settings")}]}),e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:t("appsettings.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mt-1",children:t("appsettings.subtitle")})]})}),e.jsx("div",{className:"bg-[var(--info-bg)] border border-[var(--info-border)] rounded-[var(--radius-card)] p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(a.Info,{className:"w-5 h-5 text-[var(--info-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-medium text-[var(--info-text)]",children:t("appsettings.readonlyBannerTitle")}),e.jsx("p",{className:"text-sm text-[var(--info-text)] opacity-90 mt-1",children:t("appsettings.readonlyBannerDescription")})]})]})}),e.jsx("div",{className:"border-b border-[var(--border-color)]",children:e.jsx("nav",{className:"-mb-px flex space-x-8","aria-label":"Tabs",children:E.map(s=>{const d=s.icon,o=c()===s.id;return e.jsxs("button",{onClick:()=>i(s.id),className:`
|
|
2
2
|
group inline-flex items-center py-4 px-1 border-b-2 font-medium text-sm transition-colors
|
|
3
3
|
${o?"border-[var(--color-accent-500)] text-[var(--color-accent-600)]":"border-transparent text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--border-color)]"}
|
|
4
4
|
`,children:[e.jsx(d,{className:`mr-2 h-5 w-5 ${o?"text-[var(--color-accent-500)]":"text-[var(--text-tertiary)] group-hover:text-[var(--text-secondary)]"}`}),t(s.labelKey)]},s.id)})})}),e.jsx(S.Outlet,{context:{settings:x,refreshSettings:f}})]})}function T(){const{t}=$.useTranslation("admin"),{settings:y}=S.useOutletContext(),l=y.filter(r=>r.category==="Database"),x=y.filter(r=>r.category==="Storage"),u=x.filter(r=>r.key.startsWith("Local")||r.key==="Provider"),h=x.filter(r=>r.key.startsWith("Azure")),v=x.find(r=>r.key==="Provider")?.value,f=l.find(r=>r.key==="Server")?.value,c=l.find(r=>r.key==="DatabaseName")?.value,i=v==="Azure",s=v==="Local"||v==="FileSystem",d=r=>{const n=`${r.category}.${r.key}`,m=()=>{if(r.isSensitive)return"********";const g=r.displayValue||r.value;return r.valueType==="Bool"?t(g==="true"||g==="Yes"?"common.yes":"common.no"):g};return e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[var(--border-color)] last:border-0",children:[e.jsxs("div",{className:"flex-1 min-w-0 pr-4",children:[e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t(`appsettings.keys.${r.category}.${r.key}`,r.key)}),r.description&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:t(`appsettings.descriptions.${r.category}.${r.key}`,r.description)})]}),e.jsx("div",{className:"text-right max-w-[50%]",children:e.jsx("span",{className:`font-mono text-sm break-all ${r.isSensitive?"text-[var(--text-tertiary)]":"text-[var(--text-primary)]"}`,children:m()})})]},n)},o=(r,n,m,g,p,b,j="neutral",N)=>{const k=g;if(m.length===0)return null;const C=j==="inactive",A=j==="active";let w="border-[var(--border-color)]";return A?w="border-green-500/50 ring-1 ring-green-500/20":C&&(w="border-gray-400/30"),e.jsxs("div",{className:`rounded-[var(--radius-card)] border ${w} bg-[var(--bg-card)] overflow-hidden shadow-sm ${C?"opacity-50":""}`,children:[e.jsx("div",{className:`px-6 py-4 bg-gradient-to-r ${p} border-b border-[var(--border-color)]`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${b}`,children:e.jsx(k,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)]",children:r}),A&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400 border border-green-500/30",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.active","Actif")]}),C&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400 border border-gray-500/30",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.notUsed","Non utilisé")]}),N&&e.jsxs("span",{className:"text-xs text-[var(--text-secondary)] ml-1",children:["(",N,")"]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:n})]})]})}),e.jsx("div",{className:"px-6 py-2",children:m.map(d)})]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"rounded-lg border border-[var(--border-color)] bg-[var(--bg-card)] p-4",children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.sections.database","Database")}),e.jsxs("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:[e.jsx(a.Database,{className:"w-5 h-5 text-cyan-500"}),c||"N/A"]}),e.jsx("div",{className:"text-xs text-[var(--text-secondary)] mt-1",children:f})]}),e.jsxs("div",{className:"rounded-lg border border-[var(--border-color)] bg-[var(--bg-card)] p-4",children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.keys.Storage.Provider","Storage Provider")}),e.jsxs("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:[i?e.jsx(a.Cloud,{className:"w-5 h-5 text-sky-500"}):e.jsx(a.HardDrive,{className:"w-5 h-5 text-blue-500"}),v||"N/A"]})]})]}),o(t("appsettings.sections.database","Database"),t("appsettings.sections.databaseDescription","SQL Server database configuration"),l,a.Database,"from-cyan-500/10 to-cyan-600/5","bg-cyan-500/20 text-cyan-600","active"),o(t("appsettings.sections.localStorage","Local Storage"),t("appsettings.sections.localStorageDescription","File system storage configuration"),u.filter(r=>r.key!=="Provider"),a.HardDrive,s?"from-green-500/10 to-green-600/5":"from-gray-500/10 to-gray-600/5",s?"bg-green-500/20 text-green-600":"bg-gray-500/20 text-gray-500",s?"active":"inactive",s?v:void 0),o(t("appsettings.sections.azureStorage","Azure Blob Storage"),t("appsettings.sections.azureStorageDescription","Cloud storage configuration"),h,a.Cloud,i?"from-green-500/10 to-green-600/5":"from-gray-500/10 to-gray-600/5",i?"bg-green-500/20 text-green-600":"bg-gray-500/20 text-gray-500",i?"active":"inactive",i?"Azure":void 0),l.length===0&&x.length===0&&e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:t("appsettings.noSettings")})]})}const V=()=>e.jsx("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"currentColor",children:e.jsx("path",{d:"M11.4 24H0V12.6h11.4V24zM24 24H12.6V12.6H24V24zM11.4 11.4H0V0h11.4v11.4zm12.6 0H12.6V0H24v11.4z"})}),M=()=>e.jsxs("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"currentColor",children:[e.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"}),e.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"}),e.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"}),e.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"})]});function F(){const{t}=$.useTranslation("admin"),{settings:y}=S.useOutletContext(),l=y.filter(s=>s.category==="Authentication"),x=y.filter(s=>s.category==="Session"),u=l.filter(s=>s.key.startsWith("Jwt")||s.key.includes("Token")),h=l.find(s=>s.key==="MicrosoftOAuth")?.value==="true",v=l.find(s=>s.key==="GoogleOAuth")?.value==="true",f=s=>{const d=`${s.category}.${s.key}`,o=()=>{if(s.isSensitive)return"********";const r=s.displayValue||s.value;return s.valueType==="Bool"?t(r==="true"||r==="Yes"?"common.yes":"common.no"):r};return e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[var(--border-color)] last:border-0",children:[e.jsxs("div",{className:"flex-1 min-w-0 pr-4",children:[e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t(`appsettings.keys.Authentication.${s.key}`,{defaultValue:s.key})}),s.description&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:t(`appsettings.descriptions.Authentication.${s.key}`,{defaultValue:s.description})})]}),e.jsx("div",{className:"text-right max-w-[50%]",children:e.jsx("span",{className:`font-mono text-sm break-all ${s.isSensitive?"text-[var(--text-tertiary)]":"text-[var(--text-primary)]"}`,children:o()})})]},d)},c=(s,d,o,r,n,m,g="neutral",p)=>{const b=r;if(o.length===0)return null;const j=g==="inactive",N=g==="active";let k="border-[var(--border-color)]";return N?k="border-green-500/50 ring-1 ring-green-500/20":j&&(k="border-gray-400/30"),e.jsxs("div",{className:`rounded-[var(--radius-card)] border ${k} bg-[var(--bg-card)] overflow-hidden shadow-sm ${j?"opacity-50":""}`,children:[e.jsx("div",{className:`px-6 py-4 bg-gradient-to-r ${n} border-b border-[var(--border-color)]`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${m}`,children:e.jsx(b,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)]",children:s}),N&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400 border border-green-500/30",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.configured","Configuré")]}),j&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400 border border-gray-500/30",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.notConfigured","Non configuré")]}),p]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:d})]})]})}),e.jsx("div",{className:"px-6 py-2",children:o.map(f)})]})},i=(s,d,o,r)=>e.jsx("div",{className:`rounded-lg border ${d?"border-green-500/50 ring-1 ring-green-500/20":"border-gray-400/30 opacity-50"} bg-[var(--bg-card)] p-4`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${r}`,children:e.jsx(o,{})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:s}),d?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400 border border-green-500/30",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.configured","Configuré")]}):e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400 border border-gray-500/30",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.notConfigured","Non configuré")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:d?t("appsettings.oauthConfiguredDesc","OAuth authentication is enabled"):t("appsettings.oauthNotConfiguredDesc","ClientId not configured in appsettings.json")})]})]})});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)] mb-4",children:t("appsettings.sections.oauthProviders","OAuth Providers")}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[i("Microsoft",h,V,"bg-blue-500/20 text-blue-600"),i("Google",v,M,"bg-red-500/20 text-red-600")]})]}),c(t("appsettings.sections.jwt","JWT Configuration"),t("appsettings.sections.jwtDescription","JSON Web Token settings for authentication"),u,a.Key,"from-violet-500/10 to-violet-600/5","bg-violet-500/20 text-violet-600","active"),c(t("appsettings.sections.session","Session"),t("appsettings.sections.sessionDescription","User session timeout and validation settings"),x,a.Clock,"from-amber-500/10 to-amber-600/5","bg-amber-500/20 text-amber-600","active"),l.length===0&&x.length===0&&e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:t("appsettings.noSettings")})]})}function z(){const{t}=$.useTranslation("admin"),{settings:y}=S.useOutletContext(),l=y.filter(n=>n.category==="Logging"),x=l.filter(n=>n.key.includes("File")||n.key.includes("Rolling")||n.key.includes("Retention")),u=l.filter(n=>n.key.includes("Seq")),h=l.filter(n=>n.key.includes("AppInsights")),v=l.filter(n=>n.key.includes("Level")||n.key.includes("Minimum")),f=l.find(n=>n.key==="ConsoleEnabled")?.value==="true",c=l.find(n=>n.key==="FileEnabled")?.value==="true",i=l.find(n=>n.key==="SeqEnabled")?.value==="true",s=l.find(n=>n.key==="AppInsightsEnabled")?.value==="true",d=n=>{const m=`${n.category}.${n.key}`,g=()=>{if(n.isSensitive)return"********";const p=n.displayValue||n.value;return n.valueType==="Bool"?t(p==="true"||p==="Yes"?"common.yes":"common.no"):p};return e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[var(--border-color)] last:border-0",children:[e.jsxs("div",{className:"flex-1 min-w-0 pr-4",children:[e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t(`appsettings.keys.Logging.${n.key}`,n.key)}),n.description&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:t(`appsettings.descriptions.Logging.${n.key}`,n.description)})]}),e.jsx("div",{className:"text-right max-w-[50%]",children:e.jsx("span",{className:`font-mono text-sm break-all ${n.isSensitive?"text-[var(--text-tertiary)]":"text-[var(--text-primary)]"}`,children:g()})})]},m)},o=(n,m,g,p,b,j,N="neutral")=>{const k=p;if(g.length===0)return null;const C=N==="inactive",A=N==="active";let w="border-[var(--border-color)]";return A?w="border-green-500/50 ring-1 ring-green-500/20":C&&(w="border-gray-400/30"),e.jsxs("div",{className:`rounded-[var(--radius-card)] border ${w} bg-[var(--bg-card)] overflow-hidden shadow-sm ${C?"opacity-50":""}`,children:[e.jsx("div",{className:`px-6 py-4 bg-gradient-to-r ${b} border-b border-[var(--border-color)]`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${j}`,children:e.jsx(k,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)]",children:n}),A&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400 border border-green-500/30",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.enabled","Activé")]}),C&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400 border border-gray-500/30",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.disabled","Désactivé")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:m})]})]})}),e.jsx("div",{className:"px-6 py-2",children:g.map(d)})]})},r=(n,m,g,p)=>{const b=g;return e.jsx("div",{className:`rounded-lg border ${m?"border-green-500/50":"border-gray-400/30 opacity-50"} bg-[var(--bg-card)] p-4`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${p}`,children:e.jsx(b,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:n}),m?e.jsxs("span",{className:"ml-2 inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.enabled","Activé")]}):e.jsxs("span",{className:"ml-2 inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.disabled","Désactivé")]})]})]})})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)] mb-4",children:t("appsettings.sections.loggingSinks","Logging Sinks")}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[r("Console",f,a.Monitor,"bg-gray-500/20 text-gray-600"),r("File",c,a.FileText,"bg-violet-500/20 text-violet-600"),r("Seq",i,a.Database,"bg-blue-500/20 text-blue-600"),r("App Insights",s,a.BarChart3,"bg-purple-500/20 text-purple-600")]})]}),o(t("appsettings.sections.logLevels","Log Levels"),t("appsettings.sections.logLevelsDescription","Minimum log level configuration"),v,a.BarChart3,"from-emerald-500/10 to-emerald-600/5","bg-emerald-500/20 text-emerald-600","neutral"),o(t("appsettings.sections.fileLogging","File Logging"),t("appsettings.sections.fileLoggingDescription","File-based log output configuration"),x,a.FileText,c?"from-violet-500/10 to-violet-600/5":"from-gray-500/10 to-gray-600/5",c?"bg-violet-500/20 text-violet-600":"bg-gray-500/20 text-gray-500",c?"active":"inactive"),u.length>0&&o(t("appsettings.sections.seqLogging","Seq"),t("appsettings.sections.seqLoggingDescription","Seq structured logging server"),u,a.Database,i?"from-blue-500/10 to-blue-600/5":"from-gray-500/10 to-gray-600/5",i?"bg-blue-500/20 text-blue-600":"bg-gray-500/20 text-gray-500",i?"active":"inactive"),h.length>0&&o(t("appsettings.sections.appInsights","Application Insights"),t("appsettings.sections.appInsightsDescription","Azure Application Insights telemetry"),h,a.BarChart3,s?"from-purple-500/10 to-purple-600/5":"from-gray-500/10 to-gray-600/5",s?"bg-purple-500/20 text-purple-600":"bg-gray-500/20 text-gray-500",s?"active":"inactive"),l.length===0&&e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:t("appsettings.noSettings")})]})}function P(){const{t}=$.useTranslation("admin"),{settings:y}=S.useOutletContext(),l=y.filter(c=>c.category==="Email"),x=l.find(c=>c.key==="Enabled")?.value==="true",u=l.find(c=>c.key==="Provider")?.value,h=l.find(c=>c.key==="FromEmail")?.value,v=c=>{const i=`${c.category}.${c.key}`,s=()=>{if(c.isSensitive)return"********";const d=c.displayValue||c.value;return c.valueType==="Bool"?t(d==="true"||d==="Yes"?"common.yes":"common.no"):d};return e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[var(--border-color)] last:border-0",children:[e.jsxs("div",{className:"flex-1 min-w-0 pr-4",children:[e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t(`appsettings.keys.Email.${c.key}`,c.key)}),c.description&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:t(`appsettings.descriptions.Email.${c.key}`,c.description)})]}),e.jsx("div",{className:"text-right max-w-[50%]",children:e.jsx("span",{className:`font-mono text-sm break-all ${c.isSensitive?"text-[var(--text-tertiary)]":"text-[var(--text-primary)]"}`,children:s()})})]},i)},f=(c,i,s,d,o,r,n="neutral")=>{const m=d;if(s.length===0)return null;const g=n==="inactive",p=n==="active";let b="border-[var(--border-color)]";return p?b="border-green-500/50 ring-1 ring-green-500/20":g&&(b="border-gray-400/30"),e.jsxs("div",{className:`rounded-[var(--radius-card)] border ${b} bg-[var(--bg-card)] overflow-hidden shadow-sm ${g?"opacity-50":""}`,children:[e.jsx("div",{className:`px-6 py-4 bg-gradient-to-r ${o} border-b border-[var(--border-color)]`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${r}`,children:e.jsx(m,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)]",children:c}),p&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400 border border-green-500/30",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.enabled","Activé")]}),g&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400 border border-gray-500/30",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.disabled","Désactivé")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:i})]})]})}),e.jsx("div",{className:"px-6 py-2",children:s.map(v)})]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:`rounded-lg border ${x?"border-green-500/50":"border-gray-400/30 opacity-50"} bg-[var(--bg-card)] p-4`,children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.status","Status")}),e.jsx("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:x?e.jsxs(e.Fragment,{children:[e.jsx(a.CheckCircle2,{className:"w-5 h-5 text-green-500"}),t("appsettings.enabled","Activé")]}):e.jsxs(e.Fragment,{children:[e.jsx(a.CircleSlash,{className:"w-5 h-5 text-gray-500"}),t("appsettings.disabled","Désactivé")]})})]}),e.jsxs("div",{className:"rounded-lg border border-[var(--border-color)] bg-[var(--bg-card)] p-4",children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.keys.Email.Provider","Provider")}),e.jsxs("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:[e.jsx(a.Send,{className:"w-5 h-5 text-amber-500"}),u||"N/A"]})]}),e.jsxs("div",{className:"rounded-lg border border-[var(--border-color)] bg-[var(--bg-card)] p-4",children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.keys.Email.FromEmail","From Email")}),e.jsxs("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:[e.jsx(a.Mail,{className:"w-5 h-5 text-amber-500"}),e.jsx("span",{className:"truncate",children:h||"N/A"})]})]})]}),f(t("appsettings.sections.emailConfiguration","Email Configuration"),t("appsettings.sections.emailConfigurationDescription","SMTP and email provider settings"),l,a.Mail,x?"from-amber-500/10 to-amber-600/5":"from-gray-500/10 to-gray-600/5",x?"bg-amber-500/20 text-amber-600":"bg-gray-500/20 text-gray-500",x?"active":"inactive"),l.length===0&&e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:t("appsettings.noSettings")})]})}function q(){const{t}=$.useTranslation("admin"),{settings:y}=S.useOutletContext(),l=y.filter(i=>i.category==="Entra"),x=l.find(i=>i.key==="SyncEnabled")?.value==="true",u=l.find(i=>i.key==="Configured")?.value==="true",h=l.find(i=>i.key==="SyncIntervalMinutes")?.value,v=l.find(i=>i.key==="UseDeltaSync")?.value==="true",f=i=>{const s=`${i.category}.${i.key}`,d=()=>{if(i.isSensitive)return"********";const o=i.displayValue||i.value;return i.valueType==="Bool"?t(o==="true"||o==="Yes"?"common.yes":"common.no"):o};return e.jsxs("div",{className:"flex items-center justify-between py-3 border-b border-[var(--border-color)] last:border-0",children:[e.jsxs("div",{className:"flex-1 min-w-0 pr-4",children:[e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t(`appsettings.keys.Entra.${i.key}`,i.key)}),i.description&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:t(`appsettings.descriptions.Entra.${i.key}`,i.description)})]}),e.jsx("div",{className:"text-right max-w-[50%]",children:e.jsx("span",{className:`font-mono text-sm break-all ${i.isSensitive?"text-[var(--text-tertiary)]":"text-[var(--text-primary)]"}`,children:d()})})]},s)},c=(i,s,d,o,r,n,m="neutral")=>{const g=o;if(d.length===0)return null;const p=m==="inactive",b=m==="active";let j="border-[var(--border-color)]";return b?j="border-green-500/50 ring-1 ring-green-500/20":p&&(j="border-gray-400/30"),e.jsxs("div",{className:`rounded-[var(--radius-card)] border ${j} bg-[var(--bg-card)] overflow-hidden shadow-sm ${p?"opacity-50":""}`,children:[e.jsx("div",{className:`px-6 py-4 bg-gradient-to-r ${r} border-b border-[var(--border-color)]`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${n}`,children:e.jsx(g,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)]",children:i}),b&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-green-500/20 text-green-700 dark:text-green-400 border border-green-500/30",children:[e.jsx(a.CheckCircle2,{className:"w-3 h-3"}),t("appsettings.enabled","Activé")]}),p&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-gray-500/20 text-gray-600 dark:text-gray-400 border border-gray-500/30",children:[e.jsx(a.CircleSlash,{className:"w-3 h-3"}),t("appsettings.disabled","Désactivé")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:s})]})]})}),e.jsx("div",{className:"px-6 py-2",children:d.map(f)})]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[e.jsxs("div",{className:`rounded-lg border ${u?"border-green-500/50":"border-gray-400/30 opacity-50"} bg-[var(--bg-card)] p-4`,children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.configuration","Configuration")}),e.jsx("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:u?e.jsxs(e.Fragment,{children:[e.jsx(a.CheckCircle2,{className:"w-5 h-5 text-green-500"}),t("appsettings.configured","Configuré")]}):e.jsxs(e.Fragment,{children:[e.jsx(a.CircleSlash,{className:"w-5 h-5 text-gray-500"}),t("appsettings.notConfigured","Non configuré")]})})]}),e.jsxs("div",{className:`rounded-lg border ${x?"border-green-500/50":"border-gray-400/30 opacity-50"} bg-[var(--bg-card)] p-4`,children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.keys.Entra.SyncEnabled","Sync Status")}),e.jsxs("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:[e.jsx(a.RefreshCw,{className:`w-5 h-5 ${x?"text-green-500":"text-gray-500"}`}),x?t("appsettings.enabled","Activé"):t("appsettings.disabled","Désactivé")]})]}),e.jsxs("div",{className:"rounded-lg border border-[var(--border-color)] bg-[var(--bg-card)] p-4",children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.keys.Entra.SyncIntervalMinutes","Sync Interval")}),e.jsxs("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:[e.jsx(a.Cloud,{className:"w-5 h-5 text-sky-500"}),h?`${h} min`:"N/A"]})]}),e.jsxs("div",{className:`rounded-lg border ${v?"border-green-500/50":"border-[var(--border-color)]"} bg-[var(--bg-card)] p-4`,children:[e.jsx("div",{className:"text-xs text-[var(--text-secondary)] uppercase tracking-wider mb-1",children:t("appsettings.keys.Entra.UseDeltaSync","Delta Sync")}),e.jsx("div",{className:"text-lg font-semibold text-[var(--text-primary)] flex items-center gap-2",children:v?e.jsxs(e.Fragment,{children:[e.jsx(a.CheckCircle2,{className:"w-5 h-5 text-green-500"}),t("common.yes","Oui")]}):e.jsxs(e.Fragment,{children:[e.jsx(a.CircleSlash,{className:"w-5 h-5 text-gray-500"}),t("common.no","Non")]})})]})]}),c(t("appsettings.sections.entraConfiguration","Microsoft Entra ID"),t("appsettings.sections.entraConfigurationDescription","Azure AD synchronization settings"),l,a.Cloud,u?"from-sky-500/10 to-sky-600/5":"from-gray-500/10 to-gray-600/5",u?"bg-sky-500/20 text-sky-600":"bg-gray-500/20 text-gray-500",u?"active":"inactive"),l.length===0&&e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:t("appsettings.noSettings")})]})}exports.AppSettingsPage=L;exports.AuthenticationSection=F;exports.EmailSection=P;exports.EntraSection=q;exports.InfrastructureSection=T;exports.LoggingSection=z;
|
|
5
|
-
//# sourceMappingURL=index-
|
|
5
|
+
//# sourceMappingURL=index-B5U_Jp0-.js.map
|