@thunderid/react 1.14.0 → 1.15.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/ThunderIDReactClient.d.ts.map +1 -1
- package/dist/ThunderIDReactClient.js +6 -2
- package/dist/ThunderIDReactClient.js.map +1 -1
- package/dist/api/account/getAccessibleOrganizationUnits.d.ts +27 -0
- package/dist/api/account/getAccessibleOrganizationUnits.d.ts.map +1 -0
- package/dist/api/account/getAccessibleOrganizationUnits.js +24 -0
- package/dist/api/account/getAccessibleOrganizationUnits.js.map +1 -0
- package/dist/cjs/ThunderIDReactClient.cjs +6 -2
- package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
- package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs +26 -0
- package/dist/cjs/api/account/getAccessibleOrganizationUnits.cjs.map +1 -0
- package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs +214 -0
- package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.cjs.map +1 -0
- package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs +184 -0
- package/dist/cjs/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.cjs.map +1 -0
- package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs +139 -0
- package/dist/cjs/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.cjs.map +1 -0
- package/dist/cjs/components/auth/SignIn/SignIn.cjs +23 -20
- package/dist/cjs/components/auth/SignIn/SignIn.cjs.map +1 -1
- package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs +13 -9
- package/dist/cjs/components/auth/SignUp/BaseSignUp.cjs.map +1 -1
- package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs +2 -2
- package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs.map +1 -1
- package/dist/cjs/components/common/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
- package/dist/cjs/components/{admin → management}/AgentCreate/AgentCreate.cjs +8 -7
- package/dist/cjs/components/management/AgentCreate/AgentCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/AgentCreate/BaseAgentCreate.cjs +1 -1
- package/dist/cjs/components/management/AgentCreate/BaseAgentCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/AgentDetails/AgentDetails.cjs +1 -1
- package/dist/cjs/components/management/AgentDetails/AgentDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/AgentDetails/BaseAgentDetails.cjs +1 -1
- package/dist/cjs/components/management/AgentDetails/BaseAgentDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/AgentList/AgentList.cjs +11 -6
- package/dist/cjs/components/management/AgentList/AgentList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/AgentList/BaseAgentList.cjs +1 -1
- package/dist/cjs/components/management/AgentList/BaseAgentList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/ApplicationCreate/ApplicationCreate.cjs +10 -5
- package/dist/cjs/components/management/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.cjs +1 -1
- package/dist/cjs/components/management/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/ApplicationDetails/ApplicationDetails.cjs +1 -1
- package/dist/cjs/components/management/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.cjs +1 -1
- package/dist/cjs/components/management/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/ApplicationList/ApplicationList.cjs +9 -4
- package/dist/cjs/components/management/ApplicationList/ApplicationList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/ApplicationList/BaseApplicationList.cjs +1 -1
- package/dist/cjs/components/management/ApplicationList/BaseApplicationList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/GroupCreate/BaseGroupCreate.cjs +1 -1
- package/dist/cjs/components/management/GroupCreate/BaseGroupCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/GroupCreate/GroupCreate.cjs +1 -1
- package/dist/cjs/components/management/GroupCreate/GroupCreate.cjs.map +1 -0
- package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs +86 -0
- package/dist/cjs/components/management/GroupDetails/BaseGroupDetails.cjs.map +1 -0
- package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs +60 -0
- package/dist/cjs/components/management/GroupDetails/GroupDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/GroupList/BaseGroupList.cjs +1 -1
- package/dist/cjs/components/management/GroupList/BaseGroupList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/GroupList/GroupList.cjs +1 -1
- package/dist/cjs/components/management/GroupList/GroupList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/GroupMembers/BaseGroupMembers.cjs +1 -1
- package/dist/cjs/components/management/GroupMembers/BaseGroupMembers.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/GroupMembers/GroupMembers.cjs +1 -1
- package/dist/cjs/components/management/GroupMembers/GroupMembers.cjs.map +1 -0
- package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs +140 -0
- package/dist/cjs/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.cjs.map +1 -0
- package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs +83 -0
- package/dist/cjs/components/management/OrganizationUnitCreate/OrganizationUnitCreate.cjs.map +1 -0
- package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs +276 -0
- package/dist/cjs/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.cjs.map +1 -0
- package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs +142 -0
- package/dist/cjs/components/management/OrganizationUnitDetails/OrganizationUnitDetails.cjs.map +1 -0
- package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs +78 -0
- package/dist/cjs/components/management/OrganizationUnitList/BaseOrganizationUnitList.cjs.map +1 -0
- package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs +69 -0
- package/dist/cjs/components/management/OrganizationUnitList/OrganizationUnitList.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs +116 -0
- package/dist/cjs/components/management/ProjectCreate/BaseProjectCreate.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs +43 -0
- package/dist/cjs/components/management/ProjectCreate/ProjectCreate.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs +172 -0
- package/dist/cjs/components/management/ProjectDetails/BaseProjectDetails.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs +68 -0
- package/dist/cjs/components/management/ProjectDetails/ProjectDetails.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs +78 -0
- package/dist/cjs/components/management/ProjectList/BaseProjectList.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectList/ProjectList.cjs +51 -0
- package/dist/cjs/components/management/ProjectList/ProjectList.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs +58 -0
- package/dist/cjs/components/management/ProjectSwitcher/BaseProjectSwitcher.cjs.map +1 -0
- package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs +72 -0
- package/dist/cjs/components/management/ProjectSwitcher/ProjectSwitcher.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/RoleAssignments/BaseRoleAssignments.cjs +1 -1
- package/dist/cjs/components/management/RoleAssignments/BaseRoleAssignments.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/RoleAssignments/RoleAssignments.cjs +1 -1
- package/dist/cjs/components/management/RoleAssignments/RoleAssignments.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/RoleCreate/BaseRoleCreate.cjs +1 -1
- package/dist/cjs/components/management/RoleCreate/BaseRoleCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/RoleCreate/RoleCreate.cjs +1 -1
- package/dist/cjs/components/management/RoleCreate/RoleCreate.cjs.map +1 -0
- package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs +87 -0
- package/dist/cjs/components/management/RoleDetails/BaseRoleDetails.cjs.map +1 -0
- package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs +68 -0
- package/dist/cjs/components/management/RoleDetails/RoleDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/RoleList/BaseRoleList.cjs +1 -1
- package/dist/cjs/components/management/RoleList/BaseRoleList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/RoleList/RoleList.cjs +1 -1
- package/dist/cjs/components/management/RoleList/RoleList.cjs.map +1 -0
- package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs +181 -0
- package/dist/cjs/components/management/RolePermissions/BaseRolePermissions.cjs.map +1 -0
- package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs +112 -0
- package/dist/cjs/components/management/RolePermissions/RolePermissions.cjs.map +1 -0
- package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs +308 -0
- package/dist/cjs/components/management/SharingPolicies/BaseSharingPolicies.cjs.map +1 -0
- package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs +126 -0
- package/dist/cjs/components/management/SharingPolicies/SharingPolicies.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserCreate/BaseUserCreate.cjs +1 -1
- package/dist/cjs/components/management/UserCreate/BaseUserCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserCreate/UserCreate.cjs +1 -1
- package/dist/cjs/components/management/UserCreate/UserCreate.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserCreate/userCreateFields.cjs +1 -1
- package/dist/cjs/components/management/UserCreate/userCreateFields.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserDetails/BaseUserDetails.cjs +1 -1
- package/dist/cjs/components/management/UserDetails/BaseUserDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserDetails/UserDetails.cjs +1 -1
- package/dist/cjs/components/management/UserDetails/UserDetails.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserList/BaseUserList.cjs +1 -1
- package/dist/cjs/components/management/UserList/BaseUserList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/UserList/UserList.cjs +1 -1
- package/dist/cjs/components/management/UserList/UserList.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/AccountLifecycleParts.cjs +1 -1
- package/dist/cjs/components/management/shared/AccountLifecycleParts.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/AdminParts.cjs +1 -1
- package/dist/cjs/components/management/shared/AdminParts.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/AdminParts.styles.cjs +1 -1
- package/dist/cjs/components/management/shared/AdminParts.styles.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/AdminSearch.cjs +1 -1
- package/dist/cjs/components/management/shared/AdminSearch.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/AdminSection.cjs +1 -1
- package/dist/cjs/components/management/shared/AdminSection.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/AdminSection.styles.cjs +1 -1
- package/dist/cjs/components/management/shared/AdminSection.styles.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/ApplicationFormFields.cjs +1 -1
- package/dist/cjs/components/management/shared/ApplicationFormFields.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/ClientSecretNotice.cjs +1 -1
- package/dist/cjs/components/management/shared/ClientSecretNotice.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/IdentityPicker.cjs +1 -1
- package/dist/cjs/components/management/shared/IdentityPicker.cjs.map +1 -0
- package/dist/cjs/components/management/shared/formatTimestamp.cjs +18 -0
- package/dist/cjs/components/management/shared/formatTimestamp.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/useAdminPartStyles.cjs +1 -1
- package/dist/cjs/components/management/shared/useAdminPartStyles.cjs.map +1 -0
- package/dist/cjs/components/{admin → management}/shared/useDefaultOuId.cjs +1 -1
- package/dist/cjs/components/management/shared/useDefaultOuId.cjs.map +1 -0
- package/dist/cjs/components/management/shared/useProjectPlacement.cjs +23 -0
- package/dist/cjs/components/management/shared/useProjectPlacement.cjs.map +1 -0
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +5 -0
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +27 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs +33 -0
- package/dist/cjs/contexts/ThunderID/useCurrentProjectState.cjs.map +1 -0
- package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
- package/dist/cjs/index.cjs +377 -33
- package/dist/cjs/utils/flowTransformer.cjs +9 -0
- package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
- package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs +24 -0
- package/dist/cjs/utils/getOrganizationUnitSwitchErrorKey.cjs.map +1 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts +85 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.d.ts.map +1 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js +209 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.js.map +1 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts +11 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.d.ts.map +1 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js +184 -0
- package/dist/components/account/OrganizationUnitSwitcher/BaseOrganizationUnitSwitcher.styles.js.map +1 -0
- package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts +54 -0
- package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.d.ts.map +1 -0
- package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js +135 -0
- package/dist/components/account/OrganizationUnitSwitcher/OrganizationUnitSwitcher.js.map +1 -0
- package/dist/components/auth/SignIn/SignIn.d.ts +5 -0
- package/dist/components/auth/SignIn/SignIn.d.ts.map +1 -1
- package/dist/components/auth/SignIn/SignIn.js +25 -22
- package/dist/components/auth/SignIn/SignIn.js.map +1 -1
- package/dist/components/auth/SignUp/BaseSignUp.d.ts.map +1 -1
- package/dist/components/auth/SignUp/BaseSignUp.js +14 -10
- package/dist/components/auth/SignUp/BaseSignUp.js.map +1 -1
- package/dist/components/auth/flow/AuthOptionFactory.js +2 -2
- package/dist/components/auth/flow/AuthOptionFactory.js.map +1 -1
- package/dist/components/common/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
- package/dist/components/{admin → management}/AgentCreate/AgentCreate.d.ts +2 -1
- package/dist/components/management/AgentCreate/AgentCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/AgentCreate/AgentCreate.js +8 -7
- package/dist/components/management/AgentCreate/AgentCreate.js.map +1 -0
- package/dist/components/management/AgentCreate/BaseAgentCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.js +1 -1
- package/dist/components/management/AgentCreate/BaseAgentCreate.js.map +1 -0
- package/dist/components/management/AgentDetails/AgentDetails.d.ts.map +1 -0
- package/dist/components/{admin → management}/AgentDetails/AgentDetails.js +1 -1
- package/dist/components/management/AgentDetails/AgentDetails.js.map +1 -0
- package/dist/components/management/AgentDetails/BaseAgentDetails.d.ts.map +1 -0
- package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.js +1 -1
- package/dist/components/management/AgentDetails/BaseAgentDetails.js.map +1 -0
- package/dist/components/{admin → management}/AgentList/AgentList.d.ts +7 -1
- package/dist/components/management/AgentList/AgentList.d.ts.map +1 -0
- package/dist/components/{admin → management}/AgentList/AgentList.js +11 -6
- package/dist/components/management/AgentList/AgentList.js.map +1 -0
- package/dist/components/management/AgentList/BaseAgentList.d.ts.map +1 -0
- package/dist/components/{admin → management}/AgentList/BaseAgentList.js +1 -1
- package/dist/components/management/AgentList/BaseAgentList.js.map +1 -0
- package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.d.ts +2 -1
- package/dist/components/management/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/ApplicationCreate/ApplicationCreate.js +10 -5
- package/dist/components/management/ApplicationCreate/ApplicationCreate.js.map +1 -0
- package/dist/components/management/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.js +1 -1
- package/dist/components/management/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
- package/dist/components/management/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
- package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.js +1 -1
- package/dist/components/management/ApplicationDetails/ApplicationDetails.js.map +1 -0
- package/dist/components/management/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
- package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.js +1 -1
- package/dist/components/management/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
- package/dist/components/{admin → management}/ApplicationList/ApplicationList.d.ts +7 -1
- package/dist/components/management/ApplicationList/ApplicationList.d.ts.map +1 -0
- package/dist/components/{admin → management}/ApplicationList/ApplicationList.js +9 -4
- package/dist/components/management/ApplicationList/ApplicationList.js.map +1 -0
- package/dist/components/management/ApplicationList/BaseApplicationList.d.ts.map +1 -0
- package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.js +1 -1
- package/dist/components/management/ApplicationList/BaseApplicationList.js.map +1 -0
- package/dist/components/management/GroupCreate/BaseGroupCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.js +1 -1
- package/dist/components/management/GroupCreate/BaseGroupCreate.js.map +1 -0
- package/dist/components/management/GroupCreate/GroupCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/GroupCreate/GroupCreate.js +1 -1
- package/dist/components/management/GroupCreate/GroupCreate.js.map +1 -0
- package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts +47 -0
- package/dist/components/management/GroupDetails/BaseGroupDetails.d.ts.map +1 -0
- package/dist/components/management/GroupDetails/BaseGroupDetails.js +84 -0
- package/dist/components/management/GroupDetails/BaseGroupDetails.js.map +1 -0
- package/dist/components/management/GroupDetails/GroupDetails.d.ts +37 -0
- package/dist/components/management/GroupDetails/GroupDetails.d.ts.map +1 -0
- package/dist/components/management/GroupDetails/GroupDetails.js +57 -0
- package/dist/components/management/GroupDetails/GroupDetails.js.map +1 -0
- package/dist/components/management/GroupList/BaseGroupList.d.ts.map +1 -0
- package/dist/components/{admin → management}/GroupList/BaseGroupList.js +1 -1
- package/dist/components/management/GroupList/BaseGroupList.js.map +1 -0
- package/dist/components/management/GroupList/GroupList.d.ts.map +1 -0
- package/dist/components/{admin → management}/GroupList/GroupList.js +1 -1
- package/dist/components/management/GroupList/GroupList.js.map +1 -0
- package/dist/components/management/GroupMembers/BaseGroupMembers.d.ts.map +1 -0
- package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.js +1 -1
- package/dist/components/management/GroupMembers/BaseGroupMembers.js.map +1 -0
- package/dist/components/management/GroupMembers/GroupMembers.d.ts.map +1 -0
- package/dist/components/{admin → management}/GroupMembers/GroupMembers.js +1 -1
- package/dist/components/management/GroupMembers/GroupMembers.js.map +1 -0
- package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts +85 -0
- package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.d.ts.map +1 -0
- package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js +137 -0
- package/dist/components/management/OrganizationUnitCreate/BaseOrganizationUnitCreate.js.map +1 -0
- package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts +21 -0
- package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.d.ts.map +1 -0
- package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js +79 -0
- package/dist/components/management/OrganizationUnitCreate/OrganizationUnitCreate.js.map +1 -0
- package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts +105 -0
- package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.d.ts.map +1 -0
- package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js +273 -0
- package/dist/components/management/OrganizationUnitDetails/BaseOrganizationUnitDetails.js.map +1 -0
- package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts +42 -0
- package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.d.ts.map +1 -0
- package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js +139 -0
- package/dist/components/management/OrganizationUnitDetails/OrganizationUnitDetails.js.map +1 -0
- package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts +54 -0
- package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.d.ts.map +1 -0
- package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js +76 -0
- package/dist/components/management/OrganizationUnitList/BaseOrganizationUnitList.js.map +1 -0
- package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts +19 -0
- package/dist/components/management/OrganizationUnitList/OrganizationUnitList.d.ts.map +1 -0
- package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js +65 -0
- package/dist/components/management/OrganizationUnitList/OrganizationUnitList.js.map +1 -0
- package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts +60 -0
- package/dist/components/management/ProjectCreate/BaseProjectCreate.d.ts.map +1 -0
- package/dist/components/management/ProjectCreate/BaseProjectCreate.js +113 -0
- package/dist/components/management/ProjectCreate/BaseProjectCreate.js.map +1 -0
- package/dist/components/management/ProjectCreate/ProjectCreate.d.ts +20 -0
- package/dist/components/management/ProjectCreate/ProjectCreate.d.ts.map +1 -0
- package/dist/components/management/ProjectCreate/ProjectCreate.js +40 -0
- package/dist/components/management/ProjectCreate/ProjectCreate.js.map +1 -0
- package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts +60 -0
- package/dist/components/management/ProjectDetails/BaseProjectDetails.d.ts.map +1 -0
- package/dist/components/management/ProjectDetails/BaseProjectDetails.js +169 -0
- package/dist/components/management/ProjectDetails/BaseProjectDetails.js.map +1 -0
- package/dist/components/management/ProjectDetails/ProjectDetails.d.ts +36 -0
- package/dist/components/management/ProjectDetails/ProjectDetails.d.ts.map +1 -0
- package/dist/components/management/ProjectDetails/ProjectDetails.js +65 -0
- package/dist/components/management/ProjectDetails/ProjectDetails.js.map +1 -0
- package/dist/components/management/ProjectList/BaseProjectList.d.ts +53 -0
- package/dist/components/management/ProjectList/BaseProjectList.d.ts.map +1 -0
- package/dist/components/management/ProjectList/BaseProjectList.js +76 -0
- package/dist/components/management/ProjectList/BaseProjectList.js.map +1 -0
- package/dist/components/management/ProjectList/ProjectList.d.ts +14 -0
- package/dist/components/management/ProjectList/ProjectList.d.ts.map +1 -0
- package/dist/components/management/ProjectList/ProjectList.js +47 -0
- package/dist/components/management/ProjectList/ProjectList.js.map +1 -0
- package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts +69 -0
- package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.d.ts.map +1 -0
- package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js +55 -0
- package/dist/components/management/ProjectSwitcher/BaseProjectSwitcher.js.map +1 -0
- package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts +25 -0
- package/dist/components/management/ProjectSwitcher/ProjectSwitcher.d.ts.map +1 -0
- package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js +68 -0
- package/dist/components/management/ProjectSwitcher/ProjectSwitcher.js.map +1 -0
- package/dist/components/management/RoleAssignments/BaseRoleAssignments.d.ts.map +1 -0
- package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.js +1 -1
- package/dist/components/management/RoleAssignments/BaseRoleAssignments.js.map +1 -0
- package/dist/components/management/RoleAssignments/RoleAssignments.d.ts.map +1 -0
- package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.js +1 -1
- package/dist/components/management/RoleAssignments/RoleAssignments.js.map +1 -0
- package/dist/components/management/RoleCreate/BaseRoleCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.js +1 -1
- package/dist/components/management/RoleCreate/BaseRoleCreate.js.map +1 -0
- package/dist/components/management/RoleCreate/RoleCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/RoleCreate/RoleCreate.js +1 -1
- package/dist/components/management/RoleCreate/RoleCreate.js.map +1 -0
- package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts +51 -0
- package/dist/components/management/RoleDetails/BaseRoleDetails.d.ts.map +1 -0
- package/dist/components/management/RoleDetails/BaseRoleDetails.js +85 -0
- package/dist/components/management/RoleDetails/BaseRoleDetails.js.map +1 -0
- package/dist/components/management/RoleDetails/RoleDetails.d.ts +39 -0
- package/dist/components/management/RoleDetails/RoleDetails.d.ts.map +1 -0
- package/dist/components/management/RoleDetails/RoleDetails.js +65 -0
- package/dist/components/management/RoleDetails/RoleDetails.js.map +1 -0
- package/dist/components/management/RoleList/BaseRoleList.d.ts.map +1 -0
- package/dist/components/{admin → management}/RoleList/BaseRoleList.js +1 -1
- package/dist/components/management/RoleList/BaseRoleList.js.map +1 -0
- package/dist/components/management/RoleList/RoleList.d.ts.map +1 -0
- package/dist/components/{admin → management}/RoleList/RoleList.js +1 -1
- package/dist/components/management/RoleList/RoleList.js.map +1 -0
- package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts +104 -0
- package/dist/components/management/RolePermissions/BaseRolePermissions.d.ts.map +1 -0
- package/dist/components/management/RolePermissions/BaseRolePermissions.js +178 -0
- package/dist/components/management/RolePermissions/BaseRolePermissions.js.map +1 -0
- package/dist/components/management/RolePermissions/RolePermissions.d.ts +29 -0
- package/dist/components/management/RolePermissions/RolePermissions.d.ts.map +1 -0
- package/dist/components/management/RolePermissions/RolePermissions.js +108 -0
- package/dist/components/management/RolePermissions/RolePermissions.js.map +1 -0
- package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts +124 -0
- package/dist/components/management/SharingPolicies/BaseSharingPolicies.d.ts.map +1 -0
- package/dist/components/management/SharingPolicies/BaseSharingPolicies.js +304 -0
- package/dist/components/management/SharingPolicies/BaseSharingPolicies.js.map +1 -0
- package/dist/components/management/SharingPolicies/SharingPolicies.d.ts +36 -0
- package/dist/components/management/SharingPolicies/SharingPolicies.d.ts.map +1 -0
- package/dist/components/management/SharingPolicies/SharingPolicies.js +122 -0
- package/dist/components/management/SharingPolicies/SharingPolicies.js.map +1 -0
- package/dist/components/management/UserCreate/BaseUserCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserCreate/BaseUserCreate.js +1 -1
- package/dist/components/management/UserCreate/BaseUserCreate.js.map +1 -0
- package/dist/components/management/UserCreate/UserCreate.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserCreate/UserCreate.js +1 -1
- package/dist/components/management/UserCreate/UserCreate.js.map +1 -0
- package/dist/components/management/UserCreate/userCreateFields.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserCreate/userCreateFields.js +1 -1
- package/dist/components/management/UserCreate/userCreateFields.js.map +1 -0
- package/dist/components/management/UserDetails/BaseUserDetails.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserDetails/BaseUserDetails.js +1 -1
- package/dist/components/management/UserDetails/BaseUserDetails.js.map +1 -0
- package/dist/components/management/UserDetails/UserDetails.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserDetails/UserDetails.js +1 -1
- package/dist/components/management/UserDetails/UserDetails.js.map +1 -0
- package/dist/components/management/UserList/BaseUserList.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserList/BaseUserList.js +1 -1
- package/dist/components/management/UserList/BaseUserList.js.map +1 -0
- package/dist/components/management/UserList/UserList.d.ts.map +1 -0
- package/dist/components/{admin → management}/UserList/UserList.js +1 -1
- package/dist/components/management/UserList/UserList.js.map +1 -0
- package/dist/components/management/shared/AccountLifecycleParts.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/AccountLifecycleParts.js +1 -1
- package/dist/components/management/shared/AccountLifecycleParts.js.map +1 -0
- package/dist/components/management/shared/AdminListRenderProps.d.ts.map +1 -0
- package/dist/components/management/shared/AdminParts.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/AdminParts.js +1 -1
- package/dist/components/management/shared/AdminParts.js.map +1 -0
- package/dist/components/management/shared/AdminParts.styles.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/AdminParts.styles.js +1 -1
- package/dist/components/management/shared/AdminParts.styles.js.map +1 -0
- package/dist/components/management/shared/AdminSearch.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/AdminSearch.js +1 -1
- package/dist/components/management/shared/AdminSearch.js.map +1 -0
- package/dist/components/management/shared/AdminSection.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/AdminSection.js +1 -1
- package/dist/components/management/shared/AdminSection.js.map +1 -0
- package/dist/components/management/shared/AdminSection.styles.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/AdminSection.styles.js +1 -1
- package/dist/components/management/shared/AdminSection.styles.js.map +1 -0
- package/dist/components/management/shared/ApplicationFormFields.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/ApplicationFormFields.js +1 -1
- package/dist/components/management/shared/ApplicationFormFields.js.map +1 -0
- package/dist/components/management/shared/ClientSecretNotice.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/ClientSecretNotice.js +1 -1
- package/dist/components/management/shared/ClientSecretNotice.js.map +1 -0
- package/dist/components/management/shared/IdentityPicker.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/IdentityPicker.js +1 -1
- package/dist/components/management/shared/IdentityPicker.js.map +1 -0
- package/dist/components/management/shared/formatTimestamp.d.ts +9 -0
- package/dist/components/management/shared/formatTimestamp.d.ts.map +1 -0
- package/dist/components/management/shared/formatTimestamp.js +17 -0
- package/dist/components/management/shared/formatTimestamp.js.map +1 -0
- package/dist/components/management/shared/useAdminPartStyles.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/useAdminPartStyles.js +1 -1
- package/dist/components/management/shared/useAdminPartStyles.js.map +1 -0
- package/dist/components/management/shared/useDefaultOuId.d.ts.map +1 -0
- package/dist/components/{admin → management}/shared/useDefaultOuId.js +1 -1
- package/dist/components/management/shared/useDefaultOuId.js.map +1 -0
- package/dist/components/management/shared/useProjectPlacement.d.ts +26 -0
- package/dist/components/management/shared/useProjectPlacement.d.ts.map +1 -0
- package/dist/components/management/shared/useProjectPlacement.js +23 -0
- package/dist/components/management/shared/useProjectPlacement.js.map +1 -0
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts +27 -1
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.js +5 -0
- package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.js +28 -2
- package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
- package/dist/contexts/ThunderID/useCurrentProjectState.d.ts +26 -0
- package/dist/contexts/ThunderID/useCurrentProjectState.d.ts.map +1 -0
- package/dist/contexts/ThunderID/useCurrentProjectState.js +30 -0
- package/dist/contexts/ThunderID/useCurrentProjectState.js.map +1 -0
- package/dist/hooks/management/useManagementEndpoint.d.ts +1 -1
- package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
- package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
- package/dist/index.d.ts +120 -69
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -34
- package/dist/utils/flowTransformer.d.ts +7 -0
- package/dist/utils/flowTransformer.d.ts.map +1 -1
- package/dist/utils/flowTransformer.js +9 -1
- package/dist/utils/flowTransformer.js.map +1 -1
- package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts +11 -0
- package/dist/utils/getOrganizationUnitSwitchErrorKey.d.ts.map +1 -0
- package/dist/utils/getOrganizationUnitSwitchErrorKey.js +22 -0
- package/dist/utils/getOrganizationUnitSwitchErrorKey.js.map +1 -0
- package/package.json +2 -2
- package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/AgentCreate/BaseAgentCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +0 -1
- package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs.map +0 -1
- package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +0 -1
- package/dist/cjs/components/admin/AgentList/BaseAgentList.cjs.map +0 -1
- package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +0 -1
- package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +0 -1
- package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +0 -1
- package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +0 -1
- package/dist/cjs/components/admin/GroupCreate/BaseGroupCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/GroupList/BaseGroupList.cjs.map +0 -1
- package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +0 -1
- package/dist/cjs/components/admin/GroupMembers/BaseGroupMembers.cjs.map +0 -1
- package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +0 -1
- package/dist/cjs/components/admin/RoleAssignments/BaseRoleAssignments.cjs.map +0 -1
- package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +0 -1
- package/dist/cjs/components/admin/RoleCreate/BaseRoleCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/RoleList/BaseRoleList.cjs.map +0 -1
- package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +0 -1
- package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs +0 -69
- package/dist/cjs/components/admin/RolePermissions/BaseRolePermissions.cjs.map +0 -1
- package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +0 -40
- package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +0 -1
- package/dist/cjs/components/admin/UserCreate/BaseUserCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +0 -1
- package/dist/cjs/components/admin/UserCreate/userCreateFields.cjs.map +0 -1
- package/dist/cjs/components/admin/UserDetails/BaseUserDetails.cjs.map +0 -1
- package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +0 -1
- package/dist/cjs/components/admin/UserList/BaseUserList.cjs.map +0 -1
- package/dist/cjs/components/admin/UserList/UserList.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/AccountLifecycleParts.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/AdminParts.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/AdminParts.styles.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/AdminSearch.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/AdminSection.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/AdminSection.styles.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/IdentityPicker.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/useAdminPartStyles.cjs.map +0 -1
- package/dist/cjs/components/admin/shared/useDefaultOuId.cjs.map +0 -1
- package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +0 -1
- package/dist/components/admin/AgentCreate/AgentCreate.js.map +0 -1
- package/dist/components/admin/AgentCreate/BaseAgentCreate.d.ts.map +0 -1
- package/dist/components/admin/AgentCreate/BaseAgentCreate.js.map +0 -1
- package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +0 -1
- package/dist/components/admin/AgentDetails/AgentDetails.js.map +0 -1
- package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts.map +0 -1
- package/dist/components/admin/AgentDetails/BaseAgentDetails.js.map +0 -1
- package/dist/components/admin/AgentList/AgentList.d.ts.map +0 -1
- package/dist/components/admin/AgentList/AgentList.js.map +0 -1
- package/dist/components/admin/AgentList/BaseAgentList.d.ts.map +0 -1
- package/dist/components/admin/AgentList/BaseAgentList.js.map +0 -1
- package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +0 -1
- package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +0 -1
- package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +0 -1
- package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +0 -1
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +0 -1
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +0 -1
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +0 -1
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +0 -1
- package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +0 -1
- package/dist/components/admin/ApplicationList/ApplicationList.js.map +0 -1
- package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +0 -1
- package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +0 -1
- package/dist/components/admin/GroupCreate/BaseGroupCreate.d.ts.map +0 -1
- package/dist/components/admin/GroupCreate/BaseGroupCreate.js.map +0 -1
- package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +0 -1
- package/dist/components/admin/GroupCreate/GroupCreate.js.map +0 -1
- package/dist/components/admin/GroupList/BaseGroupList.d.ts.map +0 -1
- package/dist/components/admin/GroupList/BaseGroupList.js.map +0 -1
- package/dist/components/admin/GroupList/GroupList.d.ts.map +0 -1
- package/dist/components/admin/GroupList/GroupList.js.map +0 -1
- package/dist/components/admin/GroupMembers/BaseGroupMembers.d.ts.map +0 -1
- package/dist/components/admin/GroupMembers/BaseGroupMembers.js.map +0 -1
- package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +0 -1
- package/dist/components/admin/GroupMembers/GroupMembers.js.map +0 -1
- package/dist/components/admin/RoleAssignments/BaseRoleAssignments.d.ts.map +0 -1
- package/dist/components/admin/RoleAssignments/BaseRoleAssignments.js.map +0 -1
- package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +0 -1
- package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +0 -1
- package/dist/components/admin/RoleCreate/BaseRoleCreate.d.ts.map +0 -1
- package/dist/components/admin/RoleCreate/BaseRoleCreate.js.map +0 -1
- package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +0 -1
- package/dist/components/admin/RoleCreate/RoleCreate.js.map +0 -1
- package/dist/components/admin/RoleList/BaseRoleList.d.ts.map +0 -1
- package/dist/components/admin/RoleList/BaseRoleList.js.map +0 -1
- package/dist/components/admin/RoleList/RoleList.d.ts.map +0 -1
- package/dist/components/admin/RoleList/RoleList.js.map +0 -1
- package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts +0 -42
- package/dist/components/admin/RolePermissions/BaseRolePermissions.d.ts.map +0 -1
- package/dist/components/admin/RolePermissions/BaseRolePermissions.js +0 -67
- package/dist/components/admin/RolePermissions/BaseRolePermissions.js.map +0 -1
- package/dist/components/admin/RolePermissions/RolePermissions.d.ts +0 -16
- package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +0 -1
- package/dist/components/admin/RolePermissions/RolePermissions.js +0 -37
- package/dist/components/admin/RolePermissions/RolePermissions.js.map +0 -1
- package/dist/components/admin/UserCreate/BaseUserCreate.d.ts.map +0 -1
- package/dist/components/admin/UserCreate/BaseUserCreate.js.map +0 -1
- package/dist/components/admin/UserCreate/UserCreate.d.ts.map +0 -1
- package/dist/components/admin/UserCreate/UserCreate.js.map +0 -1
- package/dist/components/admin/UserCreate/userCreateFields.d.ts.map +0 -1
- package/dist/components/admin/UserCreate/userCreateFields.js.map +0 -1
- package/dist/components/admin/UserDetails/BaseUserDetails.d.ts.map +0 -1
- package/dist/components/admin/UserDetails/BaseUserDetails.js.map +0 -1
- package/dist/components/admin/UserDetails/UserDetails.d.ts.map +0 -1
- package/dist/components/admin/UserDetails/UserDetails.js.map +0 -1
- package/dist/components/admin/UserList/BaseUserList.d.ts.map +0 -1
- package/dist/components/admin/UserList/BaseUserList.js.map +0 -1
- package/dist/components/admin/UserList/UserList.d.ts.map +0 -1
- package/dist/components/admin/UserList/UserList.js.map +0 -1
- package/dist/components/admin/shared/AccountLifecycleParts.d.ts.map +0 -1
- package/dist/components/admin/shared/AccountLifecycleParts.js.map +0 -1
- package/dist/components/admin/shared/AdminListRenderProps.d.ts.map +0 -1
- package/dist/components/admin/shared/AdminParts.d.ts.map +0 -1
- package/dist/components/admin/shared/AdminParts.js.map +0 -1
- package/dist/components/admin/shared/AdminParts.styles.d.ts.map +0 -1
- package/dist/components/admin/shared/AdminParts.styles.js.map +0 -1
- package/dist/components/admin/shared/AdminSearch.d.ts.map +0 -1
- package/dist/components/admin/shared/AdminSearch.js.map +0 -1
- package/dist/components/admin/shared/AdminSection.d.ts.map +0 -1
- package/dist/components/admin/shared/AdminSection.js.map +0 -1
- package/dist/components/admin/shared/AdminSection.styles.d.ts.map +0 -1
- package/dist/components/admin/shared/AdminSection.styles.js.map +0 -1
- package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +0 -1
- package/dist/components/admin/shared/ApplicationFormFields.js.map +0 -1
- package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +0 -1
- package/dist/components/admin/shared/ClientSecretNotice.js.map +0 -1
- package/dist/components/admin/shared/IdentityPicker.d.ts.map +0 -1
- package/dist/components/admin/shared/IdentityPicker.js.map +0 -1
- package/dist/components/admin/shared/useAdminPartStyles.d.ts.map +0 -1
- package/dist/components/admin/shared/useAdminPartStyles.js.map +0 -1
- package/dist/components/admin/shared/useDefaultOuId.d.ts.map +0 -1
- package/dist/components/admin/shared/useDefaultOuId.js.map +0 -1
- /package/dist/components/{admin → management}/AgentCreate/BaseAgentCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/AgentDetails/AgentDetails.d.ts +0 -0
- /package/dist/components/{admin → management}/AgentDetails/BaseAgentDetails.d.ts +0 -0
- /package/dist/components/{admin → management}/AgentList/BaseAgentList.d.ts +0 -0
- /package/dist/components/{admin → management}/ApplicationCreate/BaseApplicationCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/ApplicationDetails/ApplicationDetails.d.ts +0 -0
- /package/dist/components/{admin → management}/ApplicationDetails/BaseApplicationDetails.d.ts +0 -0
- /package/dist/components/{admin → management}/ApplicationList/BaseApplicationList.d.ts +0 -0
- /package/dist/components/{admin → management}/GroupCreate/BaseGroupCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/GroupCreate/GroupCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/GroupList/BaseGroupList.d.ts +0 -0
- /package/dist/components/{admin → management}/GroupList/GroupList.d.ts +0 -0
- /package/dist/components/{admin → management}/GroupMembers/BaseGroupMembers.d.ts +0 -0
- /package/dist/components/{admin → management}/GroupMembers/GroupMembers.d.ts +0 -0
- /package/dist/components/{admin → management}/RoleAssignments/BaseRoleAssignments.d.ts +0 -0
- /package/dist/components/{admin → management}/RoleAssignments/RoleAssignments.d.ts +0 -0
- /package/dist/components/{admin → management}/RoleCreate/BaseRoleCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/RoleCreate/RoleCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/RoleList/BaseRoleList.d.ts +0 -0
- /package/dist/components/{admin → management}/RoleList/RoleList.d.ts +0 -0
- /package/dist/components/{admin → management}/UserCreate/BaseUserCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/UserCreate/UserCreate.d.ts +0 -0
- /package/dist/components/{admin → management}/UserCreate/userCreateFields.d.ts +0 -0
- /package/dist/components/{admin → management}/UserDetails/BaseUserDetails.d.ts +0 -0
- /package/dist/components/{admin → management}/UserDetails/UserDetails.d.ts +0 -0
- /package/dist/components/{admin → management}/UserList/BaseUserList.d.ts +0 -0
- /package/dist/components/{admin → management}/UserList/UserList.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AccountLifecycleParts.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AdminListRenderProps.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AdminParts.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AdminParts.styles.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AdminSearch.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AdminSection.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/AdminSection.styles.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/ApplicationFormFields.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/ClientSecretNotice.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/IdentityPicker.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/useAdminPartStyles.d.ts +0 -0
- /package/dist/components/{admin → management}/shared/useDefaultOuId.d.ts +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
3
|
+
const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
|
|
4
|
+
const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
|
|
5
|
+
const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
|
|
6
|
+
const require_BaseRolePermissions = require('./BaseRolePermissions.cjs');
|
|
7
|
+
let __thunderid_browser = require("@thunderid/browser");
|
|
8
|
+
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
9
|
+
let react = require("react");
|
|
10
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
13
|
+
|
|
14
|
+
//#region src/components/management/RolePermissions/RolePermissions.tsx
|
|
15
|
+
/**
|
|
16
|
+
* Returns the role's permissions with one permission added or taken away, dropping a resource server
|
|
17
|
+
* left with none.
|
|
18
|
+
*/
|
|
19
|
+
const changePermissions = (current, { permission, resourceServerId }, add) => {
|
|
20
|
+
const next = current.map((entry) => {
|
|
21
|
+
if (entry.resourceServerId !== resourceServerId) return entry;
|
|
22
|
+
return {
|
|
23
|
+
...entry,
|
|
24
|
+
permissions: add ? Array.from(new Set([...entry.permissions, permission])) : entry.permissions.filter((granted) => granted !== permission)
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
if (add && !next.some((entry) => entry.resourceServerId === resourceServerId)) next.push({
|
|
28
|
+
permissions: [permission],
|
|
29
|
+
resourceServerId
|
|
30
|
+
});
|
|
31
|
+
return next.filter((entry) => entry.permissions.length > 0);
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Shows the permissions a role grants and, when `editable`, lets the signed-in user grant permissions
|
|
35
|
+
* from the resource servers' actions and revoke them. Every change saves the role.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <RolePermissions roleId={roleId} editable />
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
const RolePermissions = ({ administrationMode, editable = false, preferences, roleId,...rest }) => {
|
|
43
|
+
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
44
|
+
const endpoint = require_useManagementEndpoint.default("roles");
|
|
45
|
+
const resourceServersEndpoint = require_useManagementEndpoint.default("resourceServers");
|
|
46
|
+
const [selectedResourceServerId, setSelectedResourceServerId] = (0, react.useState)(null);
|
|
47
|
+
const role = require_useResourceQuery.default([__thunderid_browser.RoleQueryKeys.ROLE, roleId], (fetcher) => (0, __thunderid_browser.getRole)({
|
|
48
|
+
...endpoint,
|
|
49
|
+
fetcher,
|
|
50
|
+
roleId
|
|
51
|
+
}), { enabled: Boolean(roleId) });
|
|
52
|
+
const canEdit = editable && Boolean(role.data) && !role.data?.isReadOnly;
|
|
53
|
+
const resourceServers = require_useResourceQuery.default([
|
|
54
|
+
__thunderid_browser.RoleQueryKeys.ROLE_PERMISSION_CANDIDATES,
|
|
55
|
+
"resource-servers",
|
|
56
|
+
{ limit: 100 }
|
|
57
|
+
], (fetcher) => (0, __thunderid_browser.getResourceServers)({
|
|
58
|
+
...resourceServersEndpoint,
|
|
59
|
+
fetcher,
|
|
60
|
+
limit: 100
|
|
61
|
+
}), { enabled: canEdit });
|
|
62
|
+
const candidates = require_useResourceQuery.default([
|
|
63
|
+
__thunderid_browser.RoleQueryKeys.ROLE_PERMISSION_CANDIDATES,
|
|
64
|
+
"permissions",
|
|
65
|
+
selectedResourceServerId
|
|
66
|
+
], async (fetcher) => ({
|
|
67
|
+
permissions: await (0, __thunderid_browser.getResourceServerPermissions)({
|
|
68
|
+
...resourceServersEndpoint,
|
|
69
|
+
fetcher,
|
|
70
|
+
resourceServerId: selectedResourceServerId
|
|
71
|
+
}),
|
|
72
|
+
resourceServerId: selectedResourceServerId
|
|
73
|
+
}), { enabled: canEdit && Boolean(selectedResourceServerId) });
|
|
74
|
+
const update = require_useResourceMutation.default((permissions, fetcher) => (0, __thunderid_browser.updateRole)({
|
|
75
|
+
...endpoint,
|
|
76
|
+
administrationMode,
|
|
77
|
+
current: role.data,
|
|
78
|
+
fetcher,
|
|
79
|
+
payload: {
|
|
80
|
+
description: role.data.description,
|
|
81
|
+
name: role.data.name,
|
|
82
|
+
ouId: role.data.ouId,
|
|
83
|
+
permissions
|
|
84
|
+
},
|
|
85
|
+
roleId
|
|
86
|
+
}), () => [[__thunderid_browser.RoleQueryKeys.ROLE, roleId], [__thunderid_browser.RoleQueryKeys.ROLES]]);
|
|
87
|
+
const servers = (0, react.useMemo)(() => (resourceServers.data?.resourceServers ?? []).map((server) => ({
|
|
88
|
+
id: server.id,
|
|
89
|
+
name: server.name
|
|
90
|
+
})), [resourceServers.data]);
|
|
91
|
+
const change = (permissionChange, add) => {
|
|
92
|
+
if (role.data) update.mutate(changePermissions(role.data.permissions ?? [], permissionChange, add));
|
|
93
|
+
};
|
|
94
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseRolePermissions.default, {
|
|
95
|
+
permissions: role.data?.permissions ?? [],
|
|
96
|
+
isLoading: role.isLoading,
|
|
97
|
+
isMutating: update.isLoading,
|
|
98
|
+
error: (0, __thunderid_browser.toManagementErrorMessage)(t, role.error, "admin.roles.permissions.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, update.error, "admin.roles.permissions.update_error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, resourceServers.error ?? candidates.error, "admin.roles.permissions.options_error"),
|
|
99
|
+
resourceServers: canEdit && resourceServers.data ? servers : void 0,
|
|
100
|
+
availablePermissions: candidates.data?.resourceServerId === selectedResourceServerId ? { [candidates.data.resourceServerId]: candidates.data.permissions } : {},
|
|
101
|
+
onResourceServerSelect: setSelectedResourceServerId,
|
|
102
|
+
onAdd: canEdit ? (permissionChange) => change(permissionChange, true) : void 0,
|
|
103
|
+
onRemove: canEdit ? (permissionChange) => change(permissionChange, false) : void 0,
|
|
104
|
+
preferences,
|
|
105
|
+
...rest
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
var RolePermissions_default = RolePermissions;
|
|
109
|
+
|
|
110
|
+
//#endregion
|
|
111
|
+
exports.default = RolePermissions_default;
|
|
112
|
+
//# sourceMappingURL=RolePermissions.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RolePermissions.cjs","names":["next: RoleResourcePermissions[]","RolePermissions: FC<RolePermissionsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","resourceServersEndpoint: ManagementEndpoint","role: ResourceQueryResult<Role>","useResourceQuery","RoleQueryKeys","canEdit: boolean","resourceServers: ResourceQueryResult<ResourceServerListResponse>","candidates: ResourceQueryResult<{permissions: ResourceServerPermission[]; resourceServerId: string}>","update: ResourceMutationResult<Role, RoleResourcePermissions[]>","useResourceMutation","servers: RolePermissionResourceServer[]","BaseRolePermissions"],"sources":["../../../../../src/components/management/RolePermissions/RolePermissions.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n ResourceServer,\n ResourceServerListResponse,\n ResourceServerPermission,\n Role,\n RoleQueryKeys,\n RoleResourcePermissions,\n getResourceServerPermissions,\n getResourceServers,\n getRole,\n toManagementErrorMessage,\n updateRole,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRolePermissions, {\n BaseRolePermissionsProps,\n RolePermissionChange,\n RolePermissionResourceServer,\n} from './BaseRolePermissions';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\nexport type RolePermissionsProps = Omit<\n BaseRolePermissionsProps,\n | 'availablePermissions'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAdd'\n | 'onRemove'\n | 'onResourceServerSelect'\n | 'permissions'\n | 'resourceServers'\n> & {\n /**\n * How an update that removes a permission is made. `flow` runs the administration flow the server\n * configures for it. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether permissions can be added and removed from this view. Read-only roles never can.\n * @default false\n */\n editable?: boolean;\n roleId: string;\n};\n\n/**\n * Returns the role's permissions with one permission added or taken away, dropping a resource server\n * left with none.\n */\nconst changePermissions = (\n current: RoleResourcePermissions[],\n {permission, resourceServerId}: RolePermissionChange,\n add: boolean,\n): RoleResourcePermissions[] => {\n const next: RoleResourcePermissions[] = current.map((entry: RoleResourcePermissions) => {\n if (entry.resourceServerId !== resourceServerId) {\n return entry;\n }\n\n return {\n ...entry,\n permissions: add\n ? Array.from(new Set([...entry.permissions, permission]))\n : entry.permissions.filter((granted: string) => granted !== permission),\n };\n });\n\n if (add && !next.some((entry: RoleResourcePermissions) => entry.resourceServerId === resourceServerId)) {\n next.push({permissions: [permission], resourceServerId});\n }\n\n return next.filter((entry: RoleResourcePermissions) => entry.permissions.length > 0);\n};\n\n/**\n * Shows the permissions a role grants and, when `editable`, lets the signed-in user grant permissions\n * from the resource servers' actions and revoke them. Every change saves the role.\n *\n * @example\n * ```tsx\n * <RolePermissions roleId={roleId} editable />\n * ```\n */\nconst RolePermissions: FC<RolePermissionsProps> = ({\n administrationMode,\n editable = false,\n preferences,\n roleId,\n ...rest\n}: RolePermissionsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const resourceServersEndpoint: ManagementEndpoint = useManagementEndpoint('resourceServers');\n const [selectedResourceServerId, setSelectedResourceServerId] = useState<string | null>(null);\n const role: ResourceQueryResult<Role> = useResourceQuery(\n [RoleQueryKeys.ROLE, roleId],\n (fetcher) => getRole({...endpoint, fetcher, roleId}),\n {enabled: Boolean(roleId)},\n );\n const canEdit: boolean = editable && Boolean(role.data) && !role.data?.isReadOnly;\n const resourceServers: ResourceQueryResult<ResourceServerListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_PERMISSION_CANDIDATES, 'resource-servers', {limit: 100}],\n (fetcher) => getResourceServers({...resourceServersEndpoint, fetcher, limit: 100}),\n {enabled: canEdit},\n );\n const candidates: ResourceQueryResult<{permissions: ResourceServerPermission[]; resourceServerId: string}> =\n useResourceQuery(\n [RoleQueryKeys.ROLE_PERMISSION_CANDIDATES, 'permissions', selectedResourceServerId],\n async (fetcher) => ({\n permissions: await getResourceServerPermissions({\n ...resourceServersEndpoint,\n fetcher,\n resourceServerId: selectedResourceServerId!,\n }),\n resourceServerId: selectedResourceServerId!,\n }),\n {enabled: canEdit && Boolean(selectedResourceServerId)},\n );\n const update: ResourceMutationResult<Role, RoleResourcePermissions[]> = useResourceMutation(\n (permissions: RoleResourcePermissions[], fetcher) =>\n updateRole({\n ...endpoint,\n administrationMode,\n current: role.data,\n fetcher,\n payload: {\n description: role.data!.description,\n name: role.data!.name,\n ouId: role.data!.ouId,\n permissions,\n },\n roleId,\n }),\n () => [[RoleQueryKeys.ROLE, roleId], [RoleQueryKeys.ROLES]],\n );\n\n const servers: RolePermissionResourceServer[] = useMemo(\n () =>\n (resourceServers.data?.resourceServers ?? []).map((server: ResourceServer) => ({\n id: server.id,\n name: server.name,\n })),\n [resourceServers.data],\n );\n const change = (permissionChange: RolePermissionChange, add: boolean): void => {\n if (role.data) {\n void update.mutate(changePermissions(role.data.permissions ?? [], permissionChange, add));\n }\n };\n\n return (\n <BaseRolePermissions\n permissions={role.data?.permissions ?? []}\n isLoading={role.isLoading}\n isMutating={update.isLoading}\n error={\n toManagementErrorMessage(t, role.error, 'admin.roles.permissions.error') ??\n toManagementErrorMessage(t, update.error, 'admin.roles.permissions.update_error') ??\n toManagementErrorMessage(t, resourceServers.error ?? candidates.error, 'admin.roles.permissions.options_error')\n }\n resourceServers={canEdit && resourceServers.data ? servers : undefined}\n availablePermissions={\n candidates.data?.resourceServerId === selectedResourceServerId\n ? {[candidates.data.resourceServerId]: candidates.data.permissions}\n : {}\n }\n onResourceServerSelect={setSelectedResourceServerId}\n onAdd={canEdit ? (permissionChange: RolePermissionChange): void => change(permissionChange, true) : undefined}\n onRemove={canEdit ? (permissionChange: RolePermissionChange): void => change(permissionChange, false) : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RolePermissions;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
3
|
+
const require_Spinner = require('../../primitives/Spinner/Spinner.cjs');
|
|
4
|
+
const require_Button = require('../../primitives/Button/Button.cjs');
|
|
5
|
+
const require_Alert = require('../../primitives/Alert/Alert.cjs');
|
|
6
|
+
const require_TextField = require('../../primitives/TextField/TextField.cjs');
|
|
7
|
+
const require_Select = require('../../primitives/Select/Select.cjs');
|
|
8
|
+
const require_DataTable = require('../../primitives/DataTable/DataTable.cjs');
|
|
9
|
+
const require_useAdminPartStyles = require('../shared/useAdminPartStyles.cjs');
|
|
10
|
+
const require_AdminSection = require('../shared/AdminSection.cjs');
|
|
11
|
+
const require_AdminParts = require('../shared/AdminParts.cjs');
|
|
12
|
+
let __thunderid_browser = require("@thunderid/browser");
|
|
13
|
+
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
14
|
+
let react = require("react");
|
|
15
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
16
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
17
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
18
|
+
|
|
19
|
+
//#region src/components/management/SharingPolicies/BaseSharingPolicies.tsx
|
|
20
|
+
const isOwned = (overlay) => Boolean(overlay.isOwned ?? overlay.isOwnedByOU ?? overlay.owned);
|
|
21
|
+
/**
|
|
22
|
+
* Lists the sharing policies of one resource (a user, an application, a role or a flow) with the
|
|
23
|
+
* organization units each reaches, lets the caller add, edit and delete them, and shows the overlay
|
|
24
|
+
* rules that apply in one unit. Holds no data of its own: pass the policies and handle the changes.
|
|
25
|
+
*/
|
|
26
|
+
const BaseSharingPolicies = ({ actions, children, className, description, error = null, isLoading = false, isLoadingOverlay = false, isSubmitting = false, limit = 20, mutationError = null, offset = 0, onCreate, onDelete, onPageChange, onUpdate, overlay, overlayError = null, overlayOuId, policies, preferences, title, totalResults }) => {
|
|
27
|
+
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
28
|
+
const styles = require_useAdminPartStyles.default();
|
|
29
|
+
const [draft, setDraft] = (0, react.useState)(null);
|
|
30
|
+
const describeScope = (policy) => (0, __thunderid_browser.describeSharingPolicyScope)(t, policy);
|
|
31
|
+
const canChange = (policy) => !policy.isReadOnly;
|
|
32
|
+
const columns = [
|
|
33
|
+
{
|
|
34
|
+
header: t("admin.sharing.columns.scope"),
|
|
35
|
+
id: "scope",
|
|
36
|
+
render: (policy) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
37
|
+
style: {
|
|
38
|
+
display: "flex",
|
|
39
|
+
flexDirection: "column"
|
|
40
|
+
},
|
|
41
|
+
children: describeScope(policy).map((line) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: line }, line))
|
|
42
|
+
})
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
header: t("admin.sharing.columns.stage"),
|
|
46
|
+
id: "stage",
|
|
47
|
+
render: (policy) => policy.stage === "reshare" ? t("admin.sharing.stage.reshare") : t("admin.sharing.stage.share")
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
header: t("admin.sharing.columns.version"),
|
|
51
|
+
id: "version",
|
|
52
|
+
render: (policy) => policy.version ?? ""
|
|
53
|
+
}
|
|
54
|
+
];
|
|
55
|
+
if (onUpdate || onDelete) columns.push({
|
|
56
|
+
header: t("admin.common.columns.actions"),
|
|
57
|
+
id: "actions",
|
|
58
|
+
render: (policy) => canChange(policy) ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
59
|
+
className: styles["row"],
|
|
60
|
+
children: [onUpdate && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
|
|
61
|
+
variant: "outline",
|
|
62
|
+
size: "small",
|
|
63
|
+
disabled: isSubmitting,
|
|
64
|
+
onClick: () => setDraft({
|
|
65
|
+
policy,
|
|
66
|
+
values: (0, __thunderid_browser.toSharingPolicyFormValues)(policy)
|
|
67
|
+
}),
|
|
68
|
+
children: t("admin.sharing.actions.edit")
|
|
69
|
+
}), onDelete && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminParts.ConfirmButton, {
|
|
70
|
+
confirmText: t("admin.sharing.delete.confirm"),
|
|
71
|
+
isLoading: isSubmitting,
|
|
72
|
+
onConfirm: () => onDelete(policy),
|
|
73
|
+
children: t("admin.sharing.actions.delete")
|
|
74
|
+
})]
|
|
75
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
76
|
+
className: styles["muted"],
|
|
77
|
+
children: t("admin.sharing.read_only")
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
81
|
+
className,
|
|
82
|
+
children: children({
|
|
83
|
+
columns,
|
|
84
|
+
describeScope,
|
|
85
|
+
error,
|
|
86
|
+
isLoading,
|
|
87
|
+
isLoadingOverlay,
|
|
88
|
+
isSubmitting,
|
|
89
|
+
limit,
|
|
90
|
+
mutationError,
|
|
91
|
+
offset,
|
|
92
|
+
onCreate,
|
|
93
|
+
onDelete: onDelete ? (policy) => {
|
|
94
|
+
if (canChange(policy)) onDelete(policy);
|
|
95
|
+
} : void 0,
|
|
96
|
+
onPageChange,
|
|
97
|
+
onUpdate: onUpdate ? (policy, request) => {
|
|
98
|
+
if (canChange(policy)) onUpdate(policy, request);
|
|
99
|
+
} : void 0,
|
|
100
|
+
overlay,
|
|
101
|
+
overlayError,
|
|
102
|
+
overlayOuId,
|
|
103
|
+
policies,
|
|
104
|
+
totalResults: totalResults ?? policies.length
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
const setValue = (field, value) => setDraft((previous) => previous && {
|
|
108
|
+
...previous,
|
|
109
|
+
values: {
|
|
110
|
+
...previous.values,
|
|
111
|
+
[field]: value
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
const handleSave = (event) => {
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
if (!draft || !(0, __thunderid_browser.isSharingPolicyFormValid)(draft.values, draft.policy)) return;
|
|
117
|
+
if (draft.policy) onUpdate?.(draft.policy, (0, __thunderid_browser.toSharingPolicyUpdateRequest)(draft.values, draft.policy));
|
|
118
|
+
else onCreate?.((0, __thunderid_browser.toSharingPolicyRequest)(draft.values));
|
|
119
|
+
setDraft(null);
|
|
120
|
+
};
|
|
121
|
+
const renderForm = (current) => {
|
|
122
|
+
const { values } = current;
|
|
123
|
+
const keepsSections = Boolean(current.policy?.allUnits) || current.policy?.otherTreeRoots?.mode === "all";
|
|
124
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminParts.Panel, {
|
|
125
|
+
title: current.policy ? t("admin.sharing.form.edit_title") : t("admin.sharing.form.create_title"),
|
|
126
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("form", {
|
|
127
|
+
className: styles["row"],
|
|
128
|
+
style: {
|
|
129
|
+
alignItems: "stretch",
|
|
130
|
+
flexDirection: "column"
|
|
131
|
+
},
|
|
132
|
+
onSubmit: handleSave,
|
|
133
|
+
noValidate: true,
|
|
134
|
+
children: [
|
|
135
|
+
keepsSections && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
136
|
+
className: styles["muted"],
|
|
137
|
+
children: t("admin.sharing.form.kept_sections")
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Select.default, {
|
|
140
|
+
name: "childUnitsMode",
|
|
141
|
+
label: t("admin.sharing.form.child_units"),
|
|
142
|
+
options: [
|
|
143
|
+
{
|
|
144
|
+
label: t("admin.sharing.form.child_units_none"),
|
|
145
|
+
value: "none"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
label: t("admin.sharing.form.child_units_all"),
|
|
149
|
+
value: "all"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
label: t("admin.sharing.form.child_units_selected"),
|
|
153
|
+
value: "selected"
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
value: values.childUnitsMode,
|
|
157
|
+
onChange: (event) => setValue("childUnitsMode", event.target.value)
|
|
158
|
+
}),
|
|
159
|
+
values.childUnitsMode === "all" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TextField.default, {
|
|
160
|
+
name: "excludedOuIds",
|
|
161
|
+
label: t("admin.sharing.form.excluded_units"),
|
|
162
|
+
helperText: t("admin.sharing.form.ids_hint"),
|
|
163
|
+
value: values.excludedOuIds,
|
|
164
|
+
onChange: (event) => setValue("excludedOuIds", event.target.value)
|
|
165
|
+
}),
|
|
166
|
+
values.childUnitsMode === "selected" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TextField.default, {
|
|
167
|
+
name: "selectedOuIds",
|
|
168
|
+
label: t("admin.sharing.form.selected_units"),
|
|
169
|
+
helperText: t("admin.sharing.form.ids_hint"),
|
|
170
|
+
required: true,
|
|
171
|
+
value: values.selectedOuIds,
|
|
172
|
+
onChange: (event) => setValue("selectedOuIds", event.target.value)
|
|
173
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Select.default, {
|
|
174
|
+
name: "reach",
|
|
175
|
+
label: t("admin.sharing.form.reach"),
|
|
176
|
+
options: [{
|
|
177
|
+
label: t("admin.sharing.form.reach_subtree"),
|
|
178
|
+
value: "subtree"
|
|
179
|
+
}, {
|
|
180
|
+
label: t("admin.sharing.form.reach_unit"),
|
|
181
|
+
value: "unit"
|
|
182
|
+
}],
|
|
183
|
+
value: values.reach,
|
|
184
|
+
onChange: (event) => setValue("reach", event.target.value)
|
|
185
|
+
})] }),
|
|
186
|
+
current.policy?.otherTreeRoots?.mode !== "all" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TextField.default, {
|
|
187
|
+
name: "otherTreeRootOuIds",
|
|
188
|
+
label: t("admin.sharing.form.other_tree_roots"),
|
|
189
|
+
helperText: t("admin.sharing.form.ids_hint"),
|
|
190
|
+
value: values.otherTreeRootOuIds,
|
|
191
|
+
onChange: (event) => setValue("otherTreeRootOuIds", event.target.value)
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
194
|
+
className: styles["row"],
|
|
195
|
+
style: { justifyContent: "flex-end" },
|
|
196
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
|
|
197
|
+
type: "button",
|
|
198
|
+
variant: "text",
|
|
199
|
+
disabled: isSubmitting,
|
|
200
|
+
onClick: () => setDraft(null),
|
|
201
|
+
children: t("admin.common.actions.cancel")
|
|
202
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
|
|
203
|
+
type: "submit",
|
|
204
|
+
loading: isSubmitting,
|
|
205
|
+
disabled: isSubmitting || !(0, __thunderid_browser.isSharingPolicyFormValid)(values, current.policy),
|
|
206
|
+
children: t("admin.sharing.actions.save")
|
|
207
|
+
})]
|
|
208
|
+
})
|
|
209
|
+
]
|
|
210
|
+
})
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
const renderOverlay = () => {
|
|
214
|
+
if (!overlayOuId) return null;
|
|
215
|
+
let body;
|
|
216
|
+
if (isLoadingOverlay) body = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
217
|
+
className: styles["muted"],
|
|
218
|
+
role: "status",
|
|
219
|
+
children: [
|
|
220
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Spinner.default, { size: "small" }),
|
|
221
|
+
" ",
|
|
222
|
+
t("admin.common.loading")
|
|
223
|
+
]
|
|
224
|
+
});
|
|
225
|
+
else if (overlayError) body = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
|
|
226
|
+
variant: "error",
|
|
227
|
+
role: "alert",
|
|
228
|
+
children: overlayError
|
|
229
|
+
});
|
|
230
|
+
else if (overlay) {
|
|
231
|
+
let access = t("admin.sharing.overlay.not_shared");
|
|
232
|
+
if (isOwned(overlay)) access = t("admin.sharing.overlay.owned");
|
|
233
|
+
else if (overlay.visible !== false && (overlay.policyIds?.length ?? 0) > 0) access = t("admin.sharing.overlay.shared");
|
|
234
|
+
const rules = Object.entries(overlay.rules ?? {});
|
|
235
|
+
const items = [{
|
|
236
|
+
label: t("admin.sharing.columns.scope"),
|
|
237
|
+
value: access
|
|
238
|
+
}];
|
|
239
|
+
if (overlay.policyIds?.length) items.push({
|
|
240
|
+
label: t("admin.sharing.overlay.policies"),
|
|
241
|
+
value: overlay.policyIds.join(", ")
|
|
242
|
+
});
|
|
243
|
+
rules.forEach(([field, rule]) => {
|
|
244
|
+
const parts = [
|
|
245
|
+
rule.value?.length ? t("admin.sharing.overlay.value", { values: rule.value.join(", ") }) : "",
|
|
246
|
+
rule.allowedValues?.length ? t("admin.sharing.overlay.allowed", { values: rule.allowedValues.join(", ") }) : "",
|
|
247
|
+
rule.excludedValues?.length ? t("admin.sharing.overlay.excluded", { values: rule.excludedValues.join(", ") }) : "",
|
|
248
|
+
rule.editable ? t("admin.sharing.overlay.editable") : ""
|
|
249
|
+
].filter(Boolean);
|
|
250
|
+
items.push({
|
|
251
|
+
label: field,
|
|
252
|
+
value: parts.join(" · ") || t("admin.sharing.overlay.no_rules")
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
body = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminParts.DetailList, { items }), rules.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
256
|
+
className: styles["muted"],
|
|
257
|
+
children: t("admin.sharing.overlay.no_rules")
|
|
258
|
+
})] });
|
|
259
|
+
}
|
|
260
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminParts.Panel, {
|
|
261
|
+
title: t("admin.sharing.overlay.title", { unit: overlayOuId }),
|
|
262
|
+
children: body
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_AdminSection.default, {
|
|
266
|
+
block: "sharing-policies",
|
|
267
|
+
className,
|
|
268
|
+
title: title ?? t("admin.sharing.title"),
|
|
269
|
+
description,
|
|
270
|
+
preferences,
|
|
271
|
+
actions: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [actions, onCreate && !draft && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
|
|
272
|
+
variant: "outline",
|
|
273
|
+
size: "small",
|
|
274
|
+
disabled: isSubmitting,
|
|
275
|
+
onClick: () => setDraft({ values: (0, __thunderid_browser.toSharingPolicyFormValues)() }),
|
|
276
|
+
children: t("admin.sharing.actions.create")
|
|
277
|
+
})] }),
|
|
278
|
+
children: [
|
|
279
|
+
mutationError && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
|
|
280
|
+
variant: "error",
|
|
281
|
+
role: "alert",
|
|
282
|
+
children: mutationError
|
|
283
|
+
}),
|
|
284
|
+
draft && renderForm(draft),
|
|
285
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DataTable.default, {
|
|
286
|
+
caption: title?.length ? title : t("admin.sharing.title"),
|
|
287
|
+
columns,
|
|
288
|
+
rows: policies,
|
|
289
|
+
getRowId: (policy) => policy.id ?? describeScope(policy).join("|"),
|
|
290
|
+
isLoading,
|
|
291
|
+
error,
|
|
292
|
+
emptyText: t("admin.sharing.empty"),
|
|
293
|
+
pagination: onPageChange ? {
|
|
294
|
+
limit,
|
|
295
|
+
offset,
|
|
296
|
+
onChange: onPageChange,
|
|
297
|
+
total: totalResults ?? policies.length
|
|
298
|
+
} : void 0
|
|
299
|
+
}),
|
|
300
|
+
renderOverlay()
|
|
301
|
+
]
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
var BaseSharingPolicies_default = BaseSharingPolicies;
|
|
305
|
+
|
|
306
|
+
//#endregion
|
|
307
|
+
exports.default = BaseSharingPolicies_default;
|
|
308
|
+
//# sourceMappingURL=BaseSharingPolicies.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseSharingPolicies.cjs","names":["BaseSharingPolicies: FC<BaseSharingPoliciesProps>","useTranslation","styles: Record<string, string>","useAdminPartStyles","columns: DataTableColumn<SharingPolicy>[]","Button","ConfirmButton","keepsSections: boolean","Panel","Select","TextField","body: ReactNode","Spinner","Alert","access: string","rules: [string, OverlayRule][]","items: DetailListItem[]","parts: string[]","DetailList","AdminSection","DataTable"],"sources":["../../../../../src/components/management/SharingPolicies/BaseSharingPolicies.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OverlayRule,\n Preferences,\n ResolvedOverlay,\n SharingPolicy,\n SharingPolicyFormValues,\n SharingPolicyRequest,\n SharingPolicyUpdateRequest,\n describeSharingPolicyScope,\n isSharingPolicyFormValid,\n toSharingPolicyFormValues,\n toSharingPolicyRequest,\n toSharingPolicyUpdateRequest,\n} from '@thunderid/browser';\nimport {ChangeEvent, FC, FormEvent, ReactElement, ReactNode, useState} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport DataTable, {DataTableColumn} from '../../primitives/DataTable/DataTable';\nimport Select from '../../primitives/Select/Select';\nimport Spinner from '../../primitives/Spinner/Spinner';\nimport TextField from '../../primitives/TextField/TextField';\nimport {ConfirmButton, DetailList, DetailListItem, Panel} from '../shared/AdminParts';\nimport AdminSection from '../shared/AdminSection';\nimport useAdminPartStyles from '../shared/useAdminPartStyles';\n\n/**\n * What {@link BaseSharingPolicies} hands its `children` render function, so the policies can be shown with any UI.\n */\nexport interface BaseSharingPoliciesRenderProps {\n /**\n * The columns the default table shows, with translated headers and cell renderers.\n */\n columns: DataTableColumn<SharingPolicy>[];\n /**\n * Describes, in translated words, which organization units a policy reaches: one line per section.\n */\n describeScope: (policy: SharingPolicy) => string[];\n /**\n * A translated message when the policies could not be loaded, or `null`.\n */\n error: string | null;\n isLoading: boolean;\n isLoadingOverlay: boolean;\n isSubmitting: boolean;\n limit: number;\n /**\n * A translated message when a create, update or delete failed, or `null`.\n */\n mutationError: string | null;\n offset: number;\n /**\n * Creates a policy. Undefined unless editing is allowed.\n */\n onCreate?: (request: SharingPolicyRequest) => void;\n /**\n * Deletes a policy; ask for confirmation first. Undefined unless editing is allowed. Does nothing for a\n * read-only policy.\n */\n onDelete?: (policy: SharingPolicy) => void;\n /**\n * Shows the page that starts at `offset`. Undefined when the list is not paginated.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Replaces a policy's sections. Undefined unless editing is allowed. Does nothing for a read-only policy.\n */\n onUpdate?: (policy: SharingPolicy, request: SharingPolicyUpdateRequest) => void;\n /**\n * The overlay rules that apply in `overlayOuId`, when one was given.\n */\n overlay?: ResolvedOverlay;\n overlayError: string | null;\n overlayOuId?: string;\n policies: SharingPolicy[];\n totalResults: number;\n}\n\nexport interface BaseSharingPoliciesProps {\n /**\n * Controls rendered next to the title.\n */\n actions?: ReactNode;\n /**\n * Renders custom UI in place of the default view. Receives the policies, the paging, the loading and\n * error state, the overlay rules, and the create, update and delete handlers when editing is allowed.\n */\n children?: (props: BaseSharingPoliciesRenderProps) => ReactNode;\n className?: string;\n description?: string;\n /**\n * A translated message when the policies could not be loaded, or `null`.\n */\n error?: string | null;\n isLoading?: boolean;\n isLoadingOverlay?: boolean;\n isSubmitting?: boolean;\n /**\n * Page size.\n * @default 20\n */\n limit?: number;\n /**\n * A translated message when a create, update or delete failed, or `null`.\n */\n mutationError?: string | null;\n offset?: number;\n /**\n * Creates a policy. The add action is hidden when omitted.\n */\n onCreate?: (request: SharingPolicyRequest) => void;\n /**\n * Deletes a policy, after the user confirms. The delete action is hidden when omitted.\n */\n onDelete?: (policy: SharingPolicy) => void;\n /**\n * Called with the offset of the page to show. Pagination is hidden when omitted.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Replaces a policy's sections. The edit action is hidden when omitted.\n */\n onUpdate?: (policy: SharingPolicy, request: SharingPolicyUpdateRequest) => void;\n /**\n * The overlay rules that apply in `overlayOuId`.\n */\n overlay?: ResolvedOverlay;\n overlayError?: string | null;\n /**\n * The organization unit whose overlay rules are shown, read only.\n */\n overlayOuId?: string;\n policies: SharingPolicy[];\n preferences?: Preferences;\n /**\n * Heading of the view. Pass an empty string to hide it.\n */\n title?: string;\n totalResults?: number;\n}\n\ninterface Draft {\n policy?: SharingPolicy;\n values: SharingPolicyFormValues;\n}\n\nconst isOwned = (overlay: ResolvedOverlay): boolean => Boolean(overlay.isOwned ?? overlay.isOwnedByOU ?? overlay.owned);\n\n/**\n * Lists the sharing policies of one resource (a user, an application, a role or a flow) with the\n * organization units each reaches, lets the caller add, edit and delete them, and shows the overlay\n * rules that apply in one unit. Holds no data of its own: pass the policies and handle the changes.\n */\nconst BaseSharingPolicies: FC<BaseSharingPoliciesProps> = ({\n actions,\n children,\n className,\n description,\n error = null,\n isLoading = false,\n isLoadingOverlay = false,\n isSubmitting = false,\n limit = 20,\n mutationError = null,\n offset = 0,\n onCreate,\n onDelete,\n onPageChange,\n onUpdate,\n overlay,\n overlayError = null,\n overlayOuId,\n policies,\n preferences,\n title,\n totalResults,\n}: BaseSharingPoliciesProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const styles: Record<string, string> = useAdminPartStyles();\n const [draft, setDraft] = useState<Draft | null>(null);\n\n const describeScope = (policy: SharingPolicy): string[] => describeSharingPolicyScope(t, policy);\n const canChange = (policy: SharingPolicy): boolean => !policy.isReadOnly;\n\n const columns: DataTableColumn<SharingPolicy>[] = [\n {\n header: t('admin.sharing.columns.scope'),\n id: 'scope',\n render: (policy: SharingPolicy): ReactNode => (\n <span style={{display: 'flex', flexDirection: 'column'}}>\n {describeScope(policy).map((line: string) => (\n <span key={line}>{line}</span>\n ))}\n </span>\n ),\n },\n {\n header: t('admin.sharing.columns.stage'),\n id: 'stage',\n render: (policy: SharingPolicy): ReactNode =>\n policy.stage === 'reshare' ? t('admin.sharing.stage.reshare') : t('admin.sharing.stage.share'),\n },\n {\n header: t('admin.sharing.columns.version'),\n id: 'version',\n render: (policy: SharingPolicy): ReactNode => policy.version ?? '',\n },\n ];\n\n if (onUpdate || onDelete) {\n columns.push({\n header: t('admin.common.columns.actions'),\n id: 'actions',\n render: (policy: SharingPolicy): ReactNode =>\n canChange(policy) ? (\n <span className={styles['row']}>\n {onUpdate && (\n <Button\n variant=\"outline\"\n size=\"small\"\n disabled={isSubmitting}\n onClick={(): void => setDraft({policy, values: toSharingPolicyFormValues(policy)})}\n >\n {t('admin.sharing.actions.edit')}\n </Button>\n )}\n {onDelete && (\n <ConfirmButton\n confirmText={t('admin.sharing.delete.confirm')}\n isLoading={isSubmitting}\n onConfirm={(): void => onDelete(policy)}\n >\n {t('admin.sharing.actions.delete')}\n </ConfirmButton>\n )}\n </span>\n ) : (\n <span className={styles['muted']}>{t('admin.sharing.read_only')}</span>\n ),\n });\n }\n\n if (children) {\n return (\n <div className={className}>\n {children({\n columns,\n describeScope,\n error,\n isLoading,\n isLoadingOverlay,\n isSubmitting,\n limit,\n mutationError,\n offset,\n onCreate,\n onDelete: onDelete\n ? (policy: SharingPolicy): void => {\n if (canChange(policy)) onDelete(policy);\n }\n : undefined,\n onPageChange,\n onUpdate: onUpdate\n ? (policy: SharingPolicy, request: SharingPolicyUpdateRequest): void => {\n if (canChange(policy)) onUpdate(policy, request);\n }\n : undefined,\n overlay,\n overlayError,\n overlayOuId,\n policies,\n totalResults: totalResults ?? policies.length,\n })}\n </div>\n );\n }\n\n const setValue = <K extends keyof SharingPolicyFormValues>(field: K, value: SharingPolicyFormValues[K]): void =>\n setDraft((previous: Draft | null) => previous && {...previous, values: {...previous.values, [field]: value}});\n\n const handleSave = (event: FormEvent<HTMLFormElement>): void => {\n event.preventDefault();\n\n if (!draft || !isSharingPolicyFormValid(draft.values, draft.policy)) {\n return;\n }\n\n if (draft.policy) {\n onUpdate?.(draft.policy, toSharingPolicyUpdateRequest(draft.values, draft.policy));\n } else {\n onCreate?.(toSharingPolicyRequest(draft.values));\n }\n\n setDraft(null);\n };\n\n const renderForm = (current: Draft): ReactElement => {\n const {values} = current;\n const keepsSections: boolean = Boolean(current.policy?.allUnits) || current.policy?.otherTreeRoots?.mode === 'all';\n\n return (\n <Panel title={current.policy ? t('admin.sharing.form.edit_title') : t('admin.sharing.form.create_title')}>\n <form\n className={styles['row']}\n style={{alignItems: 'stretch', flexDirection: 'column'}}\n onSubmit={handleSave}\n noValidate\n >\n {keepsSections && <span className={styles['muted']}>{t('admin.sharing.form.kept_sections')}</span>}\n <Select\n name=\"childUnitsMode\"\n label={t('admin.sharing.form.child_units')}\n options={[\n {label: t('admin.sharing.form.child_units_none'), value: 'none'},\n {label: t('admin.sharing.form.child_units_all'), value: 'all'},\n {label: t('admin.sharing.form.child_units_selected'), value: 'selected'},\n ]}\n value={values.childUnitsMode}\n onChange={(event: ChangeEvent<HTMLSelectElement>): void =>\n setValue('childUnitsMode', event.target.value as SharingPolicyFormValues['childUnitsMode'])\n }\n />\n {values.childUnitsMode === 'all' && (\n <TextField\n name=\"excludedOuIds\"\n label={t('admin.sharing.form.excluded_units')}\n helperText={t('admin.sharing.form.ids_hint')}\n value={values.excludedOuIds}\n onChange={(event: ChangeEvent<HTMLInputElement>): void => setValue('excludedOuIds', event.target.value)}\n />\n )}\n {values.childUnitsMode === 'selected' && (\n <>\n <TextField\n name=\"selectedOuIds\"\n label={t('admin.sharing.form.selected_units')}\n helperText={t('admin.sharing.form.ids_hint')}\n required\n value={values.selectedOuIds}\n onChange={(event: ChangeEvent<HTMLInputElement>): void => setValue('selectedOuIds', event.target.value)}\n />\n <Select\n name=\"reach\"\n label={t('admin.sharing.form.reach')}\n options={[\n {label: t('admin.sharing.form.reach_subtree'), value: 'subtree'},\n {label: t('admin.sharing.form.reach_unit'), value: 'unit'},\n ]}\n value={values.reach}\n onChange={(event: ChangeEvent<HTMLSelectElement>): void =>\n setValue('reach', event.target.value as SharingPolicyFormValues['reach'])\n }\n />\n </>\n )}\n {current.policy?.otherTreeRoots?.mode !== 'all' && (\n <TextField\n name=\"otherTreeRootOuIds\"\n label={t('admin.sharing.form.other_tree_roots')}\n helperText={t('admin.sharing.form.ids_hint')}\n value={values.otherTreeRootOuIds}\n onChange={(event: ChangeEvent<HTMLInputElement>): void =>\n setValue('otherTreeRootOuIds', event.target.value)\n }\n />\n )}\n <div className={styles['row']} style={{justifyContent: 'flex-end'}}>\n <Button type=\"button\" variant=\"text\" disabled={isSubmitting} onClick={(): void => setDraft(null)}>\n {t('admin.common.actions.cancel')}\n </Button>\n <Button\n type=\"submit\"\n loading={isSubmitting}\n disabled={isSubmitting || !isSharingPolicyFormValid(values, current.policy)}\n >\n {t('admin.sharing.actions.save')}\n </Button>\n </div>\n </form>\n </Panel>\n );\n };\n\n const renderOverlay = (): ReactNode => {\n if (!overlayOuId) {\n return null;\n }\n\n let body: ReactNode;\n\n if (isLoadingOverlay) {\n body = (\n <span className={styles['muted']} role=\"status\">\n <Spinner size=\"small\" /> {t('admin.common.loading')}\n </span>\n );\n } else if (overlayError) {\n body = (\n <Alert variant=\"error\" role=\"alert\">\n {overlayError}\n </Alert>\n );\n } else if (overlay) {\n let access: string = t('admin.sharing.overlay.not_shared');\n\n if (isOwned(overlay)) {\n access = t('admin.sharing.overlay.owned');\n } else if (overlay.visible !== false && (overlay.policyIds?.length ?? 0) > 0) {\n access = t('admin.sharing.overlay.shared');\n }\n\n const rules: [string, OverlayRule][] = Object.entries(overlay.rules ?? {});\n const items: DetailListItem[] = [{label: t('admin.sharing.columns.scope'), value: access}];\n\n if (overlay.policyIds?.length) {\n items.push({label: t('admin.sharing.overlay.policies'), value: overlay.policyIds.join(', ')});\n }\n\n rules.forEach(([field, rule]: [string, OverlayRule]) => {\n const parts: string[] = [\n rule.value?.length ? t('admin.sharing.overlay.value', {values: rule.value.join(', ')}) : '',\n rule.allowedValues?.length ? t('admin.sharing.overlay.allowed', {values: rule.allowedValues.join(', ')}) : '',\n rule.excludedValues?.length\n ? t('admin.sharing.overlay.excluded', {values: rule.excludedValues.join(', ')})\n : '',\n rule.editable ? t('admin.sharing.overlay.editable') : '',\n ].filter(Boolean);\n\n items.push({label: field, value: parts.join(' · ') || t('admin.sharing.overlay.no_rules')});\n });\n\n body = (\n <>\n <DetailList items={items} />\n {rules.length === 0 && <span className={styles['muted']}>{t('admin.sharing.overlay.no_rules')}</span>}\n </>\n );\n }\n\n return <Panel title={t('admin.sharing.overlay.title', {unit: overlayOuId})}>{body}</Panel>;\n };\n\n return (\n <AdminSection\n block=\"sharing-policies\"\n className={className}\n title={title ?? t('admin.sharing.title')}\n description={description}\n preferences={preferences}\n actions={\n <>\n {actions}\n {onCreate && !draft && (\n <Button\n variant=\"outline\"\n size=\"small\"\n disabled={isSubmitting}\n onClick={(): void => setDraft({values: toSharingPolicyFormValues()})}\n >\n {t('admin.sharing.actions.create')}\n </Button>\n )}\n </>\n }\n >\n {mutationError && (\n <Alert variant=\"error\" role=\"alert\">\n {mutationError}\n </Alert>\n )}\n {draft && renderForm(draft)}\n <DataTable\n caption={title?.length ? title : t('admin.sharing.title')}\n columns={columns}\n rows={policies}\n getRowId={(policy: SharingPolicy): string => policy.id ?? describeScope(policy).join('|')}\n isLoading={isLoading}\n error={error}\n emptyText={t('admin.sharing.empty')}\n pagination={\n onPageChange ? {limit, offset, onChange: onPageChange, total: totalResults ?? policies.length} : undefined\n }\n />\n {renderOverlay()}\n </AdminSection>\n );\n};\n\nexport default BaseSharingPolicies;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
3
|
+
const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
|
|
4
|
+
const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
|
|
5
|
+
const require_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
|
|
6
|
+
const require_BaseSharingPolicies = require('./BaseSharingPolicies.cjs');
|
|
7
|
+
let __thunderid_browser = require("@thunderid/browser");
|
|
8
|
+
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
9
|
+
let react = require("react");
|
|
10
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
13
|
+
|
|
14
|
+
//#region src/components/management/SharingPolicies/SharingPolicies.tsx
|
|
15
|
+
/**
|
|
16
|
+
* Lists the sharing policies of a user, an application, a role or a flow, and lets the signed-in user
|
|
17
|
+
* add, edit and delete them when `editable`. With `ouId`, also shows the overlay rules the policies
|
|
18
|
+
* resolve to in that organization unit. `UserDetails`, `ApplicationDetails` and `RoleDetails` do not
|
|
19
|
+
* embed it: place it where the app needs it.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <SharingPolicies resourceType="role" resourceId={roleId} editable />
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
const SharingPolicies = ({ editable = false, limit = 20, ouId, preferences, resourceId, resourceType,...rest }) => {
|
|
27
|
+
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
28
|
+
const [offset, setOffset] = (0, react.useState)(0);
|
|
29
|
+
const [lastChange, setLastChange] = (0, react.useState)("create");
|
|
30
|
+
const endpoint = require_useManagementEndpoint.default(__thunderid_browser.SHARING_RESOURCE_COLLECTIONS[resourceType]);
|
|
31
|
+
const operations = (0, __thunderid_browser.getSharingPolicyOperations)(resourceType);
|
|
32
|
+
const policies = require_useResourceQuery.default([
|
|
33
|
+
__thunderid_browser.SharingPolicyQueryKeys.SHARING_POLICIES,
|
|
34
|
+
resourceType,
|
|
35
|
+
resourceId,
|
|
36
|
+
{
|
|
37
|
+
limit,
|
|
38
|
+
offset
|
|
39
|
+
}
|
|
40
|
+
], (fetcher) => operations.list({
|
|
41
|
+
...endpoint,
|
|
42
|
+
fetcher,
|
|
43
|
+
limit,
|
|
44
|
+
offset,
|
|
45
|
+
resourceId
|
|
46
|
+
}), { enabled: Boolean(resourceId) });
|
|
47
|
+
const overlay = require_useResourceQuery.default([
|
|
48
|
+
__thunderid_browser.SharingPolicyQueryKeys.OVERLAY_RULES,
|
|
49
|
+
resourceType,
|
|
50
|
+
resourceId,
|
|
51
|
+
ouId
|
|
52
|
+
], (fetcher) => operations.getOverlayRules({
|
|
53
|
+
...endpoint,
|
|
54
|
+
fetcher,
|
|
55
|
+
ouId: ouId ?? "",
|
|
56
|
+
resourceId
|
|
57
|
+
}), { enabled: Boolean(resourceId && ouId) });
|
|
58
|
+
const change = require_useResourceMutation.default(async (variables, fetcher) => {
|
|
59
|
+
if (variables.kind === "create") return operations.create({
|
|
60
|
+
...endpoint,
|
|
61
|
+
fetcher,
|
|
62
|
+
payload: variables.request,
|
|
63
|
+
resourceId
|
|
64
|
+
});
|
|
65
|
+
if (variables.kind === "update") return operations.update({
|
|
66
|
+
...endpoint,
|
|
67
|
+
fetcher,
|
|
68
|
+
payload: variables.request,
|
|
69
|
+
policyId: variables.policy.id ?? "",
|
|
70
|
+
resourceId
|
|
71
|
+
});
|
|
72
|
+
await operations.delete({
|
|
73
|
+
...endpoint,
|
|
74
|
+
fetcher,
|
|
75
|
+
policyId: variables.policy.id ?? "",
|
|
76
|
+
resourceId
|
|
77
|
+
});
|
|
78
|
+
}, () => [[
|
|
79
|
+
__thunderid_browser.SharingPolicyQueryKeys.SHARING_POLICIES,
|
|
80
|
+
resourceType,
|
|
81
|
+
resourceId
|
|
82
|
+
], [
|
|
83
|
+
__thunderid_browser.SharingPolicyQueryKeys.OVERLAY_RULES,
|
|
84
|
+
resourceType,
|
|
85
|
+
resourceId
|
|
86
|
+
]]);
|
|
87
|
+
const run = (variables) => {
|
|
88
|
+
setLastChange(variables.kind);
|
|
89
|
+
change.mutate(variables);
|
|
90
|
+
};
|
|
91
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseSharingPolicies.default, {
|
|
92
|
+
policies: policies.data?.policies ?? [],
|
|
93
|
+
totalResults: policies.data?.totalResults,
|
|
94
|
+
isLoading: policies.isLoading,
|
|
95
|
+
error: (0, __thunderid_browser.toManagementErrorMessage)(t, policies.error, "admin.sharing.error"),
|
|
96
|
+
mutationError: (0, __thunderid_browser.toManagementErrorMessage)(t, change.error, lastChange === "delete" ? "admin.sharing.errors.delete" : "admin.sharing.errors.save", __thunderid_browser.SHARING_POLICY_ERROR_KEYS),
|
|
97
|
+
isSubmitting: change.isLoading,
|
|
98
|
+
limit,
|
|
99
|
+
offset,
|
|
100
|
+
onPageChange: setOffset,
|
|
101
|
+
overlay: overlay.data,
|
|
102
|
+
overlayOuId: ouId,
|
|
103
|
+
isLoadingOverlay: Boolean(ouId) && overlay.isLoading,
|
|
104
|
+
overlayError: (0, __thunderid_browser.toManagementErrorMessage)(t, overlay.error, "admin.sharing.overlay.error"),
|
|
105
|
+
onCreate: editable ? (request) => run({
|
|
106
|
+
kind: "create",
|
|
107
|
+
request
|
|
108
|
+
}) : void 0,
|
|
109
|
+
onUpdate: editable ? (policy, request) => run({
|
|
110
|
+
kind: "update",
|
|
111
|
+
policy,
|
|
112
|
+
request
|
|
113
|
+
}) : void 0,
|
|
114
|
+
onDelete: editable ? (policy) => run({
|
|
115
|
+
kind: "delete",
|
|
116
|
+
policy
|
|
117
|
+
}) : void 0,
|
|
118
|
+
preferences,
|
|
119
|
+
...rest
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
var SharingPolicies_default = SharingPolicies;
|
|
123
|
+
|
|
124
|
+
//#endregion
|
|
125
|
+
exports.default = SharingPolicies_default;
|
|
126
|
+
//# sourceMappingURL=SharingPolicies.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharingPolicies.cjs","names":["SharingPolicies: FC<SharingPoliciesProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","SHARING_RESOURCE_COLLECTIONS","operations: SharingPolicyOperations","policies: ResourceQueryResult<SharingPolicyListResponse>","useResourceQuery","SharingPolicyQueryKeys","overlay: ResourceQueryResult<ResolvedOverlay>","change: ResourceMutationResult<SharingPolicy | undefined, PolicyChange>","useResourceMutation","BaseSharingPolicies","SHARING_POLICY_ERROR_KEYS"],"sources":["../../../../../src/components/management/SharingPolicies/SharingPolicies.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ResolvedOverlay,\n SHARING_POLICY_ERROR_KEYS,\n SHARING_RESOURCE_COLLECTIONS,\n SharingPolicy,\n SharingPolicyListResponse,\n SharingPolicyOperations,\n SharingPolicyQueryKeys,\n SharingPolicyRequest,\n SharingPolicyUpdateRequest,\n SharingResourceType,\n getSharingPolicyOperations,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseSharingPolicies, {BaseSharingPoliciesProps} from './BaseSharingPolicies';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\n\ntype PolicyChange =\n | {kind: 'create'; request: SharingPolicyRequest}\n | {kind: 'delete'; policy: SharingPolicy}\n | {kind: 'update'; policy: SharingPolicy; request: SharingPolicyUpdateRequest};\n\nexport type SharingPoliciesProps = Omit<\n BaseSharingPoliciesProps,\n | 'error'\n | 'isLoading'\n | 'isLoadingOverlay'\n | 'isSubmitting'\n | 'mutationError'\n | 'offset'\n | 'onCreate'\n | 'onDelete'\n | 'onPageChange'\n | 'onUpdate'\n | 'overlay'\n | 'overlayError'\n | 'overlayOuId'\n | 'policies'\n | 'totalResults'\n> & {\n /**\n * Whether policies can be added, edited and deleted from this view. Deleting asks for confirmation.\n * @default false\n */\n editable?: boolean;\n /**\n * Shows the overlay rules that apply to the resource in this organization unit, read only.\n */\n ouId?: string;\n /**\n * Identifier of the user, application, role or flow.\n */\n resourceId: string;\n /**\n * The kind of resource whose sharing policies are shown.\n */\n resourceType: SharingResourceType;\n};\n\n/**\n * Lists the sharing policies of a user, an application, a role or a flow, and lets the signed-in user\n * add, edit and delete them when `editable`. With `ouId`, also shows the overlay rules the policies\n * resolve to in that organization unit. `UserDetails`, `ApplicationDetails` and `RoleDetails` do not\n * embed it: place it where the app needs it.\n *\n * @example\n * ```tsx\n * <SharingPolicies resourceType=\"role\" resourceId={roleId} editable />\n * ```\n */\nconst SharingPolicies: FC<SharingPoliciesProps> = ({\n editable = false,\n limit = 20,\n ouId,\n preferences,\n resourceId,\n resourceType,\n ...rest\n}: SharingPoliciesProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [lastChange, setLastChange] = useState<PolicyChange['kind']>('create');\n const endpoint: ManagementEndpoint = useManagementEndpoint(SHARING_RESOURCE_COLLECTIONS[resourceType]);\n const operations: SharingPolicyOperations = getSharingPolicyOperations(resourceType);\n const policies: ResourceQueryResult<SharingPolicyListResponse> = useResourceQuery(\n [SharingPolicyQueryKeys.SHARING_POLICIES, resourceType, resourceId, {limit, offset}],\n (fetcher) => operations.list({...endpoint, fetcher, limit, offset, resourceId}),\n {enabled: Boolean(resourceId)},\n );\n const overlay: ResourceQueryResult<ResolvedOverlay> = useResourceQuery(\n [SharingPolicyQueryKeys.OVERLAY_RULES, resourceType, resourceId, ouId],\n (fetcher) => operations.getOverlayRules({...endpoint, fetcher, ouId: ouId ?? '', resourceId}),\n {enabled: Boolean(resourceId && ouId)},\n );\n const change: ResourceMutationResult<SharingPolicy | undefined, PolicyChange> = useResourceMutation(\n async (variables: PolicyChange, fetcher): Promise<SharingPolicy | undefined> => {\n if (variables.kind === 'create') {\n return operations.create({...endpoint, fetcher, payload: variables.request, resourceId});\n }\n\n if (variables.kind === 'update') {\n return operations.update({\n ...endpoint,\n fetcher,\n payload: variables.request,\n policyId: variables.policy.id ?? '',\n resourceId,\n });\n }\n\n await operations.delete({...endpoint, fetcher, policyId: variables.policy.id ?? '', resourceId});\n\n return undefined;\n },\n () => [\n [SharingPolicyQueryKeys.SHARING_POLICIES, resourceType, resourceId],\n [SharingPolicyQueryKeys.OVERLAY_RULES, resourceType, resourceId],\n ],\n );\n\n const run = (variables: PolicyChange): void => {\n setLastChange(variables.kind);\n void change.mutate(variables);\n };\n\n return (\n <BaseSharingPolicies\n policies={policies.data?.policies ?? []}\n totalResults={policies.data?.totalResults}\n isLoading={policies.isLoading}\n error={toManagementErrorMessage(t, policies.error, 'admin.sharing.error')}\n mutationError={toManagementErrorMessage(\n t,\n change.error,\n lastChange === 'delete' ? 'admin.sharing.errors.delete' : 'admin.sharing.errors.save',\n SHARING_POLICY_ERROR_KEYS,\n )}\n isSubmitting={change.isLoading}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n overlay={overlay.data}\n overlayOuId={ouId}\n isLoadingOverlay={Boolean(ouId) && overlay.isLoading}\n overlayError={toManagementErrorMessage(t, overlay.error, 'admin.sharing.overlay.error')}\n onCreate={editable ? (request: SharingPolicyRequest): void => run({kind: 'create', request}) : undefined}\n onUpdate={\n editable\n ? (policy: SharingPolicy, request: SharingPolicyUpdateRequest): void => run({kind: 'update', policy, request})\n : undefined\n }\n onDelete={editable ? (policy: SharingPolicy): void => run({kind: 'delete', policy}) : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default SharingPolicies;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,MAAMA,mBAA6C,EACjD,WAAW,OACX,QAAQ,IACR,MACA,aACA,YACA,aACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,YAAY,qCAAgD,SAAS;CAC5E,MAAMC,WAA+BC,sCAAsBC,iDAA6B,cAAc;CACtG,MAAMC,iEAAiE,aAAa;CACpF,MAAMC,WAA2DC,iCAC/D;EAACC,2CAAuB;EAAkB;EAAc;EAAY;GAAC;GAAO;GAAO;EAAC,GACnF,YAAY,WAAW,KAAK;EAAC,GAAG;EAAU;EAAS;EAAO;EAAQ;EAAW,CAAC,EAC/E,EAAC,SAAS,QAAQ,WAAW,EAAC,CAC/B;CACD,MAAMC,UAAgDF,iCACpD;EAACC,2CAAuB;EAAe;EAAc;EAAY;EAAK,GACrE,YAAY,WAAW,gBAAgB;EAAC,GAAG;EAAU;EAAS,MAAM,QAAQ;EAAI;EAAW,CAAC,EAC7F,EAAC,SAAS,QAAQ,cAAc,KAAK,EAAC,CACvC;CACD,MAAME,SAA0EC,oCAC9E,OAAO,WAAyB,YAAgD;AAC9E,MAAI,UAAU,SAAS,SACrB,QAAO,WAAW,OAAO;GAAC,GAAG;GAAU;GAAS,SAAS,UAAU;GAAS;GAAW,CAAC;AAG1F,MAAI,UAAU,SAAS,SACrB,QAAO,WAAW,OAAO;GACvB,GAAG;GACH;GACA,SAAS,UAAU;GACnB,UAAU,UAAU,OAAO,MAAM;GACjC;GACD,CAAC;AAGJ,QAAM,WAAW,OAAO;GAAC,GAAG;GAAU;GAAS,UAAU,UAAU,OAAO,MAAM;GAAI;GAAW,CAAC;UAI5F,CACJ;EAACH,2CAAuB;EAAkB;EAAc;EAAW,EACnE;EAACA,2CAAuB;EAAe;EAAc;EAAW,CACjE,CACF;CAED,MAAM,OAAO,cAAkC;AAC7C,gBAAc,UAAU,KAAK;AAC7B,EAAK,OAAO,OAAO,UAAU;;AAG/B,QACE,2CAACI;EACC,UAAU,SAAS,MAAM,YAAY,EAAE;EACvC,cAAc,SAAS,MAAM;EAC7B,WAAW,SAAS;EACpB,yDAAgC,GAAG,SAAS,OAAO,sBAAsB;EACzE,iEACE,GACA,OAAO,OACP,eAAe,WAAW,gCAAgC,6BAC1DC,8CACD;EACD,cAAc,OAAO;EACd;EACC;EACR,cAAc;EACd,SAAS,QAAQ;EACjB,aAAa;EACb,kBAAkB,QAAQ,KAAK,IAAI,QAAQ;EAC3C,gEAAuC,GAAG,QAAQ,OAAO,8BAA8B;EACvF,UAAU,YAAY,YAAwC,IAAI;GAAC,MAAM;GAAU;GAAQ,CAAC,GAAG;EAC/F,UACE,YACK,QAAuB,YAA8C,IAAI;GAAC,MAAM;GAAU;GAAQ;GAAQ,CAAC,GAC5G;EAEN,UAAU,YAAY,WAAgC,IAAI;GAAC,MAAM;GAAU;GAAO,CAAC,GAAG;EACzE;EACb,GAAI;GACJ;;AAIN,8BAAe"}
|
|
@@ -13,7 +13,7 @@ react = require_rolldown_runtime.__toESM(react);
|
|
|
13
13
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
14
14
|
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
15
15
|
|
|
16
|
-
//#region src/components/
|
|
16
|
+
//#region src/components/management/UserCreate/BaseUserCreate.tsx
|
|
17
17
|
/**
|
|
18
18
|
* A form that collects a new user's type and attributes. Holds no data of its own: pass the user
|
|
19
19
|
* types and handle the submission.
|