@atlashub/smartstack 3.39.0-preview.1049 → 3.40.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-DgqyaZwI.js → AgentSkillsPage-BS_W2KTh.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-DgqyaZwI.js.map → AgentSkillsPage-BS_W2KTh.js.map} +1 -1
- package/dist/chunks/{AgentSkillsPage-ojivq0Cu.js → AgentSkillsPage-CmDFLnp7.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-ojivq0Cu.js.map → AgentSkillsPage-CmDFLnp7.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-BGGTfOLs.js → AgentWorkloadPage-C8IvYfhT.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-BGGTfOLs.js.map → AgentWorkloadPage-C8IvYfhT.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-DWsC5VoS.js → AgentWorkloadPage-JXsQbwuM.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-DWsC5VoS.js.map → AgentWorkloadPage-JXsQbwuM.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-7EifQOAh.js → ApiCatalogDetailPage-CYOt34Vy.js} +2 -2
- package/dist/chunks/{ApiCatalogDetailPage-7EifQOAh.js.map → ApiCatalogDetailPage-CYOt34Vy.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-BD7XE4xK.js → ApiCatalogDetailPage-wFZDsTGy.js} +3 -3
- package/dist/chunks/{ApiCatalogDetailPage-BD7XE4xK.js.map → ApiCatalogDetailPage-wFZDsTGy.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BfPoZGD3.js → ApiCatalogPage-Bdm3HNGP.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BfPoZGD3.js.map → ApiCatalogPage-Bdm3HNGP.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BOPTnk-b.js → ApiCatalogPage-m_TWQyGv.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BOPTnk-b.js.map → ApiCatalogPage-m_TWQyGv.js.map} +1 -1
- package/dist/chunks/ApplicationDetailPage-C2BSpEoW.js +2 -0
- package/dist/chunks/{ApplicationDetailPage-CWdz0TS4.js.map → ApplicationDetailPage-C2BSpEoW.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-CDQqViuH.js → ApplicationDetailPage-CcgDAP-J.js} +503 -501
- package/dist/chunks/{ApplicationDetailPage-CDQqViuH.js.map → ApplicationDetailPage-CcgDAP-J.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-ZyXm2Cd1.js → ApplicationsDashboardPage-CDIjziL3.js} +3 -3
- package/dist/chunks/{ApplicationsDashboardPage-ZyXm2Cd1.js.map → ApplicationsDashboardPage-CDIjziL3.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-BH4S3qA2.js → ApplicationsDashboardPage-DslDyNzJ.js} +2 -2
- package/dist/chunks/{ApplicationsDashboardPage-BH4S3qA2.js.map → ApplicationsDashboardPage-DslDyNzJ.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-D0fU1_Le.js → ApplicationsGridPage-BCjsQGU0.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-D0fU1_Le.js.map → ApplicationsGridPage-BCjsQGU0.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-C1WF2Htv.js → ApplicationsGridPage-CIfKiCND.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-C1WF2Htv.js.map → ApplicationsGridPage-CIfKiCND.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-Cxvt2_WQ.js → ApplicationsListPage-CT75kNcH.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-Cxvt2_WQ.js.map → ApplicationsListPage-CT75kNcH.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-B3ItaY4r.js → ApplicationsListPage-D2B4PZ5n.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-B3ItaY4r.js.map → ApplicationsListPage-D2B4PZ5n.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-BqfNR-kc.js → ApplicationsPage-CaTBtduL.js} +2 -2
- package/dist/chunks/{ApplicationsPage-BqfNR-kc.js.map → ApplicationsPage-CaTBtduL.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-DuxuWfrN.js → ApplicationsPage-DW1LhL0U.js} +4 -4
- package/dist/chunks/{ApplicationsPage-DuxuWfrN.js.map → ApplicationsPage-DW1LhL0U.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-CR1C7V0a.js → AssignmentRulesPage-Bt9M0ki7.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-CR1C7V0a.js.map → AssignmentRulesPage-Bt9M0ki7.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-C4Jouh2g.js → AssignmentRulesPage-Y7xv60NY.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-C4Jouh2g.js.map → AssignmentRulesPage-Y7xv60NY.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-v8QUJkE7.js → AssignmentsPage-1eQGTjTi.js} +2 -2
- package/dist/chunks/{AssignmentsPage-v8QUJkE7.js.map → AssignmentsPage-1eQGTjTi.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-CjuGAd8n.js → AssignmentsPage-RURdPvfZ.js} +2 -2
- package/dist/chunks/{AssignmentsPage-CjuGAd8n.js.map → AssignmentsPage-RURdPvfZ.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-BxIXPUJk.js → AuthCallbackPage-8hF0jYlK.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-BxIXPUJk.js.map → AuthCallbackPage-8hF0jYlK.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-CuS-efzY.js → AuthCallbackPage-DPL68Asu.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-CuS-efzY.js.map → AuthCallbackPage-DPL68Asu.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-CWIqy2bT.js → ConfirmEmailPage-BKlpZkVk.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-CWIqy2bT.js.map → ConfirmEmailPage-BKlpZkVk.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-CkN8IfP-.js → ConfirmEmailPage-CawSZypI.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-CkN8IfP-.js.map → ConfirmEmailPage-CawSZypI.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-Df0ow5ge.js → CreateSupportTicketPage-AwbMbBIH.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-Df0ow5ge.js.map → CreateSupportTicketPage-AwbMbBIH.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-CmrDfFxP.js → CreateSupportTicketPage-Dg1YW1eA.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-CmrDfFxP.js.map → CreateSupportTicketPage-Dg1YW1eA.js.map} +1 -1
- package/dist/chunks/{DashboardPage-B4Pi5P3O.js → DashboardPage-B4YxOF-9.js} +3 -3
- package/dist/chunks/{DashboardPage-B4Pi5P3O.js.map → DashboardPage-B4YxOF-9.js.map} +1 -1
- package/dist/chunks/{DashboardPage-wEKZ_DWf.js → DashboardPage-BZxjinar.js} +2 -2
- package/dist/chunks/{DashboardPage-wEKZ_DWf.js.map → DashboardPage-BZxjinar.js.map} +1 -1
- package/dist/chunks/{DashboardPage-BAqpoxCW.js → DashboardPage-Bo09y8r7.js} +3 -3
- package/dist/chunks/{DashboardPage-BAqpoxCW.js.map → DashboardPage-Bo09y8r7.js.map} +1 -1
- package/dist/chunks/{DashboardPage-BT5kFaQA.js → DashboardPage-Cq5adDjP.js} +2 -2
- package/dist/chunks/{DashboardPage-BT5kFaQA.js.map → DashboardPage-Cq5adDjP.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-4pF38E4N.js → EscalationConfigPage-C8Hv5naz.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-4pF38E4N.js.map → EscalationConfigPage-C8Hv5naz.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-Bcifnt_h.js → EscalationConfigPage-DNAqMRxA.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-Bcifnt_h.js.map → EscalationConfigPage-DNAqMRxA.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-CBaMV_PS.js → ForceChangePasswordPage-BURE_vNg.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-CBaMV_PS.js.map → ForceChangePasswordPage-BURE_vNg.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-ClDXluX1.js → ForceChangePasswordPage-C6jDZshk.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-ClDXluX1.js.map → ForceChangePasswordPage-C6jDZshk.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage--ueWRNSO.js → ForgotPasswordPage-C5HLYbz4.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage--ueWRNSO.js.map → ForgotPasswordPage-C5HLYbz4.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-CzpAkP5R.js → ForgotPasswordPage-D3ZQBtjd.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-CzpAkP5R.js.map → ForgotPasswordPage-D3ZQBtjd.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-dXNOoSXE.js → GroupDetailPage-CTuzp9Vp.js} +5 -5
- package/dist/chunks/{GroupDetailPage-dXNOoSXE.js.map → GroupDetailPage-CTuzp9Vp.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-BIgBzQk0.js → GroupDetailPage-NJc2zCxC.js} +2 -2
- package/dist/chunks/{GroupDetailPage-BIgBzQk0.js.map → GroupDetailPage-NJc2zCxC.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-K2NXkdy4.js → MyAccessRequestsPage-Cvr29Pnq.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-K2NXkdy4.js.map → MyAccessRequestsPage-Cvr29Pnq.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-Be8VvLhh.js → MyAccessRequestsPage-t6I24rHN.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-Be8VvLhh.js.map → MyAccessRequestsPage-t6I24rHN.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-BXx1nPC8.js → MyTenantsPage-Dy2RZ_Ei.js} +2 -2
- package/dist/chunks/{MyTenantsPage-BXx1nPC8.js.map → MyTenantsPage-Dy2RZ_Ei.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-B9ZAUeCa.js → MyTenantsPage-SvDCQ4Wt.js} +3 -3
- package/dist/chunks/{MyTenantsPage-B9ZAUeCa.js.map → MyTenantsPage-SvDCQ4Wt.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-C9MSmmR5.js → MyTicketsPage-C3lEBFD9.js} +2 -2
- package/dist/chunks/{MyTicketsPage-C9MSmmR5.js.map → MyTicketsPage-C3lEBFD9.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-d0PoJpnX.js → MyTicketsPage-DydDgFyz.js} +2 -2
- package/dist/chunks/{MyTicketsPage-d0PoJpnX.js.map → MyTicketsPage-DydDgFyz.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-CJ3BjLlz.js → NavigationAppsPage-Dyv767w8.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-CJ3BjLlz.js.map → NavigationAppsPage-Dyv767w8.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-8t2xbddT.js → NavigationAppsPage-WqSspaVo.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-8t2xbddT.js.map → NavigationAppsPage-WqSspaVo.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-_62-bmuk.js → NotificationsPage-Di4I95PM.js} +2 -2
- package/dist/chunks/{NotificationsPage-_62-bmuk.js.map → NotificationsPage-Di4I95PM.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-CLHfVUxm.js → NotificationsPage-elSovpBw.js} +2 -2
- package/dist/chunks/{NotificationsPage-CLHfVUxm.js.map → NotificationsPage-elSovpBw.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-Dkc22Jc4.js → OnboardingWizardPage-fdWdkwiT.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-Dkc22Jc4.js.map → OnboardingWizardPage-fdWdkwiT.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-D1rzD6gR.js → OnboardingWizardPage-nPLe2buQ.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-D1rzD6gR.js.map → OnboardingWizardPage-nPLe2buQ.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-BSvSe4SI.js → PermissionDetailPage-B8C7tWFP.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-BSvSe4SI.js.map → PermissionDetailPage-B8C7tWFP.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-_HhbxzlG.js → PermissionDetailPage-IUgUaTkE.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-_HhbxzlG.js.map → PermissionDetailPage-IUgUaTkE.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-Xb92YAHn.js → PermissionsPage-CmX5sQf2.js} +2 -2
- package/dist/chunks/{PermissionsPage-Xb92YAHn.js.map → PermissionsPage-CmX5sQf2.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-B0M4gA5m.js → PermissionsPage-Kg0rduOM.js} +2 -2
- package/dist/chunks/{PermissionsPage-B0M4gA5m.js.map → PermissionsPage-Kg0rduOM.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-DTeMESj9.js → PortalDashboardPage-CCAYuhtI.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-DTeMESj9.js.map → PortalDashboardPage-CCAYuhtI.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-pt9hipR4.js → PortalDashboardPage-Dme1XmzN.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-pt9hipR4.js.map → PortalDashboardPage-Dme1XmzN.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-Cy30AWIN.js → PreferencesPage-Ct6xWAFp.js} +2 -2
- package/dist/chunks/{PreferencesPage-Cy30AWIN.js.map → PreferencesPage-Ct6xWAFp.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-CsHVGMgp.js → PreferencesPage-Db2RjMpm.js} +2 -2
- package/dist/chunks/{PreferencesPage-CsHVGMgp.js.map → PreferencesPage-Db2RjMpm.js.map} +1 -1
- package/dist/chunks/{ProfilePage-6Gf7igUI.js → ProfilePage-D6Xb1ALH.js} +2 -2
- package/dist/chunks/{ProfilePage-6Gf7igUI.js.map → ProfilePage-D6Xb1ALH.js.map} +1 -1
- package/dist/chunks/{ProfilePage-BzBWkztf.js → ProfilePage-DN2s-lfp.js} +2 -2
- package/dist/chunks/{ProfilePage-BzBWkztf.js.map → ProfilePage-DN2s-lfp.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-DEDoHrnU.js → ReferencesManagementPage-B5mcshG1.js} +2 -2
- package/dist/chunks/{ReferencesManagementPage-DEDoHrnU.js.map → ReferencesManagementPage-B5mcshG1.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-DD1QiFYr.js → ReferencesManagementPage-DB975ktX.js} +3 -3
- package/dist/chunks/{ReferencesManagementPage-DD1QiFYr.js.map → ReferencesManagementPage-DB975ktX.js.map} +1 -1
- package/dist/chunks/{RegisterPage-asdx33fV.js → RegisterPage-ZskZrLZH.js} +2 -2
- package/dist/chunks/{RegisterPage-asdx33fV.js.map → RegisterPage-ZskZrLZH.js.map} +1 -1
- package/dist/chunks/{RegisterPage-CIPHRYkl.js → RegisterPage-b8yIPVgh.js} +2 -2
- package/dist/chunks/{RegisterPage-CIPHRYkl.js.map → RegisterPage-b8yIPVgh.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-B4Dj24vU.js → ResetPasswordPage-CeAvfsE-.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-B4Dj24vU.js.map → ResetPasswordPage-CeAvfsE-.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-B8MWH_Vi.js → ResetPasswordPage-Dzp5dCp8.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-B8MWH_Vi.js.map → ResetPasswordPage-Dzp5dCp8.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-Cs6T441o.js → ResolutionModal-CRVN7gHv.js} +2 -2
- package/dist/chunks/{ResolutionModal-Cs6T441o.js.map → ResolutionModal-CRVN7gHv.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-rLoFOxm9.js → ResolutionModal-DJOw1sLT.js} +2 -2
- package/dist/chunks/{ResolutionModal-rLoFOxm9.js.map → ResolutionModal-DJOw1sLT.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-Pkw0wU5g.js → RoleDetailPage-CLVoFVF8.js} +2 -2
- package/dist/chunks/{RoleDetailPage-Pkw0wU5g.js.map → RoleDetailPage-CLVoFVF8.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-CNFG6j6P.js → RoleDetailPage-XGnPD_8C.js} +3 -3
- package/dist/chunks/{RoleDetailPage-CNFG6j6P.js.map → RoleDetailPage-XGnPD_8C.js.map} +1 -1
- package/dist/chunks/{RolesPage-BHEkMR2O.js → RolesPage-BnAMpR2b.js} +2 -2
- package/dist/chunks/{RolesPage-BHEkMR2O.js.map → RolesPage-BnAMpR2b.js.map} +1 -1
- package/dist/chunks/{RolesPage-D35jwDJU.js → RolesPage-Czj9LMkL.js} +2 -2
- package/dist/chunks/{RolesPage-D35jwDJU.js.map → RolesPage-Czj9LMkL.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-DtonDehw.js → SlaConfigPage-HM0MpIlg.js} +2 -2
- package/dist/chunks/{SlaConfigPage-DtonDehw.js.map → SlaConfigPage-HM0MpIlg.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-C5Jstix-.js → SlaConfigPage-ZRyAs8aY.js} +2 -2
- package/dist/chunks/{SlaConfigPage-C5Jstix-.js.map → SlaConfigPage-ZRyAs8aY.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-6pC73oCY.js → SupportPermissionsPage-CxJuGgcQ.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-6pC73oCY.js.map → SupportPermissionsPage-CxJuGgcQ.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-CsJKGt__.js → SupportPermissionsPage-DNd323OK.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-CsJKGt__.js.map → SupportPermissionsPage-DNd323OK.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-DjmYOGEC.js → TemplatesPage-CdwPLsHj.js} +2 -2
- package/dist/chunks/{TemplatesPage-DjmYOGEC.js.map → TemplatesPage-CdwPLsHj.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-DlY91VO_.js → TemplatesPage-Co3ygZvF.js} +2 -2
- package/dist/chunks/{TemplatesPage-DlY91VO_.js.map → TemplatesPage-Co3ygZvF.js.map} +1 -1
- package/dist/chunks/{TenantCard-BHLcv2gD.js → TenantCard-CmCfIK2F.js} +2 -2
- package/dist/chunks/{TenantCard-BHLcv2gD.js.map → TenantCard-CmCfIK2F.js.map} +1 -1
- package/dist/chunks/{TenantCard-DGCKVvKI.js → TenantCard-DI66acce.js} +2 -2
- package/dist/chunks/{TenantCard-DGCKVvKI.js.map → TenantCard-DI66acce.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-dsSwnOWg.js → TenantScopeSelector-5NOwmFX2.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-dsSwnOWg.js.map → TenantScopeSelector-5NOwmFX2.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-CU5z5PJH.js → TenantScopeSelector-CEFgxiWt.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-CU5z5PJH.js.map → TenantScopeSelector-CEFgxiWt.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-BQHMaRmq.js → TicketDetailPage-BhZ-mpv7.js} +2 -2
- package/dist/chunks/{TicketDetailPage-BQHMaRmq.js.map → TicketDetailPage-BhZ-mpv7.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-Bk_0uQ3B.js → TicketDetailPage-BxOiOG22.js} +2 -2
- package/dist/chunks/{TicketDetailPage-Bk_0uQ3B.js.map → TicketDetailPage-BxOiOG22.js.map} +1 -1
- package/dist/chunks/{TicketsPage-CufUJctx.js → TicketsPage-BiTvIcM8.js} +2 -2
- package/dist/chunks/{TicketsPage-CufUJctx.js.map → TicketsPage-BiTvIcM8.js.map} +1 -1
- package/dist/chunks/{TicketsPage-C8QQ4SKy.js → TicketsPage-CSiinHME.js} +2 -2
- package/dist/chunks/{TicketsPage-C8QQ4SKy.js.map → TicketsPage-CSiinHME.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-DoEMtJoe.js → UserCreateTicketPage-B3TW1oV7.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-DoEMtJoe.js.map → UserCreateTicketPage-B3TW1oV7.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-XxjNlR9K.js → UserCreateTicketPage-BszUd_WZ.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-XxjNlR9K.js.map → UserCreateTicketPage-BszUd_WZ.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-fdhZwMLg.js → UserDashboardPage-C6MvatAb.js} +2 -2
- package/dist/chunks/{UserDashboardPage-fdhZwMLg.js.map → UserDashboardPage-C6MvatAb.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-BV1d2hMG.js → UserDashboardPage-Dtt9VzG_.js} +2 -2
- package/dist/chunks/{UserDashboardPage-BV1d2hMG.js.map → UserDashboardPage-Dtt9VzG_.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-C97e-Dax.js → UserDetailPage-BEEV2vlJ.js} +5 -5
- package/dist/chunks/{UserDetailPage-C97e-Dax.js.map → UserDetailPage-BEEV2vlJ.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-BcA7Vhb2.js → UserDetailPage-Dw5OHheZ.js} +2 -2
- package/dist/chunks/{UserDetailPage-BcA7Vhb2.js.map → UserDetailPage-Dw5OHheZ.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-BA2syxXG.js → UserTicketDetailPage-B4YkzzbR.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-BA2syxXG.js.map → UserTicketDetailPage-B4YkzzbR.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-CXuZVAa2.js → UserTicketDetailPage-DCFV-0ny.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-CXuZVAa2.js.map → UserTicketDetailPage-DCFV-0ny.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-CPVk31Dh.js → UsersGroupsPage-CY-l9fTp.js} +3 -3
- package/dist/chunks/{UsersGroupsPage-CPVk31Dh.js.map → UsersGroupsPage-CY-l9fTp.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-DS2YiUE4.js → UsersGroupsPage-c28vYHN9.js} +2 -2
- package/dist/chunks/{UsersGroupsPage-DS2YiUE4.js.map → UsersGroupsPage-c28vYHN9.js.map} +1 -1
- package/dist/chunks/{UsersPage-BIXWHFmG.js → UsersPage-1sLlq9QD.js} +2 -2
- package/dist/chunks/{UsersPage-BIXWHFmG.js.map → UsersPage-1sLlq9QD.js.map} +1 -1
- package/dist/chunks/{UsersPage-DS8aWUKj.js → UsersPage-Bm-uNxh0.js} +2 -2
- package/dist/chunks/{UsersPage-DS8aWUKj.js.map → UsersPage-Bm-uNxh0.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-C-r0mrCH.js → accessRequestsApi-CJPjyEkH.js} +2 -2
- package/dist/chunks/{accessRequestsApi-C-r0mrCH.js.map → accessRequestsApi-CJPjyEkH.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-k3ZwhcFb.js → accessRequestsApi-D_pj1wl6.js} +2 -2
- package/dist/chunks/{accessRequestsApi-k3ZwhcFb.js.map → accessRequestsApi-D_pj1wl6.js.map} +1 -1
- package/dist/chunks/{aiApi-B-H-76wM.js → aiApi-ByF-oo1J.js} +2 -2
- package/dist/chunks/{aiApi-B-H-76wM.js.map → aiApi-ByF-oo1J.js.map} +1 -1
- package/dist/chunks/{aiApi-CcdrBILv.js → aiApi-Dt3fj0dU.js} +2 -2
- package/dist/chunks/{aiApi-CcdrBILv.js.map → aiApi-Dt3fj0dU.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-CO3tk6Ju.js → applicationAnalyticsApi-BgG3SGJm.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-CO3tk6Ju.js.map → applicationAnalyticsApi-BgG3SGJm.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-CLVdVLDu.js → applicationAnalyticsApi-ktD65iLO.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-CLVdVLDu.js.map → applicationAnalyticsApi-ktD65iLO.js.map} +1 -1
- package/dist/chunks/{groupsApi-DExOJZPF.js → groupsApi-C-FLWPCO.js} +2 -2
- package/dist/chunks/{groupsApi-DExOJZPF.js.map → groupsApi-C-FLWPCO.js.map} +1 -1
- package/dist/chunks/{groupsApi-CyqyYsmi.js → groupsApi-CBI5vMLa.js} +2 -2
- package/dist/chunks/{groupsApi-CyqyYsmi.js.map → groupsApi-CBI5vMLa.js.map} +1 -1
- package/dist/chunks/{index-DtAReZI6.js → index-B727-QSU.js} +2 -2
- package/dist/chunks/{index-DtAReZI6.js.map → index-B727-QSU.js.map} +1 -1
- package/dist/chunks/{index-BlOgmQzc.js → index-B9q3vx13.js} +2 -2
- package/dist/chunks/{index-BlOgmQzc.js.map → index-B9q3vx13.js.map} +1 -1
- package/dist/chunks/{index-VSQ2prtJ.js → index-BD-REzV9.js} +2 -2
- package/dist/chunks/{index-VSQ2prtJ.js.map → index-BD-REzV9.js.map} +1 -1
- package/dist/chunks/{index-XOOiD_zY.js → index-BDRogQH_.js} +3 -3
- package/dist/chunks/{index-XOOiD_zY.js.map → index-BDRogQH_.js.map} +1 -1
- package/dist/chunks/{index-DOQyf5yZ.js → index-C-DYxdvd.js} +8 -8
- package/dist/chunks/{index-DOQyf5yZ.js.map → index-C-DYxdvd.js.map} +1 -1
- package/dist/chunks/{index-Cq80YBne.js → index-CBtjGPod.js} +105 -105
- package/dist/chunks/{index-Cq80YBne.js.map → index-CBtjGPod.js.map} +1 -1
- package/dist/chunks/{index-dlXYTPWH.js → index-CF1cvNUL.js} +4 -4
- package/dist/chunks/{index-dlXYTPWH.js.map → index-CF1cvNUL.js.map} +1 -1
- package/dist/chunks/{index-COA_xJVJ.js → index-CH0pTHy1.js} +2 -2
- package/dist/chunks/{index-COA_xJVJ.js.map → index-CH0pTHy1.js.map} +1 -1
- package/dist/chunks/{index-DjZQ6ZG_.js → index-Ca88RIuT.js} +2 -2
- package/dist/chunks/{index-DjZQ6ZG_.js.map → index-Ca88RIuT.js.map} +1 -1
- package/dist/chunks/{index-Cj-9tGpd.js → index-CkWvsvKW.js} +2 -2
- package/dist/chunks/{index-Cj-9tGpd.js.map → index-CkWvsvKW.js.map} +1 -1
- package/dist/chunks/{index-EL_ZNnMH.js → index-CzYKE5fL.js} +2 -2
- package/dist/chunks/{index-EL_ZNnMH.js.map → index-CzYKE5fL.js.map} +1 -1
- package/dist/chunks/{index-qXfYaEmV.js → index-D32ol7lq.js} +2 -2
- package/dist/chunks/{index-qXfYaEmV.js.map → index-D32ol7lq.js.map} +1 -1
- package/dist/chunks/{index-DMQQ0KyA.js → index-D7hmx9IX.js} +2 -2
- package/dist/chunks/{index-DMQQ0KyA.js.map → index-D7hmx9IX.js.map} +1 -1
- package/dist/chunks/{index-BetDcNZm.js → index-DThcQmwZ.js} +2 -2
- package/dist/chunks/{index-BetDcNZm.js.map → index-DThcQmwZ.js.map} +1 -1
- package/dist/chunks/{index-C7h5yvcP.js → index-D_3J6ziZ.js} +2 -2
- package/dist/chunks/{index-C7h5yvcP.js.map → index-D_3J6ziZ.js.map} +1 -1
- package/dist/chunks/{index-C_nDTEP5.js → index-JSjfMShT.js} +2 -2
- package/dist/chunks/{index-C_nDTEP5.js.map → index-JSjfMShT.js.map} +1 -1
- package/dist/chunks/{index-COXxU0FH.js → index-gzXJw_ow.js} +3 -3
- package/dist/chunks/{index-COXxU0FH.js.map → index-gzXJw_ow.js.map} +1 -1
- package/dist/chunks/{index-jJxtz2bs.js → index-rRAbl04H.js} +2 -2
- package/dist/chunks/{index-jJxtz2bs.js.map → index-rRAbl04H.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-Ddvguo0l.js → tenantIconMap-Cw-hQ9n4.js} +2 -2
- package/dist/chunks/{tenantIconMap-Ddvguo0l.js.map → tenantIconMap-Cw-hQ9n4.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-DBa5MjIz.js → tenantIconMap-DinwojNW.js} +2 -2
- package/dist/chunks/{tenantIconMap-DBa5MjIz.js.map → tenantIconMap-DinwojNW.js.map} +1 -1
- package/dist/chunks/{ticketingApi-Cr6QSv0g.js → ticketingApi-CcWdebXv.js} +2 -2
- package/dist/chunks/{ticketingApi-Cr6QSv0g.js.map → ticketingApi-CcWdebXv.js.map} +1 -1
- package/dist/chunks/{ticketingApi-D6s75rOB.js → ticketingApi-x0BwZ1NH.js} +2 -2
- package/dist/chunks/{ticketingApi-D6s75rOB.js.map → ticketingApi-x0BwZ1NH.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-VuQT-n-P.js → useAccessRequests-BBTIYht3.js} +2 -2
- package/dist/chunks/{useAccessRequests-VuQT-n-P.js.map → useAccessRequests-BBTIYht3.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-CanI2ypo.js → useAccessRequests-BBUj9XY9.js} +71 -71
- package/dist/chunks/{useAccessRequests-CanI2ypo.js.map → useAccessRequests-BBUj9XY9.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-BEVZLX_M.js → useUserAccessRequests-BKQxcOXH.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-BEVZLX_M.js.map → useUserAccessRequests-BKQxcOXH.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-Ba40FDLm.js → useUserAccessRequests-BPUPiP55.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-Ba40FDLm.js.map → useUserAccessRequests-BPUPiP55.js.map} +1 -1
- package/dist/pages/platform/administration/applications/ApplicationDetailPage.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/ApplicationDetailPage-CWdz0TS4.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),le=require("react-i18next"),n=require("lucide-react"),J=require("./index-XOOiD_zY.js"),Q=require("./PermissionPopover-CtYTz7MK.js");function ge({section:s,resources:v,moduleIndex:A,sectionIndex:k,isCollapsed:$,collapsedSections:S,paginatedRoles:b,canEditSystemRoles:O,statusFilters:i,openPopover:h,onToggleCollapse:M,onTogglePermission:P,onCellClick:f,setOpenPopover:y,renderResourceRow:N}){const T=S.has(s.id),m=v.length>0;return e.jsxs(l.Fragment,{children:[N(s,A+k+1,"section",m,T),m&&!T&&v.map((L,I)=>N(L,A+k+I+2,"resource",!1,!1))]},s.id)}function ve({roles:s,resources:v,canEditSystemRoles:A=!1,onTogglePermission:k,getPermissionInheritance:$,rolesPerPage:S,rolePageIndex:b,modulesPerPage:O,modulePageIndex:i,collapsedApps:h,onToggleApp:M,statusFilters:P}){const{t:f}=le.useTranslation("admin"),[y,N]=l.useState(null),[T,m]=l.useState(new Set),[L,I]=l.useState(new Set),D=l.useCallback((t,o)=>{o(c=>{const p=new Set(c);return p.has(t)?p.delete(t):p.add(t),p})},[]),E=l.useCallback(t=>{D(t,m)},[D]),z=l.useCallback(t=>{D(t,I)},[D]),q=l.useMemo(()=>v.filter(t=>t.level==="module").length,[v]),_=l.useMemo(()=>{const t=b*S;return s.slice(t,t+S)},[s,b,S]),W=l.useMemo(()=>Q.groupByApplicationWithSections(v),[v]),r=l.useCallback(()=>{const t=i*O,o=t+O;let c=0;const p=[];for(const w of W){const C=h.has(w.application),g=[];if(!C)for(const R of w.modules)c>=t&&c<o&&g.push(R),c++;p.push({application:w.application,modules:g})}return p},[W,i,O,h]),u=l.useMemo(()=>r(),[r]),F=l.useCallback((t,o)=>{const c=$(t,o);return c.isDirect||c.isInherited},[$]),Z=l.useCallback((t,o)=>Q.calculatePermissionStatus(o,c=>F(t,c)),[F]),V=(t,o)=>{y?.roleId===t&&y?.resourceId===o?N(null):N({roleId:t,resourceId:o})},B=l.useCallback((t,o)=>{o==="module"?E(t):o==="section"&&z(t)},[E,z]);if(s.length===0||q===0)return e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:s.length===0?f("assignments.noRoles"):f("assignments.noResources")});const K=t=>{switch(t){case"resource":return"pl-28";case"section":return"pl-22";default:return"pl-16"}},Y=t=>t==="resource"?e.jsx(n.Database,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):t==="section"?e.jsx(n.FileText,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):e.jsx(n.Box,{className:"h-3.5 w-3.5 text-[var(--text-secondary)]"}),re=t=>t==="resource"?"text-[var(--text-muted)] italic":t==="section"?"text-[var(--text-secondary)]":"font-medium text-[var(--text-primary)]",ae=(t,o,c,p)=>t?e.jsx("button",{onClick:()=>B(o,c),className:"p-0.5 hover:bg-[var(--bg-hover)] rounded",children:p?e.jsx(n.ChevronRight,{className:"h-3 w-3 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-3 w-3 text-[var(--text-muted)]"})}):null,ne=t=>_.map(o=>{const{status:c,grantedCount:p}=Z(o.id,t),w=y?.roleId===o.id&&y?.resourceId===t.id,C=l.createRef(),g=!o.isSystem||A,R=Q.getPermissionCellBackground(c),j=(P?.size??0)>0&&!P?.has(c);return e.jsxs("td",{className:`px-0 py-1 text-center relative ${j?"":R}`,style:{width:"44px",minWidth:"44px",maxWidth:"44px"},children:[e.jsx("button",{ref:C,type:"button",onClick:()=>g&&!j&&V(o.id,t.id),disabled:!g||j,className:`w-full h-full min-h-[36px] flex items-center justify-center rounded transition-colors ${j?"opacity-10 cursor-default":g?"hover:opacity-80":"cursor-not-allowed opacity-50"} ${w?"ring-2 ring-[var(--color-accent-500)]":""}`,title:j?void 0:g?`${o.name} - ${t.moduleLabel}: ${p}/${t.permissions.length}`:`${o.name} - ${f("assignments.systemRoleReadOnly")}`,children:e.jsx(Q.PermissionStatusIndicator,{status:c,grantedCount:p,totalCount:t.permissions.length})}),w&&g&&!j&&e.jsx(Q.PermissionPopover,{mode:"editable",role:o,resource:t,onTogglePermission:H=>k(o.id,H),onClose:()=>N(null),getPermissionInheritance:$})]},`${o.id}-${t.id}`)}),ee=(t,o,c,p=!1,w=!1)=>{const C=K(c),g=o%2===0?"item-light":"item-medium";return e.jsxs("tr",{className:`hover:bg-[var(--bg-hover)] ${g}`,children:[e.jsx("td",{className:`sticky left-0 z-10 ${g} px-3 py-2 ${C}`,style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("div",{className:"flex items-center gap-2",children:[ae(p,t.id,c,w),Y(c),e.jsx("span",{className:`text-sm ${re(c)}`,children:t.moduleLabel}),e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",t.permissions.length,")"]})]})}),ne(t)]},t.id)};return e.jsx("div",{className:"overflow-x-auto overflow-y-visible",children:e.jsxs("table",{className:"border-collapse",style:{width:"auto"},children:[e.jsx("thead",{className:"item-medium border-b border-[var(--item-color-border)]",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"sticky left-0 z-20 item-medium px-3 text-left text-xs font-medium text-[var(--text-secondary)] uppercase tracking-wider",style:{width:"280px",minWidth:"280px",maxWidth:"280px",height:"180px",verticalAlign:"bottom",paddingBottom:"12px"},children:f("assignments.resource")}),_.map(t=>e.jsx("th",{scope:"col",className:"relative overflow-visible",style:{width:"44px",minWidth:"44px",maxWidth:"44px",height:"180px",padding:0,verticalAlign:"bottom"},children:e.jsx("div",{className:"absolute bottom-2 left-1/2",style:{transform:"translateX(-6px) rotate(-55deg)",transformOrigin:"bottom left",width:"160px"},children:e.jsxs("div",{className:"flex items-center gap-1",children:[t.isSystem&&e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 text-[var(--warning-dot)]"}),e.jsx("span",{className:"text-[10px] font-medium text-[var(--text-primary)] whitespace-nowrap",title:t.name,children:t.name})]})})},t.id))]})}),e.jsx("tbody",{className:"divide-y divide-[var(--item-color-border)]",children:u.map(t=>{const o=h.has(t.application),c=_.length;return e.jsxs(l.Fragment,{children:[e.jsxs("tr",{className:"bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",children:[e.jsx("td",{className:"sticky left-0 z-10 px-3 py-3 bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("button",{onClick:()=>M(t.application),className:"flex items-center gap-3 w-full text-left hover:opacity-80",children:[o?e.jsx(n.ChevronRight,{className:"h-5 w-5 text-[var(--color-accent-400)]"}):e.jsx(n.ChevronDown,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx(n.FolderOpen,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx("span",{className:"text-sm font-bold text-[var(--color-accent-300)] uppercase tracking-wider",children:t.application}),e.jsx("span",{className:"text-xs text-[var(--color-accent-400)] ml-auto",children:f("assignments.moduleCount",{count:t.modules.length})})]})}),e.jsx("td",{colSpan:c,className:"px-0 py-3"})]}),!o&&t.modules.map((p,w)=>{const{module:C,sections:g}=p,R=g.length>0,j=T.has(C.id);return e.jsxs(l.Fragment,{children:[ee(C,w,"module",R,j),R&&!j&&g.map((H,G)=>{const{section:se,resources:U}=H;return e.jsx(ge,{section:se,resources:U,moduleIndex:w,sectionIndex:G,isCollapsed:j,collapsedSections:L,paginatedRoles:_,canEditSystemRoles:A,statusFilters:P,openPopover:y,onToggleCollapse:B,onTogglePermission:k,onCellClick:V,setOpenPopover:N,renderResourceRow:ee},se.id)})]},C.id)})]},t.application)})})]})})}function be({filters:s,roles:v,categories:A,applications:k,modules:$,hasChanges:S,onFilterChange:b,onReset:O}){const{t:i}=le.useTranslation("admin"),[h,M]=l.useState(!1),[P,f]=l.useState(""),y=l.useRef(null),N=l.useRef(null),T=l.useMemo(()=>{let r=v;if(s.categoryFilter!=="all"&&(r=r.filter(u=>u.category===s.categoryFilter)),P.trim()){const u=P.toLowerCase();r=r.filter(F=>F.name.toLowerCase().includes(u)||F.shortName?.toLowerCase().includes(u))}return r},[v,s.categoryFilter,P]);l.useEffect(()=>{h&&N.current&&setTimeout(()=>N.current?.focus(),50)},[h]);const m=r=>{M(r),r||f("")},L=$.filter(r=>!(s.applicationFilter!=="all"&&r.app!==s.applicationFilter));l.useEffect(()=>{function r(u){y.current&&!y.current.contains(u.target)&&m(!1)}return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[]);const I=r=>{const u=s.selectedRoleIds.includes(r)?s.selectedRoleIds.filter(F=>F!==r):[...s.selectedRoleIds,r];b({selectedRoleIds:u})},D=()=>{b({selectedRoleIds:T.map(r=>r.id)})},E=()=>{b({selectedRoleIds:[]})},z=r=>{b({applicationFilter:r,moduleFilter:"all"})},q=r=>{b({categoryFilter:r,selectedRoleIds:[]})},_=s.selectedRoleIds.length>0||s.categoryFilter!=="all"||s.applicationFilter!=="all"||s.moduleFilter!=="all",W=s.selectedRoleIds.length===0?i("permissions.filters.allRoles"):s.selectedRoleIds.length===1?v.find(r=>r.id===s.selectedRoleIds[0])?.name||i("assignments.oneRoleSelected"):`${s.selectedRoleIds.length} ${i("permissions.filters.rolesSelected")}`;return e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-[var(--text-secondary)]",children:[e.jsx(n.Filter,{className:"h-4 w-4"}),e.jsx("span",{children:i("assignments.filters")})]}),e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"category-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectCategory")}),e.jsxs("select",{id:"category-filter",value:s.categoryFilter,onChange:r=>q(r.target.value),className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allCategories")}),A.map(r=>e.jsx("option",{value:r,children:i(`roles.categories.${r.toLowerCase()}`)},r))]})]}),e.jsxs("div",{ref:y,className:"relative min-w-[200px] flex-[2]",children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectRoles")}),e.jsxs("button",{type:"button",onClick:()=>m(!h),className:"w-full flex items-center justify-between px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:bg-[var(--bg-secondary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] text-sm",children:[e.jsx("span",{className:"truncate",children:W}),e.jsx(n.ChevronDown,{className:`h-4 w-4 text-[var(--text-muted)] transition-transform ${h?"rotate-180":""}`})]}),h&&e.jsxs("div",{className:"absolute z-50 mt-1 w-full bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[var(--radius-card)] shadow-lg",children:[e.jsx("div",{className:"px-3 py-2 border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-y-0 left-0 pl-2 flex items-center pointer-events-none",children:e.jsx(n.Search,{className:"h-4 w-4 text-[var(--text-muted)]"})}),e.jsx("input",{ref:N,type:"text",value:P,onChange:r=>f(r.target.value),placeholder:i("permissions.filters.searchRoles"),className:"block w-full pl-8 pr-3 py-1.5 text-sm border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)]"})]})}),e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-[var(--border-color)] bg-[var(--bg-secondary)]",children:[e.jsx("button",{type:"button",onClick:D,className:"text-xs text-[var(--color-accent-600)] hover:text-[var(--color-accent-700)]",children:i("permissions.filters.selectAll")}),e.jsx("button",{type:"button",onClick:E,className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-secondary)]",children:i("permissions.filters.clearSelection")})]}),e.jsx("div",{className:"max-h-64 overflow-auto",children:T.length===0?e.jsx("div",{className:"px-3 py-4 text-sm text-[var(--text-muted)] text-center",children:i("permissions.filters.noRolesFound")}):T.map(r=>e.jsxs("button",{type:"button",onClick:()=>I(r.id),className:"w-full flex items-center gap-3 px-3 py-2 hover:bg-[var(--bg-secondary)] cursor-pointer text-left",children:[e.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center flex-shrink-0 ${s.selectedRoleIds.includes(r.id)?"bg-[var(--color-accent-600)] border-[var(--color-accent-600)]":"border-[var(--border-color)] bg-[var(--bg-primary)]"}`,children:s.selectedRoleIds.includes(r.id)&&e.jsx(n.Check,{className:"h-3 w-3 text-white"})}),e.jsx("span",{className:"text-sm text-[var(--text-primary)] truncate",children:r.name}),r.isSystem&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-[var(--bg-tertiary)] text-[var(--text-muted)] flex-shrink-0",children:i("assignments.systemRole")})]},r.id))})]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"application-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("assignments.filterByApplication")}),e.jsxs("select",{id:"application-filter",value:s.applicationFilter,onChange:r=>z(r.target.value),disabled:k.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("assignments.allApplications")}),k.map(r=>e.jsx("option",{value:r.app,children:r.label},r.app))]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"module-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectModule")}),e.jsxs("select",{id:"module-filter",value:s.moduleFilter,onChange:r=>b({moduleFilter:r.target.value}),disabled:L.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allModules")}),L.map(r=>e.jsx("option",{value:r.module,children:r.label},`${r.app}:${r.module}`))]})]}),e.jsx("div",{className:"flex items-end flex-shrink-0",children:_&&e.jsxs("button",{type:"button",onClick:O,className:"w-full inline-flex items-center justify-center gap-2 px-3 py-2 text-sm text-[var(--text-secondary)] hover:text-[var(--text-primary)] border border-[var(--border-color)] rounded-[var(--radius-input)] hover:bg-[var(--bg-secondary)] transition-colors",children:[e.jsx(n.RotateCcw,{className:"h-4 w-4"}),i("assignments.clearFilters")]})})]}),s.selectedRoleIds.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2",children:s.selectedRoleIds.map(r=>{const u=v.find(F=>F.id===r);return u?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 text-xs rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[u.name,e.jsx("button",{type:"button",onClick:()=>I(r),className:"hover:text-[var(--color-accent-900)] dark:hover:text-[var(--color-accent-100)]",children:e.jsx(n.X,{className:"h-3 w-3"})})]},r):null})}),S&&e.jsx("div",{className:"flex items-center justify-end pt-2 border-t border-[var(--border-color)]",children:e.jsx("div",{className:"text-sm text-[var(--warning-text)]",children:i("assignments.unsavedChanges")})})]})}const ie={viewer:{nameKey:"assignments.templates.viewer.name",descriptionKey:"assignments.templates.viewer.description",icon:n.Eye,color:"blue",permissions:["*.read"]},member:{nameKey:"assignments.templates.member.name",descriptionKey:"assignments.templates.member.description",icon:n.User,color:"green",permissions:["*.read","*.create"]},contributor:{nameKey:"assignments.templates.contributor.name",descriptionKey:"assignments.templates.contributor.description",icon:n.Pencil,color:"orange",permissions:["*.read","*.create","*.update"]},admin:{nameKey:"assignments.templates.admin.name",descriptionKey:"assignments.templates.admin.description",icon:n.ShieldCheck,color:"red",permissions:["*.*"]}},fe=[10,25,50],je=[10,15,20,25];function ye(){const{t:s}=le.useTranslation("admin"),{user:v}=J.useAuth(),[A,k]=l.useState(!1),[$,S]=l.useState(null),[b,O]=l.useState(25),[i,h]=l.useState(1),[M,P]=l.useState(10),[f,y]=l.useState(0),[N,T]=l.useState(new Set),[m,L]=l.useState(new Set),[I,D]=l.useState(!1),E=a=>{L(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d}),h(1),y(0)},z=a=>{T(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d})},q=l.useMemo(()=>v?J.hasFullAccess(v.permissions):!1,[v]),{loading:_,error:W,saveError:r,saving:u,roles:F,assignments:Z,filters:V,filteredRoles:B,filteredResources:K,hasChanges:Y,applications:re,modules:ae,categories:ne,togglePermission:ee,updateFilters:t,reloadData:o,resetChanges:c,clearSaveError:p,getPermissionInheritance:w}=J.usePermissionMatrix({canEditSystemRoles:q}),C=l.useCallback((a,x)=>{const d=x.permissions.filter(he=>{const oe=w(a,he.id);return oe.isDirect||oe.isInherited}),X=d.length,pe=x.totalPermissions;return X===0?"none":X===pe?"all":X===1&&d[0]?.action==="read"?"read-only":"some"},[w]),g=l.useMemo(()=>K.filter(a=>a.level==="module"),[K]),R=l.useMemo(()=>m.size===0?B:B.filter(a=>{for(const x of g){const d=C(a.id,x);if(m.has(d))return!0}return!1}),[B,g,m,C]),j=l.useMemo(()=>m.size===0?K:K.filter(a=>{if(a.level!=="module")return!0;for(const x of B){const d=C(x.id,a);if(m.has(d))return!0}return!1}),[K,B,m,C]),H=l.useMemo(()=>{let a=0;return Object.values(Z).forEach(x=>{a+=x.size}),a},[Z]),G=l.useMemo(()=>j.filter(a=>!(a.level!=="module"||N.has(a.applicationLabel))).length,[j,N]),se=l.useMemo(()=>j.filter(a=>a.level==="module").length,[j]),U=Math.ceil(G/b),ce=a=>{h(1),t(a)},de=a=>{O(a),h(1)},te=Math.ceil(R.length/M),me=a=>{P(a),y(0)},xe=async a=>{const x=ie[a];if(!x)return;const d=prompt(s("assignments.enterRoleName"),s(x.nameKey));if(d)try{S(null),await J.adminApi.roles.create({name:d,description:s(x.descriptionKey),permissionIds:[]}),k(!1),await o()}catch(X){S(X instanceof Error?X.message:"Failed to create role from template")}},ue=()=>{h(1),t({selectedRoleIds:[],resourceSearch:"",applicationFilter:"all",moduleFilter:"all"})};return _?e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(n.Loader2,{className:"h-8 w-8 animate-spin text-[var(--color-accent-500)] mx-auto mb-4"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:s("assignments.loading")})]})}):W?e.jsx("div",{className:"p-6",children:e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-4",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsxs("div",{className:"ml-3",children:[e.jsx("h3",{className:"text-sm font-medium text-[var(--error-text)]",children:s("common.error")}),e.jsx("div",{className:"mt-2 text-sm text-[var(--error-text)] opacity-80",children:e.jsx("p",{children:W})})]})]})})}):e.jsxs("div",{className:"p-6 space-y-4",children:[e.jsx(J.Breadcrumb,{items:[{label:s("header.title"),href:"/administration"},{label:s("assignments.title","Assignments")}]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:s("assignments.title")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.subtitle")})]}),e.jsx("div",{className:"flex items-center gap-3 flex-shrink-0",children:e.jsxs("button",{type:"button",onClick:()=>k(!0),className:"inline-flex items-center px-4 py-2 border border-[var(--border-color)] text-sm font-medium rounded-[var(--radius-button)] text-[var(--text-secondary)] bg-[var(--bg-card)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsx(n.Sparkles,{className:"h-4 w-4 mr-2"}),s("assignments.createFromTemplate")]})})]}),r&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] p-3 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(n.AlertCircle,{className:"h-4 w-4 text-[var(--error-text)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--error-text)]",children:r}),e.jsx("button",{type:"button",onClick:p,className:"ml-auto text-sm text-[var(--error-text)] hover:opacity-80 font-medium",children:s("common.dismiss")})]})}),(Y||u)&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--warning-bg)] p-3 border border-[var(--warning-border)]",children:e.jsxs("div",{className:"flex items-center",children:[u?e.jsx(n.Loader2,{className:"h-4 w-4 text-[var(--warning-dot)] animate-spin"}):e.jsx(n.Info,{className:"h-4 w-4 text-[var(--warning-dot)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--warning-text)]",children:s(u?"assignments.saving":"assignments.autoSaveActive")}),!u&&e.jsx("button",{type:"button",onClick:c,className:"ml-auto text-sm text-[var(--warning-text)] hover:opacity-80 font-medium",children:s("assignments.discardChanges")})]})}),e.jsx(be,{filters:V,roles:F,categories:ne,applications:re,modules:ae,hasChanges:Y,onFilterChange:ce,onReset:ue}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 py-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[R.length," ",s("assignments.roles")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:[G,"/",se," ",s("assignments.modules")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--success-bg)] text-[var(--success-text)] border border-[var(--success-border)]",children:[H," ",s("assignments.permissionsAssigned")]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[var(--text-secondary)] border-l border-[var(--border-color)] pl-4",children:[e.jsxs("span",{children:[s("assignments.rolesPerPage"),":"]}),e.jsx("select",{value:M,onChange:a=>me(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:je.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[f*M+1,"-",Math.min((f+1)*M,R.length)," / ",R.length]}),te>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>y(a=>Math.max(0,a-1)),disabled:f===0,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-3.5 w-3.5"})}),e.jsxs("span",{className:"text-xs min-w-[50px] text-center",children:[f+1," / ",te]}),e.jsx("button",{onClick:()=>y(a=>Math.min(te-1,a+1)),disabled:f>=te-1,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-3.5 w-3.5"})})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("button",{onClick:()=>E("none"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("none")?"bg-red-500/30 border-red-500 text-red-700 dark:text-red-300":"bg-red-500/10 border-red-500/30 text-red-600 dark:text-red-400 hover:bg-red-500/20 hover:border-red-500"}`,children:[e.jsx(n.Ban,{className:"h-3.5 w-3.5"}),s("assignments.none")]}),e.jsxs("button",{onClick:()=>E("read-only"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("read-only")?"bg-sky-500/30 border-sky-500 text-sky-700 dark:text-sky-300":"bg-sky-500/10 border-sky-500/30 text-sky-600 dark:text-sky-400 hover:bg-sky-500/20 hover:border-sky-500"}`,children:[e.jsx(n.Eye,{className:"h-3.5 w-3.5"}),s("assignments.readOnly")]}),e.jsxs("button",{onClick:()=>E("some"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("some")?"bg-amber-500/30 border-amber-500 text-amber-700 dark:text-amber-300":"bg-amber-500/10 border-amber-500/30 text-amber-600 dark:text-amber-400 hover:bg-amber-500/20 hover:border-amber-500"}`,children:[e.jsx(n.Star,{className:"h-3.5 w-3.5"}),s("assignments.partial")]}),e.jsxs("button",{onClick:()=>E("all"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("all")?"bg-emerald-500/30 border-emerald-500 text-emerald-700 dark:text-emerald-300":"bg-emerald-500/10 border-emerald-500/30 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 hover:border-emerald-500"}`,children:[e.jsx(n.Check,{className:"h-3.5 w-3.5"}),s("assignments.complete")]}),m.size>0&&e.jsx("button",{onClick:()=>L(new Set),className:"text-xs text-[var(--color-accent-500)] hover:text-[var(--color-accent-600)] underline ml-2",children:s("assignments.clearFilters")})]})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] overflow-hidden",children:[e.jsxs("button",{type:"button",onClick:()=>D(!I),className:"w-full flex items-center justify-between px-4 py-2.5 text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(n.BookOpen,{className:"h-4 w-4 text-[var(--color-accent-500)]"}),e.jsx("span",{children:s("assignments.guide.title")})]}),I?e.jsx(n.ChevronUp,{className:"h-4 w-4 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-4 w-4 text-[var(--text-muted)]"})]}),I&&e.jsx("div",{className:"px-4 pb-4 border-t border-[var(--item-color-border)]",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 pt-3",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.colorLegendTitle")}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-red-500/10 border border-red-500/20 text-red-600 dark:text-red-400",children:e.jsx(n.Ban,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.noneDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-sky-500/20 border border-sky-500/30 text-sky-700 dark:text-sky-300",children:e.jsx(n.Eye,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.readOnlyDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-amber-500/20 border border-amber-500/30 text-amber-700 dark:text-amber-300",children:e.jsx(n.Star,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.partialDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-emerald-500/20 border border-emerald-500/30 text-emerald-700 dark:text-emerald-300",children:e.jsx(n.Check,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.completeDesc")})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.howToUseTitle")}),e.jsxs("ul",{className:"space-y-1.5 text-xs text-[var(--text-secondary)]",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.clickCell")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 mt-0.5 text-[var(--warning-dot)]"}),s("assignments.guide.systemRoles")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.inheritance")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.autoSave")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.filterButtons")]})]})]})]})})]}),e.jsx("div",{className:"bg-[var(--bg-card)] shadow-[var(--shadow-md)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsx(ve,{roles:R,resources:j,assignments:Z,canEditSystemRoles:q,onTogglePermission:ee,getPermissionInheritance:w,rolesPerPage:M,rolePageIndex:f,modulesPerPage:b,modulePageIndex:i-1,collapsedApps:N,onToggleApp:z,statusFilters:m})}),e.jsx("div",{className:"py-3 px-4 bg-[var(--bg-card)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsxs("div",{className:"flex items-center gap-3 text-sm text-[var(--text-secondary)]",children:[e.jsxs("span",{children:[s("assignments.itemsPerPage"),":"]}),e.jsx("select",{value:b,onChange:a=>de(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:fe.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[(i-1)*b+1,"-",Math.min(i*b,G)," / ",G]}),U>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>h(a=>Math.max(1,a-1)),disabled:i===1,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-4 w-4"})}),e.jsxs("span",{className:"text-sm min-w-[60px] text-center",children:[i," / ",U]}),e.jsx("button",{onClick:()=>h(a=>Math.min(U,a+1)),disabled:i>=U,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-4 w-4"})})]})]})}),A&&e.jsx("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:e.jsxs("div",{className:"flex items-center justify-center min-h-screen px-4 pt-4 pb-20 text-center sm:p-0",children:[e.jsx("button",{type:"button",className:"fixed inset-0 bg-black/50 transition-opacity",onClick:()=>k(!1),"aria-label":"Close modal"}),e.jsxs("div",{className:"inline-block align-bottom bg-[var(--bg-card)] rounded-[var(--radius-modal)] px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 border border-[var(--border-color)]",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h3",{className:"text-lg font-medium text-[var(--text-primary)]",children:s("assignments.createFromTemplate")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.templateDescription")})]}),$&&e.jsx("div",{className:"mb-4 rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-3",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-[var(--error-text)]",children:$})})]})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:Object.entries(ie).map(([a,x])=>{const d=x.icon;return e.jsx("button",{onClick:()=>xe(a),className:"relative p-4 rounded-[var(--radius-card)] border-2 text-left transition-all hover:shadow-lg hover:scale-105 border-[var(--border-color)] hover:border-[var(--color-accent-500)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(d,{className:"h-6 w-6 text-[var(--color-accent-500)]"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-medium text-[var(--text-primary)]",children:s(x.nameKey)}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)]",children:s(x.descriptionKey)})]})]})},a)})}),e.jsx("div",{className:"mt-5 sm:mt-6",children:e.jsx("button",{type:"button",onClick:()=>{k(!1),S(null)},className:"w-full inline-flex justify-center rounded-[var(--radius-button)] border border-[var(--border-color)] shadow-sm px-4 py-2 bg-[var(--bg-secondary)] text-base font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:s("common.cancel")})})]})]})})]})}exports.AssignmentsPage=ye;
|
|
2
|
-
//# sourceMappingURL=AssignmentsPage-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),le=require("react-i18next"),n=require("lucide-react"),J=require("./index-BDRogQH_.js"),Q=require("./PermissionPopover-CtYTz7MK.js");function ge({section:s,resources:v,moduleIndex:A,sectionIndex:k,isCollapsed:$,collapsedSections:S,paginatedRoles:b,canEditSystemRoles:O,statusFilters:i,openPopover:h,onToggleCollapse:M,onTogglePermission:P,onCellClick:f,setOpenPopover:y,renderResourceRow:N}){const T=S.has(s.id),m=v.length>0;return e.jsxs(l.Fragment,{children:[N(s,A+k+1,"section",m,T),m&&!T&&v.map((L,I)=>N(L,A+k+I+2,"resource",!1,!1))]},s.id)}function ve({roles:s,resources:v,canEditSystemRoles:A=!1,onTogglePermission:k,getPermissionInheritance:$,rolesPerPage:S,rolePageIndex:b,modulesPerPage:O,modulePageIndex:i,collapsedApps:h,onToggleApp:M,statusFilters:P}){const{t:f}=le.useTranslation("admin"),[y,N]=l.useState(null),[T,m]=l.useState(new Set),[L,I]=l.useState(new Set),D=l.useCallback((t,o)=>{o(c=>{const p=new Set(c);return p.has(t)?p.delete(t):p.add(t),p})},[]),E=l.useCallback(t=>{D(t,m)},[D]),z=l.useCallback(t=>{D(t,I)},[D]),q=l.useMemo(()=>v.filter(t=>t.level==="module").length,[v]),_=l.useMemo(()=>{const t=b*S;return s.slice(t,t+S)},[s,b,S]),W=l.useMemo(()=>Q.groupByApplicationWithSections(v),[v]),r=l.useCallback(()=>{const t=i*O,o=t+O;let c=0;const p=[];for(const w of W){const C=h.has(w.application),g=[];if(!C)for(const R of w.modules)c>=t&&c<o&&g.push(R),c++;p.push({application:w.application,modules:g})}return p},[W,i,O,h]),u=l.useMemo(()=>r(),[r]),F=l.useCallback((t,o)=>{const c=$(t,o);return c.isDirect||c.isInherited},[$]),Z=l.useCallback((t,o)=>Q.calculatePermissionStatus(o,c=>F(t,c)),[F]),V=(t,o)=>{y?.roleId===t&&y?.resourceId===o?N(null):N({roleId:t,resourceId:o})},B=l.useCallback((t,o)=>{o==="module"?E(t):o==="section"&&z(t)},[E,z]);if(s.length===0||q===0)return e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:s.length===0?f("assignments.noRoles"):f("assignments.noResources")});const K=t=>{switch(t){case"resource":return"pl-28";case"section":return"pl-22";default:return"pl-16"}},Y=t=>t==="resource"?e.jsx(n.Database,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):t==="section"?e.jsx(n.FileText,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):e.jsx(n.Box,{className:"h-3.5 w-3.5 text-[var(--text-secondary)]"}),re=t=>t==="resource"?"text-[var(--text-muted)] italic":t==="section"?"text-[var(--text-secondary)]":"font-medium text-[var(--text-primary)]",ae=(t,o,c,p)=>t?e.jsx("button",{onClick:()=>B(o,c),className:"p-0.5 hover:bg-[var(--bg-hover)] rounded",children:p?e.jsx(n.ChevronRight,{className:"h-3 w-3 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-3 w-3 text-[var(--text-muted)]"})}):null,ne=t=>_.map(o=>{const{status:c,grantedCount:p}=Z(o.id,t),w=y?.roleId===o.id&&y?.resourceId===t.id,C=l.createRef(),g=!o.isSystem||A,R=Q.getPermissionCellBackground(c),j=(P?.size??0)>0&&!P?.has(c);return e.jsxs("td",{className:`px-0 py-1 text-center relative ${j?"":R}`,style:{width:"44px",minWidth:"44px",maxWidth:"44px"},children:[e.jsx("button",{ref:C,type:"button",onClick:()=>g&&!j&&V(o.id,t.id),disabled:!g||j,className:`w-full h-full min-h-[36px] flex items-center justify-center rounded transition-colors ${j?"opacity-10 cursor-default":g?"hover:opacity-80":"cursor-not-allowed opacity-50"} ${w?"ring-2 ring-[var(--color-accent-500)]":""}`,title:j?void 0:g?`${o.name} - ${t.moduleLabel}: ${p}/${t.permissions.length}`:`${o.name} - ${f("assignments.systemRoleReadOnly")}`,children:e.jsx(Q.PermissionStatusIndicator,{status:c,grantedCount:p,totalCount:t.permissions.length})}),w&&g&&!j&&e.jsx(Q.PermissionPopover,{mode:"editable",role:o,resource:t,onTogglePermission:H=>k(o.id,H),onClose:()=>N(null),getPermissionInheritance:$})]},`${o.id}-${t.id}`)}),ee=(t,o,c,p=!1,w=!1)=>{const C=K(c),g=o%2===0?"item-light":"item-medium";return e.jsxs("tr",{className:`hover:bg-[var(--bg-hover)] ${g}`,children:[e.jsx("td",{className:`sticky left-0 z-10 ${g} px-3 py-2 ${C}`,style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("div",{className:"flex items-center gap-2",children:[ae(p,t.id,c,w),Y(c),e.jsx("span",{className:`text-sm ${re(c)}`,children:t.moduleLabel}),e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",t.permissions.length,")"]})]})}),ne(t)]},t.id)};return e.jsx("div",{className:"overflow-x-auto overflow-y-visible",children:e.jsxs("table",{className:"border-collapse",style:{width:"auto"},children:[e.jsx("thead",{className:"item-medium border-b border-[var(--item-color-border)]",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"sticky left-0 z-20 item-medium px-3 text-left text-xs font-medium text-[var(--text-secondary)] uppercase tracking-wider",style:{width:"280px",minWidth:"280px",maxWidth:"280px",height:"180px",verticalAlign:"bottom",paddingBottom:"12px"},children:f("assignments.resource")}),_.map(t=>e.jsx("th",{scope:"col",className:"relative overflow-visible",style:{width:"44px",minWidth:"44px",maxWidth:"44px",height:"180px",padding:0,verticalAlign:"bottom"},children:e.jsx("div",{className:"absolute bottom-2 left-1/2",style:{transform:"translateX(-6px) rotate(-55deg)",transformOrigin:"bottom left",width:"160px"},children:e.jsxs("div",{className:"flex items-center gap-1",children:[t.isSystem&&e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 text-[var(--warning-dot)]"}),e.jsx("span",{className:"text-[10px] font-medium text-[var(--text-primary)] whitespace-nowrap",title:t.name,children:t.name})]})})},t.id))]})}),e.jsx("tbody",{className:"divide-y divide-[var(--item-color-border)]",children:u.map(t=>{const o=h.has(t.application),c=_.length;return e.jsxs(l.Fragment,{children:[e.jsxs("tr",{className:"bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",children:[e.jsx("td",{className:"sticky left-0 z-10 px-3 py-3 bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("button",{onClick:()=>M(t.application),className:"flex items-center gap-3 w-full text-left hover:opacity-80",children:[o?e.jsx(n.ChevronRight,{className:"h-5 w-5 text-[var(--color-accent-400)]"}):e.jsx(n.ChevronDown,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx(n.FolderOpen,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx("span",{className:"text-sm font-bold text-[var(--color-accent-300)] uppercase tracking-wider",children:t.application}),e.jsx("span",{className:"text-xs text-[var(--color-accent-400)] ml-auto",children:f("assignments.moduleCount",{count:t.modules.length})})]})}),e.jsx("td",{colSpan:c,className:"px-0 py-3"})]}),!o&&t.modules.map((p,w)=>{const{module:C,sections:g}=p,R=g.length>0,j=T.has(C.id);return e.jsxs(l.Fragment,{children:[ee(C,w,"module",R,j),R&&!j&&g.map((H,G)=>{const{section:se,resources:U}=H;return e.jsx(ge,{section:se,resources:U,moduleIndex:w,sectionIndex:G,isCollapsed:j,collapsedSections:L,paginatedRoles:_,canEditSystemRoles:A,statusFilters:P,openPopover:y,onToggleCollapse:B,onTogglePermission:k,onCellClick:V,setOpenPopover:N,renderResourceRow:ee},se.id)})]},C.id)})]},t.application)})})]})})}function be({filters:s,roles:v,categories:A,applications:k,modules:$,hasChanges:S,onFilterChange:b,onReset:O}){const{t:i}=le.useTranslation("admin"),[h,M]=l.useState(!1),[P,f]=l.useState(""),y=l.useRef(null),N=l.useRef(null),T=l.useMemo(()=>{let r=v;if(s.categoryFilter!=="all"&&(r=r.filter(u=>u.category===s.categoryFilter)),P.trim()){const u=P.toLowerCase();r=r.filter(F=>F.name.toLowerCase().includes(u)||F.shortName?.toLowerCase().includes(u))}return r},[v,s.categoryFilter,P]);l.useEffect(()=>{h&&N.current&&setTimeout(()=>N.current?.focus(),50)},[h]);const m=r=>{M(r),r||f("")},L=$.filter(r=>!(s.applicationFilter!=="all"&&r.app!==s.applicationFilter));l.useEffect(()=>{function r(u){y.current&&!y.current.contains(u.target)&&m(!1)}return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[]);const I=r=>{const u=s.selectedRoleIds.includes(r)?s.selectedRoleIds.filter(F=>F!==r):[...s.selectedRoleIds,r];b({selectedRoleIds:u})},D=()=>{b({selectedRoleIds:T.map(r=>r.id)})},E=()=>{b({selectedRoleIds:[]})},z=r=>{b({applicationFilter:r,moduleFilter:"all"})},q=r=>{b({categoryFilter:r,selectedRoleIds:[]})},_=s.selectedRoleIds.length>0||s.categoryFilter!=="all"||s.applicationFilter!=="all"||s.moduleFilter!=="all",W=s.selectedRoleIds.length===0?i("permissions.filters.allRoles"):s.selectedRoleIds.length===1?v.find(r=>r.id===s.selectedRoleIds[0])?.name||i("assignments.oneRoleSelected"):`${s.selectedRoleIds.length} ${i("permissions.filters.rolesSelected")}`;return e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-[var(--text-secondary)]",children:[e.jsx(n.Filter,{className:"h-4 w-4"}),e.jsx("span",{children:i("assignments.filters")})]}),e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"category-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectCategory")}),e.jsxs("select",{id:"category-filter",value:s.categoryFilter,onChange:r=>q(r.target.value),className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allCategories")}),A.map(r=>e.jsx("option",{value:r,children:i(`roles.categories.${r.toLowerCase()}`)},r))]})]}),e.jsxs("div",{ref:y,className:"relative min-w-[200px] flex-[2]",children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectRoles")}),e.jsxs("button",{type:"button",onClick:()=>m(!h),className:"w-full flex items-center justify-between px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:bg-[var(--bg-secondary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] text-sm",children:[e.jsx("span",{className:"truncate",children:W}),e.jsx(n.ChevronDown,{className:`h-4 w-4 text-[var(--text-muted)] transition-transform ${h?"rotate-180":""}`})]}),h&&e.jsxs("div",{className:"absolute z-50 mt-1 w-full bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[var(--radius-card)] shadow-lg",children:[e.jsx("div",{className:"px-3 py-2 border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-y-0 left-0 pl-2 flex items-center pointer-events-none",children:e.jsx(n.Search,{className:"h-4 w-4 text-[var(--text-muted)]"})}),e.jsx("input",{ref:N,type:"text",value:P,onChange:r=>f(r.target.value),placeholder:i("permissions.filters.searchRoles"),className:"block w-full pl-8 pr-3 py-1.5 text-sm border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)]"})]})}),e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-[var(--border-color)] bg-[var(--bg-secondary)]",children:[e.jsx("button",{type:"button",onClick:D,className:"text-xs text-[var(--color-accent-600)] hover:text-[var(--color-accent-700)]",children:i("permissions.filters.selectAll")}),e.jsx("button",{type:"button",onClick:E,className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-secondary)]",children:i("permissions.filters.clearSelection")})]}),e.jsx("div",{className:"max-h-64 overflow-auto",children:T.length===0?e.jsx("div",{className:"px-3 py-4 text-sm text-[var(--text-muted)] text-center",children:i("permissions.filters.noRolesFound")}):T.map(r=>e.jsxs("button",{type:"button",onClick:()=>I(r.id),className:"w-full flex items-center gap-3 px-3 py-2 hover:bg-[var(--bg-secondary)] cursor-pointer text-left",children:[e.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center flex-shrink-0 ${s.selectedRoleIds.includes(r.id)?"bg-[var(--color-accent-600)] border-[var(--color-accent-600)]":"border-[var(--border-color)] bg-[var(--bg-primary)]"}`,children:s.selectedRoleIds.includes(r.id)&&e.jsx(n.Check,{className:"h-3 w-3 text-white"})}),e.jsx("span",{className:"text-sm text-[var(--text-primary)] truncate",children:r.name}),r.isSystem&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-[var(--bg-tertiary)] text-[var(--text-muted)] flex-shrink-0",children:i("assignments.systemRole")})]},r.id))})]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"application-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("assignments.filterByApplication")}),e.jsxs("select",{id:"application-filter",value:s.applicationFilter,onChange:r=>z(r.target.value),disabled:k.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("assignments.allApplications")}),k.map(r=>e.jsx("option",{value:r.app,children:r.label},r.app))]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"module-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectModule")}),e.jsxs("select",{id:"module-filter",value:s.moduleFilter,onChange:r=>b({moduleFilter:r.target.value}),disabled:L.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allModules")}),L.map(r=>e.jsx("option",{value:r.module,children:r.label},`${r.app}:${r.module}`))]})]}),e.jsx("div",{className:"flex items-end flex-shrink-0",children:_&&e.jsxs("button",{type:"button",onClick:O,className:"w-full inline-flex items-center justify-center gap-2 px-3 py-2 text-sm text-[var(--text-secondary)] hover:text-[var(--text-primary)] border border-[var(--border-color)] rounded-[var(--radius-input)] hover:bg-[var(--bg-secondary)] transition-colors",children:[e.jsx(n.RotateCcw,{className:"h-4 w-4"}),i("assignments.clearFilters")]})})]}),s.selectedRoleIds.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2",children:s.selectedRoleIds.map(r=>{const u=v.find(F=>F.id===r);return u?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 text-xs rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[u.name,e.jsx("button",{type:"button",onClick:()=>I(r),className:"hover:text-[var(--color-accent-900)] dark:hover:text-[var(--color-accent-100)]",children:e.jsx(n.X,{className:"h-3 w-3"})})]},r):null})}),S&&e.jsx("div",{className:"flex items-center justify-end pt-2 border-t border-[var(--border-color)]",children:e.jsx("div",{className:"text-sm text-[var(--warning-text)]",children:i("assignments.unsavedChanges")})})]})}const ie={viewer:{nameKey:"assignments.templates.viewer.name",descriptionKey:"assignments.templates.viewer.description",icon:n.Eye,color:"blue",permissions:["*.read"]},member:{nameKey:"assignments.templates.member.name",descriptionKey:"assignments.templates.member.description",icon:n.User,color:"green",permissions:["*.read","*.create"]},contributor:{nameKey:"assignments.templates.contributor.name",descriptionKey:"assignments.templates.contributor.description",icon:n.Pencil,color:"orange",permissions:["*.read","*.create","*.update"]},admin:{nameKey:"assignments.templates.admin.name",descriptionKey:"assignments.templates.admin.description",icon:n.ShieldCheck,color:"red",permissions:["*.*"]}},fe=[10,25,50],je=[10,15,20,25];function ye(){const{t:s}=le.useTranslation("admin"),{user:v}=J.useAuth(),[A,k]=l.useState(!1),[$,S]=l.useState(null),[b,O]=l.useState(25),[i,h]=l.useState(1),[M,P]=l.useState(10),[f,y]=l.useState(0),[N,T]=l.useState(new Set),[m,L]=l.useState(new Set),[I,D]=l.useState(!1),E=a=>{L(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d}),h(1),y(0)},z=a=>{T(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d})},q=l.useMemo(()=>v?J.hasFullAccess(v.permissions):!1,[v]),{loading:_,error:W,saveError:r,saving:u,roles:F,assignments:Z,filters:V,filteredRoles:B,filteredResources:K,hasChanges:Y,applications:re,modules:ae,categories:ne,togglePermission:ee,updateFilters:t,reloadData:o,resetChanges:c,clearSaveError:p,getPermissionInheritance:w}=J.usePermissionMatrix({canEditSystemRoles:q}),C=l.useCallback((a,x)=>{const d=x.permissions.filter(he=>{const oe=w(a,he.id);return oe.isDirect||oe.isInherited}),X=d.length,pe=x.totalPermissions;return X===0?"none":X===pe?"all":X===1&&d[0]?.action==="read"?"read-only":"some"},[w]),g=l.useMemo(()=>K.filter(a=>a.level==="module"),[K]),R=l.useMemo(()=>m.size===0?B:B.filter(a=>{for(const x of g){const d=C(a.id,x);if(m.has(d))return!0}return!1}),[B,g,m,C]),j=l.useMemo(()=>m.size===0?K:K.filter(a=>{if(a.level!=="module")return!0;for(const x of B){const d=C(x.id,a);if(m.has(d))return!0}return!1}),[K,B,m,C]),H=l.useMemo(()=>{let a=0;return Object.values(Z).forEach(x=>{a+=x.size}),a},[Z]),G=l.useMemo(()=>j.filter(a=>!(a.level!=="module"||N.has(a.applicationLabel))).length,[j,N]),se=l.useMemo(()=>j.filter(a=>a.level==="module").length,[j]),U=Math.ceil(G/b),ce=a=>{h(1),t(a)},de=a=>{O(a),h(1)},te=Math.ceil(R.length/M),me=a=>{P(a),y(0)},xe=async a=>{const x=ie[a];if(!x)return;const d=prompt(s("assignments.enterRoleName"),s(x.nameKey));if(d)try{S(null),await J.adminApi.roles.create({name:d,description:s(x.descriptionKey),permissionIds:[]}),k(!1),await o()}catch(X){S(X instanceof Error?X.message:"Failed to create role from template")}},ue=()=>{h(1),t({selectedRoleIds:[],resourceSearch:"",applicationFilter:"all",moduleFilter:"all"})};return _?e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(n.Loader2,{className:"h-8 w-8 animate-spin text-[var(--color-accent-500)] mx-auto mb-4"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:s("assignments.loading")})]})}):W?e.jsx("div",{className:"p-6",children:e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-4",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsxs("div",{className:"ml-3",children:[e.jsx("h3",{className:"text-sm font-medium text-[var(--error-text)]",children:s("common.error")}),e.jsx("div",{className:"mt-2 text-sm text-[var(--error-text)] opacity-80",children:e.jsx("p",{children:W})})]})]})})}):e.jsxs("div",{className:"p-6 space-y-4",children:[e.jsx(J.Breadcrumb,{items:[{label:s("header.title"),href:"/administration"},{label:s("assignments.title","Assignments")}]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:s("assignments.title")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.subtitle")})]}),e.jsx("div",{className:"flex items-center gap-3 flex-shrink-0",children:e.jsxs("button",{type:"button",onClick:()=>k(!0),className:"inline-flex items-center px-4 py-2 border border-[var(--border-color)] text-sm font-medium rounded-[var(--radius-button)] text-[var(--text-secondary)] bg-[var(--bg-card)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsx(n.Sparkles,{className:"h-4 w-4 mr-2"}),s("assignments.createFromTemplate")]})})]}),r&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] p-3 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(n.AlertCircle,{className:"h-4 w-4 text-[var(--error-text)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--error-text)]",children:r}),e.jsx("button",{type:"button",onClick:p,className:"ml-auto text-sm text-[var(--error-text)] hover:opacity-80 font-medium",children:s("common.dismiss")})]})}),(Y||u)&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--warning-bg)] p-3 border border-[var(--warning-border)]",children:e.jsxs("div",{className:"flex items-center",children:[u?e.jsx(n.Loader2,{className:"h-4 w-4 text-[var(--warning-dot)] animate-spin"}):e.jsx(n.Info,{className:"h-4 w-4 text-[var(--warning-dot)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--warning-text)]",children:s(u?"assignments.saving":"assignments.autoSaveActive")}),!u&&e.jsx("button",{type:"button",onClick:c,className:"ml-auto text-sm text-[var(--warning-text)] hover:opacity-80 font-medium",children:s("assignments.discardChanges")})]})}),e.jsx(be,{filters:V,roles:F,categories:ne,applications:re,modules:ae,hasChanges:Y,onFilterChange:ce,onReset:ue}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 py-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[R.length," ",s("assignments.roles")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:[G,"/",se," ",s("assignments.modules")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--success-bg)] text-[var(--success-text)] border border-[var(--success-border)]",children:[H," ",s("assignments.permissionsAssigned")]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[var(--text-secondary)] border-l border-[var(--border-color)] pl-4",children:[e.jsxs("span",{children:[s("assignments.rolesPerPage"),":"]}),e.jsx("select",{value:M,onChange:a=>me(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:je.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[f*M+1,"-",Math.min((f+1)*M,R.length)," / ",R.length]}),te>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>y(a=>Math.max(0,a-1)),disabled:f===0,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-3.5 w-3.5"})}),e.jsxs("span",{className:"text-xs min-w-[50px] text-center",children:[f+1," / ",te]}),e.jsx("button",{onClick:()=>y(a=>Math.min(te-1,a+1)),disabled:f>=te-1,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-3.5 w-3.5"})})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("button",{onClick:()=>E("none"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("none")?"bg-red-500/30 border-red-500 text-red-700 dark:text-red-300":"bg-red-500/10 border-red-500/30 text-red-600 dark:text-red-400 hover:bg-red-500/20 hover:border-red-500"}`,children:[e.jsx(n.Ban,{className:"h-3.5 w-3.5"}),s("assignments.none")]}),e.jsxs("button",{onClick:()=>E("read-only"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("read-only")?"bg-sky-500/30 border-sky-500 text-sky-700 dark:text-sky-300":"bg-sky-500/10 border-sky-500/30 text-sky-600 dark:text-sky-400 hover:bg-sky-500/20 hover:border-sky-500"}`,children:[e.jsx(n.Eye,{className:"h-3.5 w-3.5"}),s("assignments.readOnly")]}),e.jsxs("button",{onClick:()=>E("some"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("some")?"bg-amber-500/30 border-amber-500 text-amber-700 dark:text-amber-300":"bg-amber-500/10 border-amber-500/30 text-amber-600 dark:text-amber-400 hover:bg-amber-500/20 hover:border-amber-500"}`,children:[e.jsx(n.Star,{className:"h-3.5 w-3.5"}),s("assignments.partial")]}),e.jsxs("button",{onClick:()=>E("all"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("all")?"bg-emerald-500/30 border-emerald-500 text-emerald-700 dark:text-emerald-300":"bg-emerald-500/10 border-emerald-500/30 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 hover:border-emerald-500"}`,children:[e.jsx(n.Check,{className:"h-3.5 w-3.5"}),s("assignments.complete")]}),m.size>0&&e.jsx("button",{onClick:()=>L(new Set),className:"text-xs text-[var(--color-accent-500)] hover:text-[var(--color-accent-600)] underline ml-2",children:s("assignments.clearFilters")})]})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] overflow-hidden",children:[e.jsxs("button",{type:"button",onClick:()=>D(!I),className:"w-full flex items-center justify-between px-4 py-2.5 text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(n.BookOpen,{className:"h-4 w-4 text-[var(--color-accent-500)]"}),e.jsx("span",{children:s("assignments.guide.title")})]}),I?e.jsx(n.ChevronUp,{className:"h-4 w-4 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-4 w-4 text-[var(--text-muted)]"})]}),I&&e.jsx("div",{className:"px-4 pb-4 border-t border-[var(--item-color-border)]",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 pt-3",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.colorLegendTitle")}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-red-500/10 border border-red-500/20 text-red-600 dark:text-red-400",children:e.jsx(n.Ban,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.noneDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-sky-500/20 border border-sky-500/30 text-sky-700 dark:text-sky-300",children:e.jsx(n.Eye,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.readOnlyDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-amber-500/20 border border-amber-500/30 text-amber-700 dark:text-amber-300",children:e.jsx(n.Star,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.partialDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-emerald-500/20 border border-emerald-500/30 text-emerald-700 dark:text-emerald-300",children:e.jsx(n.Check,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.completeDesc")})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.howToUseTitle")}),e.jsxs("ul",{className:"space-y-1.5 text-xs text-[var(--text-secondary)]",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.clickCell")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 mt-0.5 text-[var(--warning-dot)]"}),s("assignments.guide.systemRoles")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.inheritance")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.autoSave")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.filterButtons")]})]})]})]})})]}),e.jsx("div",{className:"bg-[var(--bg-card)] shadow-[var(--shadow-md)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsx(ve,{roles:R,resources:j,assignments:Z,canEditSystemRoles:q,onTogglePermission:ee,getPermissionInheritance:w,rolesPerPage:M,rolePageIndex:f,modulesPerPage:b,modulePageIndex:i-1,collapsedApps:N,onToggleApp:z,statusFilters:m})}),e.jsx("div",{className:"py-3 px-4 bg-[var(--bg-card)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsxs("div",{className:"flex items-center gap-3 text-sm text-[var(--text-secondary)]",children:[e.jsxs("span",{children:[s("assignments.itemsPerPage"),":"]}),e.jsx("select",{value:b,onChange:a=>de(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:fe.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[(i-1)*b+1,"-",Math.min(i*b,G)," / ",G]}),U>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>h(a=>Math.max(1,a-1)),disabled:i===1,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-4 w-4"})}),e.jsxs("span",{className:"text-sm min-w-[60px] text-center",children:[i," / ",U]}),e.jsx("button",{onClick:()=>h(a=>Math.min(U,a+1)),disabled:i>=U,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-4 w-4"})})]})]})}),A&&e.jsx("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:e.jsxs("div",{className:"flex items-center justify-center min-h-screen px-4 pt-4 pb-20 text-center sm:p-0",children:[e.jsx("button",{type:"button",className:"fixed inset-0 bg-black/50 transition-opacity",onClick:()=>k(!1),"aria-label":"Close modal"}),e.jsxs("div",{className:"inline-block align-bottom bg-[var(--bg-card)] rounded-[var(--radius-modal)] px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 border border-[var(--border-color)]",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h3",{className:"text-lg font-medium text-[var(--text-primary)]",children:s("assignments.createFromTemplate")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.templateDescription")})]}),$&&e.jsx("div",{className:"mb-4 rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-3",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-[var(--error-text)]",children:$})})]})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:Object.entries(ie).map(([a,x])=>{const d=x.icon;return e.jsx("button",{onClick:()=>xe(a),className:"relative p-4 rounded-[var(--radius-card)] border-2 text-left transition-all hover:shadow-lg hover:scale-105 border-[var(--border-color)] hover:border-[var(--color-accent-500)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(d,{className:"h-6 w-6 text-[var(--color-accent-500)]"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-medium text-[var(--text-primary)]",children:s(x.nameKey)}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)]",children:s(x.descriptionKey)})]})]})},a)})}),e.jsx("div",{className:"mt-5 sm:mt-6",children:e.jsx("button",{type:"button",onClick:()=>{k(!1),S(null)},className:"w-full inline-flex justify-center rounded-[var(--radius-button)] border border-[var(--border-color)] shadow-sm px-4 py-2 bg-[var(--bg-secondary)] text-base font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:s("common.cancel")})})]})]})})]})}exports.AssignmentsPage=ye;
|
|
2
|
+
//# sourceMappingURL=AssignmentsPage-RURdPvfZ.js.map
|