@thunderid/react 1.9.1 → 1.10.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.
Files changed (30) hide show
  1. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs +1 -1
  2. package/dist/cjs/components/admin/AgentCreate/AgentCreate.cjs.map +1 -1
  3. package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs +5 -3
  4. package/dist/cjs/components/admin/AgentDetails/BaseAgentDetails.cjs.map +1 -1
  5. package/dist/cjs/components/admin/AgentList/BaseAgentList.cjs +3 -1
  6. package/dist/cjs/components/admin/AgentList/BaseAgentList.cjs.map +1 -1
  7. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs +1 -1
  8. package/dist/cjs/components/admin/GroupMembers/GroupMembers.cjs.map +1 -1
  9. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs +50 -24
  10. package/dist/cjs/components/admin/RoleAssignments/RoleAssignments.cjs.map +1 -1
  11. package/dist/cjs/index.cjs +6 -0
  12. package/dist/components/admin/AgentCreate/AgentCreate.js +1 -1
  13. package/dist/components/admin/AgentCreate/AgentCreate.js.map +1 -1
  14. package/dist/components/admin/AgentDetails/BaseAgentDetails.d.ts.map +1 -1
  15. package/dist/components/admin/AgentDetails/BaseAgentDetails.js +4 -3
  16. package/dist/components/admin/AgentDetails/BaseAgentDetails.js.map +1 -1
  17. package/dist/components/admin/AgentList/BaseAgentList.d.ts.map +1 -1
  18. package/dist/components/admin/AgentList/BaseAgentList.js +2 -1
  19. package/dist/components/admin/AgentList/BaseAgentList.js.map +1 -1
  20. package/dist/components/admin/GroupMembers/GroupMembers.d.ts.map +1 -1
  21. package/dist/components/admin/GroupMembers/GroupMembers.js +2 -2
  22. package/dist/components/admin/GroupMembers/GroupMembers.js.map +1 -1
  23. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts +4 -0
  24. package/dist/components/admin/RoleAssignments/RoleAssignments.d.ts.map +1 -1
  25. package/dist/components/admin/RoleAssignments/RoleAssignments.js +51 -25
  26. package/dist/components/admin/RoleAssignments/RoleAssignments.js.map +1 -1
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -2
  30. package/package.json +2 -2
@@ -42,8 +42,8 @@ const AgentCreate = ({ onCreated, ouId, owner, preferences,...rest }) => {
42
42
  })), [agentTypes]);
