@thunderid/react 1.7.0 → 1.9.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/account/UserProfile/BaseUserProfile.cjs +1 -1
- 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 +49 -10
- package/dist/cjs/components/admin/AgentDetails/AgentDetails.cjs.map +1 -1
- package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs +25 -7
- package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.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 +95 -0
- package/dist/cjs/components/admin/ApplicationDetails/ApplicationDetails.cjs.map +1 -0
- package/dist/cjs/components/admin/ApplicationDetails/BaseApplicationDetails.cjs +255 -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 +49 -11
- package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +1 -1
- package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs +50 -15
- 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/BaseUserDetails.cjs +32 -14
- package/dist/cjs/components/admin/UserDetails/BaseUserDetails.cjs.map +1 -1
- package/dist/cjs/components/admin/UserDetails/UserDetails.cjs +45 -10
- 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/AccountLifecycleParts.cjs +105 -0
- package/dist/cjs/components/admin/shared/AccountLifecycleParts.cjs.map +1 -0
- 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/AcceptInvite/BaseAcceptInvite.cjs +4 -5
- package/dist/cjs/components/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -1
- package/dist/cjs/components/auth/InviteUser/InviteUser.cjs +1 -1
- package/dist/cjs/components/auth/SignIn/SignIn.cjs +5 -5
- package/dist/cjs/components/auth/SignIn/SignIn.cjs.map +1 -1
- package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs +4 -5
- package/dist/cjs/components/auth/flow/AuthOptionFactory.cjs.map +1 -1
- package/dist/cjs/components/auth/flow/Consent.cjs +53 -28
- package/dist/cjs/components/auth/flow/Consent.cjs.map +1 -1
- package/dist/cjs/components/auth/flow/ConsentAuthorizationDetail.cjs +104 -0
- package/dist/cjs/components/auth/flow/ConsentAuthorizationDetail.cjs.map +1 -0
- package/dist/cjs/components/auth/flow/ConsentAuthorizationDetail.styles.cjs +59 -0
- package/dist/cjs/components/auth/flow/ConsentAuthorizationDetail.styles.cjs.map +1 -0
- package/dist/cjs/components/auth/flow/ConsentDetailField.cjs +171 -0
- package/dist/cjs/components/auth/flow/ConsentDetailField.cjs.map +1 -0
- package/dist/cjs/components/auth/flow/ConsentDetailField.styles.cjs +85 -0
- package/dist/cjs/components/auth/flow/ConsentDetailField.styles.cjs.map +1 -0
- package/dist/cjs/components/auth/flow/ConsentDetailText.cjs +63 -0
- package/dist/cjs/components/auth/flow/ConsentDetailText.cjs.map +1 -0
- package/dist/cjs/components/auth/flow/ConsentDetailText.styles.cjs +83 -0
- package/dist/cjs/components/auth/flow/ConsentDetailText.styles.cjs.map +1 -0
- package/dist/cjs/components/auth/flow/FieldFactory.cjs +1 -1
- package/dist/cjs/components/auth/flow/resolveConsentText.cjs +25 -0
- package/dist/cjs/components/auth/flow/resolveConsentText.cjs.map +1 -0
- package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.cjs +1 -1
- package/dist/cjs/components/primitives/MultiInput/MultiInput.cjs +1 -1
- package/dist/cjs/components/primitives/PasswordField/PasswordField.cjs +1 -1
- package/dist/cjs/hooks/auth/useConsentDetailField.cjs +357 -0
- package/dist/cjs/hooks/auth/useConsentDetailField.cjs.map +1 -0
- package/dist/cjs/hooks/management/useAccountLifecycle.cjs +59 -0
- package/dist/cjs/hooks/management/useAccountLifecycle.cjs.map +1 -0
- 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 +1130 -187
- package/dist/cjs/utils/formatConsentDetailValue.cjs +26 -0
- package/dist/cjs/utils/formatConsentDetailValue.cjs.map +1 -0
- package/dist/cjs/utils/getConsentDetailLayout.cjs +44 -0
- package/dist/cjs/utils/getConsentDetailLayout.cjs.map +1 -0
- package/dist/cjs/utils/getConsentDetailListDisplay.cjs +30 -0
- package/dist/cjs/utils/getConsentDetailListDisplay.cjs.map +1 -0
- package/dist/cjs/utils/isConsentApprovalBlocked.cjs +41 -0
- package/dist/cjs/utils/isConsentApprovalBlocked.cjs.map +1 -0
- package/dist/cjs/utils/isConsentDetailPlainList.cjs +24 -0
- package/dist/cjs/utils/isConsentDetailPlainList.cjs.map +1 -0
- package/dist/cjs/utils/isConsentDetailStructured.cjs +15 -0
- package/dist/cjs/utils/isConsentDetailStructured.cjs.map +1 -0
- package/dist/cjs/utils/isConsentDetailTextClamped.cjs +25 -0
- package/dist/cjs/utils/isConsentDetailTextClamped.cjs.map +1 -0
- package/dist/components/account/UserProfile/BaseUserProfile.js +1 -1
- 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 +8 -1
- package/dist/components/admin/AgentDetails/AgentDetails.d.ts.map +1 -1
- package/dist/components/admin/AgentDetails/AgentDetails.js +50 -11
- package/dist/components/admin/AgentDetails/AgentDetails.js.map +1 -1
- package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts +21 -1
- package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts.map +1 -1
- package/dist/components/admin/AgentDetails/BaseAgentDetails.js +25 -7
- package/dist/components/admin/AgentDetails/BaseAgentDetails.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 +64 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.d.ts.map +1 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.js +92 -0
- package/dist/components/admin/ApplicationDetails/ApplicationDetails.js.map +1 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts +111 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.d.ts.map +1 -0
- package/dist/components/admin/ApplicationDetails/BaseApplicationDetails.js +251 -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 +7 -0
- package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +1 -1
- package/dist/components/admin/GroupMembers/GroupMembers.js +50 -12
- package/dist/components/admin/GroupMembers/GroupMembers.js.map +1 -1
- package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts +7 -0
- package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +1 -1
- package/dist/components/admin/RoleAssignments/RoleAssignments.js +51 -16
- 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/BaseUserDetails.d.ts +22 -1
- package/dist/components/admin/UserDetails/BaseUserDetails.d.ts.map +1 -1
- package/dist/components/admin/UserDetails/BaseUserDetails.js +32 -14
- package/dist/components/admin/UserDetails/BaseUserDetails.js.map +1 -1
- package/dist/components/admin/UserDetails/UserDetails.d.ts +15 -1
- package/dist/components/admin/UserDetails/UserDetails.d.ts.map +1 -1
- package/dist/components/admin/UserDetails/UserDetails.js +46 -11
- 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/AccountLifecycleParts.d.ts +32 -0
- package/dist/components/admin/shared/AccountLifecycleParts.d.ts.map +1 -0
- package/dist/components/admin/shared/AccountLifecycleParts.js +101 -0
- package/dist/components/admin/shared/AccountLifecycleParts.js.map +1 -0
- 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/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -1
- package/dist/components/auth/AcceptInvite/BaseAcceptInvite.js +5 -6
- package/dist/components/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -1
- package/dist/components/auth/InviteUser/InviteUser.js +1 -1
- package/dist/components/auth/SignIn/SignIn.d.ts.map +1 -1
- package/dist/components/auth/SignIn/SignIn.js +6 -6
- package/dist/components/auth/SignIn/SignIn.js.map +1 -1
- package/dist/components/auth/flow/AuthOptionFactory.d.ts.map +1 -1
- package/dist/components/auth/flow/AuthOptionFactory.js +5 -6
- package/dist/components/auth/flow/AuthOptionFactory.js.map +1 -1
- package/dist/components/auth/flow/Consent.d.ts +6 -0
- package/dist/components/auth/flow/Consent.d.ts.map +1 -1
- package/dist/components/auth/flow/Consent.js +54 -29
- package/dist/components/auth/flow/Consent.js.map +1 -1
- package/dist/components/auth/flow/ConsentAuthorizationDetail.d.ts +68 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.d.ts.map +1 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.js +100 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.js.map +1 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.styles.d.ts +10 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.styles.d.ts.map +1 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.styles.js +57 -0
- package/dist/components/auth/flow/ConsentAuthorizationDetail.styles.js.map +1 -0
- package/dist/components/auth/flow/ConsentDetailField.d.ts +39 -0
- package/dist/components/auth/flow/ConsentDetailField.d.ts.map +1 -0
- package/dist/components/auth/flow/ConsentDetailField.js +168 -0
- package/dist/components/auth/flow/ConsentDetailField.js.map +1 -0
- package/dist/components/auth/flow/ConsentDetailField.styles.d.ts +11 -0
- package/dist/components/auth/flow/ConsentDetailField.styles.d.ts.map +1 -0
- package/dist/components/auth/flow/ConsentDetailField.styles.js +83 -0
- package/dist/components/auth/flow/ConsentDetailField.styles.js.map +1 -0
- package/dist/components/auth/flow/ConsentDetailText.d.ts +53 -0
- package/dist/components/auth/flow/ConsentDetailText.d.ts.map +1 -0
- package/dist/components/auth/flow/ConsentDetailText.js +58 -0
- package/dist/components/auth/flow/ConsentDetailText.js.map +1 -0
- package/dist/components/auth/flow/ConsentDetailText.styles.d.ts +20 -0
- package/dist/components/auth/flow/ConsentDetailText.styles.d.ts.map +1 -0
- package/dist/components/auth/flow/ConsentDetailText.styles.js +80 -0
- package/dist/components/auth/flow/ConsentDetailText.styles.js.map +1 -0
- package/dist/components/auth/flow/FieldFactory.js +1 -1
- package/dist/components/auth/flow/resolveConsentText.d.ts +13 -0
- package/dist/components/auth/flow/resolveConsentText.d.ts.map +1 -0
- package/dist/components/auth/flow/resolveConsentText.js +23 -0
- package/dist/components/auth/flow/resolveConsentText.js.map +1 -0
- package/dist/components/primitives/KeyValueInput/KeyValueInput.js +1 -1
- package/dist/components/primitives/MultiInput/MultiInput.js +1 -1
- package/dist/components/primitives/PasswordField/PasswordField.js +1 -1
- package/dist/hooks/auth/useConsentDetailField.d.ts +130 -0
- package/dist/hooks/auth/useConsentDetailField.d.ts.map +1 -0
- package/dist/hooks/auth/useConsentDetailField.js +354 -0
- package/dist/hooks/auth/useConsentDetailField.js.map +1 -0
- package/dist/hooks/management/useAccountLifecycle.d.ts +49 -0
- package/dist/hooks/management/useAccountLifecycle.d.ts.map +1 -0
- package/dist/hooks/management/useAccountLifecycle.js +56 -0
- package/dist/hooks/management/useAccountLifecycle.js.map +1 -0
- 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 +35 -56
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -42
- package/dist/models/config.d.ts +3 -4
- package/dist/models/config.d.ts.map +1 -1
- package/dist/utils/formatConsentDetailValue.d.ts +16 -0
- package/dist/utils/formatConsentDetailValue.d.ts.map +1 -0
- package/dist/utils/formatConsentDetailValue.js +25 -0
- package/dist/utils/formatConsentDetailValue.js.map +1 -0
- package/dist/utils/getConsentDetailLayout.d.ts +32 -0
- package/dist/utils/getConsentDetailLayout.d.ts.map +1 -0
- package/dist/utils/getConsentDetailLayout.js +43 -0
- package/dist/utils/getConsentDetailLayout.js.map +1 -0
- package/dist/utils/getConsentDetailListDisplay.d.ts +30 -0
- package/dist/utils/getConsentDetailListDisplay.d.ts.map +1 -0
- package/dist/utils/getConsentDetailListDisplay.js +30 -0
- package/dist/utils/getConsentDetailListDisplay.js.map +1 -0
- package/dist/utils/isConsentApprovalBlocked.d.ts +17 -0
- package/dist/utils/isConsentApprovalBlocked.d.ts.map +1 -0
- package/dist/utils/isConsentApprovalBlocked.js +39 -0
- package/dist/utils/isConsentApprovalBlocked.js.map +1 -0
- package/dist/utils/isConsentDetailPlainList.d.ts +15 -0
- package/dist/utils/isConsentDetailPlainList.d.ts.map +1 -0
- package/dist/utils/isConsentDetailPlainList.js +23 -0
- package/dist/utils/isConsentDetailPlainList.js.map +1 -0
- package/dist/utils/isConsentDetailStructured.d.ts +10 -0
- package/dist/utils/isConsentDetailStructured.d.ts.map +1 -0
- package/dist/utils/isConsentDetailStructured.js +14 -0
- package/dist/utils/isConsentDetailStructured.js.map +1 -0
- package/dist/utils/isConsentDetailTextClamped.d.ts +20 -0
- package/dist/utils/isConsentDetailTextClamped.d.ts.map +1 -0
- package/dist/utils/isConsentDetailTextClamped.js +24 -0
- package/dist/utils/isConsentDetailTextClamped.js.map +1 -0
- 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
|
@@ -6,9 +6,9 @@ const require_Button = require('../../primitives/Button/Button.cjs');
|
|
|
6
6
|
const require_Typography = require('../../primitives/Typography/Typography.cjs');
|
|
7
7
|
const require_Alert = require('../../primitives/Alert/Alert.cjs');
|
|
8
8
|
const require_Card = require('../../primitives/Card/Card.cjs');
|
|
9
|
+
const require_TextField = require('../../primitives/TextField/TextField.cjs');
|
|
9
10
|
const require_Checkbox = require('../../primitives/Checkbox/Checkbox.cjs');
|
|
10
11
|
const require_DatePicker = require('../../primitives/DatePicker/DatePicker.cjs');
|
|
11
|
-
const require_TextField = require('../../primitives/TextField/TextField.cjs');
|
|
12
12
|
const require_Divider = require('../../primitives/Divider/Divider.cjs');
|
|
13
13
|
const require_BaseUserProfile_styles = require('./BaseUserProfile.styles.cjs');
|
|
14
14
|
const require_getMappedUserProfileValue = require('../../../utils/getMappedUserProfileValue.cjs');
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
3
|
-
const
|
|
4
|
-
const
|
|
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');
|
|
5
6
|
const require_useDefaultOuId = require('../shared/useDefaultOuId.cjs');
|
|
6
7
|
const require_BaseAgentCreate = require('./BaseAgentCreate.cjs');
|
|
7
8
|
let __thunderid_browser = require("@thunderid/browser");
|
|
@@ -23,8 +24,18 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
|
23
24
|
const AgentCreate = ({ onCreated, ouId, owner, preferences,...rest }) => {
|
|
24
25
|
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
25
26
|
const resolvedOuId = require_useDefaultOuId.default(ouId);
|
|
26
|
-
const
|
|
27
|
-
const
|
|
27
|
+
const agentsEndpoint = require_useManagementEndpoint.default("agents");
|
|
28
|
+
const agentTypesEndpoint = require_useManagementEndpoint.default("agentTypes");
|
|
29
|
+
const { data: agentTypes } = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENT_TYPES, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getAgentTypes)({
|
|
30
|
+
...agentTypesEndpoint,
|
|
31
|
+
fetcher,
|
|
32
|
+
limit: 100
|
|
33
|
+
}));
|
|
34
|
+
const { error, isLoading, mutate } = require_useResourceMutation.default((payload, fetcher) => (0, __thunderid_browser.createAgent)({
|
|
35
|
+
...agentsEndpoint,
|
|
36
|
+
fetcher,
|
|
37
|
+
payload
|
|
38
|
+
}), () => [[__thunderid_browser.AgentQueryKeys.AGENTS]], { onSuccess: onCreated });
|
|
28
39
|
const options = (0, react.useMemo)(() => (agentTypes?.types ?? []).map((agentType) => ({
|
|
29
40
|
label: agentType.displayName,
|
|
30
41
|
value: agentType.handle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCreate.cjs","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","
|
|
1
|
+
{"version":3,"file":"AgentCreate.cjs","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","agentsEndpoint: ManagementEndpoint","useManagementEndpoint","agentTypesEndpoint: ManagementEndpoint","useResourceQuery","AgentQueryKeys","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,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,iBAAqCC,sCAAsB,SAAS;CAC1E,MAAMC,qBAAyCD,sCAAsB,aAAa;CAClF,MAAM,EAAC,MAAM,eAA0DE,iCACrE,CAACC,mCAAe,aAAa,EAAC,OAAO,KAAI,CAAC,GACzC,mDAA0B;EAAC,GAAG;EAAoB;EAAS,OAAO;EAAI,CAAC,CACzE;CACD,MAAM,EAAC,OAAO,WAAW,WAA6DC,qCACnF,SAA6B,iDAAwB;EAAC,GAAG;EAAgB;EAAS;EAAQ,CAAC,QACtF,CAAC,CAACD,mCAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAME,oCAED,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,2CAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
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_useAccountLifecycle = require('../../../hooks/management/useAccountLifecycle.cjs');
|
|
7
7
|
const require_BaseAgentDetails = require('./BaseAgentDetails.cjs');
|
|
8
8
|
let __thunderid_browser = require("@thunderid/browser");
|
|
9
9
|
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
@@ -20,20 +20,59 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
|
20
20
|
* <AgentDetails agentId={agentId} deletable onDeleted={() => navigate('/agents')} />
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
const AgentDetails = ({ agentId, deletable = false, onDeleted, preferences,...rest }) => {
|
|
23
|
+
const AgentDetails = ({ agentId, deletable = false, lifecycleActions = false, onDeleted, preferences,...rest }) => {
|
|
24
24
|
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
const endpoint = require_useManagementEndpoint.default("agents");
|
|
26
|
+
const agent = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENT, agentId], (fetcher) => (0, __thunderid_browser.getAgent)({
|
|
27
|
+
...endpoint,
|
|
28
|
+
agentId,
|
|
29
|
+
fetcher
|
|
30
|
+
}), { enabled: Boolean(agentId) });
|
|
31
|
+
const groups = require_useResourceQuery.default([
|
|
32
|
+
__thunderid_browser.GroupQueryKeys.MEMBERSHIPS,
|
|
33
|
+
"agent",
|
|
34
|
+
agentId,
|
|
35
|
+
{ limit: 100 }
|
|
36
|
+
], (fetcher) => (0, __thunderid_browser.getAgentGroups)({
|
|
37
|
+
...endpoint,
|
|
38
|
+
agentId,
|
|
39
|
+
fetcher,
|
|
40
|
+
limit: 100
|
|
41
|
+
}), { enabled: Boolean(agentId) });
|
|
42
|
+
const roles = require_useResourceQuery.default([
|
|
43
|
+
__thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS,
|
|
44
|
+
"agent",
|
|
45
|
+
agentId,
|
|
46
|
+
{ limit: 100 }
|
|
47
|
+
], (fetcher) => (0, __thunderid_browser.getAgentRoles)({
|
|
48
|
+
...endpoint,
|
|
49
|
+
agentId,
|
|
50
|
+
fetcher,
|
|
51
|
+
limit: 100
|
|
52
|
+
}), { enabled: Boolean(agentId) });
|
|
53
|
+
const deletion = require_useResourceMutation.default((id, fetcher) => (0, __thunderid_browser.deleteAgent)({
|
|
54
|
+
...endpoint,
|
|
55
|
+
agentId: id,
|
|
56
|
+
fetcher
|
|
57
|
+
}), () => [[__thunderid_browser.AgentQueryKeys.AGENTS]], { onSuccess: onDeleted });
|
|
58
|
+
const lifecycle = require_useAccountLifecycle.default({
|
|
59
|
+
enabled: lifecycleActions,
|
|
60
|
+
invalidatedKeys: [[__thunderid_browser.AgentQueryKeys.AGENT, agentId], [__thunderid_browser.AgentQueryKeys.AGENTS]],
|
|
61
|
+
kind: "agent",
|
|
62
|
+
status: agent.data?.status?.value,
|
|
63
|
+
subject: agentId
|
|
64
|
+
});
|
|
29
65
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseAgentDetails.default, {
|
|
30
66
|
agent: agent.data,
|
|
31
67
|
groups: groups.data?.groups,
|
|
32
68
|
roles: roles.data?.roles,
|
|
33
69
|
isLoading: agent.isLoading,
|
|
34
|
-
error: (0, __thunderid_browser.toManagementErrorMessage)(t, agent.error, "admin.agents.details.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, deletion.error, "admin.agents.details.delete.error"),
|
|
70
|
+
error: (0, __thunderid_browser.toManagementErrorMessage)(t, agent.error, "admin.agents.details.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, deletion.error, "admin.agents.details.delete.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, lifecycle.error, "admin.common.lifecycle.error") ?? (0, __thunderid_browser.toManagementErrorMessage)(t, lifecycle.loadError, "admin.common.lifecycle.load_error"),
|
|
35
71
|
isDeleting: deletion.isLoading,
|
|
36
72
|
onDelete: deletable ? () => void deletion.mutate(agentId) : void 0,
|
|
73
|
+
lifecycleActions: lifecycle.actions,
|
|
74
|
+
isRunningLifecycleAction: lifecycle.isRunning,
|
|
75
|
+
onLifecycleAction: lifecycleActions ? lifecycle.run : void 0,
|
|
37
76
|
preferences,
|
|
38
77
|
...rest
|
|
39
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetails.cjs","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","
|
|
1
|
+
{"version":3,"file":"AgentDetails.cjs","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","agent: ResourceQueryResult<Agent>","useResourceQuery","AgentQueryKeys","groups: ResourceQueryResult<MembershipGroupListResponse>","GroupQueryKeys","roles: ResourceQueryResult<AgentRoleListResponse>","RoleQueryKeys","deletion: ResourceMutationResult<void, string>","useResourceMutation","lifecycle: AccountLifecycleState","useAccountLifecycle","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 useAccountLifecycle, {AccountLifecycleState} from '../../../hooks/management/useAccountLifecycle';\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'\n | 'error'\n | 'groups'\n | 'isDeleting'\n | 'isLoading'\n | 'isRunningLifecycleAction'\n | 'lifecycleActions'\n | 'onDelete'\n | 'onLifecycleAction'\n | '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 * Whether the agent can be suspended, unsuspended and unlocked from this view. Each action runs through its\n * administration flow and is offered only when the server configures that flow. Reading the configured\n * flows needs a token that may read the server configuration.\n * @default false\n */\n lifecycleActions?: 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 lifecycleActions = 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 const lifecycle: AccountLifecycleState = useAccountLifecycle({\n enabled: lifecycleActions,\n invalidatedKeys: [[AgentQueryKeys.AGENT, agentId], [AgentQueryKeys.AGENTS]],\n kind: 'agent',\n status: agent.data?.status?.value,\n subject: agentId,\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 toManagementErrorMessage(t, lifecycle.error, 'admin.common.lifecycle.error') ??\n toManagementErrorMessage(t, lifecycle.loadError, 'admin.common.lifecycle.load_error')\n }\n isDeleting={deletion.isLoading}\n onDelete={deletable ? (): void => void deletion.mutate(agentId) : undefined}\n lifecycleActions={lifecycle.actions}\n isRunningLifecycleAction={lifecycle.isRunning}\n onLifecycleAction={lifecycleActions ? lifecycle.run : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiEA,MAAMA,gBAAuC,EAC3C,SACA,YAAY,OACZ,mBAAmB,OACnB,WACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,sCAAsB,SAAS;CACpE,MAAMC,QAAoCC,iCACxC,CAACC,mCAAe,OAAO,QAAQ,GAC9B,8CAAqB;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,EACtD,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,SAA2DF,iCAC/D;EAACG,mCAAe;EAAa;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC3D,oDAA2B;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACxE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,QAAoDJ,iCACxD;EAACK,kCAAc;EAAkB;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC/D,mDAA0B;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACvE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,WAAiDC,qCACpD,IAAY,iDAAwB;EAAC,GAAG;EAAU,SAAS;EAAI;EAAQ,CAAC,QACnE,CAAC,CAACN,mCAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAMO,YAAmCC,oCAAoB;EAC3D,SAAS;EACT,iBAAiB,CAAC,CAACR,mCAAe,OAAO,QAAQ,EAAE,CAACA,mCAAe,OAAO,CAAC;EAC3E,MAAM;EACN,QAAQ,MAAM,MAAM,QAAQ;EAC5B,SAAS;EACV,CAAC;AAEF,QACE,2CAACS;EACC,OAAO,MAAM;EACb,QAAQ,OAAO,MAAM;EACrB,OAAO,MAAM,MAAM;EACnB,WAAW,MAAM;EACjB,yDAC2B,GAAG,MAAM,OAAO,6BAA6B,sDAC7C,GAAG,SAAS,OAAO,oCAAoC,sDACvD,GAAG,UAAU,OAAO,+BAA+B,sDACnD,GAAG,UAAU,WAAW,oCAAoC;EAEvF,YAAY,SAAS;EACrB,UAAU,kBAAwB,KAAK,SAAS,OAAO,QAAQ,GAAG;EAClE,kBAAkB,UAAU;EAC5B,0BAA0B,UAAU;EACpC,mBAAmB,mBAAmB,UAAU,MAAM;EACzC;EACb,GAAI;GACJ;;AAIN,2BAAe"}
|
|
@@ -5,6 +5,7 @@ const require_Alert = require('../../primitives/Alert/Alert.cjs');
|
|
|
5
5
|
const require_CopyableText = require('../../primitives/CopyableText/CopyableText.cjs');
|
|
6
6
|
const require_useAdminPartStyles = require('../shared/useAdminPartStyles.cjs');
|
|
7
7
|
const require_AdminSection = require('../shared/AdminSection.cjs');
|
|
8
|
+
const require_AccountLifecycleParts = require('../shared/AccountLifecycleParts.cjs');
|
|
8
9
|
const require_AdminParts = require('../shared/AdminParts.cjs');
|
|
9
10
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
11
|
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
@@ -14,7 +15,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
|
14
15
|
* Shows an agent's type, owner, client and the groups and roles it holds. Holds no data of its own:
|
|
15
16
|
* pass the agent and handle deletion.
|
|
16
17
|
*/
|
|
17
|
-
const BaseAgentDetails = ({ actions, agent, children, className, error = null, groups = [], isDeleting = false, isLoading = false, onDelete, preferences, roles = [] }) => {
|
|
18
|
+
const BaseAgentDetails = ({ actions, agent, children, className, error = null, groups = [], isDeleting = false, isLoading = false, isRunningLifecycleAction = false, lifecycleActions = [], onDelete, onLifecycleAction, preferences, roles = [] }) => {
|
|
18
19
|
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
19
20
|
const styles = require_useAdminPartStyles.default();
|
|
20
21
|
if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -25,7 +26,10 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
|
|
|
25
26
|
groups,
|
|
26
27
|
isDeleting,
|
|
27
28
|
isLoading,
|
|
29
|
+
isRunningLifecycleAction,
|
|
30
|
+
lifecycleActions: onLifecycleAction && agent ? lifecycleActions : [],
|
|
28
31
|
onDelete: agent && !agent.isReadOnly ? onDelete : void 0,
|
|
32
|
+
onLifecycleAction: agent ? onLifecycleAction : void 0,
|
|
29
33
|
roles
|
|
30
34
|
})
|
|
31
35
|
});
|
|
@@ -67,6 +71,10 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
|
|
|
67
71
|
value: agent.ouHandle ?? agent.ouId
|
|
68
72
|
}
|
|
69
73
|
];
|
|
74
|
+
if (agent.status) details.push({
|
|
75
|
+
label: t("admin.common.columns.status"),
|
|
76
|
+
value: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AccountLifecycleParts.AccessStatusBadge, { status: agent.status.value })
|
|
77
|
+
});
|
|
70
78
|
if (agent.clientId) details.push({
|
|
71
79
|
label: t("admin.agents.list.columns.client_id"),
|
|
72
80
|
value: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CopyableText.default, { value: agent.clientId })
|
|
@@ -77,12 +85,22 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
|
|
|
77
85
|
title: agent.name,
|
|
78
86
|
description: agent.description,
|
|
79
87
|
preferences,
|
|
80
|
-
actions: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
actions: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
89
|
+
actions,
|
|
90
|
+
onLifecycleAction && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AccountLifecycleParts.AccountLifecycleButtons, {
|
|
91
|
+
actions: lifecycleActions,
|
|
92
|
+
collectsOperatorNote: true,
|
|
93
|
+
isRunning: isRunningLifecycleAction,
|
|
94
|
+
name: agent.name,
|
|
95
|
+
onAction: onLifecycleAction
|
|
96
|
+
}),
|
|
97
|
+
onDelete && !agent.isReadOnly && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminParts.ConfirmButton, {
|
|
98
|
+
confirmText: t("admin.agents.details.delete.confirm", { name: agent.name }),
|
|
99
|
+
isLoading: isDeleting,
|
|
100
|
+
onConfirm: onDelete,
|
|
101
|
+
children: t("admin.agents.details.delete.action")
|
|
102
|
+
})
|
|
103
|
+
] }),
|
|
86
104
|
children: [
|
|
87
105
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
|
|
88
106
|
variant: "error",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAgentDetails.cjs","names":["BaseAgentDetails: FC<BaseAgentDetailsProps>","useTranslation","styles: Record<string, string>","useAdminPartStyles","AdminSection","Spinner","Alert","details: {label: string; value: ReactNode}[]","CopyableText","ConfirmButton","Panel","DetailList","ChipList"],"sources":["../../../../../src/components/admin/AgentDetails/BaseAgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Agent, MembershipGroup, Preferences} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\nimport Spinner from '../../primitives/Spinner/Spinner';\nimport {ChipList, ConfirmButton, DetailList, Panel} from '../shared/AdminParts';\nimport AdminSection from '../shared/AdminSection';\nimport useAdminPartStyles from '../shared/useAdminPartStyles';\n\n/**\n * What {@link BaseAgentDetails} hands its `children` render function, so the agent can be shown with any UI.\n */\nexport interface BaseAgentDetailsRenderProps {\n agent?: Agent;\n error: string | null;\n groups: MembershipGroup[];\n isDeleting: boolean;\n isLoading: boolean;\n /**\n * Deletes the agent. Undefined when deletion is not allowed, including for read-only agents.\n */\n onDelete?: () => void;\n roles: string[];\n}\n\nexport interface BaseAgentDetailsProps {\n /**\n * Controls rendered next to the agent's name.\n */\n actions?: ReactNode;\n agent?: Agent;\n /**\n * Renders custom UI in place of the default view. Receives the agent, its groups and roles, the\n * loading and error state, and the delete handler.\n */\n children?: (props: BaseAgentDetailsRenderProps) => ReactNode;\n className?: string;\n error?: string | null;\n /**\n * The groups the agent belongs to.\n */\n groups?: MembershipGroup[];\n isDeleting?: boolean;\n isLoading?: boolean;\n /**\n * Deletes the agent. The delete action is hidden when omitted.\n */\n onDelete?: () => void;\n preferences?: Preferences;\n /**\n * The names of the roles the agent holds, directly or through its groups.\n */\n roles?: string[];\n}\n\n/**\n * Shows an agent's type, owner, client and the groups and roles it holds. Holds no data of its own:\n * pass the agent and handle deletion.\n */\nconst BaseAgentDetails: FC<BaseAgentDetailsProps> = ({\n actions,\n agent,\n children,\n className,\n error = null,\n groups = [],\n isDeleting = false,\n isLoading = false,\n onDelete,\n preferences,\n roles = [],\n}: BaseAgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const styles: Record<string, string> = useAdminPartStyles();\n\n if (children) {\n return (\n <div className={className}>\n {children({\n agent,\n error,\n groups,\n isDeleting,\n isLoading,\n onDelete: agent && !agent.isReadOnly ? onDelete : undefined,\n roles,\n })}\n </div>\n );\n }\n\n if (isLoading && !agent) {\n return (\n <AdminSection block=\"agent-details\" className={className} preferences={preferences}>\n <span className={styles['muted']} role=\"status\">\n <Spinner size=\"small\" /> {t('admin.common.loading')}\n </span>\n </AdminSection>\n );\n }\n\n if (!agent) {\n return (\n <AdminSection block=\"agent-details\" className={className} preferences={preferences}>\n <Alert variant=\"error\" role=\"alert\">\n {error ?? t('admin.common.errors.not_found')}\n </Alert>\n </AdminSection>\n );\n }\n\n const details: {label: string; value: ReactNode}[] = [\n {label: t('admin.agents.details.type'), value: agent.type},\n {label: t('admin.agents.details.owner'), value: agent.owner ?? t('admin.agents.details.no_owner')},\n {label: t('admin.common.columns.organization_unit'), value: agent.ouHandle ?? agent.ouId},\n ];\n\n if (agent.clientId) {\n details.push({label: t('admin.agents.list.columns.client_id'), value: <CopyableText value={agent.clientId} />});\n }\n\n return (\n <AdminSection\n block=\"agent-details\"\n className={className}\n title={agent.name}\n description={agent.description}\n preferences={preferences}\n actions={\n <>\n {actions}\n {onDelete && !agent.isReadOnly && (\n <ConfirmButton\n confirmText={t('admin.agents.details.delete.confirm', {name: agent.name})}\n isLoading={isDeleting}\n onConfirm={onDelete}\n >\n {t('admin.agents.details.delete.action')}\n </ConfirmButton>\n )}\n </>\n }\n >\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <Panel title={t('admin.agents.details.overview')}>\n <DetailList items={details} />\n </Panel>\n <Panel title={t('admin.agents.details.groups')}>\n <ChipList\n label={t('admin.agents.details.groups')}\n emptyText={t('admin.agents.details.no_groups')}\n items={groups.map((group: MembershipGroup) => ({id: group.id, label: group.name}))}\n />\n </Panel>\n <Panel title={t('admin.agents.details.roles')}>\n <ChipList\n label={t('admin.agents.details.roles')}\n emptyText={t('admin.agents.details.no_roles')}\n items={roles.map((role: string) => ({id: role, label: role}))}\n />\n </Panel>\n </AdminSection>\n );\n};\n\nexport default BaseAgentDetails;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseAgentDetails.cjs","names":["BaseAgentDetails: FC<BaseAgentDetailsProps>","useTranslation","styles: Record<string, string>","useAdminPartStyles","AdminSection","Spinner","Alert","details: {label: string; value: ReactNode}[]","AccessStatusBadge","CopyableText","AccountLifecycleButtons","ConfirmButton","Panel","DetailList","ChipList"],"sources":["../../../../../src/components/admin/AgentDetails/BaseAgentDetails.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {AccountLifecycleAction, Agent, MembershipGroup, Preferences} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport Alert from '../../primitives/Alert/Alert';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\nimport Spinner from '../../primitives/Spinner/Spinner';\nimport {AccessStatusBadge, AccountLifecycleButtons} from '../shared/AccountLifecycleParts';\nimport {ChipList, ConfirmButton, DetailList, Panel} from '../shared/AdminParts';\nimport AdminSection from '../shared/AdminSection';\nimport useAdminPartStyles from '../shared/useAdminPartStyles';\n\n/**\n * What {@link BaseAgentDetails} hands its `children` render function, so the agent can be shown with any UI.\n */\nexport interface BaseAgentDetailsRenderProps {\n agent?: Agent;\n error: string | null;\n groups: MembershipGroup[];\n isDeleting: boolean;\n isLoading: boolean;\n isRunningLifecycleAction: boolean;\n /**\n * The account lifecycle actions offered for the agent. Empty when none is allowed.\n */\n lifecycleActions: AccountLifecycleAction[];\n /**\n * Deletes the agent. Undefined when deletion is not allowed, including for read-only agents.\n */\n onDelete?: () => void;\n /**\n * Runs an account lifecycle action, with the operator's note on a suspension. Undefined when none is allowed.\n */\n onLifecycleAction?: (action: AccountLifecycleAction, operatorNote?: string) => void;\n roles: string[];\n}\n\nexport interface BaseAgentDetailsProps {\n /**\n * Controls rendered next to the agent's name.\n */\n actions?: ReactNode;\n agent?: Agent;\n /**\n * Renders custom UI in place of the default view. Receives the agent, its groups and roles, the\n * loading and error state, and the delete handler.\n */\n children?: (props: BaseAgentDetailsRenderProps) => ReactNode;\n className?: string;\n error?: string | null;\n /**\n * The groups the agent belongs to.\n */\n groups?: MembershipGroup[];\n isDeleting?: boolean;\n isLoading?: boolean;\n isRunningLifecycleAction?: boolean;\n /**\n * The account lifecycle actions to offer (suspend, unsuspend, unlock), shown only with `onLifecycleAction`. They change\n * only runtime state, so they apply to read-only agents too.\n */\n lifecycleActions?: AccountLifecycleAction[];\n /**\n * Deletes the agent. The delete action is hidden when omitted.\n */\n onDelete?: () => void;\n /**\n * Runs an account lifecycle action. Suspending and unsuspending ask for confirmation first, and a\n * suspension takes an optional operator note.\n */\n onLifecycleAction?: (action: AccountLifecycleAction, operatorNote?: string) => void;\n preferences?: Preferences;\n /**\n * The names of the roles the agent holds, directly or through its groups.\n */\n roles?: string[];\n}\n\n/**\n * Shows an agent's type, owner, client and the groups and roles it holds. Holds no data of its own:\n * pass the agent and handle deletion.\n */\nconst BaseAgentDetails: FC<BaseAgentDetailsProps> = ({\n actions,\n agent,\n children,\n className,\n error = null,\n groups = [],\n isDeleting = false,\n isLoading = false,\n isRunningLifecycleAction = false,\n lifecycleActions = [],\n onDelete,\n onLifecycleAction,\n preferences,\n roles = [],\n}: BaseAgentDetailsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const styles: Record<string, string> = useAdminPartStyles();\n\n if (children) {\n return (\n <div className={className}>\n {children({\n agent,\n error,\n groups,\n isDeleting,\n isLoading,\n isRunningLifecycleAction,\n lifecycleActions: onLifecycleAction && agent ? lifecycleActions : [],\n onDelete: agent && !agent.isReadOnly ? onDelete : undefined,\n onLifecycleAction: agent ? onLifecycleAction : undefined,\n roles,\n })}\n </div>\n );\n }\n\n if (isLoading && !agent) {\n return (\n <AdminSection block=\"agent-details\" className={className} preferences={preferences}>\n <span className={styles['muted']} role=\"status\">\n <Spinner size=\"small\" /> {t('admin.common.loading')}\n </span>\n </AdminSection>\n );\n }\n\n if (!agent) {\n return (\n <AdminSection block=\"agent-details\" className={className} preferences={preferences}>\n <Alert variant=\"error\" role=\"alert\">\n {error ?? t('admin.common.errors.not_found')}\n </Alert>\n </AdminSection>\n );\n }\n\n const details: {label: string; value: ReactNode}[] = [\n {label: t('admin.agents.details.type'), value: agent.type},\n {label: t('admin.agents.details.owner'), value: agent.owner ?? t('admin.agents.details.no_owner')},\n {label: t('admin.common.columns.organization_unit'), value: agent.ouHandle ?? agent.ouId},\n ];\n\n if (agent.status) {\n details.push({label: t('admin.common.columns.status'), value: <AccessStatusBadge status={agent.status.value} />});\n }\n\n if (agent.clientId) {\n details.push({label: t('admin.agents.list.columns.client_id'), value: <CopyableText value={agent.clientId} />});\n }\n\n return (\n <AdminSection\n block=\"agent-details\"\n className={className}\n title={agent.name}\n description={agent.description}\n preferences={preferences}\n actions={\n <>\n {actions}\n {onLifecycleAction && (\n <AccountLifecycleButtons\n actions={lifecycleActions}\n collectsOperatorNote\n isRunning={isRunningLifecycleAction}\n name={agent.name}\n onAction={onLifecycleAction}\n />\n )}\n {onDelete && !agent.isReadOnly && (\n <ConfirmButton\n confirmText={t('admin.agents.details.delete.confirm', {name: agent.name})}\n isLoading={isDeleting}\n onConfirm={onDelete}\n >\n {t('admin.agents.details.delete.action')}\n </ConfirmButton>\n )}\n </>\n }\n >\n {error && (\n <Alert variant=\"error\" role=\"alert\">\n {error}\n </Alert>\n )}\n <Panel title={t('admin.agents.details.overview')}>\n <DetailList items={details} />\n </Panel>\n <Panel title={t('admin.agents.details.groups')}>\n <ChipList\n label={t('admin.agents.details.groups')}\n emptyText={t('admin.agents.details.no_groups')}\n items={groups.map((group: MembershipGroup) => ({id: group.id, label: group.name}))}\n />\n </Panel>\n <Panel title={t('admin.agents.details.roles')}>\n <ChipList\n label={t('admin.agents.details.roles')}\n emptyText={t('admin.agents.details.no_roles')}\n items={roles.map((role: string) => ({id: role, label: role}))}\n />\n </Panel>\n </AdminSection>\n );\n};\n\nexport default BaseAgentDetails;\n"],"mappings":";;;;;;;;;;;;;;;;;AAoFA,MAAMA,oBAA+C,EACnD,SACA,OACA,UACA,WACA,QAAQ,MACR,SAAS,EAAE,EACX,aAAa,OACb,YAAY,OACZ,2BAA2B,OAC3B,mBAAmB,EAAE,EACrB,UACA,mBACA,aACA,QAAQ,EAAE,OAC+B;CACzC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,SAAiCC,oCAAoB;AAE3D,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA,kBAAkB,qBAAqB,QAAQ,mBAAmB,EAAE;GACpE,UAAU,SAAS,CAAC,MAAM,aAAa,WAAW;GAClD,mBAAmB,QAAQ,oBAAoB;GAC/C;GACD,CAAC;GACE;AAIV,KAAI,aAAa,CAAC,MAChB,QACE,2CAACC;EAAa,OAAM;EAA2B;EAAwB;YACrE,4CAAC;GAAK,WAAW,OAAO;GAAU,MAAK;;IACrC,2CAACC,2BAAQ,MAAK,UAAU;;IAAE,EAAE,uBAAuB;;IAC9C;GACM;AAInB,KAAI,CAAC,MACH,QACE,2CAACD;EAAa,OAAM;EAA2B;EAAwB;YACrE,2CAACE;GAAM,SAAQ;GAAQ,MAAK;aACzB,SAAS,EAAE,gCAAgC;IACtC;GACK;CAInB,MAAMC,UAA+C;EACnD;GAAC,OAAO,EAAE,4BAA4B;GAAE,OAAO,MAAM;GAAK;EAC1D;GAAC,OAAO,EAAE,6BAA6B;GAAE,OAAO,MAAM,SAAS,EAAE,gCAAgC;GAAC;EAClG;GAAC,OAAO,EAAE,yCAAyC;GAAE,OAAO,MAAM,YAAY,MAAM;GAAK;EAC1F;AAED,KAAI,MAAM,OACR,SAAQ,KAAK;EAAC,OAAO,EAAE,8BAA8B;EAAE,OAAO,2CAACC,mDAAkB,QAAQ,MAAM,OAAO,QAAS;EAAC,CAAC;AAGnH,KAAI,MAAM,SACR,SAAQ,KAAK;EAAC,OAAO,EAAE,sCAAsC;EAAE,OAAO,2CAACC,gCAAa,OAAO,MAAM,WAAY;EAAC,CAAC;AAGjH,QACE,4CAACL;EACC,OAAM;EACK;EACX,OAAO,MAAM;EACb,aAAa,MAAM;EACN;EACb,SACE;GACG;GACA,qBACC,2CAACM;IACC,SAAS;IACT;IACA,WAAW;IACX,MAAM,MAAM;IACZ,UAAU;KACV;GAEH,YAAY,CAAC,MAAM,cAClB,2CAACC;IACC,aAAa,EAAE,uCAAuC,EAAC,MAAM,MAAM,MAAK,CAAC;IACzE,WAAW;IACX,WAAW;cAEV,EAAE,qCAAqC;KAC1B;MAEjB;;GAGJ,SACC,2CAACL;IAAM,SAAQ;IAAQ,MAAK;cACzB;KACK;GAEV,2CAACM;IAAM,OAAO,EAAE,gCAAgC;cAC9C,2CAACC,iCAAW,OAAO,UAAW;KACxB;GACR,2CAACD;IAAM,OAAO,EAAE,8BAA8B;cAC5C,2CAACE;KACC,OAAO,EAAE,8BAA8B;KACvC,WAAW,EAAE,iCAAiC;KAC9C,OAAO,OAAO,KAAK,WAA4B;MAAC,IAAI,MAAM;MAAI,OAAO,MAAM;MAAK,EAAE;MAClF;KACI;GACR,2CAACF;IAAM,OAAO,EAAE,6BAA6B;cAC3C,2CAACE;KACC,OAAO,EAAE,6BAA6B;KACtC,WAAW,EAAE,gCAAgC;KAC7C,OAAO,MAAM,KAAK,UAAkB;MAAC,IAAI;MAAM,OAAO;MAAK,EAAE;MAC7D;KACI;;GACK;;AAInB,+BAAe"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
3
|
-
const
|
|
3
|
+
const require_useManagementEndpoint = require('../../../hooks/management/useManagementEndpoint.cjs');
|
|
4
|
+
const require_useResourceQuery = require('../../../hooks/management/useResourceQuery.cjs');
|
|
4
5
|
const require_BaseAgentList = require('./BaseAgentList.cjs');
|
|
5
6
|
let __thunderid_browser = require("@thunderid/browser");
|
|
6
7
|
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
@@ -26,11 +27,19 @@ const AgentList = ({ limit = 20, preferences, searchable = true, searchAttribute
|
|
|
26
27
|
label: t("admin.agents.list.search.name"),
|
|
27
28
|
value: "name"
|
|
28
29
|
}];
|
|
29
|
-
const
|
|
30
|
-
|
|
30
|
+
const endpoint = require_useManagementEndpoint.default("agents");
|
|
31
|
+
const filter = search ? (0, __thunderid_browser.toEqualityFilter)(search.attribute, search.value) : void 0;
|
|
32
|
+
const { data, error, isLoading } = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENTS, {
|
|
33
|
+
filter,
|
|
31
34
|
limit,
|
|
32
35
|
offset
|
|
33
|
-
})
|
|
36
|
+
}], (fetcher) => (0, __thunderid_browser.getAgents)({
|
|
37
|
+
...endpoint,
|
|
38
|
+
fetcher,
|
|
39
|
+
filter,
|
|
40
|
+
limit,
|
|
41
|
+
offset
|
|
42
|
+
}));
|
|
34
43
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseAgentList.default, {
|
|
35
44
|
agents: data?.agents ?? [],
|
|
36
45
|
totalResults: data?.totalResults,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentList.cjs","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","
|
|
1
|
+
{"version":3,"file":"AgentList.cjs","names":["AgentList: FC<AgentListProps>","useTranslation","attributes: SelectOption[]","endpoint: ManagementEndpoint","useManagementEndpoint","filter: string | undefined","useResourceQuery","AgentQueryKeys","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,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA8B,EAAE;CAC/C,MAAM,CAAC,QAAQ,iCAA+C,KAAK;CACnE,MAAMC,aAA6B,oBAAoB,CAAC;EAAC,OAAO,EAAE,gCAAgC;EAAE,OAAO;EAAO,CAAC;CACnH,MAAMC,WAA+BC,sCAAsB,SAAS;CACpE,MAAMC,SAA6B,mDAA0B,OAAO,WAAW,OAAO,MAAM,GAAG;CAC/F,MAAM,EAAC,MAAM,OAAO,cAAqDC,iCACvE,CAACC,mCAAe,QAAQ;EAAC;EAAQ;EAAO;EAAO,CAAC,GAC/C,+CAAsB;EAAC,GAAG;EAAU;EAAS;EAAQ;EAAO;EAAO,CAAC,CACtE;AAED,QACE,2CAACC;EACC,QAAQ,MAAM,UAAU,EAAE;EAC1B,cAAc,MAAM;EACT;EACX,yDAAgC,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,70 @@
|
|
|
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_useResourceMutation = require('../../../hooks/management/useResourceMutation.cjs');
|
|
5
|
+
const require_useDefaultOuId = require('../shared/useDefaultOuId.cjs');
|
|
6
|
+
const require_BaseApplicationCreate = require('./BaseApplicationCreate.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/admin/ApplicationCreate/ApplicationCreate.tsx
|
|
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
|
+
const ApplicationCreate = ({ onCreated, ouId, preferences,...rest }) => {
|
|
29
|
+
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
30
|
+
const resolvedOuId = require_useDefaultOuId.default(ouId);
|
|
31
|
+
const endpoint = require_useManagementEndpoint.default("applications");
|
|
32
|
+
const [created, setCreated] = (0, react.useState)(null);
|
|
33
|
+
const [formKey, setFormKey] = (0, react.useState)(0);
|
|
34
|
+
const { error, isLoading, mutate } = require_useResourceMutation.default((payload, fetcher) => (0, __thunderid_browser.createApplication)({
|
|
35
|
+
...endpoint,
|
|
36
|
+
fetcher,
|
|
37
|
+
payload
|
|
38
|
+
}), () => [[__thunderid_browser.ApplicationQueryKeys.APPLICATIONS]], { onSuccess: (application) => {
|
|
39
|
+
const secret = (0, __thunderid_browser.getApplicationClientSecret)(application);
|
|
40
|
+
if (secret) setCreated({
|
|
41
|
+
application,
|
|
42
|
+
secret
|
|
43
|
+
});
|
|
44
|
+
else onCreated?.(application);
|
|
45
|
+
} });
|
|
46
|
+
const handleSubmit = (submission) => {
|
|
47
|
+
if (resolvedOuId) mutate((0, __thunderid_browser.toCreateApplicationRequest)(submission, resolvedOuId));
|
|
48
|
+
};
|
|
49
|
+
const handleSecretDismiss = () => {
|
|
50
|
+
if (created) {
|
|
51
|
+
setCreated(null);
|
|
52
|
+
setFormKey((key) => key + 1);
|
|
53
|
+
onCreated?.(created.application);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseApplicationCreate.default, {
|
|
57
|
+
onSubmit: handleSubmit,
|
|
58
|
+
isSubmitting: isLoading,
|
|
59
|
+
clientSecret: created?.secret ?? null,
|
|
60
|
+
onSecretDismiss: handleSecretDismiss,
|
|
61
|
+
error: resolvedOuId ? (0, __thunderid_browser.toManagementErrorMessage)(t, error, "admin.applications.create.error") : t("admin.common.errors.no_ou"),
|
|
62
|
+
preferences,
|
|
63
|
+
...rest
|
|
64
|
+
}, formKey);
|
|
65
|
+
};
|
|
66
|
+
var ApplicationCreate_default = ApplicationCreate;
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
exports.default = ApplicationCreate_default;
|
|
70
|
+
//# sourceMappingURL=ApplicationCreate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApplicationCreate.cjs","names":["ApplicationCreate: FC<ApplicationCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","endpoint: ManagementEndpoint","useManagementEndpoint","useResourceMutation","ApplicationQueryKeys","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,+BAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,+BAAe,KAAK;CAC7D,MAAMC,WAA+BC,sCAAsB,eAAe;CAC1E,MAAM,CAAC,SAAS,kCAA0E,KAAK;CAC/F,MAAM,CAAC,SAAS,kCAA+B,EAAE;CACjD,MAAM,EAAC,OAAO,WAAW,WAAyEC,qCAC/F,SAAmC,uDAA8B;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,QAC5F,CAAC,CAACC,yCAAqB,aAAa,CAAC,EAC3C,EACE,YAAY,gBAAmC;EAC7C,MAAMC,6DAAwD,YAAY;AAE1E,MAAI,OACF,YAAW;GAAC;GAAa;GAAO,CAAC;MAEjC,aAAY,YAAY;IAG7B,CACF;CAED,MAAM,gBAAgB,eAAkD;AACtE,MAAI,aACF,CAAK,2DAAkC,YAAY,aAAa,CAAC;;CAIrE,MAAM,4BAAkC;AACtC,MAAI,SAAS;AACX,cAAW,KAAK;AAChB,eAAY,QAAgB,MAAM,EAAE;AACpC,eAAY,QAAQ,YAAY;;;AAIpC,QACE,2CAACC;EAEC,UAAU;EACV,cAAc;EACd,cAAc,SAAS,UAAU;EACjC,iBAAiB;EACjB,OACE,iEAC6B,GAAG,OAAO,kCAAkC,GACrE,EAAE,4BAA4B;EAEvB;EACb,GAAI;IAXC,QAYL;;AAIN,gCAAe"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_useTheme = require('../../../contexts/Theme/useTheme.cjs');
|
|
3
|
+
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
4
|
+
const require_Button = require('../../primitives/Button/Button.cjs');
|
|
5
|
+
const require_Alert = require('../../primitives/Alert/Alert.cjs');
|
|
6
|
+
const require_AdminSection_styles = require('../shared/AdminSection.styles.cjs');
|
|
7
|
+
const require_AdminSection = require('../shared/AdminSection.cjs');
|
|
8
|
+
const require_ApplicationFormFields = require('../shared/ApplicationFormFields.cjs');
|
|
9
|
+
const require_ClientSecretNotice = require('../shared/ClientSecretNotice.cjs');
|
|
10
|
+
let __thunderid_browser = require("@thunderid/browser");
|
|
11
|
+
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
12
|
+
let react = require("react");
|
|
13
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
14
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
15
|
+
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
16
|
+
|
|
17
|
+
//#region src/components/admin/ApplicationCreate/BaseApplicationCreate.tsx
|
|
18
|
+
/**
|
|
19
|
+
* A form that collects a new application's name, description, links and OAuth basics: redirect URIs,
|
|
20
|
+
* grant types and whether the client is public. Holds no data of its own: handle the submission, and
|
|
21
|
+
* pass back the client secret the server returned to show it once.
|
|
22
|
+
*/
|
|
23
|
+
const BaseApplicationCreate = ({ children, className, clientSecret = null, description, error = null, isSubmitting = false, onCancel, onSecretDismiss, onSubmit, preferences, title }) => {
|
|
24
|
+
const { theme, colorScheme } = require_useTheme.default();
|
|
25
|
+
const styles = require_AdminSection_styles.default(theme, colorScheme);
|
|
26
|
+
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
27
|
+
const [values, setValues] = (0, react.useState)({
|
|
28
|
+
description: "",
|
|
29
|
+
grantTypes: [...__thunderid_browser.DEFAULT_APPLICATION_GRANT_TYPES],
|
|
30
|
+
logoUrl: "",
|
|
31
|
+
name: "",
|
|
32
|
+
publicClient: false,
|
|
33
|
+
redirectUris: "",
|
|
34
|
+
url: ""
|
|
35
|
+
});
|
|
36
|
+
const submission = {
|
|
37
|
+
description: values.description.trim() || void 0,
|
|
38
|
+
grantTypes: values.grantTypes,
|
|
39
|
+
logoUrl: values.logoUrl.trim() || void 0,
|
|
40
|
+
name: values.name.trim(),
|
|
41
|
+
publicClient: values.publicClient,
|
|
42
|
+
redirectUris: (0, __thunderid_browser.parseRedirectUris)(values.redirectUris),
|
|
43
|
+
url: values.url.trim() || void 0
|
|
44
|
+
};
|
|
45
|
+
const isValid = (0, __thunderid_browser.isApplicationSubmissionValid)(submission);
|
|
46
|
+
const setInput = (field, value) => setValues((previous) => ({
|
|
47
|
+
...previous,
|
|
48
|
+
[field]: value
|
|
49
|
+
}));
|
|
50
|
+
const setGrantTypes = (grantTypes) => setValues((previous) => ({
|
|
51
|
+
...previous,
|
|
52
|
+
grantTypes
|
|
53
|
+
}));
|
|
54
|
+
const setPublicClient = (publicClient) => setValues((previous) => ({
|
|
55
|
+
...previous,
|
|
56
|
+
publicClient
|
|
57
|
+
}));
|
|
58
|
+
const submit = () => {
|
|
59
|
+
if (isValid && !isSubmitting) onSubmit(submission);
|
|
60
|
+
};
|
|
61
|
+
const handleSubmit = (event) => {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
submit();
|
|
64
|
+
};
|
|
65
|
+
if (children) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
66
|
+
className,
|
|
67
|
+
children: children({
|
|
68
|
+
clientSecret,
|
|
69
|
+
error,
|
|
70
|
+
grantTypeOptions: __thunderid_browser.APPLICATION_GRANT_TYPES.map((grantType) => ({
|
|
71
|
+
label: t(`admin.applications.grant_types.${grantType}`),
|
|
72
|
+
value: grantType
|
|
73
|
+
})),
|
|
74
|
+
handleGrantTypesChange: setGrantTypes,
|
|
75
|
+
handleInputChange: setInput,
|
|
76
|
+
handlePublicClientChange: setPublicClient,
|
|
77
|
+
handleSubmit: submit,
|
|
78
|
+
isSubmitting,
|
|
79
|
+
isValid,
|
|
80
|
+
onCancel,
|
|
81
|
+
onSecretDismiss: clientSecret ? onSecretDismiss : void 0,
|
|
82
|
+
values
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminSection.default, {
|
|
86
|
+
block: "application-create",
|
|
87
|
+
className,
|
|
88
|
+
title: title ?? t("admin.applications.create.title"),
|
|
89
|
+
description,
|
|
90
|
+
preferences,
|
|
91
|
+
children: clientSecret ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ClientSecretNotice.default, {
|
|
92
|
+
secret: clientSecret,
|
|
93
|
+
onDismiss: onSecretDismiss,
|
|
94
|
+
preferences
|
|
95
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("form", {
|
|
96
|
+
className: styles["form"],
|
|
97
|
+
onSubmit: handleSubmit,
|
|
98
|
+
noValidate: true,
|
|
99
|
+
children: [
|
|
100
|
+
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Alert.default, {
|
|
101
|
+
variant: "error",
|
|
102
|
+
role: "alert",
|
|
103
|
+
children: error
|
|
104
|
+
}),
|
|
105
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ApplicationFormFields.default, {
|
|
106
|
+
preferences,
|
|
107
|
+
values,
|
|
108
|
+
onInputChange: setInput,
|
|
109
|
+
onGrantTypesChange: setGrantTypes,
|
|
110
|
+
onPublicClientChange: setPublicClient
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
113
|
+
className: styles["formActions"],
|
|
114
|
+
children: [onCancel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
|
|
115
|
+
type: "button",
|
|
116
|
+
variant: "text",
|
|
117
|
+
onClick: onCancel,
|
|
118
|
+
disabled: isSubmitting,
|
|
119
|
+
children: t("admin.common.actions.cancel")
|
|
120
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.default, {
|
|
121
|
+
type: "submit",
|
|
122
|
+
loading: isSubmitting,
|
|
123
|
+
disabled: !isValid || isSubmitting,
|
|
124
|
+
children: t("admin.applications.create.submit")
|
|
125
|
+
})]
|
|
126
|
+
})
|
|
127
|
+
]
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var BaseApplicationCreate_default = BaseApplicationCreate;
|
|
132
|
+
|
|
133
|
+
//#endregion
|
|
134
|
+
exports.default = BaseApplicationCreate_default;
|
|
135
|
+
//# sourceMappingURL=BaseApplicationCreate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseApplicationCreate.cjs","names":["BaseApplicationCreate: FC<BaseApplicationCreateProps>","useTheme","styles: Record<string, string>","useStyles","useTranslation","DEFAULT_APPLICATION_GRANT_TYPES","submission: ApplicationCreateSubmission","isValid: boolean","APPLICATION_GRANT_TYPES","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,0BAAU;CACvC,MAAMC,SAAiCC,oCAAU,OAAO,YAAY;CACpE,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,QAAQ,iCAA6C;EAC1D,aAAa;EACb,YAAY,CAAC,GAAGC,oDAAgC;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,yDAAgC,OAAO,aAAa;EACpD,KAAK,OAAO,IAAI,MAAM,IAAI;EAC3B;CACD,MAAMC,gEAAgD,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,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA,kBAAkBC,4CAAwB,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,2CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,kCAAkC;EACvC;EACA;YAEZ,eACC,2CAACC;GAAmB,QAAQ;GAAc,WAAW;GAA8B;IAAe,GAElG,4CAAC;GAAK,WAAW,OAAO;GAAS,UAAU;GAAc;;IACtD,SACC,2CAACC;KAAM,SAAQ;KAAQ,MAAK;eACzB;MACK;IAEV,2CAACC;KACc;KACL;KACR,eAAe;KACf,oBAAoB;KACpB,sBAAsB;MACtB;IACF,4CAAC;KAAI,WAAW,OAAO;gBACpB,YACC,2CAACC;MAAO,MAAK;MAAS,SAAQ;MAAO,SAAS;MAAU,UAAU;gBAC/D,EAAE,8BAA8B;OAC1B,EAEX,2CAACA;MAAO,MAAK;MAAS,SAAS;MAAc,UAAU,CAAC,WAAW;gBAChE,EAAE,mCAAmC;OAC/B;MACL;;IACD;GAEI;;AAInB,oCAAe"}
|