@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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/formatConsentDetailValue.ts
|
|
3
|
+
/**
|
|
4
|
+
* Formats an authorization detail field value for display. Strings are shown as-is, a list of
|
|
5
|
+
* plain values comma-separated, and any other JSON value as JSON, compact unless `indent` is given.
|
|
6
|
+
*
|
|
7
|
+
* @param value - Field value.
|
|
8
|
+
* @param indent - Spaces to indent structured JSON by, so it reads as a block rather than one long line.
|
|
9
|
+
* @returns Display text.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* formatConsentDetailValue(['initiate', 'status']) // returns 'initiate, status'
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
const formatConsentDetailValue = (value, indent) => {
|
|
17
|
+
if (value === null || value === void 0) return "";
|
|
18
|
+
if (typeof value === "string") return value;
|
|
19
|
+
if (Array.isArray(value) && value.every((item) => typeof item !== "object" || item === null)) return value.map((item) => String(item)).join(", ");
|
|
20
|
+
return JSON.stringify(value, null, indent);
|
|
21
|
+
};
|
|
22
|
+
var formatConsentDetailValue_default = formatConsentDetailValue;
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.default = formatConsentDetailValue_default;
|
|
26
|
+
//# sourceMappingURL=formatConsentDetailValue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatConsentDetailValue.cjs","names":[],"sources":["../../../src/utils/formatConsentDetailValue.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Formats an authorization detail field value for display. Strings are shown as-is, a list of\n * plain values comma-separated, and any other JSON value as JSON, compact unless `indent` is given.\n *\n * @param value - Field value.\n * @param indent - Spaces to indent structured JSON by, so it reads as a block rather than one long line.\n * @returns Display text.\n *\n * @example\n * ```typescript\n * formatConsentDetailValue(['initiate', 'status']) // returns 'initiate, status'\n * ```\n */\nconst formatConsentDetailValue = (value: unknown, indent?: number): string => {\n if (value === null || value === undefined) return '';\n if (typeof value === 'string') return value;\n if (Array.isArray(value) && value.every((item: unknown) => typeof item !== 'object' || item === null)) {\n return value.map((item: unknown) => String(item)).join(', ');\n }\n return JSON.stringify(value, null, indent);\n};\n\nexport default formatConsentDetailValue;\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAM,4BAA4B,OAAgB,WAA4B;AAC5E,KAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,KAAI,OAAO,UAAU,SAAU,QAAO;AACtC,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,OAAO,SAAkB,OAAO,SAAS,YAAY,SAAS,KAAK,CACnG,QAAO,MAAM,KAAK,SAAkB,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK;AAE9D,QAAO,KAAK,UAAU,OAAO,MAAM,OAAO;;AAG5C,uCAAe"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const require_formatConsentDetailValue = require('./formatConsentDetailValue.cjs');
|
|
2
|
+
const require_isConsentDetailStructured = require('./isConsentDetailStructured.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/utils/getConsentDetailLayout.ts
|
|
5
|
+
/**
|
|
6
|
+
* Limits a consent screen applies to authorization detail content so that a long or large value never
|
|
7
|
+
* crowds the layout. Text longer than a `*Chars` limit is clamped to its `*Lines` limit behind a toggle,
|
|
8
|
+
* and a list longer than `listItems` shows that many items behind a toggle.
|
|
9
|
+
*/
|
|
10
|
+
const CONSENT_DETAIL_DISPLAY_LIMITS = Object.freeze({
|
|
11
|
+
inlineLabelChars: 32,
|
|
12
|
+
inlineValueChars: 32,
|
|
13
|
+
listItems: 8,
|
|
14
|
+
structuredLines: 8,
|
|
15
|
+
summaryChars: 160,
|
|
16
|
+
summaryLines: 3,
|
|
17
|
+
valueChars: 160,
|
|
18
|
+
valueLines: 4
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Chooses how a consent screen lays out one authorization detail field. A short label and a short value
|
|
22
|
+
* sit side by side; a long label, a long value, a long list or a structured value is stacked, the label
|
|
23
|
+
* above the value, so neither squeezes the other.
|
|
24
|
+
*
|
|
25
|
+
* @param row - Field to lay out.
|
|
26
|
+
* @returns `inline` or `stacked`.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* getConsentDetailLayout({label: 'Pay to', path: 'creditorName', value: 'Merchant A'}) // returns 'inline'
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
const getConsentDetailLayout = (row) => {
|
|
34
|
+
if ((row.label || row.path).length > CONSENT_DETAIL_DISPLAY_LIMITS.inlineLabelChars || require_isConsentDetailStructured.default(row.value)) return "stacked";
|
|
35
|
+
const items = Array.isArray(row.value) ? [...row.value] : [row.value];
|
|
36
|
+
if (row.modification === "addItems" && Array.isArray(row.options)) items.push(...row.options);
|
|
37
|
+
return require_formatConsentDetailValue.default(items).length > CONSENT_DETAIL_DISPLAY_LIMITS.inlineValueChars ? "stacked" : "inline";
|
|
38
|
+
};
|
|
39
|
+
var getConsentDetailLayout_default = getConsentDetailLayout;
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
exports.CONSENT_DETAIL_DISPLAY_LIMITS = CONSENT_DETAIL_DISPLAY_LIMITS;
|
|
43
|
+
exports.default = getConsentDetailLayout_default;
|
|
44
|
+
//# sourceMappingURL=getConsentDetailLayout.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConsentDetailLayout.cjs","names":["CONSENT_DETAIL_DISPLAY_LIMITS: Readonly<{\n inlineLabelChars: number;\n inlineValueChars: number;\n listItems: number;\n structuredLines: number;\n summaryChars: number;\n summaryLines: number;\n valueChars: number;\n valueLines: number;\n}>","isConsentDetailStructured","items: unknown[]","formatConsentDetailValue"],"sources":["../../../src/utils/getConsentDetailLayout.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {type ConsentDetailRow} from '@thunderid/browser';\nimport formatConsentDetailValue from './formatConsentDetailValue';\nimport isConsentDetailStructured from './isConsentDetailStructured';\n\n/**\n * Limits a consent screen applies to authorization detail content so that a long or large value never\n * crowds the layout. Text longer than a `*Chars` limit is clamped to its `*Lines` limit behind a toggle,\n * and a list longer than `listItems` shows that many items behind a toggle.\n */\nexport const CONSENT_DETAIL_DISPLAY_LIMITS: Readonly<{\n inlineLabelChars: number;\n inlineValueChars: number;\n listItems: number;\n structuredLines: number;\n summaryChars: number;\n summaryLines: number;\n valueChars: number;\n valueLines: number;\n}> = Object.freeze({\n inlineLabelChars: 32,\n inlineValueChars: 32,\n listItems: 8,\n structuredLines: 8,\n summaryChars: 160,\n summaryLines: 3,\n valueChars: 160,\n valueLines: 4,\n});\n\n/**\n * Chooses how a consent screen lays out one authorization detail field. A short label and a short value\n * sit side by side; a long label, a long value, a long list or a structured value is stacked, the label\n * above the value, so neither squeezes the other.\n *\n * @param row - Field to lay out.\n * @returns `inline` or `stacked`.\n *\n * @example\n * ```typescript\n * getConsentDetailLayout({label: 'Pay to', path: 'creditorName', value: 'Merchant A'}) // returns 'inline'\n * ```\n */\nconst getConsentDetailLayout = (row: ConsentDetailRow): 'inline' | 'stacked' => {\n const label: string = row.label || row.path;\n if (label.length > CONSENT_DETAIL_DISPLAY_LIMITS.inlineLabelChars || isConsentDetailStructured(row.value)) {\n return 'stacked';\n }\n\n const items: unknown[] = Array.isArray(row.value) ? [...(row.value as unknown[])] : [row.value];\n if (row.modification === 'addItems' && Array.isArray(row.options)) {\n items.push(...row.options);\n }\n const text: string = formatConsentDetailValue(items);\n\n return text.length > CONSENT_DETAIL_DISPLAY_LIMITS.inlineValueChars ? 'stacked' : 'inline';\n};\n\nexport default getConsentDetailLayout;\n"],"mappings":";;;;;;;;;AAYA,MAAaA,gCASR,OAAO,OAAO;CACjB,kBAAkB;CAClB,kBAAkB;CAClB,WAAW;CACX,iBAAiB;CACjB,cAAc;CACd,cAAc;CACd,YAAY;CACZ,YAAY;CACb,CAAC;;;;;;;;;;;;;;AAeF,MAAM,0BAA0B,QAAgD;AAE9E,MADsB,IAAI,SAAS,IAAI,MAC7B,SAAS,8BAA8B,oBAAoBC,0CAA0B,IAAI,MAAM,CACvG,QAAO;CAGT,MAAMC,QAAmB,MAAM,QAAQ,IAAI,MAAM,GAAG,CAAC,GAAI,IAAI,MAAoB,GAAG,CAAC,IAAI,MAAM;AAC/F,KAAI,IAAI,iBAAiB,cAAc,MAAM,QAAQ,IAAI,QAAQ,CAC/D,OAAM,KAAK,GAAG,IAAI,QAAQ;AAI5B,QAFqBC,yCAAyB,MAAM,CAExC,SAAS,8BAA8B,mBAAmB,YAAY;;AAGpF,qCAAe"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const require_getConsentDetailLayout = require('./getConsentDetailLayout.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/utils/getConsentDetailListDisplay.ts
|
|
4
|
+
/**
|
|
5
|
+
* Tells how many items of an authorization detail list a consent screen shows. A list longer than
|
|
6
|
+
* `CONSENT_DETAIL_DISPLAY_LIMITS.listItems` shows that many items while collapsed, the rest behind a toggle.
|
|
7
|
+
*
|
|
8
|
+
* @param itemCount - Number of items in the list.
|
|
9
|
+
* @param expanded - Whether the user expanded the list.
|
|
10
|
+
* @returns The items to show and hide.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* getConsentDetailListDisplay(10, false) // returns {hiddenCount: 2, isCollapsible: true, visibleCount: 8}
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
const getConsentDetailListDisplay = (itemCount, expanded) => {
|
|
18
|
+
const isCollapsible = itemCount > require_getConsentDetailLayout.CONSENT_DETAIL_DISPLAY_LIMITS.listItems;
|
|
19
|
+
const visibleCount = isCollapsible && !expanded ? require_getConsentDetailLayout.CONSENT_DETAIL_DISPLAY_LIMITS.listItems : itemCount;
|
|
20
|
+
return {
|
|
21
|
+
hiddenCount: itemCount - visibleCount,
|
|
22
|
+
isCollapsible,
|
|
23
|
+
visibleCount
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
var getConsentDetailListDisplay_default = getConsentDetailListDisplay;
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
exports.default = getConsentDetailListDisplay_default;
|
|
30
|
+
//# sourceMappingURL=getConsentDetailListDisplay.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConsentDetailListDisplay.cjs","names":["isCollapsible: boolean","CONSENT_DETAIL_DISPLAY_LIMITS","visibleCount: number"],"sources":["../../../src/utils/getConsentDetailListDisplay.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {CONSENT_DETAIL_DISPLAY_LIMITS} from './getConsentDetailLayout';\n\n/**\n * How a consent screen shows a list of authorization detail items, given the\n * `CONSENT_DETAIL_DISPLAY_LIMITS.listItems` limit.\n *\n * @experimental This interface may change in future versions\n */\nexport interface ConsentDetailListDisplay {\n /** Number of items hidden behind the toggle; `0` while expanded or when the list fits. */\n hiddenCount: number;\n /** Whether the list is longer than the limit, so it is shown behind a toggle. */\n isCollapsible: boolean;\n /** Number of items to show. */\n visibleCount: number;\n}\n\n/**\n * Tells how many items of an authorization detail list a consent screen shows. A list longer than\n * `CONSENT_DETAIL_DISPLAY_LIMITS.listItems` shows that many items while collapsed, the rest behind a toggle.\n *\n * @param itemCount - Number of items in the list.\n * @param expanded - Whether the user expanded the list.\n * @returns The items to show and hide.\n *\n * @example\n * ```typescript\n * getConsentDetailListDisplay(10, false) // returns {hiddenCount: 2, isCollapsible: true, visibleCount: 8}\n * ```\n */\nconst getConsentDetailListDisplay = (itemCount: number, expanded: boolean): ConsentDetailListDisplay => {\n const isCollapsible: boolean = itemCount > CONSENT_DETAIL_DISPLAY_LIMITS.listItems;\n const visibleCount: number = isCollapsible && !expanded ? CONSENT_DETAIL_DISPLAY_LIMITS.listItems : itemCount;\n\n return {hiddenCount: itemCount - visibleCount, isCollapsible, visibleCount};\n};\n\nexport default getConsentDetailListDisplay;\n"],"mappings":";;;;;;;;;;;;;;;;AAiCA,MAAM,+BAA+B,WAAmB,aAAgD;CACtG,MAAMA,gBAAyB,YAAYC,6DAA8B;CACzE,MAAMC,eAAuB,iBAAiB,CAAC,WAAWD,6DAA8B,YAAY;AAEpG,QAAO;EAAC,aAAa,YAAY;EAAc;EAAe;EAAa;;AAG7E,0CAAe"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_ConsentCheckboxList = require('../components/auth/flow/ConsentCheckboxList.cjs');
|
|
3
|
+
let __thunderid_browser = require("@thunderid/browser");
|
|
4
|
+
__thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
|
|
5
|
+
|
|
6
|
+
//#region src/utils/isConsentApprovalBlocked.ts
|
|
7
|
+
/**
|
|
8
|
+
* Reports whether any field the user may modify on an authorization detail element shows text that cannot
|
|
9
|
+
* be submitted. The element must not be approved while this holds, since its decision would not carry what
|
|
10
|
+
* the user sees.
|
|
11
|
+
*
|
|
12
|
+
* @param purposeId - The identifier of the consent purpose the element belongs to.
|
|
13
|
+
* @param element - The authorization detail element.
|
|
14
|
+
* @param inputs - Form values, holding the invalid marker of each field under its invalid key.
|
|
15
|
+
* @returns Whether a field of the element is invalid.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* hasInvalidConsentModification('p1', element, {'__consent_invalid__p1__d-1__amount': 'true'}) // returns true
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
const hasInvalidConsentModification = (purposeId, element, inputs) => (element.rows ?? []).some((row) => Boolean(row.modification) && inputs[(0, __thunderid_browser.getConsentInvalidKey)(purposeId, element.name, row.path)] === "true");
|
|
23
|
+
/**
|
|
24
|
+
* Reports whether the consent cannot be approved yet: an authorization detail the user has not declined
|
|
25
|
+
* shows, in a field the user may modify, text that cannot be submitted. Denying stays possible.
|
|
26
|
+
*
|
|
27
|
+
* @param purposes - The consent purposes on the screen.
|
|
28
|
+
* @param formValues - Form values, holding each element's approval and each field's invalid marker.
|
|
29
|
+
* @returns Whether approval must wait until the user corrects the field.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* isConsentApprovalBlocked(purposes, {'__consent_invalid__p1__d-1__amount': 'true'}) // returns true
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
const isConsentApprovalBlocked = (purposes, formValues) => purposes.some((purpose) => (purpose.optional ?? []).some((element) => formValues[require_ConsentCheckboxList.getConsentOptionalKey(purpose.purposeId, element.name)] !== "false" && hasInvalidConsentModification(purpose.purposeId, element, formValues)));
|
|
37
|
+
var isConsentApprovalBlocked_default = isConsentApprovalBlocked;
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
exports.default = isConsentApprovalBlocked_default;
|
|
41
|
+
//# sourceMappingURL=isConsentApprovalBlocked.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isConsentApprovalBlocked.cjs","names":["getConsentOptionalKey"],"sources":["../../../src/utils/isConsentApprovalBlocked.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n type ConsentDetailRow,\n type ConsentPurposeData,\n getConsentInvalidKey,\n type PromptElement,\n} from '@thunderid/browser';\nimport {getConsentOptionalKey} from '../components/auth/flow/ConsentCheckboxList';\n\n/**\n * Reports whether any field the user may modify on an authorization detail element shows text that cannot\n * be submitted. The element must not be approved while this holds, since its decision would not carry what\n * the user sees.\n *\n * @param purposeId - The identifier of the consent purpose the element belongs to.\n * @param element - The authorization detail element.\n * @param inputs - Form values, holding the invalid marker of each field under its invalid key.\n * @returns Whether a field of the element is invalid.\n *\n * @example\n * ```typescript\n * hasInvalidConsentModification('p1', element, {'__consent_invalid__p1__d-1__amount': 'true'}) // returns true\n * ```\n */\nconst hasInvalidConsentModification = (\n purposeId: string,\n element: PromptElement,\n inputs: Record<string, unknown>,\n): boolean =>\n (element.rows ?? []).some(\n (row: ConsentDetailRow) =>\n Boolean(row.modification) && inputs[getConsentInvalidKey(purposeId, element.name, row.path)] === 'true',\n );\n\n/**\n * Reports whether the consent cannot be approved yet: an authorization detail the user has not declined\n * shows, in a field the user may modify, text that cannot be submitted. Denying stays possible.\n *\n * @param purposes - The consent purposes on the screen.\n * @param formValues - Form values, holding each element's approval and each field's invalid marker.\n * @returns Whether approval must wait until the user corrects the field.\n *\n * @example\n * ```typescript\n * isConsentApprovalBlocked(purposes, {'__consent_invalid__p1__d-1__amount': 'true'}) // returns true\n * ```\n */\nconst isConsentApprovalBlocked = (purposes: ConsentPurposeData[], formValues: Record<string, unknown>): boolean =>\n purposes.some((purpose: ConsentPurposeData) =>\n (purpose.optional ?? []).some(\n (element: PromptElement) =>\n formValues[getConsentOptionalKey(purpose.purposeId, element.name)] !== 'false' &&\n hasInvalidConsentModification(purpose.purposeId, element, formValues),\n ),\n );\n\nexport default isConsentApprovalBlocked;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,iCACJ,WACA,SACA,YAEC,QAAQ,QAAQ,EAAE,EAAE,MAClB,QACC,QAAQ,IAAI,aAAa,IAAI,qDAA4B,WAAW,QAAQ,MAAM,IAAI,KAAK,MAAM,OACpG;;;;;;;;;;;;;;AAeH,MAAM,4BAA4B,UAAgC,eAChE,SAAS,MAAM,aACZ,QAAQ,YAAY,EAAE,EAAE,MACtB,YACC,WAAWA,kDAAsB,QAAQ,WAAW,QAAQ,KAAK,MAAM,WACvE,8BAA8B,QAAQ,WAAW,SAAS,WAAW,CACxE,CACF;AAEH,uCAAe"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/isConsentDetailPlainList.ts
|
|
3
|
+
/**
|
|
4
|
+
* Whether a field value is a list of plain values, strings, numbers or booleans, which a consent screen shows
|
|
5
|
+
* as a list rather than as structured JSON.
|
|
6
|
+
*
|
|
7
|
+
* @param value - Field value.
|
|
8
|
+
* @returns `true` when the value is a list of plain values.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* isConsentDetailPlainList(['initiate', 'status']) // returns true
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
const isConsentDetailPlainList = (value) => Array.isArray(value) && value.every((item) => [
|
|
16
|
+
"string",
|
|
17
|
+
"number",
|
|
18
|
+
"boolean"
|
|
19
|
+
].includes(typeof item));
|
|
20
|
+
var isConsentDetailPlainList_default = isConsentDetailPlainList;
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.default = isConsentDetailPlainList_default;
|
|
24
|
+
//# sourceMappingURL=isConsentDetailPlainList.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isConsentDetailPlainList.cjs","names":[],"sources":["../../../src/utils/isConsentDetailPlainList.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Whether a field value is a list of plain values, strings, numbers or booleans, which a consent screen shows\n * as a list rather than as structured JSON.\n *\n * @param value - Field value.\n * @returns `true` when the value is a list of plain values.\n *\n * @example\n * ```typescript\n * isConsentDetailPlainList(['initiate', 'status']) // returns true\n * ```\n */\nconst isConsentDetailPlainList = (value: unknown): value is (string | number | boolean)[] =>\n Array.isArray(value) && value.every((item: unknown) => ['string', 'number', 'boolean'].includes(typeof item));\n\nexport default isConsentDetailPlainList;\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,4BAA4B,UAChC,MAAM,QAAQ,MAAM,IAAI,MAAM,OAAO,SAAkB;CAAC;CAAU;CAAU;CAAU,CAAC,SAAS,OAAO,KAAK,CAAC;AAE/G,uCAAe"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/isConsentDetailStructured.ts
|
|
3
|
+
/**
|
|
4
|
+
* Whether a field value is structured JSON, an object or a list holding objects, rather than a plain
|
|
5
|
+
* value or a list of plain values.
|
|
6
|
+
*
|
|
7
|
+
* @param value - Field value.
|
|
8
|
+
* @returns `true` when the value is shown as a formatted JSON block.
|
|
9
|
+
*/
|
|
10
|
+
const isConsentDetailStructured = (value) => typeof value === "object" && value !== null && !Array.isArray(value) || Array.isArray(value) && value.some((item) => typeof item === "object" && item !== null);
|
|
11
|
+
var isConsentDetailStructured_default = isConsentDetailStructured;
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.default = isConsentDetailStructured_default;
|
|
15
|
+
//# sourceMappingURL=isConsentDetailStructured.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isConsentDetailStructured.cjs","names":[],"sources":["../../../src/utils/isConsentDetailStructured.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Whether a field value is structured JSON, an object or a list holding objects, rather than a plain\n * value or a list of plain values.\n *\n * @param value - Field value.\n * @returns `true` when the value is shown as a formatted JSON block.\n */\nconst isConsentDetailStructured = (value: unknown): boolean =>\n (typeof value === 'object' && value !== null && !Array.isArray(value)) ||\n (Array.isArray(value) && value.some((item: unknown) => typeof item === 'object' && item !== null));\n\nexport default isConsentDetailStructured;\n"],"mappings":";;;;;;;;;AAUA,MAAM,6BAA6B,UAChC,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM,IACpE,MAAM,QAAQ,MAAM,IAAI,MAAM,MAAM,SAAkB,OAAO,SAAS,YAAY,SAAS,KAAK;AAEnG,wCAAe"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/isConsentDetailTextClamped.ts
|
|
3
|
+
/**
|
|
4
|
+
* Whether authorization detail text is long enough to be clamped behind a toggle: longer than `maxChars`, or
|
|
5
|
+
* spanning more than `maxLines` lines.
|
|
6
|
+
*
|
|
7
|
+
* @param text - Text to show.
|
|
8
|
+
* @param maxChars - Number of characters above which the text is clamped, such as
|
|
9
|
+
* `CONSENT_DETAIL_DISPLAY_LIMITS.valueChars`.
|
|
10
|
+
* @param maxLines - Number of lines above which the text is clamped, such as
|
|
11
|
+
* `CONSENT_DETAIL_DISPLAY_LIMITS.valueLines`.
|
|
12
|
+
* @returns `true` when the text is clamped while collapsed.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* isConsentDetailTextClamped('Merchant A', CONSENT_DETAIL_DISPLAY_LIMITS.valueChars, CONSENT_DETAIL_DISPLAY_LIMITS.valueLines)
|
|
17
|
+
* // returns false
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
const isConsentDetailTextClamped = (text, maxChars, maxLines) => text.length > maxChars || text.split("\n").length > maxLines;
|
|
21
|
+
var isConsentDetailTextClamped_default = isConsentDetailTextClamped;
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.default = isConsentDetailTextClamped_default;
|
|
25
|
+
//# sourceMappingURL=isConsentDetailTextClamped.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isConsentDetailTextClamped.cjs","names":[],"sources":["../../../src/utils/isConsentDetailTextClamped.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Whether authorization detail text is long enough to be clamped behind a toggle: longer than `maxChars`, or\n * spanning more than `maxLines` lines.\n *\n * @param text - Text to show.\n * @param maxChars - Number of characters above which the text is clamped, such as\n * `CONSENT_DETAIL_DISPLAY_LIMITS.valueChars`.\n * @param maxLines - Number of lines above which the text is clamped, such as\n * `CONSENT_DETAIL_DISPLAY_LIMITS.valueLines`.\n * @returns `true` when the text is clamped while collapsed.\n *\n * @example\n * ```typescript\n * isConsentDetailTextClamped('Merchant A', CONSENT_DETAIL_DISPLAY_LIMITS.valueChars, CONSENT_DETAIL_DISPLAY_LIMITS.valueLines)\n * // returns false\n * ```\n */\nconst isConsentDetailTextClamped = (text: string, maxChars: number, maxLines: number): boolean =>\n text.length > maxChars || text.split('\\n').length > maxLines;\n\nexport default isConsentDetailTextClamped;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAM,8BAA8B,MAAc,UAAkB,aAClE,KAAK,SAAS,YAAY,KAAK,MAAM,KAAK,CAAC,SAAS;AAEtD,yCAAe"}
|
|
@@ -5,9 +5,9 @@ import Button_default from "../../primitives/Button/Button.js";
|
|
|
5
5
|
import Typography_default from "../../primitives/Typography/Typography.js";
|
|
6
6
|
import Alert_default from "../../primitives/Alert/Alert.js";
|
|
7
7
|
import Card_default from "../../primitives/Card/Card.js";
|
|
8
|
+
import TextField_default from "../../primitives/TextField/TextField.js";
|
|
8
9
|
import Checkbox_default from "../../primitives/Checkbox/Checkbox.js";
|
|
9
10
|
import DatePicker_default from "../../primitives/DatePicker/DatePicker.js";
|
|
10
|
-
import TextField_default from "../../primitives/TextField/TextField.js";
|
|
11
11
|
import Divider_default from "../../primitives/Divider/Divider.js";
|
|
12
12
|
import BaseUserProfile_styles_default from "./BaseUserProfile.styles.js";
|
|
13
13
|
import getMappedUserProfileValue_default from "../../../utils/getMappedUserProfileValue.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"AgentCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,EASN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAwB,MAAM,OAAO,CAAC;AAChD,OAAwB,EAAwB,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAO/F,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IAChH;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAgDrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
|
|
3
|
+
import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
|
|
4
|
+
import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
|
|
4
5
|
import useDefaultOuId_default from "../shared/useDefaultOuId.js";
|
|
5
6
|
import BaseAgentCreate_default from "./BaseAgentCreate.js";
|
|
6
|
-
import { toManagementErrorMessage } from "@thunderid/browser";
|
|
7
|
+
import { AgentQueryKeys, createAgent, getAgentTypes, toManagementErrorMessage } from "@thunderid/browser";
|
|
7
8
|
import { useMemo } from "react";
|
|
8
9
|
import { jsx } from "react/jsx-runtime";
|
|
9
10
|
|
|
@@ -19,8 +20,18 @@ import { jsx } from "react/jsx-runtime";
|
|
|
19
20
|
const AgentCreate = ({ onCreated, ouId, owner, preferences,...rest }) => {
|
|
20
21
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
21
22
|
const resolvedOuId = useDefaultOuId_default(ouId);
|
|
22
|
-
const
|
|
23
|
-
const
|
|
23
|
+
const agentsEndpoint = useManagementEndpoint_default("agents");
|
|
24
|
+
const agentTypesEndpoint = useManagementEndpoint_default("agentTypes");
|
|
25
|
+
const { data: agentTypes } = useResourceQuery_default([AgentQueryKeys.AGENT_TYPES, { limit: 100 }], (fetcher) => getAgentTypes({
|
|
26
|
+
...agentTypesEndpoint,
|
|
27
|
+
fetcher,
|
|
28
|
+
limit: 100
|
|
29
|
+
}));
|
|
30
|
+
const { error, isLoading, mutate } = useResourceMutation_default((payload, fetcher) => createAgent({
|
|
31
|
+
...agentsEndpoint,
|
|
32
|
+
fetcher,
|
|
33
|
+
payload
|
|
34
|
+
}), () => [[AgentQueryKeys.AGENTS]], { onSuccess: onCreated });
|
|
24
35
|
const options = useMemo(() => (agentTypes?.types ?? []).map((agentType) => ({
|
|
25
36
|
label: agentType.displayName,
|
|
26
37
|
value: agentType.handle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCreate.js","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","
|
|
1
|
+
{"version":3,"file":"AgentCreate.js","names":["AgentCreate: FC<AgentCreateProps>","useTranslation","resolvedOuId: string | undefined","useDefaultOuId","agentsEndpoint: ManagementEndpoint","useManagementEndpoint","agentTypesEndpoint: ManagementEndpoint","useResourceQuery","useResourceMutation","options: SelectOption[]","BaseAgentCreate"],"sources":["../../../../src/components/admin/AgentCreate/AgentCreate.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Agent,\n AgentQueryKeys,\n AgentType,\n AgentTypeListResponse,\n CreateAgentRequest,\n SelectOption,\n createAgent,\n getAgentTypes,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseAgentCreate, {AgentCreateSubmission, BaseAgentCreateProps} from './BaseAgentCreate';\nimport useManagementEndpoint, {ManagementEndpoint} from '../../../hooks/management/useManagementEndpoint';\nimport useResourceMutation, {ResourceMutationResult} from '../../../hooks/management/useResourceMutation';\nimport useResourceQuery, {ResourceQueryResult} from '../../../hooks/management/useResourceQuery';\nimport useTranslation from '../../../hooks/useTranslation';\nimport useDefaultOuId from '../shared/useDefaultOuId';\n\nexport type AgentCreateProps = Omit<BaseAgentCreateProps, 'agentTypes' | 'error' | 'isSubmitting' | 'onSubmit'> & {\n /**\n * Called with the created agent.\n */\n onCreated?: (agent: Agent) => void;\n /**\n * Organization unit the agent is created in. Defaults to the signed-in user's organization unit.\n */\n ouId?: string;\n /**\n * The person responsible for the agent. Defaults to the server's choice, usually the creator.\n */\n owner?: string;\n};\n\n/**\n * Registers an agent through the management API.\n *\n * @example\n * ```tsx\n * <AgentCreate onCreated={(agent) => navigate(`/agents/${agent.id}`)} />\n * ```\n */\nconst AgentCreate: FC<AgentCreateProps> = ({\n onCreated,\n ouId,\n owner,\n preferences,\n ...rest\n}: AgentCreateProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const resolvedOuId: string | undefined = useDefaultOuId(ouId);\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const agentTypesEndpoint: ManagementEndpoint = useManagementEndpoint('agentTypes');\n const {data: agentTypes}: ResourceQueryResult<AgentTypeListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENT_TYPES, {limit: 100}],\n (fetcher) => getAgentTypes({...agentTypesEndpoint, fetcher, limit: 100}),\n );\n const {error, isLoading, mutate}: ResourceMutationResult<Agent, CreateAgentRequest> = useResourceMutation(\n (payload: CreateAgentRequest, fetcher) => createAgent({...agentsEndpoint, fetcher, payload}),\n () => [[AgentQueryKeys.AGENTS]],\n {onSuccess: onCreated},\n );\n\n const options: SelectOption[] = useMemo(\n () =>\n (agentTypes?.types ?? []).map((agentType: AgentType) => ({\n label: agentType.displayName,\n value: agentType.handle,\n })),\n [agentTypes],\n );\n\n const handleSubmit = ({description, name, type}: AgentCreateSubmission): void => {\n if (resolvedOuId) {\n void mutate({description, name, ouId: resolvedOuId, owner, type});\n }\n };\n\n return (\n <BaseAgentCreate\n agentTypes={options}\n onSubmit={handleSubmit}\n isSubmitting={isLoading}\n error={\n resolvedOuId ? toManagementErrorMessage(t, error, 'admin.agents.create.error') : t('admin.common.errors.no_ou')\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default AgentCreate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,eAAqC,EACzC,WACA,MACA,OACA,YACA,GAAG,WACiC;CACpC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,eAAmCC,uBAAe,KAAK;CAC7D,MAAMC,iBAAqCC,8BAAsB,SAAS;CAC1E,MAAMC,qBAAyCD,8BAAsB,aAAa;CAClF,MAAM,EAAC,MAAM,eAA0DE,yBACrE,CAAC,eAAe,aAAa,EAAC,OAAO,KAAI,CAAC,GACzC,YAAY,cAAc;EAAC,GAAG;EAAoB;EAAS,OAAO;EAAI,CAAC,CACzE;CACD,MAAM,EAAC,OAAO,WAAW,WAA6DC,6BACnF,SAA6B,YAAY,YAAY;EAAC,GAAG;EAAgB;EAAS;EAAQ,CAAC,QACtF,CAAC,CAAC,eAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAMC,UAA0B,eAE3B,YAAY,SAAS,EAAE,EAAE,KAAK,eAA0B;EACvD,OAAO,UAAU;EACjB,OAAO,UAAU;EAClB,EAAE,EACL,CAAC,WAAW,CACb;CAED,MAAM,gBAAgB,EAAC,aAAa,MAAM,WAAuC;AAC/E,MAAI,aACF,CAAK,OAAO;GAAC;GAAa;GAAM,MAAM;GAAc;GAAO;GAAK,CAAC;;AAIrE,QACE,oBAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,eAAe,yBAAyB,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { BaseAgentDetailsProps } from './BaseAgentDetails';
|
|
3
|
-
export type AgentDetailsProps = Omit<BaseAgentDetailsProps, 'agent' | 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'onDelete' | 'roles'> & {
|
|
3
|
+
export type AgentDetailsProps = Omit<BaseAgentDetailsProps, 'agent' | 'error' | 'groups' | 'isDeleting' | 'isLoading' | 'isRunningLifecycleAction' | 'lifecycleActions' | 'onDelete' | 'onLifecycleAction' | 'roles'> & {
|
|
4
4
|
agentId: string;
|
|
5
5
|
/**
|
|
6
6
|
* Whether the agent can be deleted from this view.
|
|
7
7
|
* @default false
|
|
8
8
|
*/
|
|
9
9
|
deletable?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the agent can be suspended, unsuspended and unlocked from this view. Each action runs through its
|
|
12
|
+
* administration flow and is offered only when the server configures that flow. Reading the configured
|
|
13
|
+
* flows needs a token that may read the server configuration.
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
lifecycleActions?: boolean;
|
|
10
17
|
/**
|
|
11
18
|
* Called after the agent has been deleted.
|
|
12
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentDetails/AgentDetails.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAC,EAAE,EAAe,MAAM,OAAO,CAAC;AACvC,OAAyB,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAO3E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,qBAAqB,EACnB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,0BAA0B,GAC1B,kBAAkB,GAClB,UAAU,GACV,mBAAmB,GACnB,OAAO,CACV,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA4DvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import useTranslation_default from "../../../hooks/useTranslation.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import useManagementEndpoint_default from "../../../hooks/management/useManagementEndpoint.js";
|
|
3
|
+
import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
|
|
4
|
+
import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
|
|
5
|
+
import useAccountLifecycle_default from "../../../hooks/management/useAccountLifecycle.js";
|
|
6
6
|
import BaseAgentDetails_default from "./BaseAgentDetails.js";
|
|
7
|
-
import { toManagementErrorMessage } from "@thunderid/browser";
|
|
7
|
+
import { AgentQueryKeys, GroupQueryKeys, RoleQueryKeys, deleteAgent, getAgent, getAgentGroups, getAgentRoles, toManagementErrorMessage } from "@thunderid/browser";
|
|
8
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
9
|
|
|
10
10
|
//#region src/components/admin/AgentDetails/AgentDetails.tsx
|
|
@@ -17,20 +17,59 @@ import { jsx } from "react/jsx-runtime";
|
|
|
17
17
|
* <AgentDetails agentId={agentId} deletable onDeleted={() => navigate('/agents')} />
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
const AgentDetails = ({ agentId, deletable = false, onDeleted, preferences,...rest }) => {
|
|
20
|
+
const AgentDetails = ({ agentId, deletable = false, lifecycleActions = false, onDeleted, preferences,...rest }) => {
|
|
21
21
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const endpoint = useManagementEndpoint_default("agents");
|
|
23
|
+
const agent = useResourceQuery_default([AgentQueryKeys.AGENT, agentId], (fetcher) => getAgent({
|
|
24
|
+
...endpoint,
|
|
25
|
+
agentId,
|
|
26
|
+
fetcher
|
|
27
|
+
}), { enabled: Boolean(agentId) });
|
|
28
|
+
const groups = useResourceQuery_default([
|
|
29
|
+
GroupQueryKeys.MEMBERSHIPS,
|
|
30
|
+
"agent",
|
|
31
|
+
agentId,
|
|
32
|
+
{ limit: 100 }
|
|
33
|
+
], (fetcher) => getAgentGroups({
|
|
34
|
+
...endpoint,
|
|
35
|
+
agentId,
|
|
36
|
+
fetcher,
|
|
37
|
+
limit: 100
|
|
38
|
+
}), { enabled: Boolean(agentId) });
|
|
39
|
+
const roles = useResourceQuery_default([
|
|
40
|
+
RoleQueryKeys.ROLE_ASSIGNMENTS,
|
|
41
|
+
"agent",
|
|
42
|
+
agentId,
|
|
43
|
+
{ limit: 100 }
|
|
44
|
+
], (fetcher) => getAgentRoles({
|
|
45
|
+
...endpoint,
|
|
46
|
+
agentId,
|
|
47
|
+
fetcher,
|
|
48
|
+
limit: 100
|
|
49
|
+
}), { enabled: Boolean(agentId) });
|
|
50
|
+
const deletion = useResourceMutation_default((id, fetcher) => deleteAgent({
|
|
51
|
+
...endpoint,
|
|
52
|
+
agentId: id,
|
|
53
|
+
fetcher
|
|
54
|
+
}), () => [[AgentQueryKeys.AGENTS]], { onSuccess: onDeleted });
|
|
55
|
+
const lifecycle = useAccountLifecycle_default({
|
|
56
|
+
enabled: lifecycleActions,
|
|
57
|
+
invalidatedKeys: [[AgentQueryKeys.AGENT, agentId], [AgentQueryKeys.AGENTS]],
|
|
58
|
+
kind: "agent",
|
|
59
|
+
status: agent.data?.status?.value,
|
|
60
|
+
subject: agentId
|
|
61
|
+
});
|
|
26
62
|
return /* @__PURE__ */ jsx(BaseAgentDetails_default, {
|
|
27
63
|
agent: agent.data,
|
|
28
64
|
groups: groups.data?.groups,
|
|
29
65
|
roles: roles.data?.roles,
|
|
30
66
|
isLoading: agent.isLoading,
|
|
31
|
-
error: toManagementErrorMessage(t, agent.error, "admin.agents.details.error") ?? toManagementErrorMessage(t, deletion.error, "admin.agents.details.delete.error"),
|
|
67
|
+
error: toManagementErrorMessage(t, agent.error, "admin.agents.details.error") ?? toManagementErrorMessage(t, deletion.error, "admin.agents.details.delete.error") ?? toManagementErrorMessage(t, lifecycle.error, "admin.common.lifecycle.error") ?? toManagementErrorMessage(t, lifecycle.loadError, "admin.common.lifecycle.load_error"),
|
|
32
68
|
isDeleting: deletion.isLoading,
|
|
33
69
|
onDelete: deletable ? () => void deletion.mutate(agentId) : void 0,
|
|
70
|
+
lifecycleActions: lifecycle.actions,
|
|
71
|
+
isRunningLifecycleAction: lifecycle.isRunning,
|
|
72
|
+
onLifecycleAction: lifecycleActions ? lifecycle.run : void 0,
|
|
34
73
|
preferences,
|
|
35
74
|
...rest
|
|
36
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetails.js","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","
|
|
1
|
+
{"version":3,"file":"AgentDetails.js","names":["AgentDetails: FC<AgentDetailsProps>","useTranslation","endpoint: ManagementEndpoint","useManagementEndpoint","agent: ResourceQueryResult<Agent>","useResourceQuery","groups: ResourceQueryResult<MembershipGroupListResponse>","roles: ResourceQueryResult<AgentRoleListResponse>","deletion: ResourceMutationResult<void, string>","useResourceMutation","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,uBAAe,aAAa,KAAK;CAC7C,MAAMC,WAA+BC,8BAAsB,SAAS;CACpE,MAAMC,QAAoCC,yBACxC,CAAC,eAAe,OAAO,QAAQ,GAC9B,YAAY,SAAS;EAAC,GAAG;EAAU;EAAS;EAAQ,CAAC,EACtD,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,SAA2DD,yBAC/D;EAAC,eAAe;EAAa;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC3D,YAAY,eAAe;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACxE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAME,QAAoDF,yBACxD;EAAC,cAAc;EAAkB;EAAS;EAAS,EAAC,OAAO,KAAI;EAAC,GAC/D,YAAY,cAAc;EAAC,GAAG;EAAU;EAAS;EAAS,OAAO;EAAI,CAAC,EACvE,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMG,WAAiDC,6BACpD,IAAY,YAAY,YAAY;EAAC,GAAG;EAAU,SAAS;EAAI;EAAQ,CAAC,QACnE,CAAC,CAAC,eAAe,OAAO,CAAC,EAC/B,EAAC,WAAW,WAAU,CACvB;CAED,MAAMC,YAAmCC,4BAAoB;EAC3D,SAAS;EACT,iBAAiB,CAAC,CAAC,eAAe,OAAO,QAAQ,EAAE,CAAC,eAAe,OAAO,CAAC;EAC3E,MAAM;EACN,QAAQ,MAAM,MAAM,QAAQ;EAC5B,SAAS;EACV,CAAC;AAEF,QACE,oBAACC;EACC,OAAO,MAAM;EACb,QAAQ,OAAO,MAAM;EACrB,OAAO,MAAM,MAAM;EACnB,WAAW,MAAM;EACjB,OACE,yBAAyB,GAAG,MAAM,OAAO,6BAA6B,IACtE,yBAAyB,GAAG,SAAS,OAAO,oCAAoC,IAChF,yBAAyB,GAAG,UAAU,OAAO,+BAA+B,IAC5E,yBAAyB,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Agent, MembershipGroup, Preferences } from '@thunderid/browser';
|
|
1
|
+
import { AccountLifecycleAction, Agent, MembershipGroup, Preferences } from '@thunderid/browser';
|
|
2
2
|
import { FC, ReactNode } from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* What {@link BaseAgentDetails} hands its `children` render function, so the agent can be shown with any UI.
|
|
@@ -9,10 +9,19 @@ export interface BaseAgentDetailsRenderProps {
|
|
|
9
9
|
groups: MembershipGroup[];
|
|
10
10
|
isDeleting: boolean;
|
|
11
11
|
isLoading: boolean;
|
|
12
|
+
isRunningLifecycleAction: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The account lifecycle actions offered for the agent. Empty when none is allowed.
|
|
15
|
+
*/
|
|
16
|
+
lifecycleActions: AccountLifecycleAction[];
|
|
12
17
|
/**
|
|
13
18
|
* Deletes the agent. Undefined when deletion is not allowed, including for read-only agents.
|
|
14
19
|
*/
|
|
15
20
|
onDelete?: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Runs an account lifecycle action, with the operator's note on a suspension. Undefined when none is allowed.
|
|
23
|
+
*/
|
|
24
|
+
onLifecycleAction?: (action: AccountLifecycleAction, operatorNote?: string) => void;
|
|
16
25
|
roles: string[];
|
|
17
26
|
}
|
|
18
27
|
export interface BaseAgentDetailsProps {
|
|
@@ -34,10 +43,21 @@ export interface BaseAgentDetailsProps {
|
|
|
34
43
|
groups?: MembershipGroup[];
|
|
35
44
|
isDeleting?: boolean;
|
|
36
45
|
isLoading?: boolean;
|
|
46
|
+
isRunningLifecycleAction?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* The account lifecycle actions to offer (suspend, unsuspend, unlock), shown only with `onLifecycleAction`. They change
|
|
49
|
+
* only runtime state, so they apply to read-only agents too.
|
|
50
|
+
*/
|
|
51
|
+
lifecycleActions?: AccountLifecycleAction[];
|
|
37
52
|
/**
|
|
38
53
|
* Deletes the agent. The delete action is hidden when omitted.
|
|
39
54
|
*/
|
|
40
55
|
onDelete?: () => void;
|
|
56
|
+
/**
|
|
57
|
+
* Runs an account lifecycle action. Suspending and unsuspending ask for confirmation first, and a
|
|
58
|
+
* suspension takes an optional operator note.
|
|
59
|
+
*/
|
|
60
|
+
onLifecycleAction?: (action: AccountLifecycleAction, operatorNote?: string) => void;
|
|
41
61
|
preferences?: Preferences;
|
|
42
62
|
/**
|
|
43
63
|
* The names of the roles the agent holds, directly or through its groups.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAgentDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentDetails/BaseAgentDetails.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseAgentDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentDetails/BaseAgentDetails.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,sBAAsB,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAC,MAAM,OAAO,CAAC;AAUlD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,wBAAwB,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAC3C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,SAAS,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA+H/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -4,6 +4,7 @@ import Alert_default from "../../primitives/Alert/Alert.js";
|
|
|
4
4
|
import CopyableText_default from "../../primitives/CopyableText/CopyableText.js";
|
|
5
5
|
import useAdminPartStyles_default from "../shared/useAdminPartStyles.js";
|
|
6
6
|
import AdminSection_default from "../shared/AdminSection.js";
|
|
7
|
+
import { AccessStatusBadge, AccountLifecycleButtons } from "../shared/AccountLifecycleParts.js";
|
|
7
8
|
import { ChipList, ConfirmButton, DetailList, Panel } from "../shared/AdminParts.js";
|
|
8
9
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
10
|
|
|
@@ -12,7 +13,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
12
13
|
* Shows an agent's type, owner, client and the groups and roles it holds. Holds no data of its own:
|
|
13
14
|
* pass the agent and handle deletion.
|
|
14
15
|
*/
|
|
15
|
-
const BaseAgentDetails = ({ actions, agent, children, className, error = null, groups = [], isDeleting = false, isLoading = false, onDelete, preferences, roles = [] }) => {
|
|
16
|
+
const BaseAgentDetails = ({ actions, agent, children, className, error = null, groups = [], isDeleting = false, isLoading = false, isRunningLifecycleAction = false, lifecycleActions = [], onDelete, onLifecycleAction, preferences, roles = [] }) => {
|
|
16
17
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
17
18
|
const styles = useAdminPartStyles_default();
|
|
18
19
|
if (children) return /* @__PURE__ */ jsx("div", {
|
|
@@ -23,7 +24,10 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
|
|
|
23
24
|
groups,
|
|
24
25
|
isDeleting,
|
|
25
26
|
isLoading,
|
|
27
|
+
isRunningLifecycleAction,
|
|
28
|
+
lifecycleActions: onLifecycleAction && agent ? lifecycleActions : [],
|
|
26
29
|
onDelete: agent && !agent.isReadOnly ? onDelete : void 0,
|
|
30
|
+
onLifecycleAction: agent ? onLifecycleAction : void 0,
|
|
27
31
|
roles
|
|
28
32
|
})
|
|
29
33
|
});
|
|
@@ -65,6 +69,10 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
|
|
|
65
69
|
value: agent.ouHandle ?? agent.ouId
|
|
66
70
|
}
|
|
67
71
|
];
|
|
72
|
+
if (agent.status) details.push({
|
|
73
|
+
label: t("admin.common.columns.status"),
|
|
74
|
+
value: /* @__PURE__ */ jsx(AccessStatusBadge, { status: agent.status.value })
|
|
75
|
+
});
|
|
68
76
|
if (agent.clientId) details.push({
|
|
69
77
|
label: t("admin.agents.list.columns.client_id"),
|
|
70
78
|
value: /* @__PURE__ */ jsx(CopyableText_default, { value: agent.clientId })
|
|
@@ -75,12 +83,22 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
|
|
|
75
83
|
title: agent.name,
|
|
76
84
|
description: agent.description,
|
|
77
85
|
preferences,
|
|
78
|
-
actions: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
86
|
+
actions: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
87
|
+
actions,
|
|
88
|
+
onLifecycleAction && /* @__PURE__ */ jsx(AccountLifecycleButtons, {
|
|
89
|
+
actions: lifecycleActions,
|
|
90
|
+
collectsOperatorNote: true,
|
|
91
|
+
isRunning: isRunningLifecycleAction,
|
|
92
|
+
name: agent.name,
|
|
93
|
+
onAction: onLifecycleAction
|
|
94
|
+
}),
|
|
95
|
+
onDelete && !agent.isReadOnly && /* @__PURE__ */ jsx(ConfirmButton, {
|
|
96
|
+
confirmText: t("admin.agents.details.delete.confirm", { name: agent.name }),
|
|
97
|
+
isLoading: isDeleting,
|
|
98
|
+
onConfirm: onDelete,
|
|
99
|
+
children: t("admin.agents.details.delete.action")
|
|
100
|
+
})
|
|
101
|
+
] }),
|
|
84
102
|
children: [
|
|
85
103
|
error && /* @__PURE__ */ jsx(Alert_default, {
|
|
86
104
|
variant: "error",
|