@thunderid/react 1.7.0 → 1.8.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/cjs/components/admin/AgentCreate/AgentCreate.cjs +15 -4
- package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +1 -1
- package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs +36 -8
- package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +1 -1
- package/dist/cjs/components/admin/AgentList/AgentList.cjs +13 -4
- package/dist/cjs/components/admin/AgentList/AgentList.cjs.map +1 -1
- package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs +70 -0
- package/dist/cjs/components/admin/ApplicationCreate/ApplicationCreate.cjs.map +1 -0
- package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs +135 -0
- package/dist/cjs/components/admin/ApplicationCreate/BaseApplicationCreate.cjs.map +1 -0
- package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs +82 -0
- package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
- package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs +238 -0
- package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs.map +1 -0
- package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs +55 -0
- package/dist/cjs/components/admin/ApplicationList/ApplicationList.cjs.map +1 -0
- package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs +95 -0
- package/dist/cjs/components/admin/ApplicationList/BaseApplicationList.cjs.map +1 -0
- package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs +8 -2
- package/dist/cjs/components/admin/GroupCreate/GroupCreate.cjs.map +1 -1
- package/dist/cjs/components/admin/GroupList/GroupList.cjs +10 -3
- package/dist/cjs/components/admin/GroupList/GroupList.cjs.map +1 -1
- package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs +47 -10
- package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +1 -1
- package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs +48 -14
- package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +1 -1
- package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs +8 -2
- package/dist/cjs/components/admin/RoleCreate/RoleCreate.cjs.map +1 -1
- package/dist/cjs/components/admin/RoleList/RoleList.cjs +10 -3
- package/dist/cjs/components/admin/RoleList/RoleList.cjs.map +1 -1
- package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs +8 -2
- package/dist/cjs/components/admin/RolePermissions/RolePermissions.cjs.map +1 -1
- package/dist/cjs/components/admin/UserCreate/UserCreate.cjs +15 -4
- package/dist/cjs/components/admin/UserCreate/UserCreate.cjs.map +1 -1
- package/dist/cjs/components/admin/UserDetails/UserDetails.cjs +31 -8
- package/dist/cjs/components/admin/UserDetails/UserDetails.cjs.map +1 -1
- package/dist/cjs/components/admin/UserList/UserList.cjs +13 -4
- package/dist/cjs/components/admin/UserList/UserList.cjs.map +1 -1
- package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs +62 -0
- package/dist/cjs/components/admin/shared/ApplicationFormFields.cjs.map +1 -0
- package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs +49 -0
- package/dist/cjs/components/admin/shared/ClientSecretNotice.cjs.map +1 -0
- package/dist/cjs/components/auth/InviteUser/InviteUser.cjs +1 -1
- package/dist/cjs/hooks/management/useManagementEndpoint.cjs.map +1 -1
- package/dist/cjs/hooks/management/useManagementRequestConfig.cjs +41 -0
- package/dist/cjs/hooks/management/useManagementRequestConfig.cjs.map +1 -0
- package/dist/cjs/index.cjs +1066 -188
- package/dist/components/admin/AgentCreate/AgentCreate.d.ts.map +1 -1
- package/dist/components/admin/AgentCreate/AgentCreate.js +16 -5
- package/dist/components/admin/AgentCreate/AgentCreate.js.map +1 -1
- package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +1 -1
- package/dist/components/admin/AgentDetails/AgentDetails.js +37 -9
- package/dist/components/admin/AgentDetails/AgentDetails.js.map +1 -1
- package/dist/components/admin/AgentList/AgentList.d.ts.map +1 -1
- package/dist/components/admin/AgentList/AgentList.js +14 -5
- package/dist/components/admin/AgentList/AgentList.js.map +1 -1
- package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts +30 -0
- package/dist/components/admin/ApplicationCreate/ApplicationCreate.d.ts.map +1 -0
- package/dist/components/admin/ApplicationCreate/ApplicationCreate.js +66 -0
- package/dist/components/admin/ApplicationCreate/ApplicationCreate.js.map +1 -0
- package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts +80 -0
- package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.d.ts.map +1 -0
- package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js +131 -0
- package/dist/components/admin/ApplicationCreate/BaseApplicationCreate.js.map +1 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts +50 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.js +79 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +1 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts +92 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js +234 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js.map +1 -0
- package/dist/components/admin/ApplicationList/ApplicationList.d.ts +18 -0
- package/dist/components/admin/ApplicationList/ApplicationList.d.ts.map +1 -0
- package/dist/components/admin/ApplicationList/ApplicationList.js +51 -0
- package/dist/components/admin/ApplicationList/ApplicationList.js.map +1 -0
- package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts +55 -0
- package/dist/components/admin/ApplicationList/BaseApplicationList.d.ts.map +1 -0
- package/dist/components/admin/ApplicationList/BaseApplicationList.js +93 -0
- package/dist/components/admin/ApplicationList/BaseApplicationList.js.map +1 -0
- package/dist/components/admin/GroupCreate/GroupCreate.d.ts.map +1 -1
- package/dist/components/admin/GroupCreate/GroupCreate.js +9 -3
- package/dist/components/admin/GroupCreate/GroupCreate.js.map +1 -1
- package/dist/components/admin/GroupList/GroupList.d.ts.map +1 -1
- package/dist/components/admin/GroupList/GroupList.js +11 -4
- package/dist/components/admin/GroupList/GroupList.js.map +1 -1
- package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +1 -1
- package/dist/components/admin/GroupMembers/GroupMembers.js +48 -11
- package/dist/components/admin/GroupMembers/GroupMembers.js.map +1 -1
- package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +1 -1
- package/dist/components/admin/RoleAssignments/RoleAssignments.js +49 -15
- package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +1 -1
- package/dist/components/admin/RoleCreate/RoleCreate.d.ts.map +1 -1
- package/dist/components/admin/RoleCreate/RoleCreate.js +9 -3
- package/dist/components/admin/RoleCreate/RoleCreate.js.map +1 -1
- package/dist/components/admin/RoleList/RoleList.d.ts.map +1 -1
- package/dist/components/admin/RoleList/RoleList.js +11 -4
- package/dist/components/admin/RoleList/RoleList.js.map +1 -1
- package/dist/components/admin/RolePermissions/RolePermissions.d.ts.map +1 -1
- package/dist/components/admin/RolePermissions/RolePermissions.js +9 -3
- package/dist/components/admin/RolePermissions/RolePermissions.js.map +1 -1
- package/dist/components/admin/UserCreate/UserCreate.d.ts.map +1 -1
- package/dist/components/admin/UserCreate/UserCreate.js +16 -5
- package/dist/components/admin/UserCreate/UserCreate.js.map +1 -1
- package/dist/components/admin/UserDetails/UserDetails.d.ts.map +1 -1
- package/dist/components/admin/UserDetails/UserDetails.js +32 -9
- package/dist/components/admin/UserDetails/UserDetails.js.map +1 -1
- package/dist/components/admin/UserList/UserList.d.ts.map +1 -1
- package/dist/components/admin/UserList/UserList.js +14 -5
- package/dist/components/admin/UserList/UserList.js.map +1 -1
- package/dist/components/admin/shared/ApplicationFormFields.d.ts +35 -0
- package/dist/components/admin/shared/ApplicationFormFields.d.ts.map +1 -0
- package/dist/components/admin/shared/ApplicationFormFields.js +59 -0
- package/dist/components/admin/shared/ApplicationFormFields.js.map +1 -0
- package/dist/components/admin/shared/ClientSecretNotice.d.ts +16 -0
- package/dist/components/admin/shared/ClientSecretNotice.d.ts.map +1 -0
- package/dist/components/admin/shared/ClientSecretNotice.js +47 -0
- package/dist/components/admin/shared/ClientSecretNotice.js.map +1 -0
- package/dist/components/auth/InviteUser/InviteUser.js +1 -1
- package/dist/hooks/management/useManagementEndpoint.d.ts +5 -1
- package/dist/hooks/management/useManagementEndpoint.d.ts.map +1 -1
- package/dist/hooks/management/useManagementEndpoint.js.map +1 -1
- package/dist/hooks/management/useManagementRequestConfig.d.ts +22 -0
- package/dist/hooks/management/useManagementRequestConfig.d.ts.map +1 -0
- package/dist/hooks/management/useManagementRequestConfig.js +39 -0
- package/dist/hooks/management/useManagementRequestConfig.js.map +1 -0
- package/dist/index.d.ts +22 -55
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -41
- package/dist/models/config.d.ts +3 -4
- package/dist/models/config.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/hooks/management/agents/useCreateAgent.cjs +0 -26
- package/dist/cjs/hooks/management/agents/useCreateAgent.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs +0 -26
- package/dist/cjs/hooks/management/agents/useDeleteAgent.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useGetAgent.cjs +0 -30
- package/dist/cjs/hooks/management/agents/useGetAgent.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs +0 -41
- package/dist/cjs/hooks/management/agents/useGetAgentGroups.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs +0 -42
- package/dist/cjs/hooks/management/agents/useGetAgentRoles.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs +0 -31
- package/dist/cjs/hooks/management/agents/useGetAgentTypes.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useGetAgents.cjs +0 -33
- package/dist/cjs/hooks/management/agents/useGetAgents.cjs.map +0 -1
- package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs +0 -27
- package/dist/cjs/hooks/management/agents/useUpdateAgent.cjs.map +0 -1
- package/dist/cjs/hooks/management/applications/useCreateApplication.cjs +0 -31
- package/dist/cjs/hooks/management/applications/useCreateApplication.cjs.map +0 -1
- package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs +0 -26
- package/dist/cjs/hooks/management/applications/useDeleteApplication.cjs.map +0 -1
- package/dist/cjs/hooks/management/applications/useGetApplication.cjs +0 -35
- package/dist/cjs/hooks/management/applications/useGetApplication.cjs.map +0 -1
- package/dist/cjs/hooks/management/applications/useGetApplications.cjs +0 -36
- package/dist/cjs/hooks/management/applications/useGetApplications.cjs.map +0 -1
- package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs +0 -27
- package/dist/cjs/hooks/management/applications/useUpdateApplication.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs +0 -32
- package/dist/cjs/hooks/management/groups/useAddGroupMembers.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useCreateGroup.cjs +0 -26
- package/dist/cjs/hooks/management/groups/useCreateGroup.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs +0 -30
- package/dist/cjs/hooks/management/groups/useDeleteGroup.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useGetGroup.cjs +0 -30
- package/dist/cjs/hooks/management/groups/useGetGroup.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs +0 -40
- package/dist/cjs/hooks/management/groups/useGetGroupMembers.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useGetGroups.cjs +0 -31
- package/dist/cjs/hooks/management/groups/useGetGroups.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs +0 -32
- package/dist/cjs/hooks/management/groups/useRemoveGroupMembers.cjs.map +0 -1
- package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs +0 -31
- package/dist/cjs/hooks/management/groups/useUpdateGroup.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs +0 -27
- package/dist/cjs/hooks/management/roles/useAddRoleAssignments.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useCreateRole.cjs +0 -26
- package/dist/cjs/hooks/management/roles/useCreateRole.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useDeleteRole.cjs +0 -26
- package/dist/cjs/hooks/management/roles/useDeleteRole.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useGetRole.cjs +0 -30
- package/dist/cjs/hooks/management/roles/useGetRole.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs +0 -42
- package/dist/cjs/hooks/management/roles/useGetRoleAssignments.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useGetRoles.cjs +0 -31
- package/dist/cjs/hooks/management/roles/useGetRoles.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs +0 -27
- package/dist/cjs/hooks/management/roles/useRemoveRoleAssignments.cjs.map +0 -1
- package/dist/cjs/hooks/management/roles/useUpdateRole.cjs +0 -27
- package/dist/cjs/hooks/management/roles/useUpdateRole.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useCreateUser.cjs +0 -26
- package/dist/cjs/hooks/management/users/useCreateUser.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useDeleteUser.cjs +0 -26
- package/dist/cjs/hooks/management/users/useDeleteUser.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useGetUser.cjs +0 -30
- package/dist/cjs/hooks/management/users/useGetUser.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useGetUserGroups.cjs +0 -41
- package/dist/cjs/hooks/management/users/useGetUserGroups.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useGetUserTypes.cjs +0 -31
- package/dist/cjs/hooks/management/users/useGetUserTypes.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useGetUsers.cjs +0 -38
- package/dist/cjs/hooks/management/users/useGetUsers.cjs.map +0 -1
- package/dist/cjs/hooks/management/users/useUpdateUser.cjs +0 -27
- package/dist/cjs/hooks/management/users/useUpdateUser.cjs.map +0 -1
- package/dist/hooks/management/agents/useCreateAgent.d.ts +0 -11
- package/dist/hooks/management/agents/useCreateAgent.d.ts.map +0 -1
- package/dist/hooks/management/agents/useCreateAgent.js +0 -24
- package/dist/hooks/management/agents/useCreateAgent.js.map +0 -1
- package/dist/hooks/management/agents/useDeleteAgent.d.ts +0 -10
- package/dist/hooks/management/agents/useDeleteAgent.d.ts.map +0 -1
- package/dist/hooks/management/agents/useDeleteAgent.js +0 -24
- package/dist/hooks/management/agents/useDeleteAgent.js.map +0 -1
- package/dist/hooks/management/agents/useGetAgent.d.ts +0 -12
- package/dist/hooks/management/agents/useGetAgent.d.ts.map +0 -1
- package/dist/hooks/management/agents/useGetAgent.js +0 -28
- package/dist/hooks/management/agents/useGetAgent.js.map +0 -1
- package/dist/hooks/management/agents/useGetAgentGroups.d.ts +0 -16
- package/dist/hooks/management/agents/useGetAgentGroups.d.ts.map +0 -1
- package/dist/hooks/management/agents/useGetAgentGroups.js +0 -39
- package/dist/hooks/management/agents/useGetAgentGroups.js.map +0 -1
- package/dist/hooks/management/agents/useGetAgentRoles.d.ts +0 -17
- package/dist/hooks/management/agents/useGetAgentRoles.d.ts.map +0 -1
- package/dist/hooks/management/agents/useGetAgentRoles.js +0 -40
- package/dist/hooks/management/agents/useGetAgentRoles.js.map +0 -1
- package/dist/hooks/management/agents/useGetAgentTypes.d.ts +0 -15
- package/dist/hooks/management/agents/useGetAgentTypes.d.ts.map +0 -1
- package/dist/hooks/management/agents/useGetAgentTypes.js +0 -29
- package/dist/hooks/management/agents/useGetAgentTypes.js.map +0 -1
- package/dist/hooks/management/agents/useGetAgents.d.ts +0 -23
- package/dist/hooks/management/agents/useGetAgents.d.ts.map +0 -1
- package/dist/hooks/management/agents/useGetAgents.js +0 -31
- package/dist/hooks/management/agents/useGetAgents.js.map +0 -1
- package/dist/hooks/management/agents/useUpdateAgent.d.ts +0 -18
- package/dist/hooks/management/agents/useUpdateAgent.d.ts.map +0 -1
- package/dist/hooks/management/agents/useUpdateAgent.js +0 -25
- package/dist/hooks/management/agents/useUpdateAgent.js.map +0 -1
- package/dist/hooks/management/applications/useCreateApplication.d.ts +0 -16
- package/dist/hooks/management/applications/useCreateApplication.d.ts.map +0 -1
- package/dist/hooks/management/applications/useCreateApplication.js +0 -29
- package/dist/hooks/management/applications/useCreateApplication.js.map +0 -1
- package/dist/hooks/management/applications/useDeleteApplication.d.ts +0 -10
- package/dist/hooks/management/applications/useDeleteApplication.d.ts.map +0 -1
- package/dist/hooks/management/applications/useDeleteApplication.js +0 -24
- package/dist/hooks/management/applications/useDeleteApplication.js.map +0 -1
- package/dist/hooks/management/applications/useGetApplication.d.ts +0 -17
- package/dist/hooks/management/applications/useGetApplication.d.ts.map +0 -1
- package/dist/hooks/management/applications/useGetApplication.js +0 -33
- package/dist/hooks/management/applications/useGetApplication.js.map +0 -1
- package/dist/hooks/management/applications/useGetApplications.d.ts +0 -24
- package/dist/hooks/management/applications/useGetApplications.d.ts.map +0 -1
- package/dist/hooks/management/applications/useGetApplications.js +0 -34
- package/dist/hooks/management/applications/useGetApplications.js.map +0 -1
- package/dist/hooks/management/applications/useUpdateApplication.d.ts +0 -18
- package/dist/hooks/management/applications/useUpdateApplication.d.ts.map +0 -1
- package/dist/hooks/management/applications/useUpdateApplication.js +0 -25
- package/dist/hooks/management/applications/useUpdateApplication.js.map +0 -1
- package/dist/hooks/management/groups/useAddGroupMembers.d.ts +0 -24
- package/dist/hooks/management/groups/useAddGroupMembers.d.ts.map +0 -1
- package/dist/hooks/management/groups/useAddGroupMembers.js +0 -30
- package/dist/hooks/management/groups/useAddGroupMembers.js.map +0 -1
- package/dist/hooks/management/groups/useCreateGroup.d.ts +0 -11
- package/dist/hooks/management/groups/useCreateGroup.d.ts.map +0 -1
- package/dist/hooks/management/groups/useCreateGroup.js +0 -24
- package/dist/hooks/management/groups/useCreateGroup.js.map +0 -1
- package/dist/hooks/management/groups/useDeleteGroup.d.ts +0 -10
- package/dist/hooks/management/groups/useDeleteGroup.d.ts.map +0 -1
- package/dist/hooks/management/groups/useDeleteGroup.js +0 -28
- package/dist/hooks/management/groups/useDeleteGroup.js.map +0 -1
- package/dist/hooks/management/groups/useGetGroup.d.ts +0 -12
- package/dist/hooks/management/groups/useGetGroup.d.ts.map +0 -1
- package/dist/hooks/management/groups/useGetGroup.js +0 -28
- package/dist/hooks/management/groups/useGetGroup.js.map +0 -1
- package/dist/hooks/management/groups/useGetGroupMembers.d.ts +0 -20
- package/dist/hooks/management/groups/useGetGroupMembers.d.ts.map +0 -1
- package/dist/hooks/management/groups/useGetGroupMembers.js +0 -38
- package/dist/hooks/management/groups/useGetGroupMembers.js.map +0 -1
- package/dist/hooks/management/groups/useGetGroups.d.ts +0 -19
- package/dist/hooks/management/groups/useGetGroups.d.ts.map +0 -1
- package/dist/hooks/management/groups/useGetGroups.js +0 -29
- package/dist/hooks/management/groups/useGetGroups.js.map +0 -1
- package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts +0 -12
- package/dist/hooks/management/groups/useRemoveGroupMembers.d.ts.map +0 -1
- package/dist/hooks/management/groups/useRemoveGroupMembers.js +0 -30
- package/dist/hooks/management/groups/useRemoveGroupMembers.js.map +0 -1
- package/dist/hooks/management/groups/useUpdateGroup.d.ts +0 -24
- package/dist/hooks/management/groups/useUpdateGroup.d.ts.map +0 -1
- package/dist/hooks/management/groups/useUpdateGroup.js +0 -29
- package/dist/hooks/management/groups/useUpdateGroup.js.map +0 -1
- package/dist/hooks/management/roles/useAddRoleAssignments.d.ts +0 -24
- package/dist/hooks/management/roles/useAddRoleAssignments.d.ts.map +0 -1
- package/dist/hooks/management/roles/useAddRoleAssignments.js +0 -25
- package/dist/hooks/management/roles/useAddRoleAssignments.js.map +0 -1
- package/dist/hooks/management/roles/useCreateRole.d.ts +0 -11
- package/dist/hooks/management/roles/useCreateRole.d.ts.map +0 -1
- package/dist/hooks/management/roles/useCreateRole.js +0 -24
- package/dist/hooks/management/roles/useCreateRole.js.map +0 -1
- package/dist/hooks/management/roles/useDeleteRole.d.ts +0 -10
- package/dist/hooks/management/roles/useDeleteRole.d.ts.map +0 -1
- package/dist/hooks/management/roles/useDeleteRole.js +0 -24
- package/dist/hooks/management/roles/useDeleteRole.js.map +0 -1
- package/dist/hooks/management/roles/useGetRole.d.ts +0 -12
- package/dist/hooks/management/roles/useGetRole.d.ts.map +0 -1
- package/dist/hooks/management/roles/useGetRole.js +0 -28
- package/dist/hooks/management/roles/useGetRole.js.map +0 -1
- package/dist/hooks/management/roles/useGetRoleAssignments.d.ts +0 -24
- package/dist/hooks/management/roles/useGetRoleAssignments.d.ts.map +0 -1
- package/dist/hooks/management/roles/useGetRoleAssignments.js +0 -40
- package/dist/hooks/management/roles/useGetRoleAssignments.js.map +0 -1
- package/dist/hooks/management/roles/useGetRoles.d.ts +0 -19
- package/dist/hooks/management/roles/useGetRoles.d.ts.map +0 -1
- package/dist/hooks/management/roles/useGetRoles.js +0 -29
- package/dist/hooks/management/roles/useGetRoles.js.map +0 -1
- package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts +0 -11
- package/dist/hooks/management/roles/useRemoveRoleAssignments.d.ts.map +0 -1
- package/dist/hooks/management/roles/useRemoveRoleAssignments.js +0 -25
- package/dist/hooks/management/roles/useRemoveRoleAssignments.js.map +0 -1
- package/dist/hooks/management/roles/useUpdateRole.d.ts +0 -24
- package/dist/hooks/management/roles/useUpdateRole.d.ts.map +0 -1
- package/dist/hooks/management/roles/useUpdateRole.js +0 -25
- package/dist/hooks/management/roles/useUpdateRole.js.map +0 -1
- package/dist/hooks/management/users/useCreateUser.d.ts +0 -11
- package/dist/hooks/management/users/useCreateUser.d.ts.map +0 -1
- package/dist/hooks/management/users/useCreateUser.js +0 -24
- package/dist/hooks/management/users/useCreateUser.js.map +0 -1
- package/dist/hooks/management/users/useDeleteUser.d.ts +0 -10
- package/dist/hooks/management/users/useDeleteUser.d.ts.map +0 -1
- package/dist/hooks/management/users/useDeleteUser.js +0 -24
- package/dist/hooks/management/users/useDeleteUser.js.map +0 -1
- package/dist/hooks/management/users/useGetUser.d.ts +0 -12
- package/dist/hooks/management/users/useGetUser.d.ts.map +0 -1
- package/dist/hooks/management/users/useGetUser.js +0 -28
- package/dist/hooks/management/users/useGetUser.js.map +0 -1
- package/dist/hooks/management/users/useGetUserGroups.d.ts +0 -16
- package/dist/hooks/management/users/useGetUserGroups.d.ts.map +0 -1
- package/dist/hooks/management/users/useGetUserGroups.js +0 -39
- package/dist/hooks/management/users/useGetUserGroups.js.map +0 -1
- package/dist/hooks/management/users/useGetUserTypes.d.ts +0 -15
- package/dist/hooks/management/users/useGetUserTypes.d.ts.map +0 -1
- package/dist/hooks/management/users/useGetUserTypes.js +0 -29
- package/dist/hooks/management/users/useGetUserTypes.js.map +0 -1
- package/dist/hooks/management/users/useGetUsers.d.ts +0 -17
- package/dist/hooks/management/users/useGetUsers.d.ts.map +0 -1
- package/dist/hooks/management/users/useGetUsers.js +0 -36
- package/dist/hooks/management/users/useGetUsers.js.map +0 -1
- package/dist/hooks/management/users/useUpdateUser.d.ts +0 -18
- package/dist/hooks/management/users/useUpdateUser.d.ts.map +0 -1
- package/dist/hooks/management/users/useUpdateUser.js +0 -25
- package/dist/hooks/management/users/useUpdateUser.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"AgentCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,EASN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAwB,MAAM,OAAO,CAAC;AAChD,OAAwB,EAAwB,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAO/F,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IAChH;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAgDrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
|
|
3
|
+
import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
|
|
4
|
+
import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
|
|
4
5
|
import useDefaultOuId_default from "../shared/useDefaultOuId.js";
|
|
5
6
|
import BaseAgentCreate_default from "./BaseAgentCreate.js";
|
|
6
|
-
import { toManagementErrorMessage } from "@thunderid/browser";
|
|
7
|
+
import { AgentQueryKeys, createAgent, getAgentTypes, toManagementErrorMessage } from "@thunderid/browser";
|
|
7
8
|
import { useMemo } from "react";
|
|
8
9
|
import { jsx } from "react/jsx-runtime";
|
|
9
10
|
|
|
@@ -19,8 +20,18 @@ import { jsx } from "react/jsx-runtime";
|
|
|
19
20
|
const AgentCreate = ({ onCreated, ouId, owner, preferences,...rest }) => {
|
|
20
21
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
21
22
|
const resolvedOuId = useDefaultOuId_default(ouId);
|
|
22
|
-
const
|
|
23
|
-
const
|
|
23
|
+
const agentsEndpoint = useManagementEndpoint_default("agents");
|
|
24
|
+
const agentTypesEndpoint = useManagementEndpoint_default("agentTypes");
|
|
25
|
+
const { data: agentTypes } = useResourceQuery_default([AgentQueryKeys.AGENT_TYPES, { limit: 100 }], (fetcher) => getAgentTypes({
|
|
26
|
+
...agentTypesEndpoint,
|
|
27
|
+
fetcher,
|
|
28
|
+
limit: 100
|
|
29
|
+
}));
|
|
30
|
+
const { error, isLoading, mutate } = useResourceMutation_default((payload, fetcher) => createAgent({
|
|
31
|
+
...agentsEndpoint,
|
|
32
|
+
fetcher,
|
|
33
|
+
payload
|
|
34
|
+
}), () => [[AgentQueryKeys.AGENTS]], { onSuccess: onCreated });
|
|
24
35
|
const options = useMemo(() => (agentTypes?.types ?? []).map((agentType) => ({
|
|
25
36
|
label: agentType.displayName,
|
|
26
37
|
value: agentType.handle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCreate.js","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","
|
|
1
|
+
{"version":3,"file":"AgentCreate.js","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","agentsEndpoint: ManagementEndpoint","useManagementEndpoint","agentTypesEndpoint: ManagementEndpoint","useResourceQuery","useResourceMutation","options: SelectOption[]","BaseAgentCreate"],"sources":["../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentType,\n AgentTypeListResponse,\n CreateAgentRequest,\n SelectOption,\n createAgent,\n getAgentTypes,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseAgentCreate, {AgentCreateSubmission, BaseAgentCreateProps} from './BaseAgentCreate';\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';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type AgentCreateProps = Omit<BaseAgentCreateProps, 'agentTypes' | 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created agent.\n */\n onCreated?: (agent: Agent) => void;\n /**\n * Organization unit the agent is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n /**\n * The person responsible for the agent. Defaults to the server's choice, usually the creator.\n */\n owner?: string;\n};\n\n/**\n * Registers an agent through the management API.\n *\n * @example\n * ```tsx\n * <AgentCreate onCreated={(agent) => navigate(`/agents/${agent.id}`)} />\n * ```\n */\nconst AgentCreate: FC<AgentCreateProps> = ({\n onCreated,\n ouId,\n owner,\n preferences,\n ...rest\n}: AgentCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agentTypesEndpoint: ManagementEndpoint = useManagementEndpoint('agentTypes');\n const {data: agentTypes}: ResourceQueryResult<AgentTypeListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENT_TYPES, {limit: 100}],\n (fetcher) => getAgentTypes({...agentTypesEndpoint, fetcher, limit: 100}),\n );\n const {error, isLoading, mutate}: ResourceMutationResult<Agent, CreateAgentRequest> = useResourceMutation(\n (payload: CreateAgentRequest, fetcher) => createAgent({...agentsEndpoint, fetcher, payload}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onCreated},\n );\n\n const options: SelectOption[] = useMemo(\n () =>\n (agentTypes?.types ?? []).map((agentType: AgentType) => ({\n label: agentType.displayName,\n value: agentType.handle,\n })),\n [agentTypes],\n );\n\n const handleSubmit = ({description, name, type}: AgentCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({description, name, ouId: resolvedOuId, owner, type});\n }\n };\n\n return (\n <BaseAgentCreate\n agentTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.agents.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,eAAqC,EACzC,WACA,MACA,OACA,YACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,uBAAe,KAAK;CAC7D,MAAMC,iBAAqCC,8BAAsB,SAAS;CAC1E,MAAMC,qBAAyCD,8BAAsB,aAAa;CAClF,MAAM,EAAC,MAAM,eAA0DE,yBACrE,CAAC,eAAe,aAAa,EAAC,OAAO,KAAI,CAAC,GACzC,YAAY,cAAc;EAAC,GAAG;EAAoB;EAAS,OAAO;EAAI,CAAC,CACzE;CACD,MAAM,EAAC,OAAO,WAAW,WAA6DC,6BACnF,SAA6B,YAAY,YAAY;EAAC,GAAG;EAAgB;EAAS;EAAQ,CAAC,QACtF,CAAC,CAAC,eAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAMC,UAA0B,eAE3B,YAAY,SAAS,EAAE,EAAE,KAAK,eAA0B;EACvD,OAAO,UAAU;EACjB,OAAO,UAAU;EAClB,EAAE,EACL,CAAC,WAAW,CACb;CAED,MAAM,gBAAgB,EAAC,aAAa,MAAM,WAAuC;AAC/E,MAAI,aACF,CAAK,OAAO;GAAC;GAAa;GAAM,MAAM;GAAc;GAAO;GAAK,CAAC;;AAIrE,QACE,oBAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,eAAe,yBAAyB,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAC,EAAE,EAAe,MAAM,OAAO,CAAC;AACvC,OAAyB,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAM3E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,qBAAqB,EACrB,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CACjF,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA8CvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import useGetAgentRoles_default from "../../../hooks/management/agents/useGetAgentRoles.js";
|
|
2
|
+
import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
|
|
3
|
+
import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
|
|
4
|
+
import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
|
|
6
5
|
import BaseAgentDetails_default from "./BaseAgentDetails.js";
|
|
7
|
-
import { toManagementErrorMessage } from "@thunderid/browser";
|
|
6
|
+
import { AgentQueryKeys, GroupQueryKeys, RoleQueryKeys, deleteAgent, getAgent, getAgentGroups, getAgentRoles, toManagementErrorMessage } from "@thunderid/browser";
|
|
8
7
|
import { jsx } from "react/jsx-runtime";
|
|
9
8
|
|
|
10
9
|
//#region src/components/admin/AgentDetails/AgentDetails.tsx
|
|
@@ -19,10 +18,39 @@ import { jsx } from "react/jsx-runtime";
|
|
|
19
18
|
*/
|
|
20
19
|
const AgentDetails = ({ agentId, deletable = false, onDeleted, preferences,...rest }) => {
|
|
21
20
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
const endpoint = useManagementEndpoint_default("agents");
|
|
22
|
+
const agent = useResourceQuery_default([AgentQueryKeys.AGENT, agentId], (fetcher) => getAgent({
|
|
23
|
+
...endpoint,
|
|
24
|
+
agentId,
|
|
25
|
+
fetcher
|
|
26
|
+
}), { enabled: Boolean(agentId) });
|
|
27
|
+
const groups = useResourceQuery_default([
|
|
28
|
+
GroupQueryKeys.MEMBERSHIPS,
|
|
29
|
+
"agent",
|
|
30
|
+
agentId,
|
|
31
|
+
{ limit: 100 }
|
|
32
|
+
], (fetcher) => getAgentGroups({
|
|
33
|
+
...endpoint,
|
|
34
|
+
agentId,
|
|
35
|
+
fetcher,
|
|
36
|
+
limit: 100
|
|
37
|
+
}), { enabled: Boolean(agentId) });
|
|
38
|
+
const roles = useResourceQuery_default([
|
|
39
|
+
RoleQueryKeys.ROLE_ASSIGNMENTS,
|
|
40
|
+
"agent",
|
|
41
|
+
agentId,
|
|
42
|
+
{ limit: 100 }
|
|
43
|
+
], (fetcher) => getAgentRoles({
|
|
44
|
+
...endpoint,
|
|
45
|
+
agentId,
|
|
46
|
+
fetcher,
|
|
47
|
+
limit: 100
|
|
48
|
+
}), { enabled: Boolean(agentId) });
|
|
49
|
+
const deletion = useResourceMutation_default((id, fetcher) => deleteAgent({
|
|
50
|
+
...endpoint,
|
|
51
|
+
agentId: id,
|
|
52
|
+
fetcher
|
|
53
|
+
}), () => [[AgentQueryKeys.AGENTS]], { onSuccess: onDeleted });
|
|
26
54
|
return /* @__PURE__ */ jsx(BaseAgentDetails_default, {
|
|
27
55
|
agent: agent.data,
|
|
28
56
|
groups: groups.data?.groups,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetails.js","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","
|
|
1
|
+
{"version":3,"file":"AgentDetails.js","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","agent: ResourceQueryResult<Agent>","useResourceQuery","groups: ResourceQueryResult<MembershipGroupListResponse>","roles: ResourceQueryResult<AgentRoleListResponse>","deletion: ResourceMutationResult<void, string>","useResourceMutation","BaseAgentDetails"],"sources":["../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentRoleListResponse,\n GroupQueryKeys,\n MembershipGroupListResponse,\n RoleQueryKeys,\n deleteAgent,\n getAgent,\n getAgentGroups,\n getAgentRoles,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement} from 'react';\nimport BaseAgentDetails, {BaseAgentDetailsProps} from './BaseAgentDetails';\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 AgentDetailsProps = Omit<\n BaseAgentDetailsProps,\n 'agent' | 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'onDelete' | 'roles'\n> & {\n agentId: string;\n /**\n * Whether the agent can be deleted from this view.\n * @default false\n */\n deletable?: boolean;\n /**\n * Called after the agent has been deleted.\n */\n onDeleted?: () => void;\n};\n\n/**\n * Shows an agent with the groups and roles it holds, and optionally lets the signed-in user delete\n * it.\n *\n * @example\n * ```tsx\n * <AgentDetails agentId={agentId} deletable onDeleted={() => navigate('/agents')} />\n * ```\n */\nconst AgentDetails: FC<AgentDetailsProps> = ({\n agentId,\n deletable = false,\n onDeleted,\n preferences,\n ...rest\n}: AgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const endpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agent: ResourceQueryResult<Agent> = useResourceQuery(\n [AgentQueryKeys.AGENT, agentId],\n (fetcher) => getAgent({...endpoint, agentId, fetcher}),\n {enabled: Boolean(agentId)},\n );\n const groups: ResourceQueryResult<MembershipGroupListResponse> = useResourceQuery(\n [GroupQueryKeys.MEMBERSHIPS, 'agent', agentId, {limit: 100}],\n (fetcher) => getAgentGroups({...endpoint, agentId, fetcher, limit: 100}),\n {enabled: Boolean(agentId)},\n );\n const roles: ResourceQueryResult<AgentRoleListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, 'agent', agentId, {limit: 100}],\n (fetcher) => getAgentRoles({...endpoint, agentId, fetcher, limit: 100}),\n {enabled: Boolean(agentId)},\n );\n const deletion: ResourceMutationResult<void, string> = useResourceMutation(\n (id: string, fetcher) => deleteAgent({...endpoint, agentId: id, fetcher}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onDeleted},\n );\n\n return (\n <BaseAgentDetails\n agent={agent.data}\n groups={groups.data?.groups}\n roles={roles.data?.roles}\n isLoading={agent.isLoading}\n error={\n toManagementErrorMessage(t, agent.error, 'admin.agents.details.error') ??\n toManagementErrorMessage(t, deletion.error, 'admin.agents.details.delete.error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(agentId) : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgDA,MAAMA,gBAAuC,EAC3C,SACA,YAAY,OACZ,WACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,8BAAsB,SAAS;CACpE,MAAMC,QAAoCC,yBACxC,CAAC,eAAe,OAAO,QAAQ,GAC9B,YAAY,SAAS;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,EACtD,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,SAA2DD,yBAC/D;EAAC,eAAe;EAAa;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC3D,YAAY,eAAe;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACxE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAME,QAAoDF,yBACxD;EAAC,cAAc;EAAkB;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC/D,YAAY,cAAc;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACvE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMG,WAAiDC,6BACpD,IAAY,YAAY,YAAY;EAAC,GAAG;EAAU,SAAS;EAAI;EAAQ,CAAC,QACnE,CAAC,CAAC,eAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;AAED,QACE,oBAACC;EACC,OAAO,MAAM;EACb,QAAQ,OAAO,MAAM;EACrB,OAAO,MAAM,MAAM;EACnB,WAAW,MAAM;EACjB,OACE,yBAAyB,GAAG,MAAM,OAAO,6BAA6B,IACtE,yBAAyB,GAAG,SAAS,OAAO,oCAAoC;EAElF,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,QAAQ,GAAG;EACrD;EACb,GAAI;GACJ;;AAIN,2BAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentList.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentList/AgentList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentList.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentList/AgentList.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAC,EAAE,EAAyB,MAAM,OAAO,CAAC;AACjD,OAAsB,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAMlE,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,kBAAkB,EAClB,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,CACtG,GAAG;IACF;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAyCjC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
2
|
-
import
|
|
2
|
+
import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
|
|
3
|
+
import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
|
|
3
4
|
import BaseAgentList_default from "./BaseAgentList.js";
|
|
4
|
-
import { toEqualityFilter, toManagementErrorMessage } from "@thunderid/browser";
|
|
5
|
+
import { AgentQueryKeys, getAgents, toEqualityFilter, toManagementErrorMessage } from "@thunderid/browser";
|
|
5
6
|
import { useState } from "react";
|
|
6
7
|
import { jsx } from "react/jsx-runtime";
|
|
7
8
|
|
|
@@ -22,11 +23,19 @@ const AgentList = ({ limit = 20, preferences, searchable = true, searchAttribute
|
|
|
22
23
|
label: t("admin.agents.list.search.name"),
|
|
23
24
|
value: "name"
|
|
24
25
|
}];
|
|
25
|
-
const
|
|
26
|
-
|
|
26
|
+
const endpoint = useManagementEndpoint_default("agents");
|
|
27
|
+
const filter = search ? toEqualityFilter(search.attribute, search.value) : void 0;
|
|
28
|
+
const { data, error, isLoading } = useResourceQuery_default([AgentQueryKeys.AGENTS, {
|
|
29
|
+
filter,
|
|
27
30
|
limit,
|
|
28
31
|
offset
|
|
29
|
-
})
|
|
32
|
+
}], (fetcher) => getAgents({
|
|
33
|
+
...endpoint,
|
|
34
|
+
fetcher,
|
|
35
|
+
filter,
|
|
36
|
+
limit,
|
|
37
|
+
offset
|
|
38
|
+
}));
|
|
30
39
|
return /* @__PURE__ */ jsx(BaseAgentList_default, {
|
|
31
40
|
agents: data?.agents ?? [],
|
|
32
41
|
totalResults: data?.totalResults,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentList.js","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","
|
|
1
|
+
{"version":3,"file":"AgentList.js","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","endpoint: ManagementEndpoint","useManagementEndpoint","filter: string | undefined","useResourceQuery","BaseAgentList"],"sources":["../../../../src/components/admin/AgentList/AgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AgentListResponse,\n AgentQueryKeys,\n SelectOption,\n getAgents,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseAgentList, {BaseAgentListProps} from './BaseAgentList';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport {AdminSearchValue} from '../shared/AdminSearch';\n\nexport type AgentListProps = Omit<\n BaseAgentListProps,\n 'agents' | 'error' | 'isLoading' | 'offset' | 'onPageChange' | 'onSearch' | 'search' | 'totalResults'\n> & {\n /**\n * Whether to show the search form. Agents are searched by a custom attribute, by default `name`, and\n * the server matches the whole value.\n * @default true\n */\n searchable?: boolean;\n};\n\n/**\n * Lists the agents the signed-in user is allowed to see, a page at a time.\n *\n * @example\n * ```tsx\n * <AgentList onSelect={(agent) => setSelectedAgentId(agent.id)} />\n * ```\n */\nconst AgentList: FC<AgentListProps> = ({\n limit = 20,\n preferences,\n searchable = true,\n searchAttributes,\n ...rest\n}: AgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [offset, setOffset] = useState<number>(0);\n const [search, setSearch] = useState<AdminSearchValue | null>(null);\n const attributes: SelectOption[] = searchAttributes ?? [{label: t('admin.agents.list.search.name'), value: 'name'}];\n const endpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const filter: string | undefined = search ? toEqualityFilter(search.attribute, search.value) : undefined;\n const {data, error, isLoading}: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {filter, limit, offset}],\n (fetcher) => getAgents({...endpoint, fetcher, filter, limit, offset}),\n );\n\n return (\n <BaseAgentList\n agents={data?.agents ?? []}\n totalResults={data?.totalResults}\n isLoading={isLoading}\n error={toManagementErrorMessage(t, error, 'admin.agents.list.error')}\n limit={limit}\n offset={offset}\n onPageChange={setOffset}\n search={search}\n searchAttributes={attributes}\n onSearch={\n searchable\n ? (next: AdminSearchValue | null): void => {\n setSearch(next);\n setOffset(0);\n }\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentList;\n"],"mappings":";;;;;;;;;;;;;;;;;AAsCA,MAAMA,aAAiC,EACrC,QAAQ,IACR,aACA,aAAa,MACb,iBACA,GAAG,WAC+B;CAClC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,aAAa,SAAiB,EAAE;CAC/C,MAAM,CAAC,QAAQ,aAAa,SAAkC,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CAAC;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAO,CAAC;CACnH,MAAMC,WAA+BC,8BAAsB,SAAS;CACpE,MAAMC,SAA6B,SAAS,iBAAiB,OAAO,WAAW,OAAO,MAAM,GAAG;CAC/F,MAAM,EAAC,MAAM,OAAO,cAAqDC,yBACvE,CAAC,eAAe,QAAQ;EAAC;EAAQ;EAAO;EAAO,CAAC,GAC/C,YAAY,UAAU;EAAC,GAAG;EAAU;EAAS;EAAQ;EAAO;EAAO,CAAC,CACtE;AAED,QACE,oBAACC;EACC,QAAQ,MAAM,UAAU,EAAE;EAC1B,cAAc,MAAM;EACT;EACX,OAAO,yBAAyB,GAAG,OAAO,0BAA0B;EAC7D;EACC;EACR,cAAc;EACN;EACR,kBAAkB;EAClB,UACE,cACK,SAAwC;AACvC,aAAU,KAAK;AACf,aAAU,EAAE;MAEd;EAEO;EACb,GAAI;GACJ;;AAIN,wBAAe"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Application } from '@thunderid/browser';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
import { BaseApplicationCreateProps } from './BaseApplicationCreate';
|
|
4
|
+
export type ApplicationCreateProps = Omit<BaseApplicationCreateProps, 'clientSecret' | 'error' | 'isSubmitting' | 'onSecretDismiss' | 'onSubmit'> & {
|
|
5
|
+
/**
|
|
6
|
+
* Called with the created application. When the server returned a client secret, it is called once
|
|
7
|
+
* the user has copied the secret, since the secret cannot be read again.
|
|
8
|
+
*/
|
|
9
|
+
onCreated?: (application: Application) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Organization unit the application is created in. Defaults to the signed-in user's organization unit.
|
|
12
|
+
*/
|
|
13
|
+
ouId?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Creates an application with an OAuth client through the management API, and shows its client
|
|
17
|
+
* secret once when the server returns one.
|
|
18
|
+
*
|
|
19
|
+
* The server guards applications with the root `system` permission, for reading and for changes alike;
|
|
20
|
+
* it defines no application-specific permission. Gate the view and its actions on it with
|
|
21
|
+
* `useGrantedPermissions().can('system')`.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <ApplicationCreate onCreated={(application) => navigate(`/applications/${application.id}`)} />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
declare const ApplicationCreate: FC<ApplicationCreateProps>;
|
|
29
|
+
export default ApplicationCreate;
|
|
30
|
+
//# sourceMappingURL=ApplicationCreate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApplicationCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/ApplicationCreate/ApplicationCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAOZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAyB,MAAM,OAAO,CAAC;AACjD,OAA8B,EAA8B,0BAA0B,EAAC,MAAM,yBAAyB,CAAC;AAMvH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,0BAA0B,EAC1B,cAAc,GAAG,OAAO,GAAG,cAAc,GAAG,iBAAiB,GAAG,UAAU,CAC3E,GAAG;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAyDjD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
2
|
+
import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
|
|
3
|
+
import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
|
|
4
|
+
import useDefaultOuId_default from "../shared/useDefaultOuId.js";
|
|
5
|
+
import BaseApplicationCreate_default from "./BaseApplicationCreate.js";
|
|
6
|
+
import { ApplicationQueryKeys, createApplication, getApplicationClientSecret, toCreateApplicationRequest, toManagementErrorMessage } from "@thunderid/browser";
|
|
7
|
+
import { useState } from "react";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
|
|
10
|
+
//#region src/components/admin/ApplicationCreate/ApplicationCreate.tsx
|
|
11
|
+
/**
|
|
12
|
+
* Creates an application with an OAuth client through the management API, and shows its client
|
|
13
|
+
* secret once when the server returns one.
|
|
14
|
+
*
|
|
15
|
+
* The server guards applications with the root `system` permission, for reading and for changes alike;
|
|
16
|
+
* it defines no application-specific permission. Gate the view and its actions on it with
|
|
17
|
+
* `useGrantedPermissions().can('system')`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <ApplicationCreate onCreated={(application) => navigate(`/applications/${application.id}`)} />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const ApplicationCreate = ({ onCreated, ouId, preferences,...rest }) => {
|
|
25
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
26
|
+
const resolvedOuId = useDefaultOuId_default(ouId);
|
|
27
|
+
const endpoint = useManagementEndpoint_default("applications");
|
|
28
|
+
const [created, setCreated] = useState(null);
|
|
29
|
+
const [formKey, setFormKey] = useState(0);
|
|
30
|
+
const { error, isLoading, mutate } = useResourceMutation_default((payload, fetcher) => createApplication({
|
|
31
|
+
...endpoint,
|
|
32
|
+
fetcher,
|
|
33
|
+
payload
|
|
34
|
+
}), () => [[ApplicationQueryKeys.APPLICATIONS]], { onSuccess: (application) => {
|
|
35
|
+
const secret = getApplicationClientSecret(application);
|
|
36
|
+
if (secret) setCreated({
|
|
37
|
+
application,
|
|
38
|
+
secret
|
|
39
|
+
});
|
|
40
|
+
else onCreated?.(application);
|
|
41
|
+
} });
|
|
42
|
+
const handleSubmit = (submission) => {
|
|
43
|
+
if (resolvedOuId) mutate(toCreateApplicationRequest(submission, resolvedOuId));
|
|
44
|
+
};
|
|
45
|
+
const handleSecretDismiss = () => {
|
|
46
|
+
if (created) {
|
|
47
|
+
setCreated(null);
|
|
48
|
+
setFormKey((key) => key + 1);
|
|
49
|
+
onCreated?.(created.application);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
return /* @__PURE__ */ jsx(BaseApplicationCreate_default, {
|
|
53
|
+
onSubmit: handleSubmit,
|
|
54
|
+
isSubmitting: isLoading,
|
|
55
|
+
clientSecret: created?.secret ?? null,
|
|
56
|
+
onSecretDismiss: handleSecretDismiss,
|
|
57
|
+
error: resolvedOuId ? toManagementErrorMessage(t, error, "admin.applications.create.error") : t("admin.common.errors.no_ou"),
|
|
58
|
+
preferences,
|
|
59
|
+
...rest
|
|
60
|
+
}, formKey);
|
|
61
|
+
};
|
|
62
|
+
var ApplicationCreate_default = ApplicationCreate;
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
export { ApplicationCreate_default as default };
|
|
66
|
+
//# sourceMappingURL=ApplicationCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApplicationCreate.js","names":["ApplicationCreate: FC<ApplicationCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","endpoint: ManagementEndpoint","useManagementEndpoint","useResourceMutation","secret: string | undefined","BaseApplicationCreate"],"sources":["../../../../src/components/admin/ApplicationCreate/ApplicationCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Application,\n ApplicationQueryKeys,\n createApplication,\n CreateApplicationRequest,\n getApplicationClientSecret,\n toCreateApplicationRequest,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\nimport BaseApplicationCreate, {ApplicationCreateSubmission, BaseApplicationCreateProps} from './BaseApplicationCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type ApplicationCreateProps = Omit<\n BaseApplicationCreateProps,\n 'clientSecret' | 'error' | 'isSubmitting' | 'onSecretDismiss' | 'onSubmit'\n> & {\n /**\n * Called with the created application. When the server returned a client secret, it is called once\n * the user has copied the secret, since the secret cannot be read again.\n */\n onCreated?: (application: Application) => void;\n /**\n * Organization unit the application is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n};\n\n/**\n * Creates an application with an OAuth client through the management API, and shows its client\n * secret once when the server returns one.\n *\n * The server guards applications with the root `system` permission, for reading and for changes alike;\n * it defines no application-specific permission. Gate the view and its actions on it with\n * `useGrantedPermissions().can('system')`.\n *\n * @example\n * ```tsx\n * <ApplicationCreate onCreated={(application) => navigate(`/applications/${application.id}`)} />\n * ```\n */\nconst ApplicationCreate: FC<ApplicationCreateProps> = ({\n onCreated,\n ouId,\n preferences,\n ...rest\n}: ApplicationCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const endpoint: ManagementEndpoint = useManagementEndpoint('applications');\n const [created, setCreated] = useState<{application: Application; secret: string} | null>(null);\n const [formKey, setFormKey] = useState<number>(0);\n const {error, isLoading, mutate}: ResourceMutationResult<Application, CreateApplicationRequest> = useResourceMutation(\n (payload: CreateApplicationRequest, fetcher) => createApplication({...endpoint, fetcher, payload}),\n () => [[ApplicationQueryKeys.APPLICATIONS]],\n {\n onSuccess: (application: Application): void => {\n const secret: string | undefined = getApplicationClientSecret(application);\n\n if (secret) {\n setCreated({application, secret});\n } else {\n onCreated?.(application);\n }\n },\n },\n );\n\n const handleSubmit = (submission: ApplicationCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate(toCreateApplicationRequest(submission, resolvedOuId));\n }\n };\n\n const handleSecretDismiss = (): void => {\n if (created) {\n setCreated(null);\n setFormKey((key: number) => key + 1);\n onCreated?.(created.application);\n }\n };\n\n return (\n <BaseApplicationCreate\n key={formKey}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n clientSecret={created?.secret ?? null}\n onSecretDismiss={handleSecretDismiss}\n error={\n resolvedOuId\n ? toManagementErrorMessage(t, error, 'admin.applications.create.error')\n : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default ApplicationCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAMA,qBAAiD,EACrD,WACA,MACA,YACA,GAAG,WACuC;CAC1C,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,uBAAe,KAAK;CAC7D,MAAMC,WAA+BC,8BAAsB,eAAe;CAC1E,MAAM,CAAC,SAAS,cAAc,SAA4D,KAAK;CAC/F,MAAM,CAAC,SAAS,cAAc,SAAiB,EAAE;CACjD,MAAM,EAAC,OAAO,WAAW,WAAyEC,6BAC/F,SAAmC,YAAY,kBAAkB;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,QAC5F,CAAC,CAAC,qBAAqB,aAAa,CAAC,EAC3C,EACE,YAAY,gBAAmC;EAC7C,MAAMC,SAA6B,2BAA2B,YAAY;AAE1E,MAAI,OACF,YAAW;GAAC;GAAa;GAAO,CAAC;MAEjC,aAAY,YAAY;IAG7B,CACF;CAED,MAAM,gBAAgB,eAAkD;AACtE,MAAI,aACF,CAAK,OAAO,2BAA2B,YAAY,aAAa,CAAC;;CAIrE,MAAM,4BAAkC;AACtC,MAAI,SAAS;AACX,cAAW,KAAK;AAChB,eAAY,QAAgB,MAAM,EAAE;AACpC,eAAY,QAAQ,YAAY;;;AAIpC,QACE,oBAACC;EAEC,UAAU;EACV,cAAc;EACd,cAAc,SAAS,UAAU;EACjC,iBAAiB;EACjB,OACE,eACI,yBAAyB,GAAG,OAAO,kCAAkC,GACrE,EAAE,4BAA4B;EAEvB;EACb,GAAI;IAXC,QAYL;;AAIN,gCAAe"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ApplicationSubmission, Preferences, SelectOption } from '@thunderid/browser';
|
|
2
|
+
import { FC, ReactNode } from 'react';
|
|
3
|
+
import { ApplicationFormValues, ApplicationTextField } from '../shared/ApplicationFormFields';
|
|
4
|
+
/**
|
|
5
|
+
* The application {@link BaseApplicationCreate} submits. The organization unit is added by the caller.
|
|
6
|
+
*/
|
|
7
|
+
export type ApplicationCreateSubmission = ApplicationSubmission;
|
|
8
|
+
/**
|
|
9
|
+
* What {@link BaseApplicationCreate} hands its `children` render function, so the form can be built with any UI.
|
|
10
|
+
*/
|
|
11
|
+
export interface BaseApplicationCreateRenderProps {
|
|
12
|
+
/**
|
|
13
|
+
* The client secret of the application just created, to show once. `null` while there is none.
|
|
14
|
+
*/
|
|
15
|
+
clientSecret: string | null;
|
|
16
|
+
error: string | null;
|
|
17
|
+
/**
|
|
18
|
+
* The grant types to choose from, with translated labels.
|
|
19
|
+
*/
|
|
20
|
+
grantTypeOptions: SelectOption[];
|
|
21
|
+
/**
|
|
22
|
+
* Sets the chosen grant types.
|
|
23
|
+
*/
|
|
24
|
+
handleGrantTypesChange: (grantTypes: string[]) => void;
|
|
25
|
+
/**
|
|
26
|
+
* Sets one text field of the form. `redirectUris` takes URIs separated by commas.
|
|
27
|
+
*/
|
|
28
|
+
handleInputChange: (field: ApplicationTextField, value: string) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Sets whether the client is public.
|
|
31
|
+
*/
|
|
32
|
+
handlePublicClientChange: (publicClient: boolean) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Submits the current values. Does nothing while they are not valid.
|
|
35
|
+
*/
|
|
36
|
+
handleSubmit: () => void;
|
|
37
|
+
isSubmitting: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the values can be submitted.
|
|
40
|
+
*/
|
|
41
|
+
isValid: boolean;
|
|
42
|
+
onCancel?: () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Hides the client secret once it has been copied. Undefined while there is no secret.
|
|
45
|
+
*/
|
|
46
|
+
onSecretDismiss?: () => void;
|
|
47
|
+
values: ApplicationFormValues;
|
|
48
|
+
}
|
|
49
|
+
export interface BaseApplicationCreateProps {
|
|
50
|
+
/**
|
|
51
|
+
* Renders custom UI in place of the default form. Receives the values, their setters, the grant
|
|
52
|
+
* types, the submit handler, the submission state and the client secret to show.
|
|
53
|
+
*/
|
|
54
|
+
children?: (props: BaseApplicationCreateRenderProps) => ReactNode;
|
|
55
|
+
className?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The client secret of the application just created. When set, the form gives way to the secret,
|
|
58
|
+
* which can be read only this once, until `onSecretDismiss` clears it.
|
|
59
|
+
*/
|
|
60
|
+
clientSecret?: string | null;
|
|
61
|
+
description?: string;
|
|
62
|
+
error?: string | null;
|
|
63
|
+
isSubmitting?: boolean;
|
|
64
|
+
onCancel?: () => void;
|
|
65
|
+
/**
|
|
66
|
+
* Called when the user has copied the client secret.
|
|
67
|
+
*/
|
|
68
|
+
onSecretDismiss?: () => void;
|
|
69
|
+
onSubmit: (application: ApplicationCreateSubmission) => void;
|
|
70
|
+
preferences?: Preferences;
|
|
71
|
+
title?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A form that collects a new application's name, description, links and OAuth basics: redirect URIs,
|
|
75
|
+
* grant types and whether the client is public. Holds no data of its own: handle the submission, and
|
|
76
|
+
* pass back the client secret the server returned to show it once.
|
|
77
|
+
*/
|
|
78
|
+
declare const BaseApplicationCreate: FC<BaseApplicationCreateProps>;
|
|
79
|
+
export default BaseApplicationCreate;
|
|
80
|
+
//# sourceMappingURL=BaseApplicationCreate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseApplicationCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,qBAAqB,EAIrB,WAAW,EACX,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAA2B,SAAS,EAAW,MAAM,OAAO,CAAC;AAOvE,OAA8B,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAGnH;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC;;OAEG;IACH,sBAAsB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvD;;OAEG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,wBAAwB,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D;;OAEG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,SAAS,CAAC;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,WAAW,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAqHzD,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import useTheme_default from "../../../contexts/Theme/useTheme.js";
|
|
2
|
+
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
3
|
+
import Button_default from "../../primitives/Button/Button.js";
|
|
4
|
+
import Alert_default from "../../primitives/Alert/Alert.js";
|
|
5
|
+
import AdminSection_styles_default from "../shared/AdminSection.styles.js";
|
|
6
|
+
import AdminSection_default from "../shared/AdminSection.js";
|
|
7
|
+
import ApplicationFormFields_default from "../shared/ApplicationFormFields.js";
|
|
8
|
+
import ClientSecretNotice_default from "../shared/ClientSecretNotice.js";
|
|
9
|
+
import { APPLICATION_GRANT_TYPES, DEFAULT_APPLICATION_GRANT_TYPES, isApplicationSubmissionValid, parseRedirectUris } from "@thunderid/browser";
|
|
10
|
+
import { useState } from "react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
|
|
13
|
+
//#region src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx
|
|
14
|
+
/**
|
|
15
|
+
* A form that collects a new application's name, description, links and OAuth basics: redirect URIs,
|
|
16
|
+
* grant types and whether the client is public. Holds no data of its own: handle the submission, and
|
|
17
|
+
* pass back the client secret the server returned to show it once.
|
|
18
|
+
*/
|
|
19
|
+
const BaseApplicationCreate = ({ children, className, clientSecret = null, description, error = null, isSubmitting = false, onCancel, onSecretDismiss, onSubmit, preferences, title }) => {
|
|
20
|
+
const { theme, colorScheme } = useTheme_default();
|
|
21
|
+
const styles = AdminSection_styles_default(theme, colorScheme);
|
|
22
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
23
|
+
const [values, setValues] = useState({
|
|
24
|
+
description: "",
|
|
25
|
+
grantTypes: [...DEFAULT_APPLICATION_GRANT_TYPES],
|
|
26
|
+
logoUrl: "",
|
|
27
|
+
name: "",
|
|
28
|
+
publicClient: false,
|
|
29
|
+
redirectUris: "",
|
|
30
|
+
url: ""
|
|
31
|
+
});
|
|
32
|
+
const submission = {
|
|
33
|
+
description: values.description.trim() || void 0,
|
|
34
|
+
grantTypes: values.grantTypes,
|
|
35
|
+
logoUrl: values.logoUrl.trim() || void 0,
|
|
36
|
+
name: values.name.trim(),
|
|
37
|
+
publicClient: values.publicClient,
|
|
38
|
+
redirectUris: parseRedirectUris(values.redirectUris),
|
|
39
|
+
url: values.url.trim() || void 0
|
|
40
|
+
};
|
|
41
|
+
const isValid = isApplicationSubmissionValid(submission);
|
|
42
|
+
const setInput = (field, value) => setValues((previous) => ({
|
|
43
|
+
...previous,
|
|
44
|
+
[field]: value
|
|
45
|
+
}));
|
|
46
|
+
const setGrantTypes = (grantTypes) => setValues((previous) => ({
|
|
47
|
+
...previous,
|
|
48
|
+
grantTypes
|
|
49
|
+
}));
|
|
50
|
+
const setPublicClient = (publicClient) => setValues((previous) => ({
|
|
51
|
+
...previous,
|
|
52
|
+
publicClient
|
|
53
|
+
}));
|
|
54
|
+
const submit = () => {
|
|
55
|
+
if (isValid && !isSubmitting) onSubmit(submission);
|
|
56
|
+
};
|
|
57
|
+
const handleSubmit = (event) => {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
submit();
|
|
60
|
+
};
|
|
61
|
+
if (children) return /* @__PURE__ */ jsx("div", {
|
|
62
|
+
className,
|
|
63
|
+
children: children({
|
|
64
|
+
clientSecret,
|
|
65
|
+
error,
|
|
66
|
+
grantTypeOptions: APPLICATION_GRANT_TYPES.map((grantType) => ({
|
|
67
|
+
label: t(`admin.applications.grant_types.${grantType}`),
|
|
68
|
+
value: grantType
|
|
69
|
+
})),
|
|
70
|
+
handleGrantTypesChange: setGrantTypes,
|
|
71
|
+
handleInputChange: setInput,
|
|
72
|
+
handlePublicClientChange: setPublicClient,
|
|
73
|
+
handleSubmit: submit,
|
|
74
|
+
isSubmitting,
|
|
75
|
+
isValid,
|
|
76
|
+
onCancel,
|
|
77
|
+
onSecretDismiss: clientSecret ? onSecretDismiss : void 0,
|
|
78
|
+
values
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
return /* @__PURE__ */ jsx(AdminSection_default, {
|
|
82
|
+
block: "application-create",
|
|
83
|
+
className,
|
|
84
|
+
title: title ?? t("admin.applications.create.title"),
|
|
85
|
+
description,
|
|
86
|
+
preferences,
|
|
87
|
+
children: clientSecret ? /* @__PURE__ */ jsx(ClientSecretNotice_default, {
|
|
88
|
+
secret: clientSecret,
|
|
89
|
+
onDismiss: onSecretDismiss,
|
|
90
|
+
preferences
|
|
91
|
+
}) : /* @__PURE__ */ jsxs("form", {
|
|
92
|
+
className: styles["form"],
|
|
93
|
+
onSubmit: handleSubmit,
|
|
94
|
+
noValidate: true,
|
|
95
|
+
children: [
|
|
96
|
+
error && /* @__PURE__ */ jsx(Alert_default, {
|
|
97
|
+
variant: "error",
|
|
98
|
+
role: "alert",
|
|
99
|
+
children: error
|
|
100
|
+
}),
|
|
101
|
+
/* @__PURE__ */ jsx(ApplicationFormFields_default, {
|
|
102
|
+
preferences,
|
|
103
|
+
values,
|
|
104
|
+
onInputChange: setInput,
|
|
105
|
+
onGrantTypesChange: setGrantTypes,
|
|
106
|
+
onPublicClientChange: setPublicClient
|
|
107
|
+
}),
|
|
108
|
+
/* @__PURE__ */ jsxs("div", {
|
|
109
|
+
className: styles["formActions"],
|
|
110
|
+
children: [onCancel && /* @__PURE__ */ jsx(Button_default, {
|
|
111
|
+
type: "button",
|
|
112
|
+
variant: "text",
|
|
113
|
+
onClick: onCancel,
|
|
114
|
+
disabled: isSubmitting,
|
|
115
|
+
children: t("admin.common.actions.cancel")
|
|
116
|
+
}), /* @__PURE__ */ jsx(Button_default, {
|
|
117
|
+
type: "submit",
|
|
118
|
+
loading: isSubmitting,
|
|
119
|
+
disabled: !isValid || isSubmitting,
|
|
120
|
+
children: t("admin.applications.create.submit")
|
|
121
|
+
})]
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
var BaseApplicationCreate_default = BaseApplicationCreate;
|
|
128
|
+
|
|
129
|
+
//#endregion
|
|
130
|
+
export { BaseApplicationCreate_default as default };
|
|
131
|
+
//# sourceMappingURL=BaseApplicationCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseApplicationCreate.js","names":["BaseApplicationCreate: FC<BaseApplicationCreateProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","submission: ApplicationCreateSubmission","isValid: boolean","AdminSection","ClientSecretNotice","Alert","ApplicationFormFields","Button"],"sources":["../../../../src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n APPLICATION_GRANT_TYPES,\n ApplicationSubmission,\n DEFAULT_APPLICATION_GRANT_TYPES,\n isApplicationSubmissionValid,\n parseRedirectUris,\n Preferences,\n SelectOption,\n} from '@thunderid/browser';\nimport {FC, FormEvent, ReactElement, ReactNode, useState} from 'react';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport Button from '../../primitives/Button/Button';\nimport AdminSection from '../shared/AdminSection';\nimport useStyles from '../shared/AdminSection.styles';\nimport ApplicationFormFields, {ApplicationFormValues, ApplicationTextField} from '../shared/ApplicationFormFields';\nimport ClientSecretNotice from '../shared/ClientSecretNotice';\n\n/**\n * The application {@link BaseApplicationCreate} submits. The organization unit is added by the caller.\n */\nexport type ApplicationCreateSubmission = ApplicationSubmission;\n\n/**\n * What {@link BaseApplicationCreate} hands its `children` render function, so the form can be built with any UI.\n */\nexport interface BaseApplicationCreateRenderProps {\n /**\n * The client secret of the application just created, to show once. `null` while there is none.\n */\n clientSecret: string | null;\n error: string | null;\n /**\n * The grant types to choose from, with translated labels.\n */\n grantTypeOptions: SelectOption[];\n /**\n * Sets the chosen grant types.\n */\n handleGrantTypesChange: (grantTypes: string[]) => void;\n /**\n * Sets one text field of the form. `redirectUris` takes URIs separated by commas.\n */\n handleInputChange: (field: ApplicationTextField, value: string) => void;\n /**\n * Sets whether the client is public.\n */\n handlePublicClientChange: (publicClient: boolean) => void;\n /**\n * Submits the current values. Does nothing while they are not valid.\n */\n handleSubmit: () => void;\n isSubmitting: boolean;\n /**\n * Whether the values can be submitted.\n */\n isValid: boolean;\n onCancel?: () => void;\n /**\n * Hides the client secret once it has been copied. Undefined while there is no secret.\n */\n onSecretDismiss?: () => void;\n values: ApplicationFormValues;\n}\n\nexport interface BaseApplicationCreateProps {\n /**\n * Renders custom UI in place of the default form. Receives the values, their setters, the grant\n * types, the submit handler, the submission state and the client secret to show.\n */\n children?: (props: BaseApplicationCreateRenderProps) => ReactNode;\n className?: string;\n /**\n * The client secret of the application just created. When set, the form gives way to the secret,\n * which can be read only this once, until `onSecretDismiss` clears it.\n */\n clientSecret?: string | null;\n description?: string;\n error?: string | null;\n isSubmitting?: boolean;\n onCancel?: () => void;\n /**\n * Called when the user has copied the client secret.\n */\n onSecretDismiss?: () => void;\n onSubmit: (application: ApplicationCreateSubmission) => void;\n preferences?: Preferences;\n title?: string;\n}\n\n/**\n * A form that collects a new application's name, description, links and OAuth basics: redirect URIs,\n * grant types and whether the client is public. Holds no data of its own: handle the submission, and\n * pass back the client secret the server returned to show it once.\n */\nconst BaseApplicationCreate: FC<BaseApplicationCreateProps> = ({\n children,\n className,\n clientSecret = null,\n description,\n error = null,\n isSubmitting = false,\n onCancel,\n onSecretDismiss,\n onSubmit,\n preferences,\n title,\n}: BaseApplicationCreateProps): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const {t} = useTranslation(preferences?.i18n);\n const [values, setValues] = useState<ApplicationFormValues>({\n description: '',\n grantTypes: [...DEFAULT_APPLICATION_GRANT_TYPES],\n logoUrl: '',\n name: '',\n publicClient: false,\n redirectUris: '',\n url: '',\n });\n\n const submission: ApplicationCreateSubmission = {\n description: values.description.trim() || undefined,\n grantTypes: values.grantTypes,\n logoUrl: values.logoUrl.trim() || undefined,\n name: values.name.trim(),\n publicClient: values.publicClient,\n redirectUris: parseRedirectUris(values.redirectUris),\n url: values.url.trim() || undefined,\n };\n const isValid: boolean = isApplicationSubmissionValid(submission);\n\n const setInput = (field: ApplicationTextField, value: string): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, [field]: value}));\n const setGrantTypes = (grantTypes: string[]): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, grantTypes}));\n const setPublicClient = (publicClient: boolean): void =>\n setValues((previous: ApplicationFormValues) => ({...previous, publicClient}));\n\n const submit = (): void => {\n if (isValid && !isSubmitting) {\n onSubmit(submission);\n }\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>): void => {\n event.preventDefault();\n submit();\n };\n\n if (children) {\n return (\n <div className={className}>\n {children({\n clientSecret,\n error,\n grantTypeOptions: APPLICATION_GRANT_TYPES.map((grantType: string) => ({\n label: t(`admin.applications.grant_types.${grantType}`),\n value: grantType,\n })),\n handleGrantTypesChange: setGrantTypes,\n handleInputChange: setInput,\n handlePublicClientChange: setPublicClient,\n handleSubmit: submit,\n isSubmitting,\n isValid,\n onCancel,\n onSecretDismiss: clientSecret ? onSecretDismiss : undefined,\n values,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"application-create\"\n className={className}\n title={title ?? t('admin.applications.create.title')}\n description={description}\n preferences={preferences}\n >\n {clientSecret ? (\n <ClientSecretNotice secret={clientSecret} onDismiss={onSecretDismiss} preferences={preferences} />\n ) : (\n <form className={styles['form']} onSubmit={handleSubmit} noValidate>\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <ApplicationFormFields\n preferences={preferences}\n values={values}\n onInputChange={setInput}\n onGrantTypesChange={setGrantTypes}\n onPublicClientChange={setPublicClient}\n />\n <div className={styles['formActions']}>\n {onCancel && (\n <Button type=\"button\" variant=\"text\" onClick={onCancel} disabled={isSubmitting}>\n {t('admin.common.actions.cancel')}\n </Button>\n )}\n <Button type=\"submit\" loading={isSubmitting} disabled={!isValid || isSubmitting}>\n {t('admin.applications.create.submit')}\n </Button>\n </div>\n </form>\n )}\n </AdminSection>\n );\n};\n\nexport default BaseApplicationCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmGA,MAAMA,yBAAyD,EAC7D,UACA,WACA,eAAe,MACf,aACA,QAAQ,MACR,eAAe,OACf,UACA,iBACA,UACA,aACA,YAC8C;CAC9C,MAAM,EAAC,OAAO,gBAAeC,kBAAU;CACvC,MAAMC,SAAiCC,4BAAU,OAAO,YAAY;CACpE,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,aAAa,SAAgC;EAC1D,aAAa;EACb,YAAY,CAAC,GAAG,gCAAgC;EAChD,SAAS;EACT,MAAM;EACN,cAAc;EACd,cAAc;EACd,KAAK;EACN,CAAC;CAEF,MAAMC,aAA0C;EAC9C,aAAa,OAAO,YAAY,MAAM,IAAI;EAC1C,YAAY,OAAO;EACnB,SAAS,OAAO,QAAQ,MAAM,IAAI;EAClC,MAAM,OAAO,KAAK,MAAM;EACxB,cAAc,OAAO;EACrB,cAAc,kBAAkB,OAAO,aAAa;EACpD,KAAK,OAAO,IAAI,MAAM,IAAI;EAC3B;CACD,MAAMC,UAAmB,6BAA6B,WAAW;CAEjE,MAAM,YAAY,OAA6B,UAC7C,WAAW,cAAqC;EAAC,GAAG;GAAW,QAAQ;EAAM,EAAE;CACjF,MAAM,iBAAiB,eACrB,WAAW,cAAqC;EAAC,GAAG;EAAU;EAAW,EAAE;CAC7E,MAAM,mBAAmB,iBACvB,WAAW,cAAqC;EAAC,GAAG;EAAU;EAAa,EAAE;CAE/E,MAAM,eAAqB;AACzB,MAAI,WAAW,CAAC,aACd,UAAS,WAAW;;CAIxB,MAAM,gBAAgB,UAA4C;AAChE,QAAM,gBAAgB;AACtB,UAAQ;;AAGV,KAAI,SACF,QACE,oBAAC;EAAe;YACb,SAAS;GACR;GACA;GACA,kBAAkB,wBAAwB,KAAK,eAAuB;IACpE,OAAO,EAAE,kCAAkC,YAAY;IACvD,OAAO;IACR,EAAE;GACH,wBAAwB;GACxB,mBAAmB;GACnB,0BAA0B;GAC1B,cAAc;GACd;GACA;GACA;GACA,iBAAiB,eAAe,kBAAkB;GAClD;GACD,CAAC;GACE;AAIV,QACE,oBAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,kCAAkC;EACvC;EACA;YAEZ,eACC,oBAACC;GAAmB,QAAQ;GAAc,WAAW;GAA8B;IAAe,GAElG,qBAAC;GAAK,WAAW,OAAO;GAAS,UAAU;GAAc;;IACtD,SACC,oBAACC;KAAM,SAAQ;KAAQ,MAAK;eACzB;MACK;IAEV,oBAACC;KACc;KACL;KACR,eAAe;KACf,oBAAoB;KACpB,sBAAsB;MACtB;IACF,qBAAC;KAAI,WAAW,OAAO;gBACpB,YACC,oBAACC;MAAO,MAAK;MAAS,SAAQ;MAAO,SAAS;MAAU,UAAU;gBAC/D,EAAE,8BAA8B;OAC1B,EAEX,oBAACA;MAAO,MAAK;MAAS,SAAS;MAAc,UAAU,CAAC,WAAW;gBAChE,EAAE,mCAAmC;OAC/B;MACL;;IACD;GAEI;;AAInB,oCAAe"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { BaseApplicationDetailsProps } from './BaseApplicationDetails';
|
|
3
|
+
export type ApplicationDetailsProps = Omit<BaseApplicationDetailsProps, 'application' | 'clientSecret' | 'error' | 'isDeleting' | 'isLoading' | 'isRegeneratingSecret' | 'isUpdating' | 'onDelete' | 'onRegenerateSecret' | 'onSecretDismiss' | 'onUpdate'> & {
|
|
4
|
+
applicationId: string;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the application can be deleted from this view.
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
deletable?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the application's general fields, redirect URIs and grant types can be edited from this view.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
editable?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Called after the application has been deleted.
|
|
17
|
+
*/
|
|
18
|
+
onDeleted?: () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the application's client secret can be regenerated from this view. The new secret is shown
|
|
21
|
+
* once.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
secretRegenerable?: boolean;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Shows an application and its OAuth configuration, and optionally lets the signed-in user edit it,
|
|
28
|
+
* regenerate its client secret or delete it.
|
|
29
|
+
*
|
|
30
|
+
* The server guards applications with the root `system` permission, for reading and for changes alike;
|
|
31
|
+
* it defines no application-specific permission. Gate the view and its actions on it with
|
|
32
|
+
* `useGrantedPermissions().can('system')`.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const {can} = useGrantedPermissions();
|
|
37
|
+
* const isAdmin = can('system');
|
|
38
|
+
*
|
|
39
|
+
* <ApplicationDetails
|
|
40
|
+
* applicationId={applicationId}
|
|
41
|
+
* editable={isAdmin}
|
|
42
|
+
* deletable={isAdmin}
|
|
43
|
+
* secretRegenerable={isAdmin}
|
|
44
|
+
* onDeleted={() => navigate('/applications')}
|
|
45
|
+
* />
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
declare const ApplicationDetails: FC<ApplicationDetailsProps>;
|
|
49
|
+
export default ApplicationDetails;
|
|
50
|
+
//# sourceMappingURL=ApplicationDetails.d.ts.map
|