43
43
  const handleSubmit = ({ description, name, type }) => {
44
44
  if (resolvedOuId) mutate({
45
+ attributes: { name },
45
46
  description,
46
- name,
47
47
  ouId: resolvedOuId,
48
48
  owner,
49
49
  type
@@ -1 +1 @@
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
+ {"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({attributes: {name}, description, 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,YAAY,EAAC,MAAK;GAAE;GAAa,MAAM;GAAc;GAAO;GAAK,CAAC;;AAInF,QACE,2CAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,iEAAwC,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -7,6 +7,8 @@ const require_useAdminPartStyles = require('../shared/useAdminPartStyles.cjs');
7
7
  const require_AdminSection = require('../shared/AdminSection.cjs');
8
8
  const require_AccountLifecycleParts = require('../shared/AccountLifecycleParts.cjs');
9
9
  const require_AdminParts = require('../shared/AdminParts.cjs');
10
+ let __thunderid_browser = require("@thunderid/browser");
11
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
10
12
  let react_jsx_runtime = require("react/jsx-runtime");
11
13
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
12
14
 
@@ -82,7 +84,7 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
82
84
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_AdminSection.default, {
83
85
  block: "agent-details",
84
86
  className,
85
- title: agent.name,
87
+ title: (0, __thunderid_browser.getAgentName)(agent),
86
88
  description: agent.description,
87
89
  preferences,
88
90
  actions: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
@@ -91,11 +93,11 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
91
93
  actions: lifecycleActions,
92
94
  collectsOperatorNote: true,
93
95
  isRunning: isRunningLifecycleAction,
94
- name: agent.name,
96
+ name: (0, __thunderid_browser.getAgentName)(agent),
95
97
  onAction: onLifecycleAction
96
98
  }),
97
99
  onDelete && !agent.isReadOnly && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AdminParts.ConfirmButton, {
98
- confirmText: t("admin.agents.details.delete.confirm", { name: agent.name }),
100
+ confirmText: t("admin.agents.details.delete.confirm", { name: (0, __thunderid_browser.getAgentName)(agent) }),
99
101
  isLoading: isDeleting,
100
102
  onConfirm: onDelete,
101
103
  children: t("admin.agents.details.delete.action")
@@ -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}[]","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
+ {"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, getAgentName} 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={getAgentName(agent)}\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={getAgentName(agent)}\n onAction={onLifecycleAction}\n />\n )}\n {onDelete && !agent.isReadOnly && (\n <ConfirmButton\n confirmText={t('admin.agents.details.delete.confirm', {name: getAgentName(agent)})}\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,6CAAoB,MAAM;EAC1B,aAAa,MAAM;EACN;EACb,SACE;GACG;GACA,qBACC,2CAACM;IACC,SAAS;IACT;IACA,WAAW;IACX,4CAAmB,MAAM;IACzB,UAAU;KACV;GAEH,YAAY,CAAC,MAAM,cAClB,2CAACC;IACC,aAAa,EAAE,uCAAuC,EAAC,4CAAmB,MAAM,EAAC,CAAC;IAClF,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"}
@@ -3,6 +3,8 @@ const require_useTranslation = require('../../../hooks/useTranslation.cjs');
3
3
  const require_DataTable = require('../../primitives/DataTable/DataTable.cjs');
4
4
  const require_AdminSearch = require('../shared/AdminSearch.cjs');
5
5
  const require_AdminSection = require('../shared/AdminSection.cjs');
6
+ let __thunderid_browser = require("@thunderid/browser");
7
+ __thunderid_browser = require_rolldown_runtime.__toESM(__thunderid_browser);
6
8
  let react_jsx_runtime = require("react/jsx-runtime");
7
9
  react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
8
10
 
@@ -17,7 +19,7 @@ const BaseAgentList = ({ actions, agents, children, className, description, erro
17
19
  {
18
20
  header: t("admin.agents.list.columns.name"),
19
21
  id: "name",
20
- render: (agent) => agent.name
22
+ render: (agent) => (0, __thunderid_browser.getAgentName)(agent)
21
23
  },
22
24
  {
23
25
  header: t("admin.agents.list.columns.type"),
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgentList.cjs","names":["BaseAgentList: FC<BaseAgentListProps>","useTranslation","columns: DataTableColumn<BasicAgent>[]","AdminSection","AdminSearch","DataTable"],"sources":["../../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {BasicAgent, Preferences, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport DataTable, {DataTableColumn} from '../../primitives/DataTable/DataTable';\nimport {AdminListRenderProps} from '../shared/AdminListRenderProps';\nimport AdminSearch, {AdminSearchValue} from '../shared/AdminSearch';\nimport AdminSection from '../shared/AdminSection';\n\n/**\n * What {@link BaseAgentList} hands its `children` render function. `agents` and `rows` are the same array.\n */\nexport type BaseAgentListRenderProps = AdminListRenderProps<BasicAgent> & {agents: BasicAgent[]};\n\nexport interface BaseAgentListProps {\n /**\n * Controls rendered next to the title, such as a button that opens `AgentCreate`.\n */\n actions?: ReactNode;\n className?: string;\n description?: string;\n agents: BasicAgent[];\n /**\n * Renders custom UI in place of the default table, for example a third-party data grid. Receives\n * the agents, the default columns, the loading and error state, and the pagination and selection\n * handlers.\n */\n children?: (props: BaseAgentListRenderProps) => ReactNode;\n error?: string | null;\n isLoading?: boolean;\n /**\n * Page size.\n * @default 20\n */\n limit?: number;\n offset?: number;\n /**\n * Called with the offset of the page to show. Pagination is hidden when omitted.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Applies a search on the server, or clears it with `null`. The search form shows only when this and\n * `searchAttributes` are set.\n */\n onSearch?: (search: AdminSearchValue | null) => void;\n /**\n * Called when an agent is chosen. Rows are selectable only when set.\n */\n onSelect?: (agent: BasicAgent) => void;\n preferences?: Preferences;\n /**\n * The search currently applied, if any. While set, an empty page says nothing matched.\n */\n search?: AdminSearchValue | null;\n /**\n * The agent attributes that can be searched, with translated labels.\n */\n searchAttributes?: SelectOption[];\n selectedAgentId?: string;\n /**\n * Heading of the list. Pass an empty string to hide it.\n */\n title?: string;\n totalResults?: number;\n}\n\n/**\n * Lists agents with their type, client and organization unit. Holds no data of its own: pass the\n * page of agents and handle selection and pagination.\n */\nconst BaseAgentList: FC<BaseAgentListProps> = ({\n actions,\n agents,\n children,\n className,\n description,\n error = null,\n isLoading = false,\n limit = 20,\n offset = 0,\n onPageChange,\n onSearch,\n onSelect,\n preferences,\n search = null,\n searchAttributes,\n selectedAgentId,\n title,\n totalResults,\n}: BaseAgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n\n const columns: DataTableColumn<BasicAgent>[] = [\n {header: t('admin.agents.list.columns.name'), id: 'name', render: (agent: BasicAgent): ReactNode => agent.name},\n {header: t('admin.agents.list.columns.type'), id: 'type', render: (agent: BasicAgent): ReactNode => agent.type},\n {\n header: t('admin.agents.list.columns.client_id'),\n id: 'clientId',\n render: (agent: BasicAgent): ReactNode => <code>{agent.clientId ?? ''}</code>,\n },\n {\n header: t('admin.common.columns.organization_unit'),\n id: 'ou',\n render: (agent: BasicAgent): ReactNode => agent.ouHandle ?? agent.ouId,\n },\n ];\n\n if (children) {\n return (\n <div className={className}>\n {children({\n columns,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSelect,\n onSearch,\n rows: agents,\n search,\n searchAttributes,\n selectedRowId: selectedAgentId,\n totalResults: totalResults ?? agents.length,\n agents,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"agent-list\"\n className={className}\n title={title ?? t('admin.agents.list.title')}\n description={description}\n actions={actions}\n preferences={preferences}\n >\n {onSearch && searchAttributes?.length ? (\n <AdminSearch attributes={searchAttributes} search={search} onSearch={onSearch} />\n ) : null}\n <DataTable\n caption={title?.length ? title : t('admin.agents.list.title')}\n columns={columns}\n rows={agents}\n getRowId={(agent: BasicAgent): string => agent.id}\n isLoading={isLoading}\n error={error}\n emptyText={search ? t('admin.common.search.no_results', {value: search.value}) : t('admin.agents.list.empty')}\n onRowClick={onSelect}\n selectedRowId={selectedAgentId}\n pagination={\n onPageChange ? {limit, offset, onChange: onPageChange, total: totalResults ?? agents.length} : undefined\n }\n />\n </AdminSection>\n );\n};\n\nexport default BaseAgentList;\n"],"mappings":";;;;;;;;;;;;;AAwEA,MAAMA,iBAAyC,EAC7C,SACA,QACA,UACA,WACA,aACA,QAAQ,MACR,YAAY,OACZ,QAAQ,IACR,SAAS,GACT,cACA,UACA,UACA,aACA,SAAS,MACT,kBACA,iBACA,OACA,mBACsC;CACtC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAE7C,MAAMC,UAAyC;EAC7C;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GACE,QAAQ,EAAE,sCAAsC;GAChD,IAAI;GACJ,SAAS,UAAiC,2CAAC,oBAAM,MAAM,YAAY,KAAU;GAC9E;EACD;GACE,QAAQ,EAAE,yCAAyC;GACnD,IAAI;GACJ,SAAS,UAAiC,MAAM,YAAY,MAAM;GACnE;EACF;AAED,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA,eAAe;GACf,cAAc,gBAAgB,OAAO;GACrC;GACD,CAAC;GACE;AAIV,QACE,4CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,0BAA0B;EAC/B;EACJ;EACI;aAEZ,YAAY,kBAAkB,SAC7B,2CAACC;GAAY,YAAY;GAA0B;GAAkB;IAAY,GAC/E,MACJ,2CAACC;GACC,SAAS,OAAO,SAAS,QAAQ,EAAE,0BAA0B;GACpD;GACT,MAAM;GACN,WAAW,UAA8B,MAAM;GACpC;GACJ;GACP,WAAW,SAAS,EAAE,kCAAkC,EAAC,OAAO,OAAO,OAAM,CAAC,GAAG,EAAE,0BAA0B;GAC7G,YAAY;GACZ,eAAe;GACf,YACE,eAAe;IAAC;IAAO;IAAQ,UAAU;IAAc,OAAO,gBAAgB,OAAO;IAAO,GAAG;IAEjG;GACW;;AAInB,4BAAe"}
1
+ {"version":3,"file":"BaseAgentList.cjs","names":["BaseAgentList: FC<BaseAgentListProps>","useTranslation","columns: DataTableColumn<BasicAgent>[]","AdminSection","AdminSearch","DataTable"],"sources":["../../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {BasicAgent, Preferences, SelectOption, getAgentName} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport DataTable, {DataTableColumn} from '../../primitives/DataTable/DataTable';\nimport {AdminListRenderProps} from '../shared/AdminListRenderProps';\nimport AdminSearch, {AdminSearchValue} from '../shared/AdminSearch';\nimport AdminSection from '../shared/AdminSection';\n\n/**\n * What {@link BaseAgentList} hands its `children` render function. `agents` and `rows` are the same array.\n */\nexport type BaseAgentListRenderProps = AdminListRenderProps<BasicAgent> & {agents: BasicAgent[]};\n\nexport interface BaseAgentListProps {\n /**\n * Controls rendered next to the title, such as a button that opens `AgentCreate`.\n */\n actions?: ReactNode;\n className?: string;\n description?: string;\n agents: BasicAgent[];\n /**\n * Renders custom UI in place of the default table, for example a third-party data grid. Receives\n * the agents, the default columns, the loading and error state, and the pagination and selection\n * handlers.\n */\n children?: (props: BaseAgentListRenderProps) => ReactNode;\n error?: string | null;\n isLoading?: boolean;\n /**\n * Page size.\n * @default 20\n */\n limit?: number;\n offset?: number;\n /**\n * Called with the offset of the page to show. Pagination is hidden when omitted.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Applies a search on the server, or clears it with `null`. The search form shows only when this and\n * `searchAttributes` are set.\n */\n onSearch?: (search: AdminSearchValue | null) => void;\n /**\n * Called when an agent is chosen. Rows are selectable only when set.\n */\n onSelect?: (agent: BasicAgent) => void;\n preferences?: Preferences;\n /**\n * The search currently applied, if any. While set, an empty page says nothing matched.\n */\n search?: AdminSearchValue | null;\n /**\n * The agent attributes that can be searched, with translated labels.\n */\n searchAttributes?: SelectOption[];\n selectedAgentId?: string;\n /**\n * Heading of the list. Pass an empty string to hide it.\n */\n title?: string;\n totalResults?: number;\n}\n\n/**\n * Lists agents with their type, client and organization unit. Holds no data of its own: pass the\n * page of agents and handle selection and pagination.\n */\nconst BaseAgentList: FC<BaseAgentListProps> = ({\n actions,\n agents,\n children,\n className,\n description,\n error = null,\n isLoading = false,\n limit = 20,\n offset = 0,\n onPageChange,\n onSearch,\n onSelect,\n preferences,\n search = null,\n searchAttributes,\n selectedAgentId,\n title,\n totalResults,\n}: BaseAgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n\n const columns: DataTableColumn<BasicAgent>[] = [\n {\n header: t('admin.agents.list.columns.name'),\n id: 'name',\n render: (agent: BasicAgent): ReactNode => getAgentName(agent),\n },\n {header: t('admin.agents.list.columns.type'), id: 'type', render: (agent: BasicAgent): ReactNode => agent.type},\n {\n header: t('admin.agents.list.columns.client_id'),\n id: 'clientId',\n render: (agent: BasicAgent): ReactNode => <code>{agent.clientId ?? ''}</code>,\n },\n {\n header: t('admin.common.columns.organization_unit'),\n id: 'ou',\n render: (agent: BasicAgent): ReactNode => agent.ouHandle ?? agent.ouId,\n },\n ];\n\n if (children) {\n return (\n <div className={className}>\n {children({\n columns,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSelect,\n onSearch,\n rows: agents,\n search,\n searchAttributes,\n selectedRowId: selectedAgentId,\n totalResults: totalResults ?? agents.length,\n agents,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"agent-list\"\n className={className}\n title={title ?? t('admin.agents.list.title')}\n description={description}\n actions={actions}\n preferences={preferences}\n >\n {onSearch && searchAttributes?.length ? (\n <AdminSearch attributes={searchAttributes} search={search} onSearch={onSearch} />\n ) : null}\n <DataTable\n caption={title?.length ? title : t('admin.agents.list.title')}\n columns={columns}\n rows={agents}\n getRowId={(agent: BasicAgent): string => agent.id}\n isLoading={isLoading}\n error={error}\n emptyText={search ? t('admin.common.search.no_results', {value: search.value}) : t('admin.agents.list.empty')}\n onRowClick={onSelect}\n selectedRowId={selectedAgentId}\n pagination={\n onPageChange ? {limit, offset, onChange: onPageChange, total: totalResults ?? agents.length} : undefined\n }\n />\n </AdminSection>\n );\n};\n\nexport default BaseAgentList;\n"],"mappings":";;;;;;;;;;;;;;;AAwEA,MAAMA,iBAAyC,EAC7C,SACA,QACA,UACA,WACA,aACA,QAAQ,MACR,YAAY,OACZ,QAAQ,IACR,SAAS,GACT,cACA,UACA,UACA,aACA,SAAS,MACT,kBACA,iBACA,OACA,mBACsC;CACtC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAE7C,MAAMC,UAAyC;EAC7C;GACE,QAAQ,EAAE,iCAAiC;GAC3C,IAAI;GACJ,SAAS,gDAA8C,MAAM;GAC9D;EACD;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GACE,QAAQ,EAAE,sCAAsC;GAChD,IAAI;GACJ,SAAS,UAAiC,2CAAC,oBAAM,MAAM,YAAY,KAAU;GAC9E;EACD;GACE,QAAQ,EAAE,yCAAyC;GACnD,IAAI;GACJ,SAAS,UAAiC,MAAM,YAAY,MAAM;GACnE;EACF;AAED,KAAI,SACF,QACE,2CAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA,eAAe;GACf,cAAc,gBAAgB,OAAO;GACrC;GACD,CAAC;GACE;AAIV,QACE,4CAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,0BAA0B;EAC/B;EACJ;EACI;aAEZ,YAAY,kBAAkB,SAC7B,2CAACC;GAAY,YAAY;GAA0B;GAAkB;IAAY,GAC/E,MACJ,2CAACC;GACC,SAAS,OAAO,SAAS,QAAQ,EAAE,0BAA0B;GACpD;GACT,MAAM;GACN,WAAW,UAA8B,MAAM;GACpC;GACJ;GACP,WAAW,SAAS,EAAE,kCAAkC,EAAC,OAAO,OAAO,OAAM,CAAC,GAAG,EAAE,0BAA0B;GAC7G,YAAY;GACZ,eAAe;GACf,YACE,eAAe;IAAC;IAAO;IAAQ,UAAU;IAAc,OAAO,gBAAgB,OAAO;IAAO,GAAG;IAEjG;GACW;;AAInB,4BAAe"}
@@ -70,7 +70,7 @@ const GroupMembers = ({ administrationMode, editable = false, groupId, preferenc
70
70
  const candidates = (0, react.useMemo)(() => ({
71
71
  agent: (agents.data?.agents ?? []).map((agent) => ({
72
72
  id: agent.id,
73
- label: agent.name
73
+ label: (0, __thunderid_browser.getAgentName)(agent)
74
74
  })),
75
75
  user: (users.data?.users ?? []).map((user) => ({
76
76
  id: user.id,
@@ -1 +1 @@
1
- {"version":3,"file":"GroupMembers.cjs","names":["GroupQueryKeys","RoleQueryKeys","GroupMembers: FC<GroupMembersProps>","useTranslation","groupsEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","members: ResourceQueryResult<GroupMemberListResponse>","useResourceQuery","users: ResourceQueryResult<ManagedUserListResponse>","UserQueryKeys","agents: ResourceQueryResult<AgentListResponse>","AgentQueryKeys","add: ResourceMutationResult<Group, GroupMembersVariables>","useResourceMutation","remove: ResourceMutationResult<Group, GroupMembersVariables>","candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>>","BaseGroupMembers"],"sources":["../../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupMember,\n GroupMemberListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n ResourceQueryKey,\n RoleQueryKeys,\n UserQueryKeys,\n addGroupMembers,\n getAgents,\n getGroupMembers,\n getUsers,\n removeGroupMembers,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseGroupMembers, {BaseGroupMembersProps} from './BaseGroupMembers';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface GroupMembersVariables {\n groupId: string;\n members: Pick<GroupMember, 'id' | 'type'>[];\n}\n\n/**\n * Query keys to refetch after a group's membership changes.\n */\nconst getMembershipInvalidatedKeys = ({groupId}: GroupMembersVariables): ResourceQueryKey[] => [\n [GroupQueryKeys.GROUP, groupId],\n [GroupQueryKeys.GROUP_MEMBERS, groupId],\n [GroupQueryKeys.MEMBERSHIPS],\n [RoleQueryKeys.ROLE_ASSIGNMENTS],\n];\n\nexport type GroupMembersProps = Omit<\n BaseGroupMembersProps,\n 'candidates' | 'error' | 'isLoading' | 'isMutating' | 'members' | 'onAdd' | 'onRemove'\n> & {\n /**\n * How a member is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether members can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n groupId: string;\n};\n\n/**\n * Lists the users and agents in a group, and lets the signed-in user add and remove them.\n *\n * @example\n * ```tsx\n * <GroupMembers groupId={groupId} />\n * ```\n */\nconst GroupMembers: FC<GroupMembersProps> = ({\n administrationMode,\n editable = false,\n groupId,\n preferences,\n ...rest\n}: GroupMembersProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const members: ResourceQueryResult<GroupMemberListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUP_MEMBERS, groupId, {limit: 100}],\n (fetcher) => getGroupMembers({...groupsEndpoint, fetcher, groupId, limit: 100}),\n {enabled: Boolean(groupId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const add: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n addGroupMembers({...groupsEndpoint, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n const remove: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n removeGroupMembers({...groupsEndpoint, administrationMode, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n\n const candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, users.data],\n );\n\n return (\n <BaseGroupMembers\n members={members.data?.members ?? []}\n isLoading={members.isLoading}\n isMutating={add.isLoading || remove.isLoading}\n error={\n toManagementErrorMessage(t, members.error, 'admin.groups.members.error') ??\n toManagementErrorMessage(t, add.error ?? remove.error, 'admin.groups.members.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAdd={\n editable\n ? (member: Pick<GroupMember, 'id' | 'type'>): void => void add.mutate({groupId, members: [member]})\n : undefined\n }\n onRemove={\n editable\n ? (member: GroupMember): void => void remove.mutate({groupId, members: [{id: member.id, type: member.type}]})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default GroupMembers;\n"],"mappings":";;;;;;;;;;;;;;;;;AAyCA,MAAM,gCAAgC,EAAC,cAAwD;CAC7F,CAACA,mCAAe,OAAO,QAAQ;CAC/B,CAACA,mCAAe,eAAe,QAAQ;CACvC,CAACA,mCAAe,YAAY;CAC5B,CAACC,kCAAc,iBAAiB;CACjC;;;;;;;;;AA4BD,MAAMC,gBAAuC,EAC3C,oBACA,WAAW,OACX,SACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,iBAAqCC,sCAAsB,SAAS;CAC1E,MAAMC,gBAAoCD,sCAAsB,QAAQ;CACxE,MAAME,iBAAqCF,sCAAsB,SAAS;CAC1E,MAAMG,UAAwDC,iCAC5D;EAACT,mCAAe;EAAe;EAAS,EAAC,OAAO,KAAI;EAAC,GACpD,qDAA4B;EAAC,GAAG;EAAgB;EAAS;EAAS,OAAO;EAAI,CAAC,EAC/E,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMU,QAAsDD,iCAC1D,CAACE,kCAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,8CAAqB;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDH,iCACrD,CAACI,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,MAA4DC,qCAC/D,EAAC,SAAS,IAAI,SAAS,WAAiC,qDACvC;EAAC,GAAG;EAAgB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EAC9E,6BACD;CACD,MAAMC,SAA+DD,qCAClE,EAAC,SAAS,IAAI,SAAS,WAAiC,wDACpC;EAAC,GAAG;EAAgB;EAAoB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EACrG,6BACD;CAED,MAAME,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD,CAAC,OAAO,MAAM,MAAM,KAAK,CAC1B;AAED,QACE,2CAACC;EACC,SAAS,QAAQ,MAAM,WAAW,EAAE;EACpC,WAAW,QAAQ;EACnB,YAAY,IAAI,aAAa,OAAO;EACpC,yDAC2B,GAAG,QAAQ,OAAO,6BAA6B,sDAC/C,GAAG,IAAI,SAAS,OAAO,OAAO,oCAAoC;EAE7F,YAAY,WAAW,aAAa;EACpC,OACE,YACK,WAAmD,KAAK,IAAI,OAAO;GAAC;GAAS,SAAS,CAAC,OAAO;GAAC,CAAC,GACjG;EAEN,UACE,YACK,WAA8B,KAAK,OAAO,OAAO;GAAC;GAAS,SAAS,CAAC;IAAC,IAAI,OAAO;IAAI,MAAM,OAAO;IAAK,CAAC;GAAC,CAAC,GAC3G;EAEO;EACb,GAAI;GACJ;;AAIN,2BAAe"}
1
+ {"version":3,"file":"GroupMembers.cjs","names":["GroupQueryKeys","RoleQueryKeys","GroupMembers: FC<GroupMembersProps>","useTranslation","groupsEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","members: ResourceQueryResult<GroupMemberListResponse>","useResourceQuery","users: ResourceQueryResult<ManagedUserListResponse>","UserQueryKeys","agents: ResourceQueryResult<AgentListResponse>","AgentQueryKeys","add: ResourceMutationResult<Group, GroupMembersVariables>","useResourceMutation","remove: ResourceMutationResult<Group, GroupMembersVariables>","candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>>","BaseGroupMembers"],"sources":["../../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupMember,\n GroupMemberListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n ResourceQueryKey,\n RoleQueryKeys,\n UserQueryKeys,\n addGroupMembers,\n getAgentName,\n getAgents,\n getGroupMembers,\n getUsers,\n removeGroupMembers,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseGroupMembers, {BaseGroupMembersProps} from './BaseGroupMembers';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface GroupMembersVariables {\n groupId: string;\n members: Pick<GroupMember, 'id' | 'type'>[];\n}\n\n/**\n * Query keys to refetch after a group's membership changes.\n */\nconst getMembershipInvalidatedKeys = ({groupId}: GroupMembersVariables): ResourceQueryKey[] => [\n [GroupQueryKeys.GROUP, groupId],\n [GroupQueryKeys.GROUP_MEMBERS, groupId],\n [GroupQueryKeys.MEMBERSHIPS],\n [RoleQueryKeys.ROLE_ASSIGNMENTS],\n];\n\nexport type GroupMembersProps = Omit<\n BaseGroupMembersProps,\n 'candidates' | 'error' | 'isLoading' | 'isMutating' | 'members' | 'onAdd' | 'onRemove'\n> & {\n /**\n * How a member is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether members can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n groupId: string;\n};\n\n/**\n * Lists the users and agents in a group, and lets the signed-in user add and remove them.\n *\n * @example\n * ```tsx\n * <GroupMembers groupId={groupId} />\n * ```\n */\nconst GroupMembers: FC<GroupMembersProps> = ({\n administrationMode,\n editable = false,\n groupId,\n preferences,\n ...rest\n}: GroupMembersProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const members: ResourceQueryResult<GroupMemberListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUP_MEMBERS, groupId, {limit: 100}],\n (fetcher) => getGroupMembers({...groupsEndpoint, fetcher, groupId, limit: 100}),\n {enabled: Boolean(groupId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const add: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n addGroupMembers({...groupsEndpoint, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n const remove: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n removeGroupMembers({...groupsEndpoint, administrationMode, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n\n const candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: getAgentName(agent)})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, users.data],\n );\n\n return (\n <BaseGroupMembers\n members={members.data?.members ?? []}\n isLoading={members.isLoading}\n isMutating={add.isLoading || remove.isLoading}\n error={\n toManagementErrorMessage(t, members.error, 'admin.groups.members.error') ??\n toManagementErrorMessage(t, add.error ?? remove.error, 'admin.groups.members.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAdd={\n editable\n ? (member: Pick<GroupMember, 'id' | 'type'>): void => void add.mutate({groupId, members: [member]})\n : undefined\n }\n onRemove={\n editable\n ? (member: GroupMember): void => void remove.mutate({groupId, members: [{id: member.id, type: member.type}]})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default GroupMembers;\n"],"mappings":";;;;;;;;;;;;;;;;;AA0CA,MAAM,gCAAgC,EAAC,cAAwD;CAC7F,CAACA,mCAAe,OAAO,QAAQ;CAC/B,CAACA,mCAAe,eAAe,QAAQ;CACvC,CAACA,mCAAe,YAAY;CAC5B,CAACC,kCAAc,iBAAiB;CACjC;;;;;;;;;AA4BD,MAAMC,gBAAuC,EAC3C,oBACA,WAAW,OACX,SACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAMC,iBAAqCC,sCAAsB,SAAS;CAC1E,MAAMC,gBAAoCD,sCAAsB,QAAQ;CACxE,MAAME,iBAAqCF,sCAAsB,SAAS;CAC1E,MAAMG,UAAwDC,iCAC5D;EAACT,mCAAe;EAAe;EAAS,EAAC,OAAO,KAAI;EAAC,GACpD,qDAA4B;EAAC,GAAG;EAAgB;EAAS;EAAS,OAAO;EAAI,CAAC,EAC/E,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMU,QAAsDD,iCAC1D,CAACE,kCAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,8CAAqB;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDH,iCACrD,CAACI,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,MAA4DC,qCAC/D,EAAC,SAAS,IAAI,SAAS,WAAiC,qDACvC;EAAC,GAAG;EAAgB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EAC9E,6BACD;CACD,MAAMC,SAA+DD,qCAClE,EAAC,SAAS,IAAI,SAAS,WAAiC,wDACpC;EAAC,GAAG;EAAgB;EAAoB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EACrG,6BACD;CAED,MAAME,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,6CAAoB,MAAM;GAAC,EAAE;EAC3G,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD,CAAC,OAAO,MAAM,MAAM,KAAK,CAC1B;AAED,QACE,2CAACC;EACC,SAAS,QAAQ,MAAM,WAAW,EAAE;EACpC,WAAW,QAAQ;EACnB,YAAY,IAAI,aAAa,OAAO;EACpC,yDAC2B,GAAG,QAAQ,OAAO,6BAA6B,sDAC/C,GAAG,IAAI,SAAS,OAAO,OAAO,oCAAoC;EAE7F,YAAY,WAAW,aAAa;EACpC,OACE,YACK,WAAmD,KAAK,IAAI,OAAO;GAAC;GAAS,SAAS,CAAC,OAAO;GAAC,CAAC,GACjG;EAEN,UACE,YACK,WAA8B,KAAK,OAAO,OAAO;GAAC;GAAS,SAAS,CAAC;IAAC,IAAI,OAAO;IAAI,MAAM,OAAO;IAAK,CAAC;GAAC,CAAC,GAC3G;EAEO;EACb,GAAI;GACJ;;AAIN,2BAAe"}
@@ -21,7 +21,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
21
21
  * <RoleAssignments roleId={roleId} />
22
22
  * ```
23
23
  */
24
- const RoleAssignments = ({ administrationMode, editable = false, filterable = true, preferences, roleId,...rest }) => {
24
+ const RoleAssignments = ({ administrationMode, editable = false, filterable = true, ouId, preferences, roleId,...rest }) => {
25
25
  const { t } = require_useTranslation.default(preferences?.i18n);
26
26
  const [typeFilter, setTypeFilter] = (0, react.useState)(null);
27
27
  const rolesEndpoint = require_useManagementEndpoint.default("roles");
@@ -29,6 +29,7 @@ const RoleAssignments = ({ administrationMode, editable = false, filterable = tr
29
29
  const groupsEndpoint = require_useManagementEndpoint.default("groups");
30
30
  const agentsEndpoint = require_useManagementEndpoint.default("agents");
31
31
  const type = typeFilter ?? void 0;
32
+ const filter = (0, __thunderid_browser.toEqualityFilter)("ouId", ouId);
32
33
  const assignments = require_useResourceQuery.default([
33
34
  __thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS,
34
35
  roleId,
@@ -43,20 +44,41 @@ const RoleAssignments = ({ administrationMode, editable = false, filterable = tr
43
44
  roleId,
44
45
  type
45
46
  }), { enabled: Boolean(roleId) });
46
- const users = require_useResourceQuery.default([__thunderid_browser.UserQueryKeys.USERS, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getUsers)({
47
- ...usersEndpoint,
48
- fetcher,
47
+ const users = require_useResourceQuery.default([__thunderid_browser.UserQueryKeys.USERS, {
48
+ filter,
49
49
  limit: 100
50
+ }], async (fetcher) => ({
51
+ filter,
52
+ page: await (0, __thunderid_browser.getUsers)({
53
+ ...usersEndpoint,
54
+ fetcher,
55
+ filter,
56
+ limit: 100
57
+ })
50
58
  }), { enabled: editable });
51
- const groups = require_useResourceQuery.default([__thunderid_browser.GroupQueryKeys.GROUPS, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getGroups)({
52
- ...groupsEndpoint,
53
- fetcher,
59
+ const groups = require_useResourceQuery.default([__thunderid_browser.GroupQueryKeys.GROUPS, {
60
+ filter,
54
61
  limit: 100
62
+ }], async (fetcher) => ({
63
+ filter,
64
+ page: await (0, __thunderid_browser.getGroups)({
65
+ ...groupsEndpoint,
66
+ fetcher,
67
+ filter,
68
+ limit: 100
69
+ })
55
70
  }), { enabled: editable });
56
- const agents = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENTS, { limit: 100 }], (fetcher) => (0, __thunderid_browser.getAgents)({
57
- ...agentsEndpoint,
58
- fetcher,
71
+ const agents = require_useResourceQuery.default([__thunderid_browser.AgentQueryKeys.AGENTS, {
72
+ filter,
59
73
  limit: 100
74
+ }], async (fetcher) => ({
75
+ filter,
76
+ page: await (0, __thunderid_browser.getAgents)({
77
+ ...agentsEndpoint,
78
+ fetcher,
79
+ filter,
80
+ limit: 100
81
+ })
60
82
  }), { enabled: editable });
61
83
  const assign = require_useResourceMutation.default(({ assignments: changes, roleId: id }, fetcher) => (0, __thunderid_browser.addRoleAssignments)({
62
84
  ...rolesEndpoint,
@@ -71,21 +93,25 @@ const RoleAssignments = ({ administrationMode, editable = false, filterable = tr
71
93
  fetcher,
72
94
  roleId: id
73
95
  }), () => [[__thunderid_browser.RoleQueryKeys.ROLE_ASSIGNMENTS]]);
74
- const candidates = (0, react.useMemo)(() => ({
75
- agent: (agents.data?.agents ?? []).map((agent) => ({
76
- id: agent.id,
77
- label: agent.name
78
- })),
79
- group: (groups.data?.groups ?? []).map((group) => ({
80
- id: group.id,
81
- label: group.name
82
- })),
83
- user: (users.data?.users ?? []).map((user) => ({
84
- id: user.id,
85
- label: (0, __thunderid_browser.resolveManagedIdentityName)(user)
86
- }))
87
- }), [
96
+ const candidates = (0, react.useMemo)(() => {
97
+ const current = (data) => data && data.filter === filter ? data.page : void 0;
98
+ return {
99
+ agent: (current(agents.data)?.agents ?? []).map((agent) => ({
100
+ id: agent.id,
101
+ label: (0, __thunderid_browser.getAgentName)(agent)
102
+ })),
103
+ group: (current(groups.data)?.groups ?? []).map((group) => ({
104
+ id: group.id,
105
+ label: group.name
106
+ })),
107
+ user: (current(users.data)?.users ?? []).map((user) => ({
108
+ id: user.id,
109
+ label: (0, __thunderid_browser.resolveManagedIdentityName)(user)
110
+ }))
111
+ };
112
+ }, [
88
113
  agents.data,
114
+ filter,
89
115
  groups.data,
90
116
  users.data
91
117
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"RoleAssignments.cjs","names":["RoleAssignments: FC<RoleAssignmentsProps>","useTranslation","rolesEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","groupsEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","type: RoleAssigneeType | undefined","assignments: ResourceQueryResult<RoleAssignmentListResponse>","useResourceQuery","RoleQueryKeys","users: ResourceQueryResult<ManagedUserListResponse>","UserQueryKeys","groups: ResourceQueryResult<GroupListResponse>","GroupQueryKeys","agents: ResourceQueryResult<AgentListResponse>","AgentQueryKeys","assign: ResourceMutationResult<void, RoleAssignmentsVariables>","useResourceMutation","unassign: ResourceMutationResult<void, RoleAssignmentsVariables>","candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>>","BaseRoleAssignments"],"sources":["../../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n RoleAssigneeType,\n RoleAssignment,\n RoleAssignmentInput,\n RoleAssignmentListResponse,\n RoleQueryKeys,\n UserQueryKeys,\n addRoleAssignments,\n getAgents,\n getGroups,\n getRoleAssignments,\n getUsers,\n removeRoleAssignments,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRoleAssignments, {BaseRoleAssignmentsProps} from './BaseRoleAssignments';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface RoleAssignmentsVariables {\n assignments: RoleAssignmentInput[];\n roleId: string;\n}\n\nexport type RoleAssignmentsProps = Omit<\n BaseRoleAssignmentsProps,\n | 'assignments'\n | 'candidates'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAssign'\n | 'onTypeFilterChange'\n | 'onUnassign'\n | 'typeFilter'\n> & {\n /**\n * How an assignment is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether assignments can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether to show the assignee type filter, which narrows the list on the server.\n * @default true\n */\n filterable?: boolean;\n roleId: string;\n};\n\n/**\n * Lists who holds a role, and lets the signed-in user assign it to users, groups and agents or\n * remove it from them.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={roleId} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = ({\n administrationMode,\n editable = false,\n filterable = true,\n preferences,\n roleId,\n ...rest\n}: RoleAssignmentsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [typeFilter, setTypeFilter] = useState<RoleAssigneeType | null>(null);\n const rolesEndpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const type: RoleAssigneeType | undefined = typeFilter ?? undefined;\n const assignments: ResourceQueryResult<RoleAssignmentListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, roleId, {limit: 100, type}],\n (fetcher) => getRoleAssignments({...rolesEndpoint, fetcher, limit: 100, roleId, type}),\n {enabled: Boolean(roleId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const groups: ResourceQueryResult<GroupListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUPS, {limit: 100}],\n (fetcher) => getGroups({...groupsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const assign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n addRoleAssignments({...rolesEndpoint, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n const unassign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n removeRoleAssignments({...rolesEndpoint, administrationMode, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n\n const candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n group: (groups.data?.groups ?? []).map((group: Group) => ({id: group.id, label: group.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, groups.data, users.data],\n );\n\n return (\n <BaseRoleAssignments\n assignments={assignments.data?.assignments ?? []}\n isLoading={assignments.isLoading}\n isMutating={assign.isLoading || unassign.isLoading}\n error={\n toManagementErrorMessage(t, assignments.error, 'admin.roles.assignments.error') ??\n toManagementErrorMessage(t, assign.error ?? unassign.error, 'admin.roles.assignments.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAssign={\n editable\n ? (assignment: RoleAssignmentInput): void => void assign.mutate({assignments: [assignment], roleId})\n : undefined\n }\n onUnassign={\n editable\n ? (assignment: RoleAssignment): void =>\n void unassign.mutate({assignments: [{id: assignment.id, type: assignment.type}], roleId})\n : undefined\n }\n typeFilter={typeFilter}\n onTypeFilterChange={filterable ? setTypeFilter : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleAssignments;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiFA,MAAMA,mBAA6C,EACjD,oBACA,WAAW,OACX,aAAa,MACb,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,YAAY,qCAAmD,KAAK;CAC3E,MAAMC,gBAAoCC,sCAAsB,QAAQ;CACxE,MAAMC,gBAAoCD,sCAAsB,QAAQ;CACxE,MAAME,iBAAqCF,sCAAsB,SAAS;CAC1E,MAAMG,iBAAqCH,sCAAsB,SAAS;CAC1E,MAAMI,OAAqC,cAAc;CACzD,MAAMC,cAA+DC,iCACnE;EAACC,kCAAc;EAAkB;EAAQ;GAAC,OAAO;GAAK;GAAK;EAAC,GAC3D,wDAA+B;EAAC,GAAG;EAAe;EAAS,OAAO;EAAK;EAAQ;EAAK,CAAC,EACtF,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAMC,QAAsDF,iCAC1D,CAACG,kCAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,8CAAqB;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDJ,iCACrD,CAACK,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiDN,iCACrD,CAACO,mCAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,+CAAsB;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMC,SAAiEC,qCACpE,EAAC,aAAa,SAAS,QAAQ,MAA+B,wDAC1C;EAAC,GAAG;EAAe,aAAa;EAAS;EAAS,QAAQ;EAAG,CAAC,QAC7E,CAAC,CAACR,kCAAc,iBAAiB,CAAC,CACzC;CACD,MAAMS,WAAmED,qCACtE,EAAC,aAAa,SAAS,QAAQ,MAA+B,2DACvC;EAAC,GAAG;EAAe;EAAoB,aAAa;EAAS;EAAS,QAAQ;EAAG,CAAC,QACpG,CAAC,CAACR,kCAAc,iBAAiB,CAAC,CACzC;CAED,MAAMU,uCACG;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAkB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAC7F,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,2DAAkC,KAAK;GACxC,EAAE;EACJ,GACD;EAAC,OAAO;EAAM,OAAO;EAAM,MAAM;EAAK,CACvC;AAED,QACE,2CAACC;EACC,aAAa,YAAY,MAAM,eAAe,EAAE;EAChD,WAAW,YAAY;EACvB,YAAY,OAAO,aAAa,SAAS;EACzC,yDAC2B,GAAG,YAAY,OAAO,gCAAgC,sDACtD,GAAG,OAAO,SAAS,SAAS,OAAO,uCAAuC;EAErG,YAAY,WAAW,aAAa;EACpC,UACE,YACK,eAA0C,KAAK,OAAO,OAAO;GAAC,aAAa,CAAC,WAAW;GAAE;GAAO,CAAC,GAClG;EAEN,YACE,YACK,eACC,KAAK,SAAS,OAAO;GAAC,aAAa,CAAC;IAAC,IAAI,WAAW;IAAI,MAAM,WAAW;IAAK,CAAC;GAAE;GAAO,CAAC,GAC3F;EAEM;EACZ,oBAAoB,aAAa,gBAAgB;EACpC;EACb,GAAI;GACJ;;AAIN,8BAAe"}
1
+ {"version":3,"file":"RoleAssignments.cjs","names":["RoleAssignments: FC<RoleAssignmentsProps>","useTranslation","rolesEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","groupsEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","type: RoleAssigneeType | undefined","filter: string | undefined","assignments: ResourceQueryResult<RoleAssignmentListResponse>","useResourceQuery","RoleQueryKeys","users: ResourceQueryResult<FilteredPage<ManagedUserListResponse>>","UserQueryKeys","groups: ResourceQueryResult<FilteredPage<GroupListResponse>>","GroupQueryKeys","agents: ResourceQueryResult<FilteredPage<AgentListResponse>>","AgentQueryKeys","assign: ResourceMutationResult<void, RoleAssignmentsVariables>","useResourceMutation","unassign: ResourceMutationResult<void, RoleAssignmentsVariables>","candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>>","BaseRoleAssignments"],"sources":["../../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n RoleAssigneeType,\n RoleAssignment,\n RoleAssignmentInput,\n RoleAssignmentListResponse,\n RoleQueryKeys,\n UserQueryKeys,\n addRoleAssignments,\n getAgentName,\n getAgents,\n getGroups,\n getRoleAssignments,\n getUsers,\n removeRoleAssignments,\n resolveManagedIdentityName,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRoleAssignments, {BaseRoleAssignmentsProps} from './BaseRoleAssignments';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface RoleAssignmentsVariables {\n assignments: RoleAssignmentInput[];\n roleId: string;\n}\n\n/**\n * A candidate page with the filter it was listed with.\n */\ninterface FilteredPage<T> {\n filter: string | undefined;\n page: T;\n}\n\nexport type RoleAssignmentsProps = Omit<\n BaseRoleAssignmentsProps,\n | 'assignments'\n | 'candidates'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAssign'\n | 'onTypeFilterChange'\n | 'onUnassign'\n | 'typeFilter'\n> & {\n /**\n * How an assignment is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether assignments can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether to show the assignee type filter, which narrows the list on the server.\n * @default true\n */\n filterable?: boolean;\n /**\n * Organization unit the users, groups and agents offered for assignment are listed from.\n */\n ouId?: string;\n roleId: string;\n};\n\n/**\n * Lists who holds a role, and lets the signed-in user assign it to users, groups and agents or\n * remove it from them.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={roleId} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = ({\n administrationMode,\n editable = false,\n filterable = true,\n ouId,\n preferences,\n roleId,\n ...rest\n}: RoleAssignmentsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [typeFilter, setTypeFilter] = useState<RoleAssigneeType | null>(null);\n const rolesEndpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const type: RoleAssigneeType | undefined = typeFilter ?? undefined;\n const filter: string | undefined = toEqualityFilter('ouId', ouId);\n const assignments: ResourceQueryResult<RoleAssignmentListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, roleId, {limit: 100, type}],\n (fetcher) => getRoleAssignments({...rolesEndpoint, fetcher, limit: 100, roleId, type}),\n {enabled: Boolean(roleId)},\n );\n const users: ResourceQueryResult<FilteredPage<ManagedUserListResponse>> = useResourceQuery(\n [UserQueryKeys.USERS, {filter, limit: 100}],\n async (fetcher) => ({filter, page: await getUsers({...usersEndpoint, fetcher, filter, limit: 100})}),\n {enabled: editable},\n );\n const groups: ResourceQueryResult<FilteredPage<GroupListResponse>> = useResourceQuery(\n [GroupQueryKeys.GROUPS, {filter, limit: 100}],\n async (fetcher) => ({filter, page: await getGroups({...groupsEndpoint, fetcher, filter, limit: 100})}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<FilteredPage<AgentListResponse>> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {filter, limit: 100}],\n async (fetcher) => ({filter, page: await getAgents({...agentsEndpoint, fetcher, filter, limit: 100})}),\n {enabled: editable},\n );\n const assign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n addRoleAssignments({...rolesEndpoint, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n const unassign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n removeRoleAssignments({...rolesEndpoint, administrationMode, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n\n const candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>> = useMemo(() => {\n // A page listed for an earlier ouId stays in a query until the next one succeeds, so it is not offered.\n const current = <T,>(data: FilteredPage<T> | undefined): T | undefined =>\n data && data.filter === filter ? data.page : undefined;\n\n return {\n agent: (current(agents.data)?.agents ?? []).map((agent: BasicAgent) => ({\n id: agent.id,\n label: getAgentName(agent),\n })),\n group: (current(groups.data)?.groups ?? []).map((group: Group) => ({id: group.id, label: group.name})),\n user: (current(users.data)?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n };\n }, [agents.data, filter, groups.data, users.data]);\n\n return (\n <BaseRoleAssignments\n assignments={assignments.data?.assignments ?? []}\n isLoading={assignments.isLoading}\n isMutating={assign.isLoading || unassign.isLoading}\n error={\n toManagementErrorMessage(t, assignments.error, 'admin.roles.assignments.error') ??\n toManagementErrorMessage(t, assign.error ?? unassign.error, 'admin.roles.assignments.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAssign={\n editable\n ? (assignment: RoleAssignmentInput): void => void assign.mutate({assignments: [assignment], roleId})\n : undefined\n }\n onUnassign={\n editable\n ? (assignment: RoleAssignment): void =>\n void unassign.mutate({assignments: [{id: assignment.id, type: assignment.type}], roleId})\n : undefined\n }\n typeFilter={typeFilter}\n onTypeFilterChange={filterable ? setTypeFilter : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleAssignments;\n"],"mappings":"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"}
@@ -888,6 +888,12 @@ Object.defineProperty(exports, 'getAgentGroups', {
888
888
  return __thunderid_browser.getAgentGroups;
889
889
  }
890
890
  });
891
+ Object.defineProperty(exports, 'getAgentName', {
892
+ enumerable: true,
893
+ get: function () {
894
+ return __thunderid_browser.getAgentName;
895
+ }
896
+ });
891
897
  Object.defineProperty(exports, 'getAgentRoles', {
892
898
  enumerable: true,
893
899
  get: function () {
@@ -38,8 +38,8 @@ const AgentCreate = ({ onCreated, ouId, owner, preferences,...rest }) => {
38
38
  })), [agentTypes]);
39
39
  const handleSubmit = ({ description, name, type }) => {
40
40
  if (resolvedOuId) mutate({
41
+ attributes: { name },
41
42
  description,
42
- name,
43
43
  ouId: resolvedOuId,
44
44
  owner,
45
45
  type
@@ -1 +1 @@
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
+ {"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({attributes: {name}, description, 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,YAAY,EAAC,MAAK;GAAE;GAAa,MAAM;GAAc;GAAO;GAAK,CAAC;;AAInF,QACE,oBAACC;EACC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OACE,eAAe,yBAAyB,GAAG,OAAO,4BAA4B,GAAG,EAAE,4BAA4B;EAEpG;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"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"}
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,EAAe,MAAM,oBAAoB,CAAC;AAC7G,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"}
@@ -6,6 +6,7 @@ import useAdminPartStyles_default from "../shared/useAdminPartStyles.js";
6
6
  import AdminSection_default from "../shared/AdminSection.js";
7
7
  import { AccessStatusBadge, AccountLifecycleButtons } from "../shared/AccountLifecycleParts.js";
8
8
  import { ChipList, ConfirmButton, DetailList, Panel } from "../shared/AdminParts.js";
9
+ import { getAgentName } from "@thunderid/browser";
9
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
11
 
11
12
  //#region src/components/admin/AgentDetails/BaseAgentDetails.tsx
@@ -80,7 +81,7 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
80
81
  return /* @__PURE__ */ jsxs(AdminSection_default, {
81
82
  block: "agent-details",
82
83
  className,
83
- title: agent.name,
84
+ title: getAgentName(agent),
84
85
  description: agent.description,
85
86
  preferences,
86
87
  actions: /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -89,11 +90,11 @@ const BaseAgentDetails = ({ actions, agent, children, className, error = null, g
89
90
  actions: lifecycleActions,
90
91
  collectsOperatorNote: true,
91
92
  isRunning: isRunningLifecycleAction,
92
- name: agent.name,
93
+ name: getAgentName(agent),
93
94
  onAction: onLifecycleAction
94
95
  }),
95
96
  onDelete && !agent.isReadOnly && /* @__PURE__ */ jsx(ConfirmButton, {
96
- confirmText: t("admin.agents.details.delete.confirm", { name: agent.name }),
97
+ confirmText: t("admin.agents.details.delete.confirm", { name: getAgentName(agent) }),
97
98
  isLoading: isDeleting,
98
99
  onConfirm: onDelete,
99
100
  children: t("admin.agents.details.delete.action")
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgentDetails.js","names":["BaseAgentDetails: FC<BaseAgentDetailsProps>","useTranslation","styles: Record<string, string>","useAdminPartStyles","AdminSection","Spinner","Alert","details: {label: string; value: ReactNode}[]","CopyableText"],"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,uBAAe,aAAa,KAAK;CAC7C,MAAMC,SAAiCC,4BAAoB;AAE3D,KAAI,SACF,QACE,oBAAC;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,oBAACC;EAAa,OAAM;EAA2B;EAAwB;YACrE,qBAAC;GAAK,WAAW,OAAO;GAAU,MAAK;;IACrC,oBAACC,mBAAQ,MAAK,UAAU;;IAAE,EAAE,uBAAuB;;IAC9C;GACM;AAInB,KAAI,CAAC,MACH,QACE,oBAACD;EAAa,OAAM;EAA2B;EAAwB;YACrE,oBAACE;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,oBAAC,qBAAkB,QAAQ,MAAM,OAAO,QAAS;EAAC,CAAC;AAGnH,KAAI,MAAM,SACR,SAAQ,KAAK;EAAC,OAAO,EAAE,sCAAsC;EAAE,OAAO,oBAACC,wBAAa,OAAO,MAAM,WAAY;EAAC,CAAC;AAGjH,QACE,qBAACJ;EACC,OAAM;EACK;EACX,OAAO,MAAM;EACb,aAAa,MAAM;EACN;EACb,SACE;GACG;GACA,qBACC,oBAAC;IACC,SAAS;IACT;IACA,WAAW;IACX,MAAM,MAAM;IACZ,UAAU;KACV;GAEH,YAAY,CAAC,MAAM,cAClB,oBAAC;IACC,aAAa,EAAE,uCAAuC,EAAC,MAAM,MAAM,MAAK,CAAC;IACzE,WAAW;IACX,WAAW;cAEV,EAAE,qCAAqC;KAC1B;MAEjB;;GAGJ,SACC,oBAACE;IAAM,SAAQ;IAAQ,MAAK;cACzB;KACK;GAEV,oBAAC;IAAM,OAAO,EAAE,gCAAgC;cAC9C,oBAAC,cAAW,OAAO,UAAW;KACxB;GACR,oBAAC;IAAM,OAAO,EAAE,8BAA8B;cAC5C,oBAAC;KACC,OAAO,EAAE,8BAA8B;KACvC,WAAW,EAAE,iCAAiC;KAC9C,OAAO,OAAO,KAAK,WAA4B;MAAC,IAAI,MAAM;MAAI,OAAO,MAAM;MAAK,EAAE;MAClF;KACI;GACR,oBAAC;IAAM,OAAO,EAAE,6BAA6B;cAC3C,oBAAC;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
+ {"version":3,"file":"BaseAgentDetails.js","names":["BaseAgentDetails: FC<BaseAgentDetailsProps>","useTranslation","styles: Record<string, string>","useAdminPartStyles","AdminSection","Spinner","Alert","details: {label: string; value: ReactNode}[]","CopyableText"],"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, getAgentName} 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={getAgentName(agent)}\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={getAgentName(agent)}\n onAction={onLifecycleAction}\n />\n )}\n {onDelete && !agent.isReadOnly && (\n <ConfirmButton\n confirmText={t('admin.agents.details.delete.confirm', {name: getAgentName(agent)})}\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,uBAAe,aAAa,KAAK;CAC7C,MAAMC,SAAiCC,4BAAoB;AAE3D,KAAI,SACF,QACE,oBAAC;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,oBAACC;EAAa,OAAM;EAA2B;EAAwB;YACrE,qBAAC;GAAK,WAAW,OAAO;GAAU,MAAK;;IACrC,oBAACC,mBAAQ,MAAK,UAAU;;IAAE,EAAE,uBAAuB;;IAC9C;GACM;AAInB,KAAI,CAAC,MACH,QACE,oBAACD;EAAa,OAAM;EAA2B;EAAwB;YACrE,oBAACE;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,oBAAC,qBAAkB,QAAQ,MAAM,OAAO,QAAS;EAAC,CAAC;AAGnH,KAAI,MAAM,SACR,SAAQ,KAAK;EAAC,OAAO,EAAE,sCAAsC;EAAE,OAAO,oBAACC,wBAAa,OAAO,MAAM,WAAY;EAAC,CAAC;AAGjH,QACE,qBAACJ;EACC,OAAM;EACK;EACX,OAAO,aAAa,MAAM;EAC1B,aAAa,MAAM;EACN;EACb,SACE;GACG;GACA,qBACC,oBAAC;IACC,SAAS;IACT;IACA,WAAW;IACX,MAAM,aAAa,MAAM;IACzB,UAAU;KACV;GAEH,YAAY,CAAC,MAAM,cAClB,oBAAC;IACC,aAAa,EAAE,uCAAuC,EAAC,MAAM,aAAa,MAAM,EAAC,CAAC;IAClF,WAAW;IACX,WAAW;cAEV,EAAE,qCAAqC;KAC1B;MAEjB;;GAGJ,SACC,oBAACE;IAAM,SAAQ;IAAQ,MAAK;cACzB;KACK;GAEV,oBAAC;IAAM,OAAO,EAAE,gCAAgC;cAC9C,oBAAC,cAAW,OAAO,UAAW;KACxB;GACR,oBAAC;IAAM,OAAO,EAAE,8BAA8B;cAC5C,oBAAC;KACC,OAAO,EAAE,8BAA8B;KACvC,WAAW,EAAE,iCAAiC;KAC9C,OAAO,OAAO,KAAK,WAA4B;MAAC,IAAI,MAAM;MAAI,OAAO,MAAM;MAAK,EAAE;MAClF;KACI;GACR,oBAAC;IAAM,OAAO,EAAE,6BAA6B;cAC3C,oBAAC;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 +1 @@
1
- {"version":3,"file":"BaseAgentList.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAC,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAoB,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAGpE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,UAAU,CAAC,GAAG;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAC,CAAC;AAEjG,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,SAAS,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAwFzC,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"BaseAgentList.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAC,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAoB,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAGpE;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,UAAU,CAAC,GAAG;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAC,CAAC;AAEjG,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,SAAS,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA4FzC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -2,6 +2,7 @@ import useTranslation_default from "../../../hooks/useTranslation.js";
2
2
  import DataTable_default from "../../primitives/DataTable/DataTable.js";
3
3
  import AdminSearch_default from "../shared/AdminSearch.js";
4
4
  import AdminSection_default from "../shared/AdminSection.js";
5
+ import { getAgentName } from "@thunderid/browser";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
 
7
8
  //#region src/components/admin/AgentList/BaseAgentList.tsx
@@ -15,7 +16,7 @@ const BaseAgentList = ({ actions, agents, children, className, description, erro
15
16
  {
16
17
  header: t("admin.agents.list.columns.name"),
17
18
  id: "name",
18
- render: (agent) => agent.name
19
+ render: (agent) => getAgentName(agent)
19
20
  },
20
21
  {
21
22
  header: t("admin.agents.list.columns.type"),
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgentList.js","names":["BaseAgentList: FC<BaseAgentListProps>","useTranslation","columns: DataTableColumn<BasicAgent>[]","AdminSection","AdminSearch","DataTable"],"sources":["../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {BasicAgent, Preferences, SelectOption} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport DataTable, {DataTableColumn} from '../../primitives/DataTable/DataTable';\nimport {AdminListRenderProps} from '../shared/AdminListRenderProps';\nimport AdminSearch, {AdminSearchValue} from '../shared/AdminSearch';\nimport AdminSection from '../shared/AdminSection';\n\n/**\n * What {@link BaseAgentList} hands its `children` render function. `agents` and `rows` are the same array.\n */\nexport type BaseAgentListRenderProps = AdminListRenderProps<BasicAgent> & {agents: BasicAgent[]};\n\nexport interface BaseAgentListProps {\n /**\n * Controls rendered next to the title, such as a button that opens `AgentCreate`.\n */\n actions?: ReactNode;\n className?: string;\n description?: string;\n agents: BasicAgent[];\n /**\n * Renders custom UI in place of the default table, for example a third-party data grid. Receives\n * the agents, the default columns, the loading and error state, and the pagination and selection\n * handlers.\n */\n children?: (props: BaseAgentListRenderProps) => ReactNode;\n error?: string | null;\n isLoading?: boolean;\n /**\n * Page size.\n * @default 20\n */\n limit?: number;\n offset?: number;\n /**\n * Called with the offset of the page to show. Pagination is hidden when omitted.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Applies a search on the server, or clears it with `null`. The search form shows only when this and\n * `searchAttributes` are set.\n */\n onSearch?: (search: AdminSearchValue | null) => void;\n /**\n * Called when an agent is chosen. Rows are selectable only when set.\n */\n onSelect?: (agent: BasicAgent) => void;\n preferences?: Preferences;\n /**\n * The search currently applied, if any. While set, an empty page says nothing matched.\n */\n search?: AdminSearchValue | null;\n /**\n * The agent attributes that can be searched, with translated labels.\n */\n searchAttributes?: SelectOption[];\n selectedAgentId?: string;\n /**\n * Heading of the list. Pass an empty string to hide it.\n */\n title?: string;\n totalResults?: number;\n}\n\n/**\n * Lists agents with their type, client and organization unit. Holds no data of its own: pass the\n * page of agents and handle selection and pagination.\n */\nconst BaseAgentList: FC<BaseAgentListProps> = ({\n actions,\n agents,\n children,\n className,\n description,\n error = null,\n isLoading = false,\n limit = 20,\n offset = 0,\n onPageChange,\n onSearch,\n onSelect,\n preferences,\n search = null,\n searchAttributes,\n selectedAgentId,\n title,\n totalResults,\n}: BaseAgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n\n const columns: DataTableColumn<BasicAgent>[] = [\n {header: t('admin.agents.list.columns.name'), id: 'name', render: (agent: BasicAgent): ReactNode => agent.name},\n {header: t('admin.agents.list.columns.type'), id: 'type', render: (agent: BasicAgent): ReactNode => agent.type},\n {\n header: t('admin.agents.list.columns.client_id'),\n id: 'clientId',\n render: (agent: BasicAgent): ReactNode => <code>{agent.clientId ?? ''}</code>,\n },\n {\n header: t('admin.common.columns.organization_unit'),\n id: 'ou',\n render: (agent: BasicAgent): ReactNode => agent.ouHandle ?? agent.ouId,\n },\n ];\n\n if (children) {\n return (\n <div className={className}>\n {children({\n columns,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSelect,\n onSearch,\n rows: agents,\n search,\n searchAttributes,\n selectedRowId: selectedAgentId,\n totalResults: totalResults ?? agents.length,\n agents,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"agent-list\"\n className={className}\n title={title ?? t('admin.agents.list.title')}\n description={description}\n actions={actions}\n preferences={preferences}\n >\n {onSearch && searchAttributes?.length ? (\n <AdminSearch attributes={searchAttributes} search={search} onSearch={onSearch} />\n ) : null}\n <DataTable\n caption={title?.length ? title : t('admin.agents.list.title')}\n columns={columns}\n rows={agents}\n getRowId={(agent: BasicAgent): string => agent.id}\n isLoading={isLoading}\n error={error}\n emptyText={search ? t('admin.common.search.no_results', {value: search.value}) : t('admin.agents.list.empty')}\n onRowClick={onSelect}\n selectedRowId={selectedAgentId}\n pagination={\n onPageChange ? {limit, offset, onChange: onPageChange, total: totalResults ?? agents.length} : undefined\n }\n />\n </AdminSection>\n );\n};\n\nexport default BaseAgentList;\n"],"mappings":";;;;;;;;;;;AAwEA,MAAMA,iBAAyC,EAC7C,SACA,QACA,UACA,WACA,aACA,QAAQ,MACR,YAAY,OACZ,QAAQ,IACR,SAAS,GACT,cACA,UACA,UACA,aACA,SAAS,MACT,kBACA,iBACA,OACA,mBACsC;CACtC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAE7C,MAAMC,UAAyC;EAC7C;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GACE,QAAQ,EAAE,sCAAsC;GAChD,IAAI;GACJ,SAAS,UAAiC,oBAAC,oBAAM,MAAM,YAAY,KAAU;GAC9E;EACD;GACE,QAAQ,EAAE,yCAAyC;GACnD,IAAI;GACJ,SAAS,UAAiC,MAAM,YAAY,MAAM;GACnE;EACF;AAED,KAAI,SACF,QACE,oBAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA,eAAe;GACf,cAAc,gBAAgB,OAAO;GACrC;GACD,CAAC;GACE;AAIV,QACE,qBAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,0BAA0B;EAC/B;EACJ;EACI;aAEZ,YAAY,kBAAkB,SAC7B,oBAACC;GAAY,YAAY;GAA0B;GAAkB;IAAY,GAC/E,MACJ,oBAACC;GACC,SAAS,OAAO,SAAS,QAAQ,EAAE,0BAA0B;GACpD;GACT,MAAM;GACN,WAAW,UAA8B,MAAM;GACpC;GACJ;GACP,WAAW,SAAS,EAAE,kCAAkC,EAAC,OAAO,OAAO,OAAM,CAAC,GAAG,EAAE,0BAA0B;GAC7G,YAAY;GACZ,eAAe;GACf,YACE,eAAe;IAAC;IAAO;IAAQ,UAAU;IAAc,OAAO,gBAAgB,OAAO;IAAO,GAAG;IAEjG;GACW;;AAInB,4BAAe"}
1
+ {"version":3,"file":"BaseAgentList.js","names":["BaseAgentList: FC<BaseAgentListProps>","useTranslation","columns: DataTableColumn<BasicAgent>[]","AdminSection","AdminSearch","DataTable"],"sources":["../../../../src/components/admin/AgentList/BaseAgentList.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {BasicAgent, Preferences, SelectOption, getAgentName} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode} from 'react';\nimport useTranslation from '../../../hooks/useTranslation';\nimport DataTable, {DataTableColumn} from '../../primitives/DataTable/DataTable';\nimport {AdminListRenderProps} from '../shared/AdminListRenderProps';\nimport AdminSearch, {AdminSearchValue} from '../shared/AdminSearch';\nimport AdminSection from '../shared/AdminSection';\n\n/**\n * What {@link BaseAgentList} hands its `children` render function. `agents` and `rows` are the same array.\n */\nexport type BaseAgentListRenderProps = AdminListRenderProps<BasicAgent> & {agents: BasicAgent[]};\n\nexport interface BaseAgentListProps {\n /**\n * Controls rendered next to the title, such as a button that opens `AgentCreate`.\n */\n actions?: ReactNode;\n className?: string;\n description?: string;\n agents: BasicAgent[];\n /**\n * Renders custom UI in place of the default table, for example a third-party data grid. Receives\n * the agents, the default columns, the loading and error state, and the pagination and selection\n * handlers.\n */\n children?: (props: BaseAgentListRenderProps) => ReactNode;\n error?: string | null;\n isLoading?: boolean;\n /**\n * Page size.\n * @default 20\n */\n limit?: number;\n offset?: number;\n /**\n * Called with the offset of the page to show. Pagination is hidden when omitted.\n */\n onPageChange?: (offset: number) => void;\n /**\n * Applies a search on the server, or clears it with `null`. The search form shows only when this and\n * `searchAttributes` are set.\n */\n onSearch?: (search: AdminSearchValue | null) => void;\n /**\n * Called when an agent is chosen. Rows are selectable only when set.\n */\n onSelect?: (agent: BasicAgent) => void;\n preferences?: Preferences;\n /**\n * The search currently applied, if any. While set, an empty page says nothing matched.\n */\n search?: AdminSearchValue | null;\n /**\n * The agent attributes that can be searched, with translated labels.\n */\n searchAttributes?: SelectOption[];\n selectedAgentId?: string;\n /**\n * Heading of the list. Pass an empty string to hide it.\n */\n title?: string;\n totalResults?: number;\n}\n\n/**\n * Lists agents with their type, client and organization unit. Holds no data of its own: pass the\n * page of agents and handle selection and pagination.\n */\nconst BaseAgentList: FC<BaseAgentListProps> = ({\n actions,\n agents,\n children,\n className,\n description,\n error = null,\n isLoading = false,\n limit = 20,\n offset = 0,\n onPageChange,\n onSearch,\n onSelect,\n preferences,\n search = null,\n searchAttributes,\n selectedAgentId,\n title,\n totalResults,\n}: BaseAgentListProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n\n const columns: DataTableColumn<BasicAgent>[] = [\n {\n header: t('admin.agents.list.columns.name'),\n id: 'name',\n render: (agent: BasicAgent): ReactNode => getAgentName(agent),\n },\n {header: t('admin.agents.list.columns.type'), id: 'type', render: (agent: BasicAgent): ReactNode => agent.type},\n {\n header: t('admin.agents.list.columns.client_id'),\n id: 'clientId',\n render: (agent: BasicAgent): ReactNode => <code>{agent.clientId ?? ''}</code>,\n },\n {\n header: t('admin.common.columns.organization_unit'),\n id: 'ou',\n render: (agent: BasicAgent): ReactNode => agent.ouHandle ?? agent.ouId,\n },\n ];\n\n if (children) {\n return (\n <div className={className}>\n {children({\n columns,\n error,\n isLoading,\n limit,\n offset,\n onPageChange,\n onSelect,\n onSearch,\n rows: agents,\n search,\n searchAttributes,\n selectedRowId: selectedAgentId,\n totalResults: totalResults ?? agents.length,\n agents,\n })}\n </div>\n );\n }\n\n return (\n <AdminSection\n block=\"agent-list\"\n className={className}\n title={title ?? t('admin.agents.list.title')}\n description={description}\n actions={actions}\n preferences={preferences}\n >\n {onSearch && searchAttributes?.length ? (\n <AdminSearch attributes={searchAttributes} search={search} onSearch={onSearch} />\n ) : null}\n <DataTable\n caption={title?.length ? title : t('admin.agents.list.title')}\n columns={columns}\n rows={agents}\n getRowId={(agent: BasicAgent): string => agent.id}\n isLoading={isLoading}\n error={error}\n emptyText={search ? t('admin.common.search.no_results', {value: search.value}) : t('admin.agents.list.empty')}\n onRowClick={onSelect}\n selectedRowId={selectedAgentId}\n pagination={\n onPageChange ? {limit, offset, onChange: onPageChange, total: totalResults ?? agents.length} : undefined\n }\n />\n </AdminSection>\n );\n};\n\nexport default BaseAgentList;\n"],"mappings":";;;;;;;;;;;;AAwEA,MAAMA,iBAAyC,EAC7C,SACA,QACA,UACA,WACA,aACA,QAAQ,MACR,YAAY,OACZ,QAAQ,IACR,SAAS,GACT,cACA,UACA,UACA,aACA,SAAS,MACT,kBACA,iBACA,OACA,mBACsC;CACtC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAE7C,MAAMC,UAAyC;EAC7C;GACE,QAAQ,EAAE,iCAAiC;GAC3C,IAAI;GACJ,SAAS,UAAiC,aAAa,MAAM;GAC9D;EACD;GAAC,QAAQ,EAAE,iCAAiC;GAAE,IAAI;GAAQ,SAAS,UAAiC,MAAM;GAAK;EAC/G;GACE,QAAQ,EAAE,sCAAsC;GAChD,IAAI;GACJ,SAAS,UAAiC,oBAAC,oBAAM,MAAM,YAAY,KAAU;GAC9E;EACD;GACE,QAAQ,EAAE,yCAAyC;GACnD,IAAI;GACJ,SAAS,UAAiC,MAAM,YAAY,MAAM;GACnE;EACF;AAED,KAAI,SACF,QACE,oBAAC;EAAe;YACb,SAAS;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA,eAAe;GACf,cAAc,gBAAgB,OAAO;GACrC;GACD,CAAC;GACE;AAIV,QACE,qBAACC;EACC,OAAM;EACK;EACX,OAAO,SAAS,EAAE,0BAA0B;EAC/B;EACJ;EACI;aAEZ,YAAY,kBAAkB,SAC7B,oBAACC;GAAY,YAAY;GAA0B;GAAkB;IAAY,GAC/E,MACJ,oBAACC;GACC,SAAS,OAAO,SAAS,QAAQ,EAAE,0BAA0B;GACpD;GACT,MAAM;GACN,WAAW,UAA8B,MAAM;GACpC;GACJ;GACP,WAAW,SAAS,EAAE,kCAAkC,EAAC,OAAO,OAAO,OAAM,CAAC,GAAG,EAAE,0BAA0B;GAC7G,YAAY;GACZ,eAAe;GACf,YACE,eAAe;IAAC;IAAO;IAAQ,UAAU;IAAc,OAAO,gBAAgB,OAAO;IAAO,GAAG;IAEjG;GACW;;AAInB,4BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupMembers.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAoBnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAwB,MAAM,OAAO,CAAC;AAChD,OAAyB,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAsB3E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,qBAAqB,EACrB,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CACvF,GAAG;IACF;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwEvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"GroupMembers.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAqBnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAwB,MAAM,OAAO,CAAC;AAChD,OAAyB,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAsB3E,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,qBAAqB,EACrB,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CACvF,GAAG;IACF;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwEvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -3,7 +3,7 @@ import useManagementEndpoint_default from "../../../hooks/management/useManageme
3
3
  import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
4
4
  import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
5
5
  import BaseGroupMembers_default from "./BaseGroupMembers.js";
6
- import { AgentQueryKeys, GroupQueryKeys, RoleQueryKeys, UserQueryKeys, addGroupMembers, getAgents, getGroupMembers, getUsers, removeGroupMembers, resolveManagedIdentityName, toManagementErrorMessage } from "@thunderid/browser";
6
+ import { AgentQueryKeys, GroupQueryKeys, RoleQueryKeys, UserQueryKeys, addGroupMembers, getAgentName, getAgents, getGroupMembers, getUsers, removeGroupMembers, resolveManagedIdentityName, toManagementErrorMessage } from "@thunderid/browser";
7
7
  import { useMemo } from "react";
8
8
  import { jsx } from "react/jsx-runtime";
9
9
 
@@ -66,7 +66,7 @@ const GroupMembers = ({ administrationMode, editable = false, groupId, preferenc
66
66
  const candidates = useMemo(() => ({
67
67
  agent: (agents.data?.agents ?? []).map((agent) => ({
68
68
  id: agent.id,
69
- label: agent.name
69
+ label: getAgentName(agent)
70
70
  })),
71
71
  user: (users.data?.users ?? []).map((user) => ({
72
72
  id: user.id,
@@ -1 +1 @@
1
- {"version":3,"file":"GroupMembers.js","names":["GroupMembers: FC<GroupMembersProps>","useTranslation","groupsEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","members: ResourceQueryResult<GroupMemberListResponse>","useResourceQuery","users: ResourceQueryResult<ManagedUserListResponse>","agents: ResourceQueryResult<AgentListResponse>","add: ResourceMutationResult<Group, GroupMembersVariables>","useResourceMutation","remove: ResourceMutationResult<Group, GroupMembersVariables>","candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>>","BaseGroupMembers"],"sources":["../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupMember,\n GroupMemberListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n ResourceQueryKey,\n RoleQueryKeys,\n UserQueryKeys,\n addGroupMembers,\n getAgents,\n getGroupMembers,\n getUsers,\n removeGroupMembers,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseGroupMembers, {BaseGroupMembersProps} from './BaseGroupMembers';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface GroupMembersVariables {\n groupId: string;\n members: Pick<GroupMember, 'id' | 'type'>[];\n}\n\n/**\n * Query keys to refetch after a group's membership changes.\n */\nconst getMembershipInvalidatedKeys = ({groupId}: GroupMembersVariables): ResourceQueryKey[] => [\n [GroupQueryKeys.GROUP, groupId],\n [GroupQueryKeys.GROUP_MEMBERS, groupId],\n [GroupQueryKeys.MEMBERSHIPS],\n [RoleQueryKeys.ROLE_ASSIGNMENTS],\n];\n\nexport type GroupMembersProps = Omit<\n BaseGroupMembersProps,\n 'candidates' | 'error' | 'isLoading' | 'isMutating' | 'members' | 'onAdd' | 'onRemove'\n> & {\n /**\n * How a member is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether members can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n groupId: string;\n};\n\n/**\n * Lists the users and agents in a group, and lets the signed-in user add and remove them.\n *\n * @example\n * ```tsx\n * <GroupMembers groupId={groupId} />\n * ```\n */\nconst GroupMembers: FC<GroupMembersProps> = ({\n administrationMode,\n editable = false,\n groupId,\n preferences,\n ...rest\n}: GroupMembersProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const members: ResourceQueryResult<GroupMemberListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUP_MEMBERS, groupId, {limit: 100}],\n (fetcher) => getGroupMembers({...groupsEndpoint, fetcher, groupId, limit: 100}),\n {enabled: Boolean(groupId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const add: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n addGroupMembers({...groupsEndpoint, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n const remove: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n removeGroupMembers({...groupsEndpoint, administrationMode, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n\n const candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, users.data],\n );\n\n return (\n <BaseGroupMembers\n members={members.data?.members ?? []}\n isLoading={members.isLoading}\n isMutating={add.isLoading || remove.isLoading}\n error={\n toManagementErrorMessage(t, members.error, 'admin.groups.members.error') ??\n toManagementErrorMessage(t, add.error ?? remove.error, 'admin.groups.members.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAdd={\n editable\n ? (member: Pick<GroupMember, 'id' | 'type'>): void => void add.mutate({groupId, members: [member]})\n : undefined\n }\n onRemove={\n editable\n ? (member: GroupMember): void => void remove.mutate({groupId, members: [{id: member.id, type: member.type}]})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default GroupMembers;\n"],"mappings":";;;;;;;;;;;;;AAyCA,MAAM,gCAAgC,EAAC,cAAwD;CAC7F,CAAC,eAAe,OAAO,QAAQ;CAC/B,CAAC,eAAe,eAAe,QAAQ;CACvC,CAAC,eAAe,YAAY;CAC5B,CAAC,cAAc,iBAAiB;CACjC;;;;;;;;;AA4BD,MAAMA,gBAAuC,EAC3C,oBACA,WAAW,OACX,SACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,iBAAqCC,8BAAsB,SAAS;CAC1E,MAAMC,gBAAoCD,8BAAsB,QAAQ;CACxE,MAAME,iBAAqCF,8BAAsB,SAAS;CAC1E,MAAMG,UAAwDC,yBAC5D;EAAC,eAAe;EAAe;EAAS,EAAC,OAAO,KAAI;EAAC,GACpD,YAAY,gBAAgB;EAAC,GAAG;EAAgB;EAAS;EAAS,OAAO;EAAI,CAAC,EAC/E,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,QAAsDD,yBAC1D,CAAC,cAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,YAAY,SAAS;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAME,SAAiDF,yBACrD,CAAC,eAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,YAAY,UAAU;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMG,MAA4DC,6BAC/D,EAAC,SAAS,IAAI,SAAS,WAAiC,YACvD,gBAAgB;EAAC,GAAG;EAAgB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EAC9E,6BACD;CACD,MAAMC,SAA+DD,6BAClE,EAAC,SAAS,IAAI,SAAS,WAAiC,YACvD,mBAAmB;EAAC,GAAG;EAAgB;EAAoB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EACrG,6BACD;CAED,MAAME,aAAqE,eAClE;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,OAAO,2BAA2B,KAAK;GACxC,EAAE;EACJ,GACD,CAAC,OAAO,MAAM,MAAM,KAAK,CAC1B;AAED,QACE,oBAACC;EACC,SAAS,QAAQ,MAAM,WAAW,EAAE;EACpC,WAAW,QAAQ;EACnB,YAAY,IAAI,aAAa,OAAO;EACpC,OACE,yBAAyB,GAAG,QAAQ,OAAO,6BAA6B,IACxE,yBAAyB,GAAG,IAAI,SAAS,OAAO,OAAO,oCAAoC;EAE7F,YAAY,WAAW,aAAa;EACpC,OACE,YACK,WAAmD,KAAK,IAAI,OAAO;GAAC;GAAS,SAAS,CAAC,OAAO;GAAC,CAAC,GACjG;EAEN,UACE,YACK,WAA8B,KAAK,OAAO,OAAO;GAAC;GAAS,SAAS,CAAC;IAAC,IAAI,OAAO;IAAI,MAAM,OAAO;IAAK,CAAC;GAAC,CAAC,GAC3G;EAEO;EACb,GAAI;GACJ;;AAIN,2BAAe"}
1
+ {"version":3,"file":"GroupMembers.js","names":["GroupMembers: FC<GroupMembersProps>","useTranslation","groupsEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","members: ResourceQueryResult<GroupMemberListResponse>","useResourceQuery","users: ResourceQueryResult<ManagedUserListResponse>","agents: ResourceQueryResult<AgentListResponse>","add: ResourceMutationResult<Group, GroupMembersVariables>","useResourceMutation","remove: ResourceMutationResult<Group, GroupMembersVariables>","candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>>","BaseGroupMembers"],"sources":["../../../../src/components/admin/GroupMembers/GroupMembers.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupMember,\n GroupMemberListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n ResourceQueryKey,\n RoleQueryKeys,\n UserQueryKeys,\n addGroupMembers,\n getAgentName,\n getAgents,\n getGroupMembers,\n getUsers,\n removeGroupMembers,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo} from 'react';\nimport BaseGroupMembers, {BaseGroupMembersProps} from './BaseGroupMembers';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface GroupMembersVariables {\n groupId: string;\n members: Pick<GroupMember, 'id' | 'type'>[];\n}\n\n/**\n * Query keys to refetch after a group's membership changes.\n */\nconst getMembershipInvalidatedKeys = ({groupId}: GroupMembersVariables): ResourceQueryKey[] => [\n [GroupQueryKeys.GROUP, groupId],\n [GroupQueryKeys.GROUP_MEMBERS, groupId],\n [GroupQueryKeys.MEMBERSHIPS],\n [RoleQueryKeys.ROLE_ASSIGNMENTS],\n];\n\nexport type GroupMembersProps = Omit<\n BaseGroupMembersProps,\n 'candidates' | 'error' | 'isLoading' | 'isMutating' | 'members' | 'onAdd' | 'onRemove'\n> & {\n /**\n * How a member is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether members can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n groupId: string;\n};\n\n/**\n * Lists the users and agents in a group, and lets the signed-in user add and remove them.\n *\n * @example\n * ```tsx\n * <GroupMembers groupId={groupId} />\n * ```\n */\nconst GroupMembers: FC<GroupMembersProps> = ({\n administrationMode,\n editable = false,\n groupId,\n preferences,\n ...rest\n}: GroupMembersProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const members: ResourceQueryResult<GroupMemberListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUP_MEMBERS, groupId, {limit: 100}],\n (fetcher) => getGroupMembers({...groupsEndpoint, fetcher, groupId, limit: 100}),\n {enabled: Boolean(groupId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const add: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n addGroupMembers({...groupsEndpoint, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n const remove: ResourceMutationResult<Group, GroupMembersVariables> = useResourceMutation(\n ({groupId: id, members: changes}: GroupMembersVariables, fetcher) =>\n removeGroupMembers({...groupsEndpoint, administrationMode, fetcher, groupId: id, members: changes}),\n getMembershipInvalidatedKeys,\n );\n\n const candidates: Partial<Record<'user' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: getAgentName(agent)})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, users.data],\n );\n\n return (\n <BaseGroupMembers\n members={members.data?.members ?? []}\n isLoading={members.isLoading}\n isMutating={add.isLoading || remove.isLoading}\n error={\n toManagementErrorMessage(t, members.error, 'admin.groups.members.error') ??\n toManagementErrorMessage(t, add.error ?? remove.error, 'admin.groups.members.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAdd={\n editable\n ? (member: Pick<GroupMember, 'id' | 'type'>): void => void add.mutate({groupId, members: [member]})\n : undefined\n }\n onRemove={\n editable\n ? (member: GroupMember): void => void remove.mutate({groupId, members: [{id: member.id, type: member.type}]})\n : undefined\n }\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default GroupMembers;\n"],"mappings":";;;;;;;;;;;;;AA0CA,MAAM,gCAAgC,EAAC,cAAwD;CAC7F,CAAC,eAAe,OAAO,QAAQ;CAC/B,CAAC,eAAe,eAAe,QAAQ;CACvC,CAAC,eAAe,YAAY;CAC5B,CAAC,cAAc,iBAAiB;CACjC;;;;;;;;;AA4BD,MAAMA,gBAAuC,EAC3C,oBACA,WAAW,OACX,SACA,YACA,GAAG,WACkC;CACrC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAMC,iBAAqCC,8BAAsB,SAAS;CAC1E,MAAMC,gBAAoCD,8BAAsB,QAAQ;CACxE,MAAME,iBAAqCF,8BAAsB,SAAS;CAC1E,MAAMG,UAAwDC,yBAC5D;EAAC,eAAe;EAAe;EAAS,EAAC,OAAO,KAAI;EAAC,GACpD,YAAY,gBAAgB;EAAC,GAAG;EAAgB;EAAS;EAAS,OAAO;EAAI,CAAC,EAC/E,EAAC,SAAS,QAAQ,QAAQ,EAAC,CAC5B;CACD,MAAMC,QAAsDD,yBAC1D,CAAC,cAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,YAAY,SAAS;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAME,SAAiDF,yBACrD,CAAC,eAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,YAAY,UAAU;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMG,MAA4DC,6BAC/D,EAAC,SAAS,IAAI,SAAS,WAAiC,YACvD,gBAAgB;EAAC,GAAG;EAAgB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EAC9E,6BACD;CACD,MAAMC,SAA+DD,6BAClE,EAAC,SAAS,IAAI,SAAS,WAAiC,YACvD,mBAAmB;EAAC,GAAG;EAAgB;EAAoB;EAAS,SAAS;EAAI,SAAS;EAAQ,CAAC,EACrG,6BACD;CAED,MAAME,aAAqE,eAClE;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,aAAa,MAAM;GAAC,EAAE;EAC3G,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,OAAO,2BAA2B,KAAK;GACxC,EAAE;EACJ,GACD,CAAC,OAAO,MAAM,MAAM,KAAK,CAC1B;AAED,QACE,oBAACC;EACC,SAAS,QAAQ,MAAM,WAAW,EAAE;EACpC,WAAW,QAAQ;EACnB,YAAY,IAAI,aAAa,OAAO;EACpC,OACE,yBAAyB,GAAG,QAAQ,OAAO,6BAA6B,IACxE,yBAAyB,GAAG,IAAI,SAAS,OAAO,OAAO,oCAAoC;EAE7F,YAAY,WAAW,aAAa;EACpC,OACE,YACK,WAAmD,KAAK,IAAI,OAAO;GAAC;GAAS,SAAS,CAAC,OAAO;GAAC,CAAC,GACjG;EAEN,UACE,YACK,WAA8B,KAAK,OAAO,OAAO;GAAC;GAAS,SAAS,CAAC;IAAC,IAAI,OAAO;IAAI,MAAM,OAAO;IAAK,CAAC;GAAC,CAAC,GAC3G;EAEO;EACb,GAAI;GACJ;;AAIN,2BAAe"}
@@ -18,6 +18,10 @@ export type RoleAssignmentsProps = Omit<BaseRoleAssignmentsProps, 'assignments'
18
18
  * @default true
19
19
  */
20
20
  filterable?: boolean;
21
+ /**
22
+ * Organization unit the users, groups and agents offered for assignment are listed from.
23
+ */
24
+ ouId?: string;
21
25
  roleId: string;
22
26
  };
23
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RoleAssignments.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAuBnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAkC,MAAM,OAAO,CAAC;AAC1D,OAA4B,EAAC,wBAAwB,EAAC,MAAM,uBAAuB,CAAC;AAYpF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,wBAAwB,EACtB,aAAa,GACb,YAAY,GACZ,OAAO,GACP,WAAW,GACX,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,YAAY,GACZ,YAAY,CACf,GAAG;IACF;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqF7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"RoleAssignments.d.ts","sourceRoot":"","sources":["../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAyBnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,EAAE,EAAkC,MAAM,OAAO,CAAC;AAC1D,OAA4B,EAAC,wBAAwB,EAAC,MAAM,uBAAuB,CAAC;AAoBpF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,wBAAwB,EACtB,aAAa,GACb,YAAY,GACZ,OAAO,GACP,WAAW,GACX,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,YAAY,GACZ,YAAY,CACf,GAAG;IACF;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA6F7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -3,7 +3,7 @@ import useManagementEndpoint_default from "../../../hooks/management/useManageme
3
3
  import useResourceQuery_default from "../../../hooks/management/useResourceQuery.js";
4
4
  import useResourceMutation_default from "../../../hooks/management/useResourceMutation.js";
5
5
  import BaseRoleAssignments_default from "./BaseRoleAssignments.js";
6
- import { AgentQueryKeys, GroupQueryKeys, RoleQueryKeys, UserQueryKeys, addRoleAssignments, getAgents, getGroups, getRoleAssignments, getUsers, removeRoleAssignments, resolveManagedIdentityName, toManagementErrorMessage } from "@thunderid/browser";
6
+ import { AgentQueryKeys, GroupQueryKeys, RoleQueryKeys, UserQueryKeys, addRoleAssignments, getAgentName, getAgents, getGroups, getRoleAssignments, getUsers, removeRoleAssignments, resolveManagedIdentityName, toEqualityFilter, toManagementErrorMessage } from "@thunderid/browser";
7
7
  import { useMemo, useState } from "react";
8
8
  import { jsx } from "react/jsx-runtime";
9
9
 
@@ -17,7 +17,7 @@ import { jsx } from "react/jsx-runtime";
17
17
  * <RoleAssignments roleId={roleId} />
18
18
  * ```
19
19
  */
20
- const RoleAssignments = ({ administrationMode, editable = false, filterable = true, preferences, roleId,...rest }) => {
20
+ const RoleAssignments = ({ administrationMode, editable = false, filterable = true, ouId, preferences, roleId,...rest }) => {
21
21
  const { t } = useTranslation_default(preferences?.i18n);
22
22
  const [typeFilter, setTypeFilter] = useState(null);
23
23
  const rolesEndpoint = useManagementEndpoint_default("roles");
@@ -25,6 +25,7 @@ const RoleAssignments = ({ administrationMode, editable = false, filterable = tr
25
25
  const groupsEndpoint = useManagementEndpoint_default("groups");
26
26
  const agentsEndpoint = useManagementEndpoint_default("agents");
27
27
  const type = typeFilter ?? void 0;
28
+ const filter = toEqualityFilter("ouId", ouId);
28
29
  const assignments = useResourceQuery_default([
29
30
  RoleQueryKeys.ROLE_ASSIGNMENTS,
30
31
  roleId,
@@ -39,20 +40,41 @@ const RoleAssignments = ({ administrationMode, editable = false, filterable = tr
39
40
  roleId,
40
41
  type
41
42
  }), { enabled: Boolean(roleId) });
42
- const users = useResourceQuery_default([UserQueryKeys.USERS, { limit: 100 }], (fetcher) => getUsers({
43
- ...usersEndpoint,
44
- fetcher,
43
+ const users = useResourceQuery_default([UserQueryKeys.USERS, {
44
+ filter,
45
45
  limit: 100
46
+ }], async (fetcher) => ({
47
+ filter,
48
+ page: await getUsers({
49
+ ...usersEndpoint,
50
+ fetcher,
51
+ filter,
52
+ limit: 100
53
+ })
46
54
  }), { enabled: editable });
47
- const groups = useResourceQuery_default([GroupQueryKeys.GROUPS, { limit: 100 }], (fetcher) => getGroups({
48
- ...groupsEndpoint,
49
- fetcher,
55
+ const groups = useResourceQuery_default([GroupQueryKeys.GROUPS, {
56
+ filter,
50
57
  limit: 100
58
+ }], async (fetcher) => ({
59
+ filter,
60
+ page: await getGroups({
61
+ ...groupsEndpoint,
62
+ fetcher,
63
+ filter,
64
+ limit: 100
65
+ })
51
66
  }), { enabled: editable });
52
- const agents = useResourceQuery_default([AgentQueryKeys.AGENTS, { limit: 100 }], (fetcher) => getAgents({
53
- ...agentsEndpoint,
54
- fetcher,
67
+ const agents = useResourceQuery_default([AgentQueryKeys.AGENTS, {
68
+ filter,
55
69
  limit: 100
70
+ }], async (fetcher) => ({
71
+ filter,
72
+ page: await getAgents({
73
+ ...agentsEndpoint,
74
+ fetcher,
75
+ filter,
76
+ limit: 100
77
+ })
56
78
  }), { enabled: editable });
57
79
  const assign = useResourceMutation_default(({ assignments: changes, roleId: id }, fetcher) => addRoleAssignments({
58
80
  ...rolesEndpoint,
@@ -67,21 +89,25 @@ const RoleAssignments = ({ administrationMode, editable = false, filterable = tr
67
89
  fetcher,
68
90
  roleId: id
69
91
  }), () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]]);
70
- const candidates = useMemo(() => ({
71
- agent: (agents.data?.agents ?? []).map((agent) => ({
72
- id: agent.id,
73
- label: agent.name
74
- })),
75
- group: (groups.data?.groups ?? []).map((group) => ({
76
- id: group.id,
77
- label: group.name
78
- })),
79
- user: (users.data?.users ?? []).map((user) => ({
80
- id: user.id,
81
- label: resolveManagedIdentityName(user)
82
- }))
83
- }), [
92
+ const candidates = useMemo(() => {
93
+ const current = (data) => data && data.filter === filter ? data.page : void 0;
94
+ return {
95
+ agent: (current(agents.data)?.agents ?? []).map((agent) => ({
96
+ id: agent.id,
97
+ label: getAgentName(agent)
98
+ })),
99
+ group: (current(groups.data)?.groups ?? []).map((group) => ({
100
+ id: group.id,
101
+ label: group.name
102
+ })),
103
+ user: (current(users.data)?.users ?? []).map((user) => ({
104
+ id: user.id,
105
+ label: resolveManagedIdentityName(user)
106
+ }))
107
+ };
108
+ }, [
84
109
  agents.data,
110
+ filter,
85
111
  groups.data,
86
112
  users.data
87
113
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"RoleAssignments.js","names":["RoleAssignments: FC<RoleAssignmentsProps>","useTranslation","rolesEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","groupsEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","type: RoleAssigneeType | undefined","assignments: ResourceQueryResult<RoleAssignmentListResponse>","useResourceQuery","users: ResourceQueryResult<ManagedUserListResponse>","groups: ResourceQueryResult<GroupListResponse>","agents: ResourceQueryResult<AgentListResponse>","assign: ResourceMutationResult<void, RoleAssignmentsVariables>","useResourceMutation","unassign: ResourceMutationResult<void, RoleAssignmentsVariables>","candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>>","BaseRoleAssignments"],"sources":["../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n RoleAssigneeType,\n RoleAssignment,\n RoleAssignmentInput,\n RoleAssignmentListResponse,\n RoleQueryKeys,\n UserQueryKeys,\n addRoleAssignments,\n getAgents,\n getGroups,\n getRoleAssignments,\n getUsers,\n removeRoleAssignments,\n resolveManagedIdentityName,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRoleAssignments, {BaseRoleAssignmentsProps} from './BaseRoleAssignments';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface RoleAssignmentsVariables {\n assignments: RoleAssignmentInput[];\n roleId: string;\n}\n\nexport type RoleAssignmentsProps = Omit<\n BaseRoleAssignmentsProps,\n | 'assignments'\n | 'candidates'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAssign'\n | 'onTypeFilterChange'\n | 'onUnassign'\n | 'typeFilter'\n> & {\n /**\n * How an assignment is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether assignments can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether to show the assignee type filter, which narrows the list on the server.\n * @default true\n */\n filterable?: boolean;\n roleId: string;\n};\n\n/**\n * Lists who holds a role, and lets the signed-in user assign it to users, groups and agents or\n * remove it from them.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={roleId} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = ({\n administrationMode,\n editable = false,\n filterable = true,\n preferences,\n roleId,\n ...rest\n}: RoleAssignmentsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [typeFilter, setTypeFilter] = useState<RoleAssigneeType | null>(null);\n const rolesEndpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const type: RoleAssigneeType | undefined = typeFilter ?? undefined;\n const assignments: ResourceQueryResult<RoleAssignmentListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, roleId, {limit: 100, type}],\n (fetcher) => getRoleAssignments({...rolesEndpoint, fetcher, limit: 100, roleId, type}),\n {enabled: Boolean(roleId)},\n );\n const users: ResourceQueryResult<ManagedUserListResponse> = useResourceQuery(\n [UserQueryKeys.USERS, {limit: 100}],\n (fetcher) => getUsers({...usersEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const groups: ResourceQueryResult<GroupListResponse> = useResourceQuery(\n [GroupQueryKeys.GROUPS, {limit: 100}],\n (fetcher) => getGroups({...groupsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<AgentListResponse> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {limit: 100}],\n (fetcher) => getAgents({...agentsEndpoint, fetcher, limit: 100}),\n {enabled: editable},\n );\n const assign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n addRoleAssignments({...rolesEndpoint, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n const unassign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n removeRoleAssignments({...rolesEndpoint, administrationMode, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n\n const candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>> = useMemo(\n () => ({\n agent: (agents.data?.agents ?? []).map((agent: BasicAgent) => ({id: agent.id, label: agent.name})),\n group: (groups.data?.groups ?? []).map((group: Group) => ({id: group.id, label: group.name})),\n user: (users.data?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n }),\n [agents.data, groups.data, users.data],\n );\n\n return (\n <BaseRoleAssignments\n assignments={assignments.data?.assignments ?? []}\n isLoading={assignments.isLoading}\n isMutating={assign.isLoading || unassign.isLoading}\n error={\n toManagementErrorMessage(t, assignments.error, 'admin.roles.assignments.error') ??\n toManagementErrorMessage(t, assign.error ?? unassign.error, 'admin.roles.assignments.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAssign={\n editable\n ? (assignment: RoleAssignmentInput): void => void assign.mutate({assignments: [assignment], roleId})\n : undefined\n }\n onUnassign={\n editable\n ? (assignment: RoleAssignment): void =>\n void unassign.mutate({assignments: [{id: assignment.id, type: assignment.type}], roleId})\n : undefined\n }\n typeFilter={typeFilter}\n onTypeFilterChange={filterable ? setTypeFilter : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleAssignments;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAiFA,MAAMA,mBAA6C,EACjD,oBACA,WAAW,OACX,aAAa,MACb,aACA,OACA,GAAG,WACqC;CACxC,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;CAC7C,MAAM,CAAC,YAAY,iBAAiB,SAAkC,KAAK;CAC3E,MAAMC,gBAAoCC,8BAAsB,QAAQ;CACxE,MAAMC,gBAAoCD,8BAAsB,QAAQ;CACxE,MAAME,iBAAqCF,8BAAsB,SAAS;CAC1E,MAAMG,iBAAqCH,8BAAsB,SAAS;CAC1E,MAAMI,OAAqC,cAAc;CACzD,MAAMC,cAA+DC,yBACnE;EAAC,cAAc;EAAkB;EAAQ;GAAC,OAAO;GAAK;GAAK;EAAC,GAC3D,YAAY,mBAAmB;EAAC,GAAG;EAAe;EAAS,OAAO;EAAK;EAAQ;EAAK,CAAC,EACtF,EAAC,SAAS,QAAQ,OAAO,EAAC,CAC3B;CACD,MAAMC,QAAsDD,yBAC1D,CAAC,cAAc,OAAO,EAAC,OAAO,KAAI,CAAC,GAClC,YAAY,SAAS;EAAC,GAAG;EAAe;EAAS,OAAO;EAAI,CAAC,EAC9D,EAAC,SAAS,UAAS,CACpB;CACD,MAAME,SAAiDF,yBACrD,CAAC,eAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,YAAY,UAAU;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMG,SAAiDH,yBACrD,CAAC,eAAe,QAAQ,EAAC,OAAO,KAAI,CAAC,GACpC,YAAY,UAAU;EAAC,GAAG;EAAgB;EAAS,OAAO;EAAI,CAAC,EAChE,EAAC,SAAS,UAAS,CACpB;CACD,MAAMI,SAAiEC,6BACpE,EAAC,aAAa,SAAS,QAAQ,MAA+B,YAC7D,mBAAmB;EAAC,GAAG;EAAe,aAAa;EAAS;EAAS,QAAQ;EAAG,CAAC,QAC7E,CAAC,CAAC,cAAc,iBAAiB,CAAC,CACzC;CACD,MAAMC,WAAmED,6BACtE,EAAC,aAAa,SAAS,QAAQ,MAA+B,YAC7D,sBAAsB;EAAC,GAAG;EAAe;EAAoB,aAAa;EAAS;EAAS,QAAQ;EAAG,CAAC,QACpG,CAAC,CAAC,cAAc,iBAAiB,CAAC,CACzC;CAED,MAAME,aAA+E,eAC5E;EACL,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAuB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAClG,QAAQ,OAAO,MAAM,UAAU,EAAE,EAAE,KAAK,WAAkB;GAAC,IAAI,MAAM;GAAI,OAAO,MAAM;GAAK,EAAE;EAC7F,OAAO,MAAM,MAAM,SAAS,EAAE,EAAE,KAAK,UAAuB;GAC1D,IAAI,KAAK;GACT,OAAO,2BAA2B,KAAK;GACxC,EAAE;EACJ,GACD;EAAC,OAAO;EAAM,OAAO;EAAM,MAAM;EAAK,CACvC;AAED,QACE,oBAACC;EACC,aAAa,YAAY,MAAM,eAAe,EAAE;EAChD,WAAW,YAAY;EACvB,YAAY,OAAO,aAAa,SAAS;EACzC,OACE,yBAAyB,GAAG,YAAY,OAAO,gCAAgC,IAC/E,yBAAyB,GAAG,OAAO,SAAS,SAAS,OAAO,uCAAuC;EAErG,YAAY,WAAW,aAAa;EACpC,UACE,YACK,eAA0C,KAAK,OAAO,OAAO;GAAC,aAAa,CAAC,WAAW;GAAE;GAAO,CAAC,GAClG;EAEN,YACE,YACK,eACC,KAAK,SAAS,OAAO;GAAC,aAAa,CAAC;IAAC,IAAI,WAAW;IAAI,MAAM,WAAW;IAAK,CAAC;GAAE;GAAO,CAAC,GAC3F;EAEM;EACZ,oBAAoB,aAAa,gBAAgB;EACpC;EACb,GAAI;GACJ;;AAIN,8BAAe"}
1
+ {"version":3,"file":"RoleAssignments.js","names":["RoleAssignments: FC<RoleAssignmentsProps>","useTranslation","rolesEndpoint: ManagementEndpoint","useManagementEndpoint","usersEndpoint: ManagementEndpoint","groupsEndpoint: ManagementEndpoint","agentsEndpoint: ManagementEndpoint","type: RoleAssigneeType | undefined","filter: string | undefined","assignments: ResourceQueryResult<RoleAssignmentListResponse>","useResourceQuery","users: ResourceQueryResult<FilteredPage<ManagedUserListResponse>>","groups: ResourceQueryResult<FilteredPage<GroupListResponse>>","agents: ResourceQueryResult<FilteredPage<AgentListResponse>>","assign: ResourceMutationResult<void, RoleAssignmentsVariables>","useResourceMutation","unassign: ResourceMutationResult<void, RoleAssignmentsVariables>","candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>>","BaseRoleAssignments"],"sources":["../../../../src/components/admin/RoleAssignments/RoleAssignments.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AdministrationMode,\n AgentListResponse,\n AgentQueryKeys,\n BasicAgent,\n Group,\n GroupListResponse,\n GroupQueryKeys,\n ManagedUser,\n ManagedUserListResponse,\n RoleAssigneeType,\n RoleAssignment,\n RoleAssignmentInput,\n RoleAssignmentListResponse,\n RoleQueryKeys,\n UserQueryKeys,\n addRoleAssignments,\n getAgentName,\n getAgents,\n getGroups,\n getRoleAssignments,\n getUsers,\n removeRoleAssignments,\n resolveManagedIdentityName,\n toEqualityFilter,\n toManagementErrorMessage,\n} from '@thunderid/browser';\nimport {FC, ReactElement, useMemo, useState} from 'react';\nimport BaseRoleAssignments, {BaseRoleAssignmentsProps} from './BaseRoleAssignments';\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 {IdentityCandidate} from '../shared/IdentityPicker';\n\ninterface RoleAssignmentsVariables {\n assignments: RoleAssignmentInput[];\n roleId: string;\n}\n\n/**\n * A candidate page with the filter it was listed with.\n */\ninterface FilteredPage<T> {\n filter: string | undefined;\n page: T;\n}\n\nexport type RoleAssignmentsProps = Omit<\n BaseRoleAssignmentsProps,\n | 'assignments'\n | 'candidates'\n | 'error'\n | 'isLoading'\n | 'isMutating'\n | 'onAssign'\n | 'onTypeFilterChange'\n | 'onUnassign'\n | 'typeFilter'\n> & {\n /**\n * How an assignment is removed. `flow` runs the administration flow the server configures for it, which can revoke\n * grants and end sessions first. It needs `baseUrl`.\n * @default 'native'\n */\n administrationMode?: AdministrationMode;\n /**\n * Whether assignments can be added and removed from this view.\n * @default false\n */\n editable?: boolean;\n /**\n * Whether to show the assignee type filter, which narrows the list on the server.\n * @default true\n */\n filterable?: boolean;\n /**\n * Organization unit the users, groups and agents offered for assignment are listed from.\n */\n ouId?: string;\n roleId: string;\n};\n\n/**\n * Lists who holds a role, and lets the signed-in user assign it to users, groups and agents or\n * remove it from them.\n *\n * @example\n * ```tsx\n * <RoleAssignments roleId={roleId} />\n * ```\n */\nconst RoleAssignments: FC<RoleAssignmentsProps> = ({\n administrationMode,\n editable = false,\n filterable = true,\n ouId,\n preferences,\n roleId,\n ...rest\n}: RoleAssignmentsProps): ReactElement => {\n const {t} = useTranslation(preferences?.i18n);\n const [typeFilter, setTypeFilter] = useState<RoleAssigneeType | null>(null);\n const rolesEndpoint: ManagementEndpoint = useManagementEndpoint('roles');\n const usersEndpoint: ManagementEndpoint = useManagementEndpoint('users');\n const groupsEndpoint: ManagementEndpoint = useManagementEndpoint('groups');\n const agentsEndpoint: ManagementEndpoint = useManagementEndpoint('agents');\n const type: RoleAssigneeType | undefined = typeFilter ?? undefined;\n const filter: string | undefined = toEqualityFilter('ouId', ouId);\n const assignments: ResourceQueryResult<RoleAssignmentListResponse> = useResourceQuery(\n [RoleQueryKeys.ROLE_ASSIGNMENTS, roleId, {limit: 100, type}],\n (fetcher) => getRoleAssignments({...rolesEndpoint, fetcher, limit: 100, roleId, type}),\n {enabled: Boolean(roleId)},\n );\n const users: ResourceQueryResult<FilteredPage<ManagedUserListResponse>> = useResourceQuery(\n [UserQueryKeys.USERS, {filter, limit: 100}],\n async (fetcher) => ({filter, page: await getUsers({...usersEndpoint, fetcher, filter, limit: 100})}),\n {enabled: editable},\n );\n const groups: ResourceQueryResult<FilteredPage<GroupListResponse>> = useResourceQuery(\n [GroupQueryKeys.GROUPS, {filter, limit: 100}],\n async (fetcher) => ({filter, page: await getGroups({...groupsEndpoint, fetcher, filter, limit: 100})}),\n {enabled: editable},\n );\n const agents: ResourceQueryResult<FilteredPage<AgentListResponse>> = useResourceQuery(\n [AgentQueryKeys.AGENTS, {filter, limit: 100}],\n async (fetcher) => ({filter, page: await getAgents({...agentsEndpoint, fetcher, filter, limit: 100})}),\n {enabled: editable},\n );\n const assign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n addRoleAssignments({...rolesEndpoint, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n const unassign: ResourceMutationResult<void, RoleAssignmentsVariables> = useResourceMutation(\n ({assignments: changes, roleId: id}: RoleAssignmentsVariables, fetcher) =>\n removeRoleAssignments({...rolesEndpoint, administrationMode, assignments: changes, fetcher, roleId: id}),\n () => [[RoleQueryKeys.ROLE_ASSIGNMENTS]],\n );\n\n const candidates: Partial<Record<'user' | 'group' | 'agent', IdentityCandidate[]>> = useMemo(() => {\n // A page listed for an earlier ouId stays in a query until the next one succeeds, so it is not offered.\n const current = <T,>(data: FilteredPage<T> | undefined): T | undefined =>\n data && data.filter === filter ? data.page : undefined;\n\n return {\n agent: (current(agents.data)?.agents ?? []).map((agent: BasicAgent) => ({\n id: agent.id,\n label: getAgentName(agent),\n })),\n group: (current(groups.data)?.groups ?? []).map((group: Group) => ({id: group.id, label: group.name})),\n user: (current(users.data)?.users ?? []).map((user: ManagedUser) => ({\n id: user.id,\n label: resolveManagedIdentityName(user),\n })),\n };\n }, [agents.data, filter, groups.data, users.data]);\n\n return (\n <BaseRoleAssignments\n assignments={assignments.data?.assignments ?? []}\n isLoading={assignments.isLoading}\n isMutating={assign.isLoading || unassign.isLoading}\n error={\n toManagementErrorMessage(t, assignments.error, 'admin.roles.assignments.error') ??\n toManagementErrorMessage(t, assign.error ?? unassign.error, 'admin.roles.assignments.update_error')\n }\n candidates={editable ? candidates : undefined}\n onAssign={\n editable\n ? (assignment: RoleAssignmentInput): void => void assign.mutate({assignments: [assignment], roleId})\n : undefined\n }\n onUnassign={\n editable\n ? (assignment: RoleAssignment): void =>\n void unassign.mutate({assignments: [{id: assignment.id, type: assignment.type}], roleId})\n : undefined\n }\n typeFilter={typeFilter}\n onTypeFilterChange={filterable ? setTypeFilter : undefined}\n preferences={preferences}\n {...rest}\n />\n );\n};\n\nexport default RoleAssignments;\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -264,7 +264,7 @@ export * from './api/account/getUsersMe';
264
264
  export { default as getUsersMeMeta } from './api/account/getUsersMeMeta';
265
265
  export * from './api/account/getUsersMeMeta';
266
266
  export { ThunderIDRuntimeError, http, getActiveTheme, navigate, resolveEmojiUrisInHtml, isEmojiUri, EMOJI_URI_SCHEME, extractEmojiFromUri, resolveLogoUri, type ResolvedLogo, isAvatarUri, AVATAR_URI_SCHEME, extractAvatarParamsFromUri, type AvatarParams, type AvatarShape, type AvatarVariant, buildAvatarSpec, generateAvatarDataUri, deriveAvatarContent, AVATAR_GRADIENT_COUNT, pickAnonymousAvatarName, pickAnonymousEntityName, ANONYMOUS_ANIMAL_ICONS, type AnonymousAnimalIcon, ANONYMOUS_ENTITY_ICONS, type AnonymousEntityIcon, resolveMeta, resolveFlowTemplateLiterals, countryCodeToFlagEmoji, resolveLocaleDisplayName, resolveLocaleEmoji, EmbeddedFlowComponentType, EmbeddedFlowActionVariant, EmbeddedFlowTextVariant, EmbeddedFlowEventType, parseKeyValuePairs, type KeyValuePair as EmbeddedFlowKeyValuePair, type EmbeddedFlowComponent, type EmbeddedFlowResponseData, type EmbeddedFlowExecuteRequestConfig, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, type ExtendedEmbeddedSignInFlowResponse, type EmbeddedSignInFlowResponse, type EmbeddedSignInFlowCompleteResponse, type EmbeddedSignInFlowInitiateRequest, type EmbeddedSignInFlowRequest, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, type ExtendedEmbeddedSignUpFlowResponse, type EmbeddedSignUpFlowResponse, type EmbeddedSignUpFlowCompleteResponse, type EmbeddedSignUpFlowInitiateRequest, type EmbeddedSignUpFlowRequest, type EmbeddedSignUpFlowErrorResponse, type ComponentRenderContext, type ComponentsExtensions, type ComponentRenderer, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, type EmbeddedRecoveryFlowResponse, type EmbeddedRecoveryFlowInitiateRequest, type EmbeddedRecoveryFlowRequest, type EmbeddedRecoveryFlowErrorResponse, normalizeSelectOptions, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, UserSelectConstants, type FetchSelectPage, type FetchUsers, type SelectOption, type SelectOptionDefaults, type SelectOptionInput, type SelectOptionMapping, type SelectPage, type SelectPageRequest, type UserSelectOptionMapping, type ConsentDetailRow, type ConsentDetailValueType, type ConsentDetailModification, type AuthorizationDetail, type AuthorizeRequestParamValue, getConsentModifiedKey, CONSENT_MODIFIED_KEY_PREFIX, getConsentInvalidKey, CONSENT_INVALID_KEY_PREFIX, getConsentElementDecision, } from '@thunderid/browser';
267
- export { AgentQueryKeys, ApplicationQueryKeys, GroupQueryKeys, RoleQueryKeys, UserQueryKeys, addGroupMembers, addRoleAssignments, getTokenPermissions, hasPermission, createGroup, createRole, deleteGroup, deleteRole, getAgentGroups, getAgentRoles, getAgentTypes, getGroup, getGroupMembers, getGroups, getRole, getRoleAssignments, getRoles, getUserGroups, removeGroupMembers, removeRoleAssignments, updateGroup, updateRole, createAgent, createApplication, createUser, deleteAgent, deleteApplication, deleteUser, getAgent, getAgents, getApplication, getApplications, getUser, getUsers, updateAgent, updateApplication, updateUser, type Agent, type AgentListResponse, type ApiFetcher, type ApiFilteringParams, type Application, type ApplicationListResponse, type BasicAgent, type BasicApplication, type CreateAgentRequest, type CreateApplicationRequest, type CreateManagedUserRequest, type ManagedUser, type ManagedUserListResponse, type ManagementRequestConfig, type UpdateAgentRequest, type UpdateApplicationRequest, type UpdateManagedUserRequest, type AgentRoleListResponse, type AgentType, type AgentTypeListResponse, type CreateGroupRequest, type CreateRoleRequest, type Group, type GroupListResponse, type GroupMember, type GroupMemberListResponse, type GroupMemberType, type MembershipGroup, type MembershipGroupListResponse, type Role, type RoleAssigneeType, type RoleAssignment, type RoleAssignmentInput, type RoleAssignmentListResponse, type RoleListResponse, type RoleResourcePermissions, type RoleSummary, type UpdateGroupRequest, type UpdateRoleRequest, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, ADMINISTRATION_FLOW_TYPE, createUserType, deleteUserType, executeAdministrationFlow, findAdministrationFlows, getAccountLifecycleActions, getAgentType, getUserType, getUserTypes, getUserUsages, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, runAdministrationFlow, updateAgentType, updateUserCredentials, updateUserType, } from '@thunderid/browser';
267
+ export { AgentQueryKeys, ApplicationQueryKeys, GroupQueryKeys, RoleQueryKeys, UserQueryKeys, addGroupMembers, addRoleAssignments, getTokenPermissions, hasPermission, createGroup, createRole, deleteGroup, deleteRole, getAgentGroups, getAgentRoles, getAgentTypes, getGroup, getGroupMembers, getGroups, getRole, getRoleAssignments, getRoles, getUserGroups, removeGroupMembers, removeRoleAssignments, updateGroup, updateRole, createAgent, createApplication, createUser, deleteAgent, deleteApplication, deleteUser, getAgent, getAgents, getApplication, getApplications, getUser, getUsers, updateAgent, updateApplication, updateUser, type Agent, type AgentListResponse, type ApiFetcher, type ApiFilteringParams, type Application, type ApplicationListResponse, type BasicAgent, type BasicApplication, type CreateAgentRequest, type CreateApplicationRequest, type CreateManagedUserRequest, type ManagedUser, type ManagedUserListResponse, type ManagementRequestConfig, type UpdateAgentRequest, type UpdateApplicationRequest, type UpdateManagedUserRequest, type AgentRoleListResponse, type AgentType, type AgentTypeListResponse, type CreateGroupRequest, type CreateRoleRequest, type Group, type GroupListResponse, type GroupMember, type GroupMemberListResponse, type GroupMemberType, type MembershipGroup, type MembershipGroupListResponse, type Role, type RoleAssigneeType, type RoleAssignment, type RoleAssignmentInput, type RoleAssignmentListResponse, type RoleListResponse, type RoleResourcePermissions, type RoleSummary, type UpdateGroupRequest, type UpdateRoleRequest, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, ADMINISTRATION_FLOW_TYPE, createUserType, deleteUserType, executeAdministrationFlow, findAdministrationFlows, getAccountLifecycleActions, getAgentName, getAgentType, getUserType, getUserTypes, getUserUsages, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, runAdministrationFlow, updateAgentType, updateUserCredentials, updateUserType, } from '@thunderid/browser';
268
268
  export type { AdministrationFlowConfig, ServerError, ServerErrorMessage, AdministrationFlowConfigKeyValue, AdministrationFlowExecutionResponse, AdministrationFlowStepError, AdministrationMode, AdministrationOptions, AgentTypeDetails, ArrayItemDefinition, ArrayPropertyDefinition, BooleanPropertyDefinition, CimdPreviewResponse, CreateUserTypeConfig, CreateUserTypeRequest, DeleteUserTypeConfig, EntityTypeSchema, EntityTypeSystemAttributes, GetAgentTypeConfig, GetUserTypeConfig, GetUserTypesConfig, GetUserUsagesConfig, ManagedUserTypeDetails, NumberPropertyDefinition, ObjectPropertyDefinition, PreviewCimdDocumentConfig, PropertyDefinition, RegenerateAgentSecretConfig, RegenerateAgentSecretResult, RegenerateClientSecretConfig, RegenerateClientSecretResult, RegenerateFlowSecretConfig, RegenerateFlowSecretResult, StringPropertyDefinition, UpdateAgentTypeConfig, UpdateAgentTypeRequest, UpdateUserCredentialsConfig, UpdateUserCredentialsRequest, UpdateUserTypeConfig, UpdateUserTypeRequest, UserUsage, UserUsagesResponse, } from '@thunderid/browser';
269
269
  export { applyGatewayConfiguration, createAction, createAgentType, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createSecret, createUserByPath, createUserSharingPolicy, createVariable, deleteAction, deleteAgentType, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteSecret, deleteTranslation, deleteTranslations, deleteUserSharingPolicy, deleteVariable, exportConfiguration, getAction, getActions, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getLanguages, getLayout, getLayoutUsages, getLayouts, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getSecret, getSecrets, getServerConfig, getServerConfigs, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUsersByPath, getVariable, getVariables, importConfiguration, resolveDesign, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateLayout, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateSecret, updateServerConfig, updateUserSharingPolicy, updateVariable, } from '@thunderid/browser';
270
270
  export type { AccessHoldReason, AccessLockedMethod, AccessStatus, AccessStatusDetails, AccessStatusValue, AccountLifecycleAction, AccountLifecycleOptions, AccountLifecycleResult, AccountLifecycleSubjectKind, RunAccountLifecycleActionConfig, ApplyGatewayConfigurationConfig, ApplyGatewayConfigurationRequest, CaptureConfigurationVersionRequest, ConfigurationActor, ConfigurationExportOptions, ConfigurationExportRequest, ConfigurationExportResponse, ConfigurationImportOptions, ConfigurationImportOutcome, ConfigurationImportRequest, ConfigurationImportResponse, ConfigurationResourceDeletion, ConfigurationValueReference, ConfigurationVersion, Connection, ConnectionCategory, ConnectionInstance, ConnectionListResponse, ConnectionMetaResponse, ConnectionRequest, ConnectionSummary, ConnectionType, ConnectionTypeWithUsages, ConnectionUsage, ConnectionUsagesResponse, ConnectionVendorMeta, CreateActionConfig, CreateActionRequest, CreateAgentTypeConfig, CreateAgentTypeRequest, CreateApplicationSharingPolicyConfig, CreateConfigurationVersionConfig, CreateConnectionConfig, CreateDesignThemeConfig, CreateEmailTemplateRequest, CreateFlowConfig, CreateGatewayConfig, CreateGatewaySecretConfig, CreateGatewayVariableConfig, CreateLayoutConfig, CreateNotificationTemplateConfig, CreateNotificationTemplateRequest, CreateOrganizationUnitConfig, CreateOrganizationUnitRequest, CreateResourceConfig, CreateResourceRequest, CreateResourceServerConfig, CreateResourceServerRequest, CreateSecretConfig, CreateSmsTemplateRequest, CreateUserByPathConfig, CreateUserByPathRequest, CreateUserSharingPolicyConfig, CreateVariableConfig, DeleteActionConfig, DeleteAgentTypeConfig, DeleteApplicationSharingPolicyConfig, DeleteConnectionConfig, DeleteDesignThemeConfig, DeleteFlowConfig, DeleteGatewayConfig, DeleteGatewaySecretConfig, DeleteGatewayVariableConfig, DeleteImportedConfigurationConfig, DeleteImportedConfigurationRequest, DeleteImportedConfigurationResponse, DeleteLayoutConfig, DeleteNotificationTemplateConfig, DeleteOrganizationUnitByPathConfig, DeleteOrganizationUnitConfig, DeleteResourceConfig, DeleteResourceServerConfig, DeleteSecretConfig, DeleteTranslationConfig, DeleteTranslationsConfig, DeleteUserSharingPolicyConfig, DeleteVariableConfig, DesignLayout, DesignLayoutListItem, DesignLayoutListResponse, DesignLayoutRequest, DesignResolveResponse, DesignResolveType, DesignTheme, DesignThemeListItem, DesignThemeListResponse, DesignThemeRequest, EmailNotificationTemplate, EmailTemplateContent, ExportConfigurationConfig, Gateway, GatewayAppliedConfiguration, GatewayAppliedVersion, GatewayApplyResult, GatewayConfigurationChange, GatewayConfigurationDiff, GatewayRegistration, GatewayValueChanges, GetActionConfig, GetActionsConfig, GetApplicationOverlayRulesConfig, GetApplicationSharingPoliciesConfig, GetApplicationSharingPolicyConfig, GetConfigurationVersionConfig, GetConfigurationVersionsConfig, GetConnectionConfig, GetConnectionUsagesConfig, GetConnectionsConfig, GetConnectionsMetaConfig, GetConnectionsResult, GetDesignThemeConfig, GetDesignThemeUsagesConfig, GetDesignThemesConfig, GetFlowConfig, GetFlowUsagesConfig, GetFlowVersionConfig, GetFlowVersionsConfig, GetFlowsConfig, GetGatewayAppliedConfigurationConfig, GetGatewayAppliedVersionConfig, GetGatewayConfig, GetGatewayConfigurationDiffConfig, GetGatewaySecretConfig, GetGatewaySecretsConfig, GetGatewayVariableConfig, GetGatewayVariablesConfig, GetGatewaysConfig, GetLanguagesConfig, GetLayoutConfig, GetLayoutUsagesConfig, GetLayoutsConfig, GetNotificationTemplateConfig, GetNotificationTemplatesConfig, GetOrganizationUnitByPathConfig, GetOrganizationUnitChildrenConfig, GetOrganizationUnitConfig, GetOrganizationUnitGroupsConfig, GetOrganizationUnitRolesConfig, GetOrganizationUnitUsersConfig, GetOrganizationUnitsConfig, GetResourceConfig, GetResourceServerConfig, GetResourceServersConfig, GetResourcesConfig, GetSecretConfig, GetSecretsConfig, GetServerConfigConfig, GetServerConfigsConfig, GetUserOverlayRulesConfig, GetUserSharingPoliciesConfig, GetUserSharingPolicyConfig, GetUsersByPathConfig, GetVariableConfig, GetVariablesConfig, ImportConfigurationConfig, LanguageListResponse, LanguageTranslationsResponse, ManagedAction, ManagedActionKind, ManagedActionListResponse, ManagedFlow, ManagedFlowDefinition, ManagedFlowListResponse, ManagedFlowNode, ManagedFlowRequest, ManagedFlowVersion, ManagedFlowVersionInfo, ManagedFlowVersionListResponse, ManagedResource, ManagedResourceListResponse, ManagedTranslation, NotificationChannel, NotificationTemplate, NotificationTemplateDesign, NotificationTemplateListResponse, NotificationTemplateSummary, OrganizationUnit, OrganizationUnitBasic, OrganizationUnitGroup, OrganizationUnitGroupListResponse, OrganizationUnitListResponse, OrganizationUnitReference, OrganizationUnitRole, OrganizationUnitRoleListResponse, OrganizationUnitUser, OrganizationUnitUserListResponse, OverlayRule, RegisterGatewayRequest, ResolveDesignConfig, ResolveTranslationConfig, ResolveTranslationsConfig, ResolvedOverlay, ResourceServer, ResourceServerAuthorizationEngine, ResourceServerListResponse, ResourceServerType, ResourceUsage, ResourceUsagesResponse, RestoreFlowVersionConfig, RevertGatewayConfigurationConfig, RevertGatewayConfigurationRequest, Secret, SecretListResponse, SecretRequest, SecretUpdateRequest, ServerConfigLayers, SetTranslationConfig, SetTranslationRequest, SetTranslationsConfig, SetTranslationsRequest, SharingPolicy, SharingPolicyAllUnits, SharingPolicyChildUnit, SharingPolicyChildUnits, SharingPolicyChildUnitsAll, SharingPolicyChildUnitsSelected, SharingPolicyListResponse, SharingPolicyOtherTreeRoots, SharingPolicyOtherTreeRootsAll, SharingPolicyOtherTreeRootsSelected, SharingPolicyRequest, SharingPolicyUpdateRequest, SmsNotificationTemplate, SmsTemplateContent, SuspendAgentConfig, SuspendApplicationConfig, SuspendUserConfig, TranslationsByNamespace, UnlockAgentConfig, UnlockUserConfig, UnsuspendAgentConfig, UnsuspendApplicationConfig, UnsuspendUserConfig, UpdateActionConfig, UpdateActionRequest, UpdateApplicationSharingPolicyConfig, UpdateConnectionConfig, UpdateDesignThemeConfig, UpdateEmailTemplateRequest, UpdateFlowConfig, UpdateGatewayConfig, UpdateGatewayRequest, UpdateGatewaySecretConfig, UpdateGatewayVariableConfig, UpdateLayoutConfig, UpdateNotificationTemplateConfig, UpdateNotificationTemplateRequest, UpdateOrganizationUnitByPathConfig, UpdateOrganizationUnitByPathRequest, UpdateOrganizationUnitConfig, UpdateOrganizationUnitRequest, UpdateResourceConfig, UpdateResourceRequest, UpdateResourceServerConfig, UpdateResourceServerRequest, UpdateSecretConfig, UpdateServerConfigConfig, UpdateSmsTemplateRequest, UpdateUserSharingPolicyConfig, UpdateVariableConfig, Variable, VariableListResponse, VariableRequest, VariableUpdateRequest, } from '@thunderid/browser';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -149,6 +149,6 @@ import UserTypeSelect_default from "./components/primitives/UserTypeSelect/UserT
149
149
  import KeyValueInput_default from "./components/primitives/KeyValueInput/KeyValueInput.js";
150
150
  import Attribution_default from "./components/common/Attribution/Attribution.js";
151
151
  import BuildingAlt_default from "./components/primitives/Icons/BuildingAlt.js";
152
- import { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentQueryKeys, ApplicationQueryKeys, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, GroupQueryKeys, RoleQueryKeys, ThunderIDRuntimeError, UserQueryKeys, UserSelectConstants, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createRole, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteRole, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, findAdministrationFlows, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getLanguages, getLayout, getLayoutUsages, getLayouts, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getRole, getRoleAssignments, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getVariable, getVariables, hasPermission, http, importConfiguration, isAvatarUri, isEmojiUri, navigate, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateRole, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable } from "@thunderid/browser";
152
+ import { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentQueryKeys, ApplicationQueryKeys, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, GroupQueryKeys, RoleQueryKeys, ThunderIDRuntimeError, UserQueryKeys, UserSelectConstants, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createRole, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteRole, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, findAdministrationFlows, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentName, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getLanguages, getLayout, getLayoutUsages, getLayouts, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getRole, getRoleAssignments, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getVariable, getVariables, hasPermission, http, importConfiguration, isAvatarUri, isEmojiUri, navigate, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateRole, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable } from "@thunderid/browser";
153
153
 
154
- export { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AcceptInvite_default as AcceptInvite, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentCreate_default as AgentCreate, AgentDetails_default as AgentDetails, AgentList_default as AgentList, AgentQueryKeys, Alert_default as Alert, ApplicationCreate_default as ApplicationCreate, ApplicationDetails_default as ApplicationDetails, ApplicationList_default as ApplicationList, ApplicationQueryKeys, Attribution_default as Attribution, AuthFlowSelect_default as AuthFlowSelect, BaseAcceptInvite_default as BaseAcceptInvite, BaseAgentCreate_default as BaseAgentCreate, BaseAgentDetails_default as BaseAgentDetails, BaseAgentList_default as BaseAgentList, BaseApplicationCreate_default as BaseApplicationCreate, BaseApplicationDetails_default as BaseApplicationDetails, BaseApplicationList_default as BaseApplicationList, BaseAuthFlowSelect_default as BaseAuthFlowSelect, BaseChangeCredential_default as BaseChangeCredential, BaseGroupCreate_default as BaseGroupCreate, BaseGroupList_default as BaseGroupList, BaseGroupMembers_default as BaseGroupMembers, BaseInviteUser_default as BaseInviteUser, BaseLanguageSwitcher_default as BaseLanguageSwitcher, BaseRecovery_default as BaseRecovery, BaseRoleAssignments_default as BaseRoleAssignments, BaseRoleCreate_default as BaseRoleCreate, BaseRoleList_default as BaseRoleList, BaseRolePermissions_default as BaseRolePermissions, BaseSignIn_default as BaseSignIn, BaseSignInButton_default as BaseSignInButton, BaseSignOutButton_default as BaseSignOutButton, BaseSignUp_default as BaseSignUp, BaseSignUpButton_default as BaseSignUpButton, BaseUser_default as BaseUser, BaseUserAvatar_default as BaseUserAvatar, BaseUserCreate_default as BaseUserCreate, BaseUserDetails_default as BaseUserDetails, BaseUserDropdown_default as BaseUserDropdown, BaseUserList_default as BaseUserList, BaseUserProfile_default as BaseUserProfile, BaseUserSelect_default as BaseUserSelect, BaseUserTypeSelect_default as BaseUserTypeSelect, BuildingAlt_default as BuildingAlt, Button_default as Button, CONSENT_DETAIL_DISPLAY_LIMITS, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, Callback, Card_default as Card, ChangeCredential_default as ChangeCredential, Checkbox_default as Checkbox, CircleAlert_default as CircleAlert, CircleCheck_default as CircleCheck, Consent_default as Consent, ConsentAuthorizationDetail_default as ConsentAuthorizationDetail, ConsentCheckboxList_default as ConsentCheckboxList, ConsentDetailField_default as ConsentDetailField, DataTable_default as DataTable, DatePicker_default as DatePicker, Divider_default as Divider, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, Eye_default as Eye, EyeOff_default as EyeOff, FacebookButton_default as FacebookButton, FieldFactory, FlowContext_default as FlowContext, FlowMetaProvider_default as FlowMetaProvider, FlowProvider_default as FlowProvider, FlowTimer_default as FlowTimer, FormControl_default as FormControl, GitHubButton_default as GitHubButton, GoogleButton_default as GoogleButton, GroupCreate_default as GroupCreate, GroupList_default as GroupList, GroupMembers_default as GroupMembers, GroupQueryKeys, I18nContext_default as I18nContext, I18nProvider_default as I18nProvider, Info_default as Info, InputLabel_default as InputLabel, InviteUser_default as InviteUser, KeyValueInput_default as KeyValueInput, KeyValueList_default as KeyValueList, LanguageSwitcher_default as LanguageSwitcher, LinkedInButton_default as LinkedInButton, Loading_default as Loading, LogOut_default as LogOut, Logo_default as Logo, MicrosoftButton_default as MicrosoftButton, MultiInput_default as MultiInput, OAuthCallback, OtpField_default as OtpField, PasswordField_default as PasswordField, Recovery_default as Recovery, RoleAssignments_default as RoleAssignments, RoleCreate_default as RoleCreate, RoleList_default as RoleList, RolePermissions_default as RolePermissions, RoleQueryKeys, Select_default as Select, SignIn_default as SignIn, SignInButton_default as SignInButton, SignInWithEthereumButton_default as SignInWithEthereumButton, SignOutButton_default as SignOutButton, SignUp_default as SignUp, SignUpButton_default as SignUpButton, SignedIn_default as SignedIn, SignedOut_default as SignedOut, Spinner_default as Spinner, TextField_default as TextField, ThemeContext_default as ThemeContext, ThemeProvider_default as ThemeProvider, ThunderIDContext_default as ThunderIDContext, ThunderIDProvider_default as ThunderIDProvider, ThunderIDRuntimeError, Toggle_default as Toggle, TokenCallback, TriangleAlert_default as TriangleAlert, Typography_default as Typography, User_default as User, UserAvatar_default as UserAvatar, UserContext_default as UserContext, UserCreate_default as UserCreate, UserDetails_default as UserDetails, UserDropdown_default as UserDropdown, User_default$1 as UserIcon, UserList_default as UserList, UserProfile_default as UserProfile, UserProvider_default as UserProvider, UserQueryKeys, UserSelect_default as UserSelect, UserSelectConstants, UserTypeSelect_default as UserTypeSelect, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createField, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createRole, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteRole, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, extractErrorMessage, findAdministrationFlows, formatConsentDetailValue_default as formatConsentDetailValue, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentDetailLayout_default as getConsentDetailLayout, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getConsentOptionalKey, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getLanguages, getLayout, getLayoutUsages, getLayouts, getUsersMe_default as getMeProfile, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getRole, getRoleAssignments, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getUsersMeMeta_default as getUsersMeMeta, getVariable, getVariables, hasPermission, http, importConfiguration, isAvatarUri, isConsentApprovalBlocked_default as isConsentApprovalBlocked, isConsentDetailStructured_default as isConsentDetailStructured, isConsentDetailTextClamped_default as isConsentDetailTextClamped, isEmojiUri, navigate, normalizeFlowResponse, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateMeCredentials_default as updateMeCredentials, updateMeProfile_default as updateMeProfile, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateRole, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable, useBrowserUrl_default as useBrowserUrl, useConsentDetailField_default as useConsentDetailField, useFetchAuthFlows_default as useFetchAuthFlows, useFetchUserTypes_default as useFetchUserTypes, useFetchUsers_default as useFetchUsers, useFlow_default as useFlow, useForm_default as useForm, useGrantedPermissions_default as useGrantedPermissions, useI18n_default as useI18n, useInfiniteOptions_default as useInfiniteOptions, useManagementRequestConfig_default as useManagementRequestConfig, useOAuthCallback, useTheme_default as useTheme, useThunderID_default as useThunderID, useTranslation_default as useTranslation, useUser_default as useUser, validateFieldValue };
154
+ export { ADMINISTRATION_FLOW_TYPE, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AcceptInvite_default as AcceptInvite, AccountLifecycleFlowConfigKey, AdministrationFlowConfigKey, AdministrationFlowData, AdministrationFlowError, AdministrationFlowInput, AdministrationModes, AgentCreate_default as AgentCreate, AgentDetails_default as AgentDetails, AgentList_default as AgentList, AgentQueryKeys, Alert_default as Alert, ApplicationCreate_default as ApplicationCreate, ApplicationDetails_default as ApplicationDetails, ApplicationList_default as ApplicationList, ApplicationQueryKeys, Attribution_default as Attribution, AuthFlowSelect_default as AuthFlowSelect, BaseAcceptInvite_default as BaseAcceptInvite, BaseAgentCreate_default as BaseAgentCreate, BaseAgentDetails_default as BaseAgentDetails, BaseAgentList_default as BaseAgentList, BaseApplicationCreate_default as BaseApplicationCreate, BaseApplicationDetails_default as BaseApplicationDetails, BaseApplicationList_default as BaseApplicationList, BaseAuthFlowSelect_default as BaseAuthFlowSelect, BaseChangeCredential_default as BaseChangeCredential, BaseGroupCreate_default as BaseGroupCreate, BaseGroupList_default as BaseGroupList, BaseGroupMembers_default as BaseGroupMembers, BaseInviteUser_default as BaseInviteUser, BaseLanguageSwitcher_default as BaseLanguageSwitcher, BaseRecovery_default as BaseRecovery, BaseRoleAssignments_default as BaseRoleAssignments, BaseRoleCreate_default as BaseRoleCreate, BaseRoleList_default as BaseRoleList, BaseRolePermissions_default as BaseRolePermissions, BaseSignIn_default as BaseSignIn, BaseSignInButton_default as BaseSignInButton, BaseSignOutButton_default as BaseSignOutButton, BaseSignUp_default as BaseSignUp, BaseSignUpButton_default as BaseSignUpButton, BaseUser_default as BaseUser, BaseUserAvatar_default as BaseUserAvatar, BaseUserCreate_default as BaseUserCreate, BaseUserDetails_default as BaseUserDetails, BaseUserDropdown_default as BaseUserDropdown, BaseUserList_default as BaseUserList, BaseUserProfile_default as BaseUserProfile, BaseUserSelect_default as BaseUserSelect, BaseUserTypeSelect_default as BaseUserTypeSelect, BuildingAlt_default as BuildingAlt, Button_default as Button, CONSENT_DETAIL_DISPLAY_LIMITS, CONSENT_INVALID_KEY_PREFIX, CONSENT_MODIFIED_KEY_PREFIX, Callback, Card_default as Card, ChangeCredential_default as ChangeCredential, Checkbox_default as Checkbox, CircleAlert_default as CircleAlert, CircleCheck_default as CircleCheck, Consent_default as Consent, ConsentAuthorizationDetail_default as ConsentAuthorizationDetail, ConsentCheckboxList_default as ConsentCheckboxList, ConsentDetailField_default as ConsentDetailField, DataTable_default as DataTable, DatePicker_default as DatePicker, Divider_default as Divider, EMOJI_URI_SCHEME, EmbeddedFlowActionVariant, EmbeddedFlowComponentType, EmbeddedFlowEventType, EmbeddedFlowTextVariant, EmbeddedRecoveryFlowStatus, EmbeddedRecoveryFlowType, EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, EmbeddedSignUpFlowStatus, EmbeddedSignUpFlowType, Eye_default as Eye, EyeOff_default as EyeOff, FacebookButton_default as FacebookButton, FieldFactory, FlowContext_default as FlowContext, FlowMetaProvider_default as FlowMetaProvider, FlowProvider_default as FlowProvider, FlowTimer_default as FlowTimer, FormControl_default as FormControl, GitHubButton_default as GitHubButton, GoogleButton_default as GoogleButton, GroupCreate_default as GroupCreate, GroupList_default as GroupList, GroupMembers_default as GroupMembers, GroupQueryKeys, I18nContext_default as I18nContext, I18nProvider_default as I18nProvider, Info_default as Info, InputLabel_default as InputLabel, InviteUser_default as InviteUser, KeyValueInput_default as KeyValueInput, KeyValueList_default as KeyValueList, LanguageSwitcher_default as LanguageSwitcher, LinkedInButton_default as LinkedInButton, Loading_default as Loading, LogOut_default as LogOut, Logo_default as Logo, MicrosoftButton_default as MicrosoftButton, MultiInput_default as MultiInput, OAuthCallback, OtpField_default as OtpField, PasswordField_default as PasswordField, Recovery_default as Recovery, RoleAssignments_default as RoleAssignments, RoleCreate_default as RoleCreate, RoleList_default as RoleList, RolePermissions_default as RolePermissions, RoleQueryKeys, Select_default as Select, SignIn_default as SignIn, SignInButton_default as SignInButton, SignInWithEthereumButton_default as SignInWithEthereumButton, SignOutButton_default as SignOutButton, SignUp_default as SignUp, SignUpButton_default as SignUpButton, SignedIn_default as SignedIn, SignedOut_default as SignedOut, Spinner_default as Spinner, TextField_default as TextField, ThemeContext_default as ThemeContext, ThemeProvider_default as ThemeProvider, ThunderIDContext_default as ThunderIDContext, ThunderIDProvider_default as ThunderIDProvider, ThunderIDRuntimeError, Toggle_default as Toggle, TokenCallback, TriangleAlert_default as TriangleAlert, Typography_default as Typography, User_default as User, UserAvatar_default as UserAvatar, UserContext_default as UserContext, UserCreate_default as UserCreate, UserDetails_default as UserDetails, UserDropdown_default as UserDropdown, User_default$1 as UserIcon, UserList_default as UserList, UserProfile_default as UserProfile, UserProvider_default as UserProvider, UserQueryKeys, UserSelect_default as UserSelect, UserSelectConstants, UserTypeSelect_default as UserTypeSelect, addGroupMembers, addRoleAssignments, applyGatewayConfiguration, buildAvatarSpec, countryCodeToFlagEmoji, createAction, createAgent, createAgentType, createApplication, createApplicationSharingPolicy, createConfigurationVersion, createConnection, createDesignTheme, createField, createFlow, createGateway, createGatewaySecret, createGatewayVariable, createGroup, createLayout, createNotificationTemplate, createOrganizationUnit, createResource, createResourceServer, createRole, createSecret, createUser, createUserByPath, createUserSharingPolicy, createUserType, createVariable, deleteAction, deleteAgent, deleteAgentType, deleteApplication, deleteApplicationSharingPolicy, deleteConnection, deleteDesignTheme, deleteFlow, deleteGateway, deleteGatewaySecret, deleteGatewayVariable, deleteGroup, deleteImportedConfiguration, deleteLayout, deleteNotificationTemplate, deleteOrganizationUnit, deleteOrganizationUnitByPath, deleteResource, deleteResourceServer, deleteRole, deleteSecret, deleteTranslation, deleteTranslations, deleteUser, deleteUserSharingPolicy, deleteUserType, deleteVariable, deriveAvatarContent, executeAdministrationFlow, exportConfiguration, extractAvatarParamsFromUri, extractEmojiFromUri, extractErrorMessage, findAdministrationFlows, formatConsentDetailValue_default as formatConsentDetailValue, generateAvatarDataUri, getAccountLifecycleActions, getAction, getActions, getActiveTheme, getAgent, getAgentGroups, getAgentName, getAgentRoles, getAgentType, getAgentTypes, getAgents, getApplication, getApplicationOverlayRules, getApplicationSharingPolicies, getApplicationSharingPolicy, getApplications, getConfigurationVersion, getConfigurationVersions, getConnection, getConnectionUsages, getConnections, getConnectionsMeta, getConsentDetailLayout_default as getConsentDetailLayout, getConsentElementDecision, getConsentInvalidKey, getConsentModifiedKey, getConsentOptionalKey, getDesignTheme, getDesignThemeUsages, getDesignThemes, getFlow, getFlowUsages, getFlowVersion, getFlowVersions, getFlows, getGateway, getGatewayAppliedConfiguration, getGatewayAppliedVersion, getGatewayConfigurationDiff, getGatewaySecret, getGatewaySecrets, getGatewayVariable, getGatewayVariables, getGateways, getGroup, getGroupMembers, getGroups, getLanguages, getLayout, getLayoutUsages, getLayouts, getUsersMe_default as getMeProfile, getNotificationTemplate, getNotificationTemplates, getOrganizationUnit, getOrganizationUnitByPath, getOrganizationUnitChildren, getOrganizationUnitGroups, getOrganizationUnitRoles, getOrganizationUnitUsers, getOrganizationUnits, getResource, getResourceServer, getResourceServers, getResources, getRole, getRoleAssignments, getRoles, getSecret, getSecrets, getServerConfig, getServerConfigs, getTokenPermissions, getUser, getUserGroups, getUserOverlayRules, getUserSharingPolicies, getUserSharingPolicy, getUserType, getUserTypes, getUserUsages, getUsers, getUsersByPath, getUsersMeMeta_default as getUsersMeMeta, getVariable, getVariables, hasPermission, http, importConfiguration, isAvatarUri, isConsentApprovalBlocked_default as isConsentApprovalBlocked, isConsentDetailStructured_default as isConsentDetailStructured, isConsentDetailTextClamped_default as isConsentDetailTextClamped, isEmojiUri, navigate, normalizeFlowResponse, normalizeSelectOptions, parseKeyValuePairs, pickAnonymousAvatarName, pickAnonymousEntityName, previewCimdDocument, regenerateAgentSecret, regenerateClientSecret, regenerateFlowSecret, removeGroupMembers, removeRoleAssignments, resolveAdministrationFlowHandles, resolveAdministrationFlowId, resolveAdministrationFlows, resolveDesign, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals, resolveLocaleDisplayName, resolveLocaleEmoji, resolveLogoUri, resolveMeta, resolveTranslation, resolveTranslations, restoreFlowVersion, revertGatewayConfiguration, runAccountLifecycleAction, runAdministrationFlow, setTranslation, setTranslations, suspendAgent, suspendApplication, suspendUser, toSelectOption, toSelectOptions, toUserSelectOption, toUserSelectPage, unlockAgent, unlockUser, unsuspendAgent, unsuspendApplication, unsuspendUser, updateAction, updateAgent, updateAgentType, updateApplication, updateApplicationSharingPolicy, updateConnection, updateDesignTheme, updateFlow, updateGateway, updateGatewaySecret, updateGatewayVariable, updateGroup, updateLayout, updateMeCredentials_default as updateMeCredentials, updateMeProfile_default as updateMeProfile, updateNotificationTemplate, updateOrganizationUnit, updateOrganizationUnitByPath, updateResource, updateResourceServer, updateRole, updateSecret, updateServerConfig, updateUser, updateUserCredentials, updateUserSharingPolicy, updateUserType, updateVariable, useBrowserUrl_default as useBrowserUrl, useConsentDetailField_default as useConsentDetailField, useFetchAuthFlows_default as useFetchAuthFlows, useFetchUserTypes_default as useFetchUserTypes, useFetchUsers_default as useFetchUsers, useFlow_default as useFlow, useForm_default as useForm, useGrantedPermissions_default as useGrantedPermissions, useI18n_default as useI18n, useInfiniteOptions_default as useInfiniteOptions, useManagementRequestConfig_default as useManagementRequestConfig, useOAuthCallback, useTheme_default as useTheme, useThunderID_default as useThunderID, useTranslation_default as useTranslation, useUser_default as useUser, validateFieldValue };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thunderid/react",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
4
4
  "description": "React SDK for ThunderID",
5
5
  "keywords": [
6
6
  "thunderid",
@@ -60,7 +60,7 @@
60
60
  "dependencies": {
61
61
  "@emotion/css": "11.13.5",
62
62
  "@floating-ui/react": "0.27.12",
63
- "@thunderid/browser": "^1.7.0",
63
+ "@thunderid/browser": "^1.8.0",
64
64
  "dompurify": "3.4.17",
65
65
  "tslib": "2.8.1"
66
66
  },