@atlashub/smartstack 3.21.0 → 3.25.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-7si3Ng8e.js → AgentSkillsPage-BWQSCYl-.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-7si3Ng8e.js.map → AgentSkillsPage-BWQSCYl-.js.map} +1 -1
- package/dist/chunks/{AgentSkillsPage-D0cD1QdM.js → AgentSkillsPage-IQcMnBaD.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-D0cD1QdM.js.map → AgentSkillsPage-IQcMnBaD.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-H_7ze33H.js → AgentWorkloadPage-DqrjkvWL.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-H_7ze33H.js.map → AgentWorkloadPage-DqrjkvWL.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-D4d86cdV.js → AgentWorkloadPage-w-HiyFYP.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-D4d86cdV.js.map → AgentWorkloadPage-w-HiyFYP.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-2ktkRrCb.js → ApiCatalogDetailPage-D3L8Yf4G.js} +3 -3
- package/dist/chunks/{ApiCatalogDetailPage-2ktkRrCb.js.map → ApiCatalogDetailPage-D3L8Yf4G.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-BQ53xuwD.js → ApiCatalogDetailPage-MPT3Kz6H.js} +2 -2
- package/dist/chunks/{ApiCatalogDetailPage-BQ53xuwD.js.map → ApiCatalogDetailPage-MPT3Kz6H.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BEqTDJz8.js → ApiCatalogPage-D4Hg3uiS.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BEqTDJz8.js.map → ApiCatalogPage-D4Hg3uiS.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BBkWSLI8.js → ApiCatalogPage-DRg5Cz0r.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BBkWSLI8.js.map → ApiCatalogPage-DRg5Cz0r.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-BYJ2YMPq.js → ApplicationDetailPage-Caizuyn2.js} +2 -2
- package/dist/chunks/{ApplicationDetailPage-BYJ2YMPq.js.map → ApplicationDetailPage-Caizuyn2.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-D8-bf1as.js → ApplicationDetailPage-CuCW6aMB.js} +4 -4
- package/dist/chunks/{ApplicationDetailPage-D8-bf1as.js.map → ApplicationDetailPage-CuCW6aMB.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-BBlLms2r.js → ApplicationsDashboardPage-B2MW8-Kc.js} +2 -2
- package/dist/chunks/{ApplicationsDashboardPage-BBlLms2r.js.map → ApplicationsDashboardPage-B2MW8-Kc.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-DTWZxJJM.js → ApplicationsDashboardPage-BDIjFIYZ.js} +3 -3
- package/dist/chunks/{ApplicationsDashboardPage-DTWZxJJM.js.map → ApplicationsDashboardPage-BDIjFIYZ.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-BQaMsK1K.js → ApplicationsGridPage-DV-FihKj.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-BQaMsK1K.js.map → ApplicationsGridPage-DV-FihKj.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-DbVcvezt.js → ApplicationsGridPage-DXsTfXPI.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-DbVcvezt.js.map → ApplicationsGridPage-DXsTfXPI.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-DYKM2Yeo.js → ApplicationsListPage--CGkyBuJ.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-DYKM2Yeo.js.map → ApplicationsListPage--CGkyBuJ.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-C91v2rZt.js → ApplicationsListPage-JUX823bh.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-C91v2rZt.js.map → ApplicationsListPage-JUX823bh.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-BCbgotIx.js → ApplicationsPage-6zgFye6w.js} +2 -2
- package/dist/chunks/{ApplicationsPage-BCbgotIx.js.map → ApplicationsPage-6zgFye6w.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-CW3-Hjlu.js → ApplicationsPage-CQPuuiO6.js} +4 -4
- package/dist/chunks/{ApplicationsPage-CW3-Hjlu.js.map → ApplicationsPage-CQPuuiO6.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-D8vfGDBN.js → AssignmentRulesPage-CFffeEbo.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-D8vfGDBN.js.map → AssignmentRulesPage-CFffeEbo.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-CxktlEMB.js → AssignmentRulesPage-D78UeUId.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-CxktlEMB.js.map → AssignmentRulesPage-D78UeUId.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-DmfBYQAD.js → AssignmentsPage-Cww2ifZF.js} +2 -2
- package/dist/chunks/{AssignmentsPage-DmfBYQAD.js.map → AssignmentsPage-Cww2ifZF.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-sRCCBmRc.js → AssignmentsPage-DE_QS2LO.js} +2 -2
- package/dist/chunks/{AssignmentsPage-sRCCBmRc.js.map → AssignmentsPage-DE_QS2LO.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-C7XiZxKb.js → AuthCallbackPage-CA2nO6DG.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-C7XiZxKb.js.map → AuthCallbackPage-CA2nO6DG.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-BCe_bwJM.js → AuthCallbackPage-CDUAoX-N.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-BCe_bwJM.js.map → AuthCallbackPage-CDUAoX-N.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-BUfGSqxF.js → ConfirmEmailPage-BqsILAYH.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-BUfGSqxF.js.map → ConfirmEmailPage-BqsILAYH.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-Buj4x-rx.js → ConfirmEmailPage-INeHCuMB.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-Buj4x-rx.js.map → ConfirmEmailPage-INeHCuMB.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-CKDX_HQm.js → CreateSupportTicketPage-BWeuV2aU.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-CKDX_HQm.js.map → CreateSupportTicketPage-BWeuV2aU.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-0LgY-_pu.js → CreateSupportTicketPage-OBwF4v7b.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-0LgY-_pu.js.map → CreateSupportTicketPage-OBwF4v7b.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CUZ80NGV.js → DashboardPage-CKHqWrdS.js} +3 -3
- package/dist/chunks/{DashboardPage-CUZ80NGV.js.map → DashboardPage-CKHqWrdS.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CaNOAstg.js → DashboardPage-COmc9b__.js} +3 -3
- package/dist/chunks/{DashboardPage-CaNOAstg.js.map → DashboardPage-COmc9b__.js.map} +1 -1
- package/dist/chunks/{DashboardPage-B48_rQFi.js → DashboardPage-CfKZHiSj.js} +2 -2
- package/dist/chunks/{DashboardPage-B48_rQFi.js.map → DashboardPage-CfKZHiSj.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CUZV1J9t.js → DashboardPage-CwEZZ3jx.js} +2 -2
- package/dist/chunks/{DashboardPage-CUZV1J9t.js.map → DashboardPage-CwEZZ3jx.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-CdzAbnGy.js → EscalationConfigPage--7lgZ0kJ.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-CdzAbnGy.js.map → EscalationConfigPage--7lgZ0kJ.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-CYGIl_e6.js → EscalationConfigPage-DPyiBcqV.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-CYGIl_e6.js.map → EscalationConfigPage-DPyiBcqV.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-lRpkwcX7.js → ForceChangePasswordPage-BE-6umub.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-lRpkwcX7.js.map → ForceChangePasswordPage-BE-6umub.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-CvmYAV3r.js → ForceChangePasswordPage-CnsYoWmV.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-CvmYAV3r.js.map → ForceChangePasswordPage-CnsYoWmV.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-0u49E4Pw.js → ForgotPasswordPage-CSq4DnFF.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-0u49E4Pw.js.map → ForgotPasswordPage-CSq4DnFF.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-CxQUqKOm.js → ForgotPasswordPage-DZLVolAC.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-CxQUqKOm.js.map → ForgotPasswordPage-DZLVolAC.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-DFBvVO1S.js → GroupDetailPage-Bf9Wb_2j.js} +5 -5
- package/dist/chunks/{GroupDetailPage-DFBvVO1S.js.map → GroupDetailPage-Bf9Wb_2j.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-B2FkKrGG.js → GroupDetailPage-R-hf3rJ7.js} +2 -2
- package/dist/chunks/{GroupDetailPage-B2FkKrGG.js.map → GroupDetailPage-R-hf3rJ7.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js → MyAccessRequestsPage-BIisvWM6.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js.map → MyAccessRequestsPage-BIisvWM6.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js → MyAccessRequestsPage-BLSV7Tbx.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js.map → MyAccessRequestsPage-BLSV7Tbx.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-BEcYYdGR.js → MyTenantsPage-D-7k9CP1.js} +3 -3
- package/dist/chunks/{MyTenantsPage-BEcYYdGR.js.map → MyTenantsPage-D-7k9CP1.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-D9f85zjF.js → MyTenantsPage-DqGW6aDt.js} +2 -2
- package/dist/chunks/{MyTenantsPage-D9f85zjF.js.map → MyTenantsPage-DqGW6aDt.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-DJR8h6y1.js → MyTicketsPage--DgDsnZA.js} +2 -2
- package/dist/chunks/{MyTicketsPage-DJR8h6y1.js.map → MyTicketsPage--DgDsnZA.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-DiOUExKJ.js → MyTicketsPage-CqJ3Aqob.js} +2 -2
- package/dist/chunks/{MyTicketsPage-DiOUExKJ.js.map → MyTicketsPage-CqJ3Aqob.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-CeHbxfZw.js → NavigationAppsPage-Bebis_RT.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-CeHbxfZw.js.map → NavigationAppsPage-Bebis_RT.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-If7tmCFY.js → NavigationAppsPage-THNPOAjv.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-If7tmCFY.js.map → NavigationAppsPage-THNPOAjv.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-C29Lln5o.js → NotificationsPage-CAbNW_Cn.js} +2 -2
- package/dist/chunks/{NotificationsPage-C29Lln5o.js.map → NotificationsPage-CAbNW_Cn.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-BiaLRb0s.js → NotificationsPage-DxwizUhL.js} +2 -2
- package/dist/chunks/{NotificationsPage-BiaLRb0s.js.map → NotificationsPage-DxwizUhL.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-DQrBKNBq.js → OnboardingWizardPage-C6HlbJ3K.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-DQrBKNBq.js.map → OnboardingWizardPage-C6HlbJ3K.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-BQah4cI8.js → OnboardingWizardPage-CyC2zONO.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-BQah4cI8.js.map → OnboardingWizardPage-CyC2zONO.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-Ckjdjvf9.js → PermissionDetailPage-BDHiNgky.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-Ckjdjvf9.js.map → PermissionDetailPage-BDHiNgky.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-Dh8v7mGj.js → PermissionDetailPage-C5K17ydY.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-Dh8v7mGj.js.map → PermissionDetailPage-C5K17ydY.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-l0PnY-EE.js → PermissionsPage-COI5LJPo.js} +2 -2
- package/dist/chunks/{PermissionsPage-l0PnY-EE.js.map → PermissionsPage-COI5LJPo.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-DLy9U3P3.js → PermissionsPage-CkOwH2_d.js} +2 -2
- package/dist/chunks/{PermissionsPage-DLy9U3P3.js.map → PermissionsPage-CkOwH2_d.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-DFBx38-x.js → PortalDashboardPage-CoEC4CmC.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-DFBx38-x.js.map → PortalDashboardPage-CoEC4CmC.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-rQYhrX0q.js → PortalDashboardPage-DrYymEf-.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-rQYhrX0q.js.map → PortalDashboardPage-DrYymEf-.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-BBu8yZQB.js → PreferencesPage-CJRaU3ba.js} +2 -2
- package/dist/chunks/{PreferencesPage-BBu8yZQB.js.map → PreferencesPage-CJRaU3ba.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-B81MsNV1.js → PreferencesPage-Cqr9mAab.js} +2 -2
- package/dist/chunks/{PreferencesPage-B81MsNV1.js.map → PreferencesPage-Cqr9mAab.js.map} +1 -1
- package/dist/chunks/{ProfilePage-DDrl10zj.js → ProfilePage-BZVpg6-l.js} +2 -2
- package/dist/chunks/{ProfilePage-DDrl10zj.js.map → ProfilePage-BZVpg6-l.js.map} +1 -1
- package/dist/chunks/{ProfilePage-DPoXwdnc.js → ProfilePage-Cu_FITeL.js} +2 -2
- package/dist/chunks/{ProfilePage-DPoXwdnc.js.map → ProfilePage-Cu_FITeL.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-eFsKjIEK.js → ReferencesManagementPage-DUlVk9Ps.js} +3 -3
- package/dist/chunks/{ReferencesManagementPage-eFsKjIEK.js.map → ReferencesManagementPage-DUlVk9Ps.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-DhVsuElE.js → ReferencesManagementPage-ZCuYtqd7.js} +2 -2
- package/dist/chunks/{ReferencesManagementPage-DhVsuElE.js.map → ReferencesManagementPage-ZCuYtqd7.js.map} +1 -1
- package/dist/chunks/{RegisterPage-CiQib3-6.js → RegisterPage-C4xmVwh9.js} +2 -2
- package/dist/chunks/{RegisterPage-CiQib3-6.js.map → RegisterPage-C4xmVwh9.js.map} +1 -1
- package/dist/chunks/{RegisterPage-bXCcJD88.js → RegisterPage-DGyzoIHT.js} +2 -2
- package/dist/chunks/{RegisterPage-bXCcJD88.js.map → RegisterPage-DGyzoIHT.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-Dqiahhnj.js → ResetPasswordPage-DqDD6VPR.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-Dqiahhnj.js.map → ResetPasswordPage-DqDD6VPR.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-CubPG3yv.js → ResetPasswordPage-Glu-aeqv.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-CubPG3yv.js.map → ResetPasswordPage-Glu-aeqv.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-Bg7XZmR1.js → ResolutionModal-CxjANAOP.js} +2 -2
- package/dist/chunks/{ResolutionModal-Bg7XZmR1.js.map → ResolutionModal-CxjANAOP.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-DqRk_T0n.js → ResolutionModal-Duat18qV.js} +2 -2
- package/dist/chunks/{ResolutionModal-DqRk_T0n.js.map → ResolutionModal-Duat18qV.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-Blau6_4c.js → RoleDetailPage-BQffUSnt.js} +3 -3
- package/dist/chunks/{RoleDetailPage-Blau6_4c.js.map → RoleDetailPage-BQffUSnt.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-CiRVxxIP.js → RoleDetailPage-JTm5lD1_.js} +2 -2
- package/dist/chunks/{RoleDetailPage-CiRVxxIP.js.map → RoleDetailPage-JTm5lD1_.js.map} +1 -1
- package/dist/chunks/{RolesPage-Pm-RN3lP.js → RolesPage-B9rRzciI.js} +2 -2
- package/dist/chunks/{RolesPage-Pm-RN3lP.js.map → RolesPage-B9rRzciI.js.map} +1 -1
- package/dist/chunks/{RolesPage-Cb8joqdJ.js → RolesPage-BN8_zMOC.js} +2 -2
- package/dist/chunks/{RolesPage-Cb8joqdJ.js.map → RolesPage-BN8_zMOC.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-B86McKM6.js → SlaConfigPage-B7kZNig4.js} +2 -2
- package/dist/chunks/{SlaConfigPage-B86McKM6.js.map → SlaConfigPage-B7kZNig4.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-BY7gvYU6.js → SlaConfigPage-okvZfA_K.js} +2 -2
- package/dist/chunks/{SlaConfigPage-BY7gvYU6.js.map → SlaConfigPage-okvZfA_K.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-BYxcLMSd.js → SupportPermissionsPage-DGAPqJbl.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-BYxcLMSd.js.map → SupportPermissionsPage-DGAPqJbl.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-MXqXNJIZ.js → SupportPermissionsPage-Dg_wLOme.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-MXqXNJIZ.js.map → SupportPermissionsPage-Dg_wLOme.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-BDguJ401.js → TemplatesPage-DT9fhlAU.js} +2 -2
- package/dist/chunks/{TemplatesPage-BDguJ401.js.map → TemplatesPage-DT9fhlAU.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-DdnGgioU.js → TemplatesPage-DiEk538p.js} +2 -2
- package/dist/chunks/{TemplatesPage-DdnGgioU.js.map → TemplatesPage-DiEk538p.js.map} +1 -1
- package/dist/chunks/{TenantCard-ffwWsgFQ.js → TenantCard-BbSYk9_Z.js} +2 -2
- package/dist/chunks/{TenantCard-ffwWsgFQ.js.map → TenantCard-BbSYk9_Z.js.map} +1 -1
- package/dist/chunks/{TenantCard-CUjb6og9.js → TenantCard-CEkiKxcZ.js} +2 -2
- package/dist/chunks/{TenantCard-CUjb6og9.js.map → TenantCard-CEkiKxcZ.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-Dz7i1I43.js → TenantScopeSelector-BWfYxvEa.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-Dz7i1I43.js.map → TenantScopeSelector-BWfYxvEa.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-Cym_Zyps.js → TenantScopeSelector-D-BKgQPV.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-Cym_Zyps.js.map → TenantScopeSelector-D-BKgQPV.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-GOh9GX7E.js → TicketDetailPage-C1mNS9Up.js} +2 -2
- package/dist/chunks/{TicketDetailPage-GOh9GX7E.js.map → TicketDetailPage-C1mNS9Up.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-Du8WMyqf.js → TicketDetailPage-ieVDRh42.js} +2 -2
- package/dist/chunks/{TicketDetailPage-Du8WMyqf.js.map → TicketDetailPage-ieVDRh42.js.map} +1 -1
- package/dist/chunks/{TicketsPage-Bqd6moQy.js → TicketsPage-CnuWsnIW.js} +2 -2
- package/dist/chunks/{TicketsPage-Bqd6moQy.js.map → TicketsPage-CnuWsnIW.js.map} +1 -1
- package/dist/chunks/{TicketsPage-WdU4Bb7M.js → TicketsPage-jjyY15_D.js} +2 -2
- package/dist/chunks/{TicketsPage-WdU4Bb7M.js.map → TicketsPage-jjyY15_D.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-Cm1emgwR.js → UserCreateTicketPage-B8Tvf-ag.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-Cm1emgwR.js.map → UserCreateTicketPage-B8Tvf-ag.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-BPw-5Y_D.js → UserCreateTicketPage-DnOsDlfO.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-BPw-5Y_D.js.map → UserCreateTicketPage-DnOsDlfO.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-BP5WeXPS.js → UserDashboardPage-BrtkJ-NB.js} +2 -2
- package/dist/chunks/{UserDashboardPage-BP5WeXPS.js.map → UserDashboardPage-BrtkJ-NB.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-B53C8fUq.js → UserDashboardPage-KLB5CQP5.js} +2 -2
- package/dist/chunks/{UserDashboardPage-B53C8fUq.js.map → UserDashboardPage-KLB5CQP5.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-B110bmGX.js → UserDetailPage-U7smBQoF.js} +5 -5
- package/dist/chunks/{UserDetailPage-B110bmGX.js.map → UserDetailPage-U7smBQoF.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-CV2VCE46.js → UserDetailPage-_J6lcKAU.js} +2 -2
- package/dist/chunks/{UserDetailPage-CV2VCE46.js.map → UserDetailPage-_J6lcKAU.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-CCNJON1V.js → UserTicketDetailPage-CWoYQgH-.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-CCNJON1V.js.map → UserTicketDetailPage-CWoYQgH-.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-V0mLXrox.js → UserTicketDetailPage-DkufSlvZ.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-V0mLXrox.js.map → UserTicketDetailPage-DkufSlvZ.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-CmdaU-z-.js → UsersGroupsPage-C38s2-Rq.js} +3 -3
- package/dist/chunks/{UsersGroupsPage-CmdaU-z-.js.map → UsersGroupsPage-C38s2-Rq.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-BgfAMgEP.js → UsersGroupsPage-Dq3rAteo.js} +2 -2
- package/dist/chunks/{UsersGroupsPage-BgfAMgEP.js.map → UsersGroupsPage-Dq3rAteo.js.map} +1 -1
- package/dist/chunks/{UsersPage-Bg7033pp.js → UsersPage-B5C5KEUR.js} +2 -2
- package/dist/chunks/{UsersPage-Bg7033pp.js.map → UsersPage-B5C5KEUR.js.map} +1 -1
- package/dist/chunks/{UsersPage-TYAfwPY1.js → UsersPage-CXC9Hvq6.js} +2 -2
- package/dist/chunks/{UsersPage-TYAfwPY1.js.map → UsersPage-CXC9Hvq6.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-DZeDvzwv.js → accessRequestsApi-B-4TJ5_U.js} +2 -2
- package/dist/chunks/{accessRequestsApi-DZeDvzwv.js.map → accessRequestsApi-B-4TJ5_U.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-ZXFPCid2.js → accessRequestsApi-DZSfThpd.js} +2 -2
- package/dist/chunks/{accessRequestsApi-ZXFPCid2.js.map → accessRequestsApi-DZSfThpd.js.map} +1 -1
- package/dist/chunks/{aiApi-CsH8DXgs.js → aiApi-B20Teu2v.js} +2 -2
- package/dist/chunks/{aiApi-CsH8DXgs.js.map → aiApi-B20Teu2v.js.map} +1 -1
- package/dist/chunks/{aiApi-CVPzFTXa.js → aiApi-DMGz-RPM.js} +2 -2
- package/dist/chunks/{aiApi-CVPzFTXa.js.map → aiApi-DMGz-RPM.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-B8AhFYLr.js → applicationAnalyticsApi-Bwa75Fzd.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-B8AhFYLr.js.map → applicationAnalyticsApi-Bwa75Fzd.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-Ce_1qOk-.js → applicationAnalyticsApi-CLBqRPfN.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-Ce_1qOk-.js.map → applicationAnalyticsApi-CLBqRPfN.js.map} +1 -1
- package/dist/chunks/{groupsApi-BgCk2fsp.js → groupsApi-QzXI-5xu.js} +2 -2
- package/dist/chunks/{groupsApi-BgCk2fsp.js.map → groupsApi-QzXI-5xu.js.map} +1 -1
- package/dist/chunks/{groupsApi-BIbG665N.js → groupsApi-hB9kSWEd.js} +2 -2
- package/dist/chunks/{groupsApi-BIbG665N.js.map → groupsApi-hB9kSWEd.js.map} +1 -1
- package/dist/chunks/{index-Cb3LotuT.js → index--NGcBYUu.js} +3 -3
- package/dist/chunks/{index-Cb3LotuT.js.map → index--NGcBYUu.js.map} +1 -1
- package/dist/chunks/{index-C33zcyF4.js → index--aPwOFjF.js} +2 -2
- package/dist/chunks/{index-C33zcyF4.js.map → index--aPwOFjF.js.map} +1 -1
- package/dist/chunks/{index-sMr9qND_.js → index-0VrOtwP0.js} +2 -2
- package/dist/chunks/{index-sMr9qND_.js.map → index-0VrOtwP0.js.map} +1 -1
- package/dist/chunks/{index-DDKetfKq.js → index-37U271aw.js} +2 -2
- package/dist/chunks/{index-DDKetfKq.js.map → index-37U271aw.js.map} +1 -1
- package/dist/chunks/{index-B9fS7ir6.js → index-B7qZTuQ-.js} +2 -2
- package/dist/chunks/{index-B9fS7ir6.js.map → index-B7qZTuQ-.js.map} +1 -1
- package/dist/chunks/{index-CdjBY7L8.js → index-Bedzmqr-.js} +2 -2
- package/dist/chunks/{index-CdjBY7L8.js.map → index-Bedzmqr-.js.map} +1 -1
- package/dist/chunks/{index-CHG_O1fS.js → index-Betxo5g5.js} +2 -2
- package/dist/chunks/{index-CHG_O1fS.js.map → index-Betxo5g5.js.map} +1 -1
- package/dist/chunks/{index-jiGu-H8x.js → index-BmaJz475.js} +2 -2
- package/dist/chunks/{index-jiGu-H8x.js.map → index-BmaJz475.js.map} +1 -1
- package/dist/chunks/{index-C53JoVNk.js → index-Buhqag3v.js} +2 -2
- package/dist/chunks/{index-C53JoVNk.js.map → index-Buhqag3v.js.map} +1 -1
- package/dist/chunks/{index-DO0Rw7hX.js → index-C3VxlfKq.js} +2 -2
- package/dist/chunks/{index-DO0Rw7hX.js.map → index-C3VxlfKq.js.map} +1 -1
- package/dist/chunks/{index-CSQ60fpG.js → index-CgpRo8Oe.js} +2 -2
- package/dist/chunks/{index-CSQ60fpG.js.map → index-CgpRo8Oe.js.map} +1 -1
- package/dist/chunks/{index-B-e-ELsf.js → index-DOY0w8Iu.js} +8 -8
- package/dist/chunks/{index-B-e-ELsf.js.map → index-DOY0w8Iu.js.map} +1 -1
- package/dist/chunks/{index-D2REDIRX.js → index-DwuvIOrQ.js} +2 -2
- package/dist/chunks/{index-D2REDIRX.js.map → index-DwuvIOrQ.js.map} +1 -1
- package/dist/chunks/{index-DCcl7Qof.js → index-DzedSLdI.js} +2 -2
- package/dist/chunks/{index-DCcl7Qof.js.map → index-DzedSLdI.js.map} +1 -1
- package/dist/chunks/{index-2wUhd9Lu.js → index-IgLVXPg8.js} +10 -10
- package/dist/chunks/index-IgLVXPg8.js.map +1 -0
- package/dist/chunks/{index-CwSaRXXg.js → index-lpIzhufD.js} +1916 -1900
- package/dist/chunks/index-lpIzhufD.js.map +1 -0
- package/dist/chunks/{index-Cuwn2q-f.js → index-mLUKwbGl.js} +4 -4
- package/dist/chunks/{index-Cuwn2q-f.js.map → index-mLUKwbGl.js.map} +1 -1
- package/dist/chunks/{index-B0mk2tNY.js → index-tO6MMIFB.js} +2 -2
- package/dist/chunks/{index-B0mk2tNY.js.map → index-tO6MMIFB.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-BpNANQ5s.js → tenantIconMap-BQD9byc8.js} +2 -2
- package/dist/chunks/{tenantIconMap-BpNANQ5s.js.map → tenantIconMap-BQD9byc8.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-DtdUgvJO.js → tenantIconMap-CTMuSt18.js} +2 -2
- package/dist/chunks/{tenantIconMap-DtdUgvJO.js.map → tenantIconMap-CTMuSt18.js.map} +1 -1
- package/dist/chunks/{ticketingApi-Bu4rKwLl.js → ticketingApi-BNIdox5t.js} +2 -2
- package/dist/chunks/{ticketingApi-Bu4rKwLl.js.map → ticketingApi-BNIdox5t.js.map} +1 -1
- package/dist/chunks/{ticketingApi-r4Avm9iS.js → ticketingApi-J0vC_t7r.js} +2 -2
- package/dist/chunks/{ticketingApi-r4Avm9iS.js.map → ticketingApi-J0vC_t7r.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-B9bF4swg.js → useAccessRequests-DCNNLnxk.js} +3 -3
- package/dist/chunks/{useAccessRequests-B9bF4swg.js.map → useAccessRequests-DCNNLnxk.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-JyPUX3Om.js → useAccessRequests-DT7X4FAK.js} +2 -2
- package/dist/chunks/{useAccessRequests-JyPUX3Om.js.map → useAccessRequests-DT7X4FAK.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-DjPQenC2.js → useUserAccessRequests-BYbmG4c7.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-DjPQenC2.js.map → useUserAccessRequests-BYbmG4c7.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-BB6FHW14.js → useUserAccessRequests-CylKxRN6.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-BB6FHW14.js.map → useUserAccessRequests-CylKxRN6.js.map} +1 -1
- package/dist/hooks/useCollapsibleState.d.ts +5 -2
- package/dist/hooks/useCollapsibleState.d.ts.map +1 -1
- package/dist/i18n/config.d.ts +1 -0
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/smartstack.cjs +1 -1
- package/dist/smartstack.js +1 -1
- package/dist/utils/permissions.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/index-2wUhd9Lu.js.map +0 -1
- package/dist/chunks/index-CwSaRXXg.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),Z=require("react-router-dom"),_=require("react-i18next"),l=require("lucide-react"),i=require("./index-2wUhd9Lu.js");function ye(){const{currentTenant:a,hasGlobalRoles:d,isGlobalView:c}=i.useTenant(),{currentModuleCode:j,getCurrentModule:y,isLoading:P,menu:B}=i.useNavigation();return d&&!c&&a&&j&&!P&&B?{isRestrictedModule:!y(),tenantName:a?.name||null}:{isRestrictedModule:!1,tenantName:null}}function Ne(){const{t:a}=_.useTranslation("admin"),{isRestrictedModule:d,tenantName:c}=ye();return d?e.jsxs("div",{className:"flex items-center gap-3 px-4 py-2.5 border bg-amber-500/10 border-amber-500/20",style:{borderRadius:"var(--radius-card)"},children:[e.jsx("div",{className:"flex-shrink-0 w-8 h-8 flex items-center justify-center bg-amber-500/10",style:{borderRadius:"var(--radius-card)"},children:e.jsx(l.AlertTriangle,{className:"w-4 h-4 text-amber-600"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"font-medium text-amber-700",children:a("scope.banner.restrictedModule","Module restreint")}),e.jsx("p",{className:"text-xs text-amber-600/70 mt-0.5",children:a("scope.banner.restrictedModuleDesc",`Le tenant "{{tenantName}}" n'a pas accès à ce module. Données affichées grâce à vos privilèges administrateur.`,{tenantName:c})})]})]}):null}function we(a,d){const[c,j]=o.useState(a);return o.useEffect(()=>{const y=setTimeout(()=>j(a),d);return()=>clearTimeout(y)},[a,d]),c}const Ce={search:"",status:"all",roleId:"",source:"all",userType:"",sortBy:"lastname",sortDesc:!1};function ke(){const{t:a}=_.useTranslation("admin"),d=Z.useNavigate(),[c,j]=Z.useSearchParams(),y=i.useTableColumnExtensions("users"),{currentTenant:P,isGlobalView:B}=i.useTenant(),{hasPermission:S}=i.useAuth(),A=S("administration.users.create"),x=S("administration.users.update"),N=S("administration.users.delete"),ee=o.useMemo(()=>({search:c.get("search")||"",status:c.get("status")||"all",roleId:c.get("roleId")||"",source:c.get("source")||"all",userType:c.get("userType")||"",sortBy:c.get("sortBy")||"lastname",sortDesc:c.get("sortDesc")==="true"}),[]),[u,te]=o.useState([]),[F,se]=o.useState([]),[b,O]=o.useState(!0),[r,M]=o.useState(ee),[T,q]=o.useState(!1),[g,D]=o.useState(parseInt(c.get("page")||"1")),[ae,re]=o.useState(1),[L,le]=o.useState(0),[ie,w]=o.useState(!1),[h,G]=o.useState(null),[m,p]=o.useState({email:"",password:"",firstName:"",lastName:"",roleIds:[]}),[R,V]=o.useState(!1),[K,I]=o.useState(null),[C,ne]=o.useState("table");o.useEffect(()=>{const t={search:c.get("search")||"",status:c.get("status")||"all",roleId:c.get("roleId")||"",source:c.get("source")||"all",userType:c.get("userType")||"",sortBy:c.get("sortBy")||"lastname",sortDesc:c.get("sortDesc")==="true"};JSON.stringify(t)!==JSON.stringify(r)&&M(t);const s=parseInt(c.get("page")||"1");s!==g&&D(s)},[c]);const z=we(r.search,300),k=o.useMemo(()=>{let t=0;return r.status!=="all"&&t++,r.roleId&&t++,r.source!=="all"&&t++,r.userType&&t++,t},[r]),f=o.useCallback(async()=>{try{O(!0);const t=await i.adminApi.users.getAll({page:g,pageSize:20,search:z||void 0,isActive:r.status==="all"?void 0:r.status==="active",entraOnly:r.source==="entra"?!0:void 0,roleId:r.roleId||void 0,userType:r.userType||void 0,sortBy:r.sortBy||void 0,sortDesc:r.sortDesc});te(t.items),re(t.totalPages),le(t.totalCount)}catch(t){console.error("Failed to load users:",t)}finally{O(!1)}},[g,z,r.status,r.source,r.roleId,r.userType,r.sortBy,r.sortDesc,P?.id,B]);o.useEffect(()=>{const t=new URLSearchParams;r.search&&t.set("search",r.search),r.status!=="all"&&t.set("status",r.status),r.roleId&&t.set("roleId",r.roleId),r.source!=="all"&&t.set("source",r.source),r.userType&&t.set("userType",r.userType),r.sortBy!=="lastname"&&t.set("sortBy",r.sortBy),r.sortDesc&&t.set("sortDesc","true"),g>1&&t.set("page",g.toString()),j(t,{replace:!0})},[r,g,j]);const ce=async()=>{try{const t=await i.adminApi.roles.getAll();se(t)}catch(t){console.error("Failed to load roles:",t)}};o.useEffect(()=>{f()},[f]),o.useEffect(()=>{ce()},[]);const oe=()=>{M(Ce),D(1)},v=(t,s)=>{M(n=>({...n,[t]:s})),D(1)},de=()=>{G(null),p({email:"",password:"",firstName:"",lastName:"",roleIds:[]}),I(null),w(!0)},W=async t=>{try{const s=await i.adminApi.users.getById(t.id);G(t),p({email:s.email,password:"",firstName:s.firstName,lastName:s.lastName,roleIds:s.roles.map(n=>n.id)}),I(null),w(!0)}catch(s){console.error("Failed to load user details:",s)}},xe=async t=>{t.preventDefault(),V(!0),I(null);try{if(h){const s={email:m.email!==h.email?m.email:void 0,firstName:m.firstName,lastName:m.lastName,roleIds:m.roleIds};await i.adminApi.users.update(h.id,s)}else await i.adminApi.users.create(m);w(!1),f()}catch(s){const n=s instanceof Error?s.message:"An error occurred";I(n)}finally{V(!1)}},$=async(t,s)=>{s?.stopPropagation();try{t.isActive?await i.adminApi.users.deactivate(t.id):await i.adminApi.users.activate(t.id),f()}catch(n){console.error("Failed to toggle user status:",n)}},X=async(t,s)=>{if(s?.stopPropagation(),!!confirm(a("users.confirmDelete",{name:t.fullName})))try{await i.adminApi.users.delete(t.id),f()}catch(n){console.error("Failed to delete user:",n)}},me=t=>{p(s=>({...s,roleIds:s.roleIds?.includes(t)?s.roleIds.filter(n=>n!==t):[...s.roleIds||[],t]}))},U=u.filter(t=>t.isActive),E=u.filter(t=>!t.isActive),ue=Math.floor(U.length*.3),J=(t,s)=>t?s?"text-[var(--text-tertiary)] hover:text-[var(--warning-text)] hover:bg-[var(--warning-bg)]":"text-[var(--text-tertiary)] hover:text-[var(--success-text)] hover:bg-[var(--success-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]",H=(t,s,n)=>t?n(s?"users.deactivate":"users.activate"):n("common.noPermission","Permission insuffisante"),he=t=>t?"text-[var(--text-tertiary)] hover:text-[var(--info-text)] hover:bg-[var(--info-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]",pe=(t,s)=>t?s("common.edit"):s("common.noPermission","Permission insuffisante"),ve=t=>t?"text-[var(--text-tertiary)] hover:text-[var(--error-text)] hover:bg-[var(--error-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]",be=(t,s)=>t?s("common.delete"):s("common.noPermission","Permission insuffisante"),ge=t=>{const s={Direct:"bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300",Group:"bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300",Both:"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300"},n={Direct:a("users.membershipDirect","Direct"),Group:a("users.membershipGroup","Via groupe"),Both:a("users.membershipBoth","Mixte")};return{color:s[t]||"",label:n[t]||""}},fe=()=>e.jsx("div",{className:"card overflow-hidden",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[var(--bg-secondary)]",children:[e.jsx("th",{className:"w-12 px-4 py-3",children:e.jsx("input",{type:"checkbox",className:"w-4 h-4 rounded border-[var(--border-color)]"})}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider",children:a("users.columns.name")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden md:table-cell",children:a("users.columns.email")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden lg:table-cell",children:a("users.columns.role")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider",children:a("users.columns.status")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden xl:table-cell",children:a("users.columns.source","Source")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden xl:table-cell",children:a("users.columns.group","Groupe")}),y.map(t=>e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden xl:table-cell",style:t.width?{width:t.width}:void 0,children:t.label},t.key)),e.jsx("th",{className:"w-32 px-4 py-3"})]})}),e.jsxs("tbody",{className:"divide-y divide-[var(--border-color)]",children:[b&&e.jsx("tr",{children:e.jsx("td",{colSpan:8,className:"px-6 py-16 text-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-primary-500"}),e.jsx("span",{className:"text-sm text-[var(--text-secondary)]",children:"Chargement..."})]})})}),!b&&u.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:8,className:"px-6 py-16 text-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-[var(--bg-secondary)] flex items-center justify-center",children:e.jsx(l.Search,{className:"w-8 h-8 text-[var(--text-tertiary)]"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:a("users.noUsers")})]})})}),!b&&u.length>0&&u.map(t=>e.jsxs("tr",{className:"group hover:bg-[var(--bg-hover)] transition-all cursor-pointer",onClick:()=>d(`/administration/users/${t.id}`),children:[e.jsx("td",{className:"px-4 py-3",onClick:s=>s.stopPropagation(),children:e.jsx("input",{type:"checkbox",className:"w-4 h-4 rounded border-[var(--border-color)]"})}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-4 h-4 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-2.5 h-2.5 text-white"})})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"font-medium text-[var(--text-primary)] group-hover:text-primary-600 transition-colors truncate",children:t.fullName}),t.entraObjectId&&e.jsxs("span",{className:"hidden sm:inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400",children:[e.jsx(l.Cloud,{className:"w-2.5 h-2.5"}),"AAD"]})]}),e.jsxs("p",{className:"text-sm text-[var(--text-tertiary)] truncate md:hidden flex items-center gap-1",children:[e.jsx(l.Mail,{className:"w-3 h-3"}),t.email]})]})]})}),e.jsx("td",{className:"px-4 py-3 hidden md:table-cell",children:e.jsxs("div",{className:"flex items-center gap-2 text-[var(--text-secondary)]",children:[e.jsx(l.Mail,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"truncate",children:t.email})]})}),e.jsx("td",{className:"px-4 py-3 hidden lg:table-cell",children:e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.roles.length>0?t.roles.map((s,n)=>e.jsx(i.RoleBadge,{role:s,variant:s.toLowerCase().includes("admin")?"accent":"default",icon:e.jsx(l.Shield,{className:"w-3 h-3"})},`${s}-${n}`)):e.jsx("span",{className:"text-sm text-[var(--text-tertiary)] italic",children:"Aucun rôle"})})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(i.StatusBadge,{status:t.isActive?"active":"inactive",label:t.isActive?a("users.status.active"):a("users.status.inactive")})}),e.jsx("td",{className:"px-4 py-3 hidden xl:table-cell",children:(()=>{const{color:s,label:n}=ge(t.membershipSource);return e.jsx("span",{className:`inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs font-medium ${s}`,children:n})})()}),e.jsx("td",{className:"px-4 py-3 hidden xl:table-cell",children:t.primaryGroupId?e.jsxs("button",{onClick:s=>{s.stopPropagation(),d(`/administration/groups/${t.primaryGroupId}`)},className:"inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] text-[var(--text-secondary)] hover:text-primary-600 transition-colors",children:[e.jsx(l.Users,{className:"w-3 h-3"}),t.primaryGroupName]}):e.jsx("span",{className:"text-[var(--text-tertiary)]",children:"—"})}),y.map(s=>e.jsx("td",{className:"px-4 py-3 hidden xl:table-cell text-[var(--text-secondary)]",children:s.render(t,{tableId:"users",rowIndex:u.indexOf(t)})},s.key)),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-end gap-1",onClick:s=>s.stopPropagation(),children:[e.jsx("button",{onClick:()=>d(`/administration/users/${t.id}`),className:"p-2 rounded-lg text-[var(--text-tertiary)] hover:text-primary-600 hover:bg-[var(--accent-bg)] transition-all",title:a("users.view"),children:e.jsx(l.Eye,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>{s.stopPropagation(),W(t)},disabled:!x,className:`p-2 rounded-lg transition-all ${x?"text-[var(--text-tertiary)] hover:text-[var(--info-text)] hover:bg-[var(--info-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]"}`,title:x?a("common.edit"):a("common.noPermission","Permission insuffisante"),children:e.jsx(l.Edit2,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>$(t,s),disabled:!x,className:`p-2 rounded-lg transition-all ${J(x,t.isActive)}`,title:H(x,t.isActive,a),children:t.isActive?e.jsx(l.UserX,{className:"w-4 h-4"}):e.jsx(l.UserCheck,{className:"w-4 h-4"})}),t.userType!=="System"&&t.userType!=="LocalAdmin"&&e.jsx("button",{onClick:s=>X(t,s),disabled:!N,className:`p-2 rounded-lg transition-all ${N?"text-[var(--text-tertiary)] hover:text-[var(--error-text)] hover:bg-[var(--error-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]"}`,title:N?a("common.delete"):a("common.noPermission","Permission insuffisante"),children:e.jsx(l.Trash2,{className:"w-4 h-4"})}),e.jsx(i.Slot,{name:"users.table.row.actions",context:{user:t,reload:f}})]})})]},t.id))]})]})}),Q=()=>e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[b&&e.jsxs("div",{className:"col-span-full flex flex-col items-center justify-center py-16",children:[e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-primary-500"}),e.jsx("span",{className:"mt-3 text-sm text-[var(--text-secondary)]",children:"Chargement..."})]}),!b&&u.length===0&&e.jsxs("div",{className:"col-span-full flex flex-col items-center justify-center py-16",children:[e.jsx("div",{className:"w-16 h-16 rounded-lg bg-[var(--bg-secondary)] flex items-center justify-center mb-3",children:e.jsx(l.Search,{className:"w-8 h-8 text-[var(--text-tertiary)]"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:a("users.noUsers")})]}),!b&&u.length>0&&u.map(t=>e.jsxs("div",{role:"button",tabIndex:0,onClick:()=>d(`/administration/users/${t.id}`),onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),d(`/administration/users/${t.id}`))},className:"bg-[var(--bg-card)] border-2 border-[var(--color-accent-200)] dark:border-[var(--color-accent-800)] rounded-[var(--radius-card)] overflow-hidden transition-all hover:shadow-lg hover:border-[var(--color-accent-400)] cursor-pointer flex flex-col text-left",children:[e.jsx("div",{className:"bg-[var(--color-accent-50)] dark:bg-[var(--color-accent-900)]/20 p-4 border-b border-[var(--color-accent-200)] dark:border-[var(--color-accent-800)]",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName,size:"lg",className:"rounded-lg"}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-5 h-5 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-3 h-3 text-white"})})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-[var(--text-primary)] truncate",children:t.fullName}),e.jsxs("p",{className:"text-xs text-[var(--text-tertiary)] truncate flex items-center gap-1",children:[e.jsx(l.Mail,{className:"w-3 h-3"}),t.email]})]})]}),e.jsxs("div",{className:"flex flex-col items-end gap-1",children:[e.jsx("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-xs rounded-full font-medium ${t.isActive?"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400":"bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400"}`,children:t.isActive?a("users.status.active"):a("users.status.inactive")}),t.entraObjectId&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400",children:[e.jsx(l.Cloud,{className:"w-2.5 h-2.5"}),"AAD"]})]})]})}),e.jsxs("div",{className:"p-4 flex flex-col flex-1",children:[e.jsxs("div",{className:"flex flex-wrap gap-1 mb-3",children:[t.roles.length>0?t.roles.slice(0,2).map(s=>e.jsx(i.RoleBadge,{role:s,variant:s.toLowerCase().includes("admin")?"accent":"default",icon:e.jsx(l.Shield,{className:"w-3 h-3"})},s)):e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Aucun rôle"}),t.roles.length>2&&e.jsxs("span",{className:"text-xs px-2 py-0.5 rounded-md bg-[var(--bg-secondary)] text-[var(--text-muted)]",children:["+",t.roles.length-2]})]}),e.jsx(i.Slot,{name:"users.card.content",context:{user:t}}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center justify-end gap-1 pt-3 border-t border-[var(--border-color)]",onClick:s=>s.stopPropagation(),children:[e.jsx("button",{onClick:()=>d(`/administration/users/${t.id}`),className:"p-2 rounded-lg text-[var(--text-tertiary)] hover:text-primary-600 hover:bg-[var(--accent-bg)] transition-all",title:a("users.view"),children:e.jsx(l.Eye,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>{s.stopPropagation(),W(t)},disabled:!x,className:`p-2 rounded-lg transition-all ${he(x)}`,title:pe(x,a),children:e.jsx(l.Edit2,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>$(t,s),disabled:!x,className:`p-2 rounded-lg transition-all ${J(x,t.isActive)}`,title:H(x,t.isActive,a),children:t.isActive?e.jsx(l.UserX,{className:"w-4 h-4"}):e.jsx(l.UserCheck,{className:"w-4 h-4"})}),t.userType!=="System"&&t.userType!=="LocalAdmin"&&e.jsx("button",{onClick:s=>X(t,s),disabled:!N,className:`p-2 rounded-lg transition-all ${ve(N)}`,title:be(N,a),children:e.jsx(l.Trash2,{className:"w-4 h-4"})})]})]})]},t.id))]}),je=()=>e.jsx("div",{className:"flex gap-6 overflow-x-auto pb-4",children:b?e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center py-16",children:[e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-primary-500"}),e.jsx("span",{className:"mt-3 text-sm text-[var(--text-secondary)]",children:"Chargement..."})]}):e.jsxs(e.Fragment,{children:[e.jsx(i.KanbanColumn,{title:"Actifs",count:U.length,color:"success",children:U.map(t=>e.jsxs(i.KanbanCard,{onClick:()=>d(`/administration/users/${t.id}`),children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName,size:"sm"}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-3.5 h-3.5 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-2 h-2 text-white"})})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-sm text-[var(--text-primary)] truncate",children:t.fullName}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] truncate",children:t.email})]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[t.roles.length>0?e.jsx(i.RoleBadge,{role:t.roles[0],variant:t.roles[0].toLowerCase().includes("admin")?"accent":"default"}):e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"-"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"En ligne"})]})]},t.id))}),e.jsxs(i.KanbanColumn,{title:"Inactifs",count:E.length,color:"error",children:[E.map(t=>e.jsxs(i.KanbanCard,{onClick:()=>d(`/administration/users/${t.id}`),children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName,size:"sm"}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-3.5 h-3.5 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-2 h-2 text-white"})})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-sm text-[var(--text-primary)] truncate",children:t.fullName}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] truncate",children:t.email})]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[t.roles.length>0?e.jsx(i.RoleBadge,{role:t.roles[0]}):e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"-"}),e.jsx("button",{onClick:s=>$(t,s),disabled:!x,className:`text-xs px-2 py-1 rounded transition-opacity ${x?"bg-[var(--success-bg)] text-[var(--success-text)] hover:opacity-80":"opacity-50 cursor-not-allowed bg-[var(--bg-secondary)] text-[var(--text-tertiary)]"}`,title:x?void 0:a("common.noPermission","Permission insuffisante"),children:"Réactiver"})]})]},t.id)),E.length===0&&e.jsxs("div",{className:"border border-dashed border-[var(--border-color)] rounded-lg p-6 text-center",children:[e.jsx(l.UserCheck,{className:"w-6 h-6 mx-auto mb-2 text-[var(--text-muted)]"}),e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Aucun utilisateur inactif"})]})]})]})});return e.jsxs("div",{className:"space-y-6",children:[e.jsx(i.Breadcrumb,{items:[{label:a("header.title"),href:"/administration"},{label:a("users.title")}]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:a("users.title")}),e.jsxs("p",{className:"text-sm text-[var(--text-tertiary)] mt-1",children:[L," utilisateurs • ",ue," en ligne"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(i.Slot,{name:"users.header.actions",context:{users:u,totalCount:L,reload:f}}),e.jsxs("button",{onClick:de,disabled:!A,className:`btn btn-primary ${A?"":"opacity-50 cursor-not-allowed"}`,title:A?void 0:a("common.noPermission","Permission insuffisante"),children:[e.jsx(l.Plus,{className:"w-4 h-4"}),a("users.create")]})]})]}),e.jsx(Ne,{}),e.jsx("div",{className:"card p-4",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[!r.search&&e.jsx(l.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-muted)] pointer-events-none"}),e.jsx("input",{type:"text",value:r.search,onChange:t=>v("search",t.target.value),placeholder:a("users.filters.searchPlaceholder"),className:"input w-full",style:r.search?void 0:{paddingLeft:"2.5rem"}}),r.search&&e.jsx("button",{onClick:()=>v("search",""),className:"absolute right-3 top-1/2 -translate-y-1/2 p-1 rounded hover:bg-[var(--bg-secondary)]",children:e.jsx(l.X,{className:"w-3 h-3 text-[var(--text-tertiary)]"})})]}),e.jsxs("button",{onClick:()=>q(!T),className:`btn ${T?"btn-primary":"btn-secondary"} relative`,children:[e.jsx(l.Filter,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:a("users.filters.title")}),k>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 w-5 h-5 rounded-full bg-[var(--color-accent-500)] text-white text-xs flex items-center justify-center",children:k})]}),k>0&&e.jsx("button",{onClick:oe,className:"btn btn-ghost text-[var(--text-tertiary)] hover:text-[var(--text-primary)]",title:a("users.filters.reset"),children:e.jsx(l.RotateCcw,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"hidden md:block",children:e.jsx(i.ViewToggle,{viewMode:C,onChange:ne,tableLabel:"Table",cardsLabel:"Cards",kanbanLabel:"Kanban"})})]}),T&&e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4 pt-4 border-t border-[var(--border-color)]",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.status")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.status,onChange:t=>v("status",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"all",children:a("users.filters.allStatuses")}),e.jsx("option",{value:"active",children:a("users.filters.activeOnly")}),e.jsx("option",{value:"inactive",children:a("users.filters.inactiveOnly")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.role")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.roleId,onChange:t=>v("roleId",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"",children:a("users.filters.allRoles")}),F.map(t=>e.jsx("option",{value:t.id,children:t.name},t.id))]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.source")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.source,onChange:t=>v("source",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"all",children:a("users.filters.allSources")}),e.jsx("option",{value:"entra",children:a("users.filters.entraOnly")}),e.jsx("option",{value:"local",children:a("users.filters.localOnly")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.userType")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.userType,onChange:t=>v("userType",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"",children:a("users.filters.allTypes")}),e.jsx("option",{value:"User",children:a("users.filters.typeUser")}),e.jsx("option",{value:"System",children:a("users.filters.typeSystem")}),e.jsx("option",{value:"LocalAdmin",children:a("users.filters.typeLocalAdmin")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.sortBy")}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsxs("select",{value:r.sortBy,onChange:t=>v("sortBy",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"lastname",children:a("users.filters.sortName")}),e.jsx("option",{value:"email",children:a("users.filters.sortEmail")}),e.jsx("option",{value:"lastlogin",children:a("users.filters.sortLastLogin")}),e.jsx("option",{value:"createdat",children:a("users.filters.sortCreatedAt")}),e.jsx("option",{value:"status",children:a("users.filters.sortStatus")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]}),e.jsx("button",{onClick:()=>v("sortDesc",!r.sortDesc),className:`btn ${r.sortDesc?"btn-primary":"btn-secondary"} px-2.5`,title:r.sortDesc?a("users.filters.sortDesc"):a("users.filters.sortAsc"),children:e.jsx(l.ArrowUpDown,{className:"w-4 h-4"})})]})]})]}),k>0&&!T&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[var(--text-tertiary)]",children:[e.jsx(l.Filter,{className:"w-4 h-4"}),e.jsx("span",{children:a("users.filters.activeFilters",{count:k})}),e.jsx("button",{onClick:()=>q(!0),className:"text-[var(--color-accent-600)] hover:underline",children:a("users.filters.title")})]})]})}),e.jsx("div",{className:"md:hidden",children:Q()}),e.jsxs("div",{className:"hidden md:block",children:[C==="table"&&fe(),C==="cards"&&Q(),C==="kanban"&&je()]}),C!=="kanban"&&e.jsx(i.Pagination,{page:g,totalPages:ae,totalCount:L,pageSize:20,onPageChange:D,itemLabel:"utilisateurs"}),ie&&e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50",children:e.jsxs("div",{className:"card w-full max-w-lg p-6 m-4 max-h-[90vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsx("h2",{className:"text-xl font-bold text-[var(--text-primary)]",children:a(h?"users.edit":"users.create")}),e.jsx("button",{onClick:()=>w(!1),className:"btn btn-ghost p-2",children:e.jsx(l.X,{className:"w-5 h-5"})})]}),K&&e.jsx("div",{className:"mb-4 p-3 rounded-lg bg-[var(--error-bg)] text-[var(--error-text)] text-sm border border-[var(--error-border)]",children:K}),e.jsxs("form",{onSubmit:xe,className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.form.firstName")}),e.jsx("input",{type:"text",required:!0,value:m.firstName,onChange:t=>p(s=>({...s,firstName:t.target.value})),className:"input w-full"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.form.lastName")}),e.jsx("input",{type:"text",required:!0,value:m.lastName,onChange:t=>p(s=>({...s,lastName:t.target.value})),className:"input w-full"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.columns.email")}),e.jsx("input",{type:"email",required:!0,value:m.email,onChange:t=>p(s=>({...s,email:t.target.value})),className:"input w-full"})]}),!h&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.form.password")}),e.jsx("input",{type:"password",required:!h,value:m.password,onChange:t=>p(s=>({...s,password:t.target.value})),autoComplete:"new-password",className:"input w-full"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:a("users.form.roles")}),e.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto p-3 border border-[var(--border-color)] rounded-lg bg-[var(--bg-secondary)]",children:F.map(t=>e.jsxs("label",{className:"flex items-center gap-3 cursor-pointer p-2 rounded-lg hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsx("input",{type:"checkbox",checked:m.roleIds?.includes(t.id)||!1,onChange:()=>me(t.id),className:"w-4 h-4 rounded border-[var(--border-color)] text-primary-600 focus:ring-primary-500"}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:t.name}),t.description&&e.jsx("p",{className:"text-xs text-[var(--text-tertiary)]",children:t.description})]})]},t.id))})]}),e.jsx(i.Slot,{name:"users.form.fields.after",context:{formData:m,onChange:(t,s)=>{if(t.startsWith("ext.")){const n=t.substring(4);p(Y=>({...Y,ext:{...Y.ext||{},[n]:s}}))}else p(n=>({...n,[t]:s}))},disabled:R,isEditing:!!h,user:h}}),e.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[e.jsx("button",{type:"button",onClick:()=>w(!1),className:"btn btn-secondary",children:a("common.cancel")}),e.jsxs("button",{type:"submit",disabled:R,className:"btn btn-primary disabled:opacity-50",children:[R&&e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}),a(h?"common.save":"common.create")]})]})]})]})})]})}exports.UsersPage=ke;
|
|
2
|
-
//# sourceMappingURL=UsersPage-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),Z=require("react-router-dom"),_=require("react-i18next"),l=require("lucide-react"),i=require("./index-IgLVXPg8.js");function ye(){const{currentTenant:a,hasGlobalRoles:d,isGlobalView:c}=i.useTenant(),{currentModuleCode:j,getCurrentModule:y,isLoading:P,menu:B}=i.useNavigation();return d&&!c&&a&&j&&!P&&B?{isRestrictedModule:!y(),tenantName:a?.name||null}:{isRestrictedModule:!1,tenantName:null}}function Ne(){const{t:a}=_.useTranslation("admin"),{isRestrictedModule:d,tenantName:c}=ye();return d?e.jsxs("div",{className:"flex items-center gap-3 px-4 py-2.5 border bg-amber-500/10 border-amber-500/20",style:{borderRadius:"var(--radius-card)"},children:[e.jsx("div",{className:"flex-shrink-0 w-8 h-8 flex items-center justify-center bg-amber-500/10",style:{borderRadius:"var(--radius-card)"},children:e.jsx(l.AlertTriangle,{className:"w-4 h-4 text-amber-600"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"font-medium text-amber-700",children:a("scope.banner.restrictedModule","Module restreint")}),e.jsx("p",{className:"text-xs text-amber-600/70 mt-0.5",children:a("scope.banner.restrictedModuleDesc",`Le tenant "{{tenantName}}" n'a pas accès à ce module. Données affichées grâce à vos privilèges administrateur.`,{tenantName:c})})]})]}):null}function we(a,d){const[c,j]=o.useState(a);return o.useEffect(()=>{const y=setTimeout(()=>j(a),d);return()=>clearTimeout(y)},[a,d]),c}const Ce={search:"",status:"all",roleId:"",source:"all",userType:"",sortBy:"lastname",sortDesc:!1};function ke(){const{t:a}=_.useTranslation("admin"),d=Z.useNavigate(),[c,j]=Z.useSearchParams(),y=i.useTableColumnExtensions("users"),{currentTenant:P,isGlobalView:B}=i.useTenant(),{hasPermission:S}=i.useAuth(),A=S("administration.users.create"),x=S("administration.users.update"),N=S("administration.users.delete"),ee=o.useMemo(()=>({search:c.get("search")||"",status:c.get("status")||"all",roleId:c.get("roleId")||"",source:c.get("source")||"all",userType:c.get("userType")||"",sortBy:c.get("sortBy")||"lastname",sortDesc:c.get("sortDesc")==="true"}),[]),[u,te]=o.useState([]),[F,se]=o.useState([]),[b,O]=o.useState(!0),[r,M]=o.useState(ee),[T,q]=o.useState(!1),[g,D]=o.useState(parseInt(c.get("page")||"1")),[ae,re]=o.useState(1),[L,le]=o.useState(0),[ie,w]=o.useState(!1),[h,G]=o.useState(null),[m,p]=o.useState({email:"",password:"",firstName:"",lastName:"",roleIds:[]}),[R,V]=o.useState(!1),[K,I]=o.useState(null),[C,ne]=o.useState("table");o.useEffect(()=>{const t={search:c.get("search")||"",status:c.get("status")||"all",roleId:c.get("roleId")||"",source:c.get("source")||"all",userType:c.get("userType")||"",sortBy:c.get("sortBy")||"lastname",sortDesc:c.get("sortDesc")==="true"};JSON.stringify(t)!==JSON.stringify(r)&&M(t);const s=parseInt(c.get("page")||"1");s!==g&&D(s)},[c]);const z=we(r.search,300),k=o.useMemo(()=>{let t=0;return r.status!=="all"&&t++,r.roleId&&t++,r.source!=="all"&&t++,r.userType&&t++,t},[r]),f=o.useCallback(async()=>{try{O(!0);const t=await i.adminApi.users.getAll({page:g,pageSize:20,search:z||void 0,isActive:r.status==="all"?void 0:r.status==="active",entraOnly:r.source==="entra"?!0:void 0,roleId:r.roleId||void 0,userType:r.userType||void 0,sortBy:r.sortBy||void 0,sortDesc:r.sortDesc});te(t.items),re(t.totalPages),le(t.totalCount)}catch(t){console.error("Failed to load users:",t)}finally{O(!1)}},[g,z,r.status,r.source,r.roleId,r.userType,r.sortBy,r.sortDesc,P?.id,B]);o.useEffect(()=>{const t=new URLSearchParams;r.search&&t.set("search",r.search),r.status!=="all"&&t.set("status",r.status),r.roleId&&t.set("roleId",r.roleId),r.source!=="all"&&t.set("source",r.source),r.userType&&t.set("userType",r.userType),r.sortBy!=="lastname"&&t.set("sortBy",r.sortBy),r.sortDesc&&t.set("sortDesc","true"),g>1&&t.set("page",g.toString()),j(t,{replace:!0})},[r,g,j]);const ce=async()=>{try{const t=await i.adminApi.roles.getAll();se(t)}catch(t){console.error("Failed to load roles:",t)}};o.useEffect(()=>{f()},[f]),o.useEffect(()=>{ce()},[]);const oe=()=>{M(Ce),D(1)},v=(t,s)=>{M(n=>({...n,[t]:s})),D(1)},de=()=>{G(null),p({email:"",password:"",firstName:"",lastName:"",roleIds:[]}),I(null),w(!0)},W=async t=>{try{const s=await i.adminApi.users.getById(t.id);G(t),p({email:s.email,password:"",firstName:s.firstName,lastName:s.lastName,roleIds:s.roles.map(n=>n.id)}),I(null),w(!0)}catch(s){console.error("Failed to load user details:",s)}},xe=async t=>{t.preventDefault(),V(!0),I(null);try{if(h){const s={email:m.email!==h.email?m.email:void 0,firstName:m.firstName,lastName:m.lastName,roleIds:m.roleIds};await i.adminApi.users.update(h.id,s)}else await i.adminApi.users.create(m);w(!1),f()}catch(s){const n=s instanceof Error?s.message:"An error occurred";I(n)}finally{V(!1)}},$=async(t,s)=>{s?.stopPropagation();try{t.isActive?await i.adminApi.users.deactivate(t.id):await i.adminApi.users.activate(t.id),f()}catch(n){console.error("Failed to toggle user status:",n)}},X=async(t,s)=>{if(s?.stopPropagation(),!!confirm(a("users.confirmDelete",{name:t.fullName})))try{await i.adminApi.users.delete(t.id),f()}catch(n){console.error("Failed to delete user:",n)}},me=t=>{p(s=>({...s,roleIds:s.roleIds?.includes(t)?s.roleIds.filter(n=>n!==t):[...s.roleIds||[],t]}))},U=u.filter(t=>t.isActive),E=u.filter(t=>!t.isActive),ue=Math.floor(U.length*.3),J=(t,s)=>t?s?"text-[var(--text-tertiary)] hover:text-[var(--warning-text)] hover:bg-[var(--warning-bg)]":"text-[var(--text-tertiary)] hover:text-[var(--success-text)] hover:bg-[var(--success-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]",H=(t,s,n)=>t?n(s?"users.deactivate":"users.activate"):n("common.noPermission","Permission insuffisante"),he=t=>t?"text-[var(--text-tertiary)] hover:text-[var(--info-text)] hover:bg-[var(--info-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]",pe=(t,s)=>t?s("common.edit"):s("common.noPermission","Permission insuffisante"),ve=t=>t?"text-[var(--text-tertiary)] hover:text-[var(--error-text)] hover:bg-[var(--error-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]",be=(t,s)=>t?s("common.delete"):s("common.noPermission","Permission insuffisante"),ge=t=>{const s={Direct:"bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300",Group:"bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300",Both:"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300"},n={Direct:a("users.membershipDirect","Direct"),Group:a("users.membershipGroup","Via groupe"),Both:a("users.membershipBoth","Mixte")};return{color:s[t]||"",label:n[t]||""}},fe=()=>e.jsx("div",{className:"card overflow-hidden",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-[var(--bg-secondary)]",children:[e.jsx("th",{className:"w-12 px-4 py-3",children:e.jsx("input",{type:"checkbox",className:"w-4 h-4 rounded border-[var(--border-color)]"})}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider",children:a("users.columns.name")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden md:table-cell",children:a("users.columns.email")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden lg:table-cell",children:a("users.columns.role")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider",children:a("users.columns.status")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden xl:table-cell",children:a("users.columns.source","Source")}),e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden xl:table-cell",children:a("users.columns.group","Groupe")}),y.map(t=>e.jsx("th",{className:"text-left px-4 py-3 text-xs font-semibold text-[var(--text-tertiary)] uppercase tracking-wider hidden xl:table-cell",style:t.width?{width:t.width}:void 0,children:t.label},t.key)),e.jsx("th",{className:"w-32 px-4 py-3"})]})}),e.jsxs("tbody",{className:"divide-y divide-[var(--border-color)]",children:[b&&e.jsx("tr",{children:e.jsx("td",{colSpan:8,className:"px-6 py-16 text-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-primary-500"}),e.jsx("span",{className:"text-sm text-[var(--text-secondary)]",children:"Chargement..."})]})})}),!b&&u.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:8,className:"px-6 py-16 text-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-[var(--bg-secondary)] flex items-center justify-center",children:e.jsx(l.Search,{className:"w-8 h-8 text-[var(--text-tertiary)]"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:a("users.noUsers")})]})})}),!b&&u.length>0&&u.map(t=>e.jsxs("tr",{className:"group hover:bg-[var(--bg-hover)] transition-all cursor-pointer",onClick:()=>d(`/administration/users/${t.id}`),children:[e.jsx("td",{className:"px-4 py-3",onClick:s=>s.stopPropagation(),children:e.jsx("input",{type:"checkbox",className:"w-4 h-4 rounded border-[var(--border-color)]"})}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-4 h-4 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-2.5 h-2.5 text-white"})})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"font-medium text-[var(--text-primary)] group-hover:text-primary-600 transition-colors truncate",children:t.fullName}),t.entraObjectId&&e.jsxs("span",{className:"hidden sm:inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400",children:[e.jsx(l.Cloud,{className:"w-2.5 h-2.5"}),"AAD"]})]}),e.jsxs("p",{className:"text-sm text-[var(--text-tertiary)] truncate md:hidden flex items-center gap-1",children:[e.jsx(l.Mail,{className:"w-3 h-3"}),t.email]})]})]})}),e.jsx("td",{className:"px-4 py-3 hidden md:table-cell",children:e.jsxs("div",{className:"flex items-center gap-2 text-[var(--text-secondary)]",children:[e.jsx(l.Mail,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"truncate",children:t.email})]})}),e.jsx("td",{className:"px-4 py-3 hidden lg:table-cell",children:e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.roles.length>0?t.roles.map((s,n)=>e.jsx(i.RoleBadge,{role:s,variant:s.toLowerCase().includes("admin")?"accent":"default",icon:e.jsx(l.Shield,{className:"w-3 h-3"})},`${s}-${n}`)):e.jsx("span",{className:"text-sm text-[var(--text-tertiary)] italic",children:"Aucun rôle"})})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(i.StatusBadge,{status:t.isActive?"active":"inactive",label:t.isActive?a("users.status.active"):a("users.status.inactive")})}),e.jsx("td",{className:"px-4 py-3 hidden xl:table-cell",children:(()=>{const{color:s,label:n}=ge(t.membershipSource);return e.jsx("span",{className:`inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs font-medium ${s}`,children:n})})()}),e.jsx("td",{className:"px-4 py-3 hidden xl:table-cell",children:t.primaryGroupId?e.jsxs("button",{onClick:s=>{s.stopPropagation(),d(`/administration/groups/${t.primaryGroupId}`)},className:"inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] text-[var(--text-secondary)] hover:text-primary-600 transition-colors",children:[e.jsx(l.Users,{className:"w-3 h-3"}),t.primaryGroupName]}):e.jsx("span",{className:"text-[var(--text-tertiary)]",children:"—"})}),y.map(s=>e.jsx("td",{className:"px-4 py-3 hidden xl:table-cell text-[var(--text-secondary)]",children:s.render(t,{tableId:"users",rowIndex:u.indexOf(t)})},s.key)),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-end gap-1",onClick:s=>s.stopPropagation(),children:[e.jsx("button",{onClick:()=>d(`/administration/users/${t.id}`),className:"p-2 rounded-lg text-[var(--text-tertiary)] hover:text-primary-600 hover:bg-[var(--accent-bg)] transition-all",title:a("users.view"),children:e.jsx(l.Eye,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>{s.stopPropagation(),W(t)},disabled:!x,className:`p-2 rounded-lg transition-all ${x?"text-[var(--text-tertiary)] hover:text-[var(--info-text)] hover:bg-[var(--info-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]"}`,title:x?a("common.edit"):a("common.noPermission","Permission insuffisante"),children:e.jsx(l.Edit2,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>$(t,s),disabled:!x,className:`p-2 rounded-lg transition-all ${J(x,t.isActive)}`,title:H(x,t.isActive,a),children:t.isActive?e.jsx(l.UserX,{className:"w-4 h-4"}):e.jsx(l.UserCheck,{className:"w-4 h-4"})}),t.userType!=="System"&&t.userType!=="LocalAdmin"&&e.jsx("button",{onClick:s=>X(t,s),disabled:!N,className:`p-2 rounded-lg transition-all ${N?"text-[var(--text-tertiary)] hover:text-[var(--error-text)] hover:bg-[var(--error-bg)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]"}`,title:N?a("common.delete"):a("common.noPermission","Permission insuffisante"),children:e.jsx(l.Trash2,{className:"w-4 h-4"})}),e.jsx(i.Slot,{name:"users.table.row.actions",context:{user:t,reload:f}})]})})]},t.id))]})]})}),Q=()=>e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[b&&e.jsxs("div",{className:"col-span-full flex flex-col items-center justify-center py-16",children:[e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-primary-500"}),e.jsx("span",{className:"mt-3 text-sm text-[var(--text-secondary)]",children:"Chargement..."})]}),!b&&u.length===0&&e.jsxs("div",{className:"col-span-full flex flex-col items-center justify-center py-16",children:[e.jsx("div",{className:"w-16 h-16 rounded-lg bg-[var(--bg-secondary)] flex items-center justify-center mb-3",children:e.jsx(l.Search,{className:"w-8 h-8 text-[var(--text-tertiary)]"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:a("users.noUsers")})]}),!b&&u.length>0&&u.map(t=>e.jsxs("div",{role:"button",tabIndex:0,onClick:()=>d(`/administration/users/${t.id}`),onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),d(`/administration/users/${t.id}`))},className:"bg-[var(--bg-card)] border-2 border-[var(--color-accent-200)] dark:border-[var(--color-accent-800)] rounded-[var(--radius-card)] overflow-hidden transition-all hover:shadow-lg hover:border-[var(--color-accent-400)] cursor-pointer flex flex-col text-left",children:[e.jsx("div",{className:"bg-[var(--color-accent-50)] dark:bg-[var(--color-accent-900)]/20 p-4 border-b border-[var(--color-accent-200)] dark:border-[var(--color-accent-800)]",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName,size:"lg",className:"rounded-lg"}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-5 h-5 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-3 h-3 text-white"})})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-[var(--text-primary)] truncate",children:t.fullName}),e.jsxs("p",{className:"text-xs text-[var(--text-tertiary)] truncate flex items-center gap-1",children:[e.jsx(l.Mail,{className:"w-3 h-3"}),t.email]})]})]}),e.jsxs("div",{className:"flex flex-col items-end gap-1",children:[e.jsx("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-xs rounded-full font-medium ${t.isActive?"bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400":"bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400"}`,children:t.isActive?a("users.status.active"):a("users.status.inactive")}),t.entraObjectId&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400",children:[e.jsx(l.Cloud,{className:"w-2.5 h-2.5"}),"AAD"]})]})]})}),e.jsxs("div",{className:"p-4 flex flex-col flex-1",children:[e.jsxs("div",{className:"flex flex-wrap gap-1 mb-3",children:[t.roles.length>0?t.roles.slice(0,2).map(s=>e.jsx(i.RoleBadge,{role:s,variant:s.toLowerCase().includes("admin")?"accent":"default",icon:e.jsx(l.Shield,{className:"w-3 h-3"})},s)):e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Aucun rôle"}),t.roles.length>2&&e.jsxs("span",{className:"text-xs px-2 py-0.5 rounded-md bg-[var(--bg-secondary)] text-[var(--text-muted)]",children:["+",t.roles.length-2]})]}),e.jsx(i.Slot,{name:"users.card.content",context:{user:t}}),e.jsx("div",{className:"flex-1"}),e.jsxs("div",{className:"flex items-center justify-end gap-1 pt-3 border-t border-[var(--border-color)]",onClick:s=>s.stopPropagation(),children:[e.jsx("button",{onClick:()=>d(`/administration/users/${t.id}`),className:"p-2 rounded-lg text-[var(--text-tertiary)] hover:text-primary-600 hover:bg-[var(--accent-bg)] transition-all",title:a("users.view"),children:e.jsx(l.Eye,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>{s.stopPropagation(),W(t)},disabled:!x,className:`p-2 rounded-lg transition-all ${he(x)}`,title:pe(x,a),children:e.jsx(l.Edit2,{className:"w-4 h-4"})}),e.jsx("button",{onClick:s=>$(t,s),disabled:!x,className:`p-2 rounded-lg transition-all ${J(x,t.isActive)}`,title:H(x,t.isActive,a),children:t.isActive?e.jsx(l.UserX,{className:"w-4 h-4"}):e.jsx(l.UserCheck,{className:"w-4 h-4"})}),t.userType!=="System"&&t.userType!=="LocalAdmin"&&e.jsx("button",{onClick:s=>X(t,s),disabled:!N,className:`p-2 rounded-lg transition-all ${ve(N)}`,title:be(N,a),children:e.jsx(l.Trash2,{className:"w-4 h-4"})})]})]})]},t.id))]}),je=()=>e.jsx("div",{className:"flex gap-6 overflow-x-auto pb-4",children:b?e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center py-16",children:[e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-primary-500"}),e.jsx("span",{className:"mt-3 text-sm text-[var(--text-secondary)]",children:"Chargement..."})]}):e.jsxs(e.Fragment,{children:[e.jsx(i.KanbanColumn,{title:"Actifs",count:U.length,color:"success",children:U.map(t=>e.jsxs(i.KanbanCard,{onClick:()=>d(`/administration/users/${t.id}`),children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName,size:"sm"}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-3.5 h-3.5 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-2 h-2 text-white"})})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-sm text-[var(--text-primary)] truncate",children:t.fullName}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] truncate",children:t.email})]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[t.roles.length>0?e.jsx(i.RoleBadge,{role:t.roles[0],variant:t.roles[0].toLowerCase().includes("admin")?"accent":"default"}):e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"-"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"En ligne"})]})]},t.id))}),e.jsxs(i.KanbanColumn,{title:"Inactifs",count:E.length,color:"error",children:[E.map(t=>e.jsxs(i.KanbanCard,{onClick:()=>d(`/administration/users/${t.id}`),children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(i.Avatar,{name:t.fullName,size:"sm"}),t.entraObjectId&&e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-3.5 h-3.5 rounded-full bg-blue-500 flex items-center justify-center ring-2 ring-[var(--bg-card)]",title:a("users.syncedWithAad"),children:e.jsx(l.Cloud,{className:"w-2 h-2 text-white"})})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-sm text-[var(--text-primary)] truncate",children:t.fullName}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] truncate",children:t.email})]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[t.roles.length>0?e.jsx(i.RoleBadge,{role:t.roles[0]}):e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"-"}),e.jsx("button",{onClick:s=>$(t,s),disabled:!x,className:`text-xs px-2 py-1 rounded transition-opacity ${x?"bg-[var(--success-bg)] text-[var(--success-text)] hover:opacity-80":"opacity-50 cursor-not-allowed bg-[var(--bg-secondary)] text-[var(--text-tertiary)]"}`,title:x?void 0:a("common.noPermission","Permission insuffisante"),children:"Réactiver"})]})]},t.id)),E.length===0&&e.jsxs("div",{className:"border border-dashed border-[var(--border-color)] rounded-lg p-6 text-center",children:[e.jsx(l.UserCheck,{className:"w-6 h-6 mx-auto mb-2 text-[var(--text-muted)]"}),e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Aucun utilisateur inactif"})]})]})]})});return e.jsxs("div",{className:"space-y-6",children:[e.jsx(i.Breadcrumb,{items:[{label:a("header.title"),href:"/administration"},{label:a("users.title")}]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:a("users.title")}),e.jsxs("p",{className:"text-sm text-[var(--text-tertiary)] mt-1",children:[L," utilisateurs • ",ue," en ligne"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(i.Slot,{name:"users.header.actions",context:{users:u,totalCount:L,reload:f}}),e.jsxs("button",{onClick:de,disabled:!A,className:`btn btn-primary ${A?"":"opacity-50 cursor-not-allowed"}`,title:A?void 0:a("common.noPermission","Permission insuffisante"),children:[e.jsx(l.Plus,{className:"w-4 h-4"}),a("users.create")]})]})]}),e.jsx(Ne,{}),e.jsx("div",{className:"card p-4",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[!r.search&&e.jsx(l.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-muted)] pointer-events-none"}),e.jsx("input",{type:"text",value:r.search,onChange:t=>v("search",t.target.value),placeholder:a("users.filters.searchPlaceholder"),className:"input w-full",style:r.search?void 0:{paddingLeft:"2.5rem"}}),r.search&&e.jsx("button",{onClick:()=>v("search",""),className:"absolute right-3 top-1/2 -translate-y-1/2 p-1 rounded hover:bg-[var(--bg-secondary)]",children:e.jsx(l.X,{className:"w-3 h-3 text-[var(--text-tertiary)]"})})]}),e.jsxs("button",{onClick:()=>q(!T),className:`btn ${T?"btn-primary":"btn-secondary"} relative`,children:[e.jsx(l.Filter,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:a("users.filters.title")}),k>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 w-5 h-5 rounded-full bg-[var(--color-accent-500)] text-white text-xs flex items-center justify-center",children:k})]}),k>0&&e.jsx("button",{onClick:oe,className:"btn btn-ghost text-[var(--text-tertiary)] hover:text-[var(--text-primary)]",title:a("users.filters.reset"),children:e.jsx(l.RotateCcw,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"hidden md:block",children:e.jsx(i.ViewToggle,{viewMode:C,onChange:ne,tableLabel:"Table",cardsLabel:"Cards",kanbanLabel:"Kanban"})})]}),T&&e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4 pt-4 border-t border-[var(--border-color)]",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.status")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.status,onChange:t=>v("status",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"all",children:a("users.filters.allStatuses")}),e.jsx("option",{value:"active",children:a("users.filters.activeOnly")}),e.jsx("option",{value:"inactive",children:a("users.filters.inactiveOnly")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.role")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.roleId,onChange:t=>v("roleId",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"",children:a("users.filters.allRoles")}),F.map(t=>e.jsx("option",{value:t.id,children:t.name},t.id))]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.source")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.source,onChange:t=>v("source",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"all",children:a("users.filters.allSources")}),e.jsx("option",{value:"entra",children:a("users.filters.entraOnly")}),e.jsx("option",{value:"local",children:a("users.filters.localOnly")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.userType")}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.userType,onChange:t=>v("userType",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"",children:a("users.filters.allTypes")}),e.jsx("option",{value:"User",children:a("users.filters.typeUser")}),e.jsx("option",{value:"System",children:a("users.filters.typeSystem")}),e.jsx("option",{value:"LocalAdmin",children:a("users.filters.typeLocalAdmin")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-medium text-[var(--text-tertiary)] mb-1.5",children:a("users.filters.sortBy")}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsxs("select",{value:r.sortBy,onChange:t=>v("sortBy",t.target.value),className:"input w-full appearance-none pr-8",children:[e.jsx("option",{value:"lastname",children:a("users.filters.sortName")}),e.jsx("option",{value:"email",children:a("users.filters.sortEmail")}),e.jsx("option",{value:"lastlogin",children:a("users.filters.sortLastLogin")}),e.jsx("option",{value:"createdat",children:a("users.filters.sortCreatedAt")}),e.jsx("option",{value:"status",children:a("users.filters.sortStatus")})]}),e.jsx(l.ChevronDown,{className:"absolute right-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)] pointer-events-none"})]}),e.jsx("button",{onClick:()=>v("sortDesc",!r.sortDesc),className:`btn ${r.sortDesc?"btn-primary":"btn-secondary"} px-2.5`,title:r.sortDesc?a("users.filters.sortDesc"):a("users.filters.sortAsc"),children:e.jsx(l.ArrowUpDown,{className:"w-4 h-4"})})]})]})]}),k>0&&!T&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[var(--text-tertiary)]",children:[e.jsx(l.Filter,{className:"w-4 h-4"}),e.jsx("span",{children:a("users.filters.activeFilters",{count:k})}),e.jsx("button",{onClick:()=>q(!0),className:"text-[var(--color-accent-600)] hover:underline",children:a("users.filters.title")})]})]})}),e.jsx("div",{className:"md:hidden",children:Q()}),e.jsxs("div",{className:"hidden md:block",children:[C==="table"&&fe(),C==="cards"&&Q(),C==="kanban"&&je()]}),C!=="kanban"&&e.jsx(i.Pagination,{page:g,totalPages:ae,totalCount:L,pageSize:20,onPageChange:D,itemLabel:"utilisateurs"}),ie&&e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50",children:e.jsxs("div",{className:"card w-full max-w-lg p-6 m-4 max-h-[90vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsx("h2",{className:"text-xl font-bold text-[var(--text-primary)]",children:a(h?"users.edit":"users.create")}),e.jsx("button",{onClick:()=>w(!1),className:"btn btn-ghost p-2",children:e.jsx(l.X,{className:"w-5 h-5"})})]}),K&&e.jsx("div",{className:"mb-4 p-3 rounded-lg bg-[var(--error-bg)] text-[var(--error-text)] text-sm border border-[var(--error-border)]",children:K}),e.jsxs("form",{onSubmit:xe,className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.form.firstName")}),e.jsx("input",{type:"text",required:!0,value:m.firstName,onChange:t=>p(s=>({...s,firstName:t.target.value})),className:"input w-full"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.form.lastName")}),e.jsx("input",{type:"text",required:!0,value:m.lastName,onChange:t=>p(s=>({...s,lastName:t.target.value})),className:"input w-full"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.columns.email")}),e.jsx("input",{type:"email",required:!0,value:m.email,onChange:t=>p(s=>({...s,email:t.target.value})),className:"input w-full"})]}),!h&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:a("users.form.password")}),e.jsx("input",{type:"password",required:!h,value:m.password,onChange:t=>p(s=>({...s,password:t.target.value})),autoComplete:"new-password",className:"input w-full"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:a("users.form.roles")}),e.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto p-3 border border-[var(--border-color)] rounded-lg bg-[var(--bg-secondary)]",children:F.map(t=>e.jsxs("label",{className:"flex items-center gap-3 cursor-pointer p-2 rounded-lg hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsx("input",{type:"checkbox",checked:m.roleIds?.includes(t.id)||!1,onChange:()=>me(t.id),className:"w-4 h-4 rounded border-[var(--border-color)] text-primary-600 focus:ring-primary-500"}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[var(--text-primary)] font-medium",children:t.name}),t.description&&e.jsx("p",{className:"text-xs text-[var(--text-tertiary)]",children:t.description})]})]},t.id))})]}),e.jsx(i.Slot,{name:"users.form.fields.after",context:{formData:m,onChange:(t,s)=>{if(t.startsWith("ext.")){const n=t.substring(4);p(Y=>({...Y,ext:{...Y.ext||{},[n]:s}}))}else p(n=>({...n,[t]:s}))},disabled:R,isEditing:!!h,user:h}}),e.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[e.jsx("button",{type:"button",onClick:()=>w(!1),className:"btn btn-secondary",children:a("common.cancel")}),e.jsxs("button",{type:"submit",disabled:R,className:"btn btn-primary disabled:opacity-50",children:[R&&e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}),a(h?"common.save":"common.create")]})]})]})]})})]})}exports.UsersPage=ke;
|
|
2
|
+
//# sourceMappingURL=UsersPage-CXC9Hvq6.js.map
|