@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,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-cAikSVW0.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-DnML-nfd.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-NsTukS8m.js.map
|