@keycloak/keycloak-admin-ui 26.1.5 → 26.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/lib/.vite/manifest.json +51 -30
- package/lib/{CreateFlow-CJuPGQV2.js → CreateFlow-C8ou3z3D.js} +9 -9
- package/lib/{CreateFlow-CJuPGQV2.js.map → CreateFlow-C8ou3z3D.js.map} +1 -1
- package/lib/{DetailOrganization-BZxym2fM.js → DetailOrganization-ChDFPj6w.js} +33 -33
- package/lib/{DetailOrganization-BZxym2fM.js.map → DetailOrganization-ChDFPj6w.js.map} +1 -1
- package/lib/{ExecutorForm-DxyNT3T5.js → ExecutorForm-CqhYZ9zD.js} +58 -57
- package/lib/ExecutorForm-CqhYZ9zD.js.map +1 -0
- package/lib/FlowDetails-BYnrUM6B.js +9025 -0
- package/lib/FlowDetails-BYnrUM6B.js.map +1 -0
- package/lib/NewOrganization-IjGiIFRg.js +36 -0
- package/lib/{NewOrganization-CdgyibqF.js.map → NewOrganization-IjGiIFRg.js.map} +1 -1
- package/lib/PermissionConfigurationDetails-B_xt8b5a.js +702 -0
- package/lib/PermissionConfigurationDetails-B_xt8b5a.js.map +1 -0
- package/lib/{PermissionDetails-lynVHdOa.js → PermissionDetails-FszJtVpG.js} +60 -60
- package/lib/{PermissionDetails-lynVHdOa.js.map → PermissionDetails-FszJtVpG.js.map} +1 -1
- package/lib/RealmSection-BkVmYRIb.js +179 -0
- package/lib/RealmSection-BkVmYRIb.js.map +1 -0
- package/lib/ResourceDetails-Br81AEgO.js +226 -0
- package/lib/ResourceDetails-Br81AEgO.js.map +1 -0
- package/lib/{ScopeDetails-plfHXCXz.js → ScopeDetails-nDvWwhgg.js} +35 -35
- package/lib/{ScopeDetails-plfHXCXz.js.map → ScopeDetails-nDvWwhgg.js.map} +1 -1
- package/lib/ScopePicker-kvjSuh0C.js +85 -0
- package/lib/ScopePicker-kvjSuh0C.js.map +1 -0
- package/lib/authentication/components/AuthenticationProviderContext.d.ts +9 -0
- package/lib/authentication/components/FlowRow.d.ts +1 -0
- package/lib/authentication/components/FlowTitle.d.ts +5 -2
- package/lib/clients/add/SamlSignature.d.ts +1 -0
- package/lib/clients/authorization/ScopePicker.d.ts +5 -2
- package/lib/clients/authorization/policy/LogicSelector.d.ts +1 -1
- package/lib/clients/authorization/policy/NameDescription.d.ts +3 -2
- package/lib/clients/routes/PermissionConfigurationDetails.d.ts +10 -0
- package/lib/components/client/ClientSelect.d.ts +4 -2
- package/lib/components/dynamic/BooleanComponent.d.ts +1 -1
- package/lib/components/dynamic/DynamicComponents.d.ts +2 -1
- package/lib/components/dynamic/FileComponent.d.ts +1 -1
- package/lib/components/dynamic/GroupComponent.d.ts +1 -1
- package/lib/components/dynamic/IntComponent.d.ts +1 -1
- package/lib/components/dynamic/ListComponent.d.ts +1 -1
- package/lib/components/dynamic/MapComponent.d.ts +1 -1
- package/lib/components/dynamic/MultivaluedListComponent.d.ts +1 -1
- package/lib/components/dynamic/MultivaluedStringComponent.d.ts +1 -1
- package/lib/components/dynamic/NumberComponent.d.ts +1 -1
- package/lib/components/dynamic/PasswordComponent.d.ts +1 -1
- package/lib/components/dynamic/RoleComponent.d.ts +1 -1
- package/lib/components/dynamic/ScriptComponent.d.ts +1 -1
- package/lib/components/dynamic/StringComponent.d.ts +1 -1
- package/lib/components/dynamic/TextComponent.d.ts +1 -1
- package/lib/components/dynamic/UserProfileAttributeListComponent.d.ts +1 -1
- package/lib/components/dynamic/components.d.ts +1 -0
- package/lib/components/form/CodeEditor.d.ts +12 -0
- package/lib/components/role-mapping/AddRoleMappingModal.d.ts +3 -2
- package/lib/components/users/UserSelect.d.ts +1 -1
- package/lib/context/RecentRealms.d.ts +6 -2
- package/lib/i18n/i18n.d.ts +4 -0
- package/lib/{index-lFXE1rYJ.js → index-CRHbhwXr.js} +36043 -36047
- package/lib/{index-lFXE1rYJ.js.map → index-CRHbhwXr.js.map} +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/keycloak-admin-ui.css +1 -1
- package/lib/keycloak-admin-ui.js +162 -163
- package/lib/organizations/IdentityProviderSelect.d.ts +1 -1
- package/lib/permissions-configuration/PermissionsConfigurationSection.d.ts +1 -0
- package/lib/permissions-configuration/permission-configuration/AssignedPolicies.d.ts +10 -0
- package/lib/permissions-configuration/permission-configuration/AuthorizationScopesDetails.d.ts +10 -0
- package/lib/permissions-configuration/permission-configuration/ExistingPoliciesDialog.d.ts +10 -0
- package/lib/permissions-configuration/permission-configuration/NewPermissionConfigurationDialog.d.ts +8 -0
- package/lib/permissions-configuration/permission-configuration/NewPermissionPolicyDialog.d.ts +13 -0
- package/lib/permissions-configuration/permission-configuration/PermissionConfigurationDetails.d.ts +1 -0
- package/lib/permissions-configuration/permission-configuration/PermissionsConfigurationTab.d.ts +5 -0
- package/lib/permissions-configuration/permission-evaluation/PermissionEvaluationResult.d.ts +6 -0
- package/lib/permissions-configuration/permission-evaluation/PermissionsEvaluationTab.d.ts +8 -0
- package/lib/permissions-configuration/resource-types/GroupSelect.d.ts +7 -0
- package/lib/permissions-configuration/resource-types/ResourceType.d.ts +11 -0
- package/lib/permissions-configuration/resource-types/RoleSelect.d.ts +6 -0
- package/lib/permissions-configuration/resource-types/SearchDropdown.d.ts +20 -0
- package/lib/permissions-configuration/routes/NewPermissionConfiguration.d.ts +9 -0
- package/lib/permissions-configuration/routes/NewPermissionPolicy.d.ts +9 -0
- package/lib/permissions-configuration/routes/PermissionConfigurationDetails.d.ts +10 -0
- package/lib/permissions-configuration/routes/PermissionPolicyDetails.d.ts +10 -0
- package/lib/permissions-configuration/routes/PermissionsConfiguration.d.ts +7 -0
- package/lib/permissions-configuration/routes/PermissionsConfigurationTabs.d.ts +10 -0
- package/lib/permissions-configuration/routes/PermissionsPolicies.d.ts +8 -0
- package/lib/realm/RealmRoutes.d.ts +7 -0
- package/lib/realm/RealmSection.d.ts +5 -0
- package/lib/realm/add/NewRealmForm.d.ts +5 -1
- package/lib/realm-settings/themes/ThemesTab.d.ts +1 -0
- package/lib/utils/useIsFeatureEnabled.d.ts +2 -1
- package/lib/utils/useSortedResourceTypes.d.ts +5 -0
- package/package.json +26 -37
- package/lib/ExecutorForm-DxyNT3T5.js.map +0 -1
- package/lib/FlowDetails-ChnCh0MX.js +0 -10786
- package/lib/FlowDetails-ChnCh0MX.js.map +0 -1
- package/lib/NewOrganization-CdgyibqF.js +0 -36
- package/lib/ResourceDetails-BBY9AcKD.js +0 -286
- package/lib/ResourceDetails-BBY9AcKD.js.map +0 -1
- package/lib/browser-ponyfill-CTSSxZf6.js +0 -342
- package/lib/browser-ponyfill-CTSSxZf6.js.map +0 -1
- package/lib/components/realm-selector/RealmSelector.d.ts +0 -1
- package/lib/permissions/PermissionsSection.d.ts +0 -1
- package/lib/permissions/routes/Permissions.d.ts +0 -7
- package/lib/permissions/routes/PermissionsTabs.d.ts +0 -9
- package/lib/realm/routes/AddRealm.d.ts +0 -7
- /package/lib/{permissions → permissions-configuration}/routes.d.ts +0 -0
package/README.md
CHANGED
@@ -33,7 +33,7 @@ import { KeycloakProvider } from "@keycloak/keycloak-ui-shared";
|
|
33
33
|
### Translation
|
34
34
|
|
35
35
|
For the translation we use `react-i18next` you can [set it up](https://react.i18next.com/) as described on their website.
|
36
|
-
If you want to use the translations that are provided then you need to add `i18next-
|
36
|
+
If you want to use the translations that are provided then you need to add `i18next-fetch-backend` to your project and add:
|
37
37
|
|
38
38
|
```ts
|
39
39
|
|
@@ -42,9 +42,9 @@ backend: {
|
|
42
42
|
parse: (data: string) => {
|
43
43
|
const messages = JSON.parse(data);
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
return Object.fromEntries(
|
46
|
+
messages.map(({ key, value }) => [key, value])
|
47
|
+
);
|
48
48
|
},
|
49
49
|
},
|
50
50
|
```
|
package/lib/.vite/manifest.json
CHANGED
@@ -1,74 +1,76 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
"file": "
|
4
|
-
"name": "
|
5
|
-
"isDynamicEntry": true,
|
2
|
+
"_ScopePicker-kvjSuh0C.js": {
|
3
|
+
"file": "ScopePicker-kvjSuh0C.js",
|
4
|
+
"name": "ScopePicker",
|
6
5
|
"imports": [
|
7
|
-
"_index-
|
6
|
+
"_index-CRHbhwXr.js"
|
8
7
|
]
|
9
8
|
},
|
10
|
-
"_index-
|
11
|
-
"file": "index-
|
9
|
+
"_index-CRHbhwXr.js": {
|
10
|
+
"file": "index-CRHbhwXr.js",
|
12
11
|
"name": "index",
|
13
12
|
"dynamicImports": [
|
14
|
-
"_browser-ponyfill-CTSSxZf6.js",
|
15
|
-
"src/authentication/FlowDetails.tsx",
|
16
13
|
"src/authentication/form/CreateFlow.tsx",
|
17
|
-
"src/
|
14
|
+
"src/authentication/FlowDetails.tsx",
|
18
15
|
"src/clients/authorization/PermissionDetails.tsx",
|
19
16
|
"src/clients/authorization/ResourceDetails.tsx",
|
20
|
-
"src/clients/authorization/ResourceDetails.tsx",
|
21
|
-
"src/clients/authorization/PermissionDetails.tsx",
|
22
17
|
"src/clients/authorization/ScopeDetails.tsx",
|
18
|
+
"src/clients/authorization/PermissionDetails.tsx",
|
19
|
+
"src/clients/authorization/ResourceDetails.tsx",
|
23
20
|
"src/clients/authorization/ScopeDetails.tsx",
|
24
21
|
"src/organizations/NewOrganization.tsx",
|
22
|
+
"src/organizations/DetailOrganization.tsx",
|
23
|
+
"src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
|
24
|
+
"src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
|
25
25
|
"src/realm-settings/ExecutorForm.tsx",
|
26
|
-
"src/realm-settings/ExecutorForm.tsx"
|
26
|
+
"src/realm-settings/ExecutorForm.tsx",
|
27
|
+
"src/realm/RealmSection.tsx"
|
27
28
|
]
|
28
29
|
},
|
29
30
|
"src/authentication/FlowDetails.tsx": {
|
30
|
-
"file": "FlowDetails-
|
31
|
+
"file": "FlowDetails-BYnrUM6B.js",
|
31
32
|
"name": "FlowDetails",
|
32
33
|
"src": "src/authentication/FlowDetails.tsx",
|
33
34
|
"isDynamicEntry": true,
|
34
35
|
"imports": [
|
35
|
-
"_index-
|
36
|
+
"_index-CRHbhwXr.js"
|
36
37
|
]
|
37
38
|
},
|
38
39
|
"src/authentication/form/CreateFlow.tsx": {
|
39
|
-
"file": "CreateFlow-
|
40
|
+
"file": "CreateFlow-C8ou3z3D.js",
|
40
41
|
"name": "CreateFlow",
|
41
42
|
"src": "src/authentication/form/CreateFlow.tsx",
|
42
43
|
"isDynamicEntry": true,
|
43
44
|
"imports": [
|
44
|
-
"_index-
|
45
|
+
"_index-CRHbhwXr.js"
|
45
46
|
]
|
46
47
|
},
|
47
48
|
"src/clients/authorization/PermissionDetails.tsx": {
|
48
|
-
"file": "PermissionDetails-
|
49
|
+
"file": "PermissionDetails-FszJtVpG.js",
|
49
50
|
"name": "PermissionDetails",
|
50
51
|
"src": "src/clients/authorization/PermissionDetails.tsx",
|
51
52
|
"isDynamicEntry": true,
|
52
53
|
"imports": [
|
53
|
-
"_index-
|
54
|
+
"_index-CRHbhwXr.js"
|
54
55
|
]
|
55
56
|
},
|
56
57
|
"src/clients/authorization/ResourceDetails.tsx": {
|
57
|
-
"file": "ResourceDetails-
|
58
|
+
"file": "ResourceDetails-Br81AEgO.js",
|
58
59
|
"name": "ResourceDetails",
|
59
60
|
"src": "src/clients/authorization/ResourceDetails.tsx",
|
60
61
|
"isDynamicEntry": true,
|
61
62
|
"imports": [
|
62
|
-
"_index-
|
63
|
+
"_index-CRHbhwXr.js",
|
64
|
+
"_ScopePicker-kvjSuh0C.js"
|
63
65
|
]
|
64
66
|
},
|
65
67
|
"src/clients/authorization/ScopeDetails.tsx": {
|
66
|
-
"file": "ScopeDetails-
|
68
|
+
"file": "ScopeDetails-nDvWwhgg.js",
|
67
69
|
"name": "ScopeDetails",
|
68
70
|
"src": "src/clients/authorization/ScopeDetails.tsx",
|
69
71
|
"isDynamicEntry": true,
|
70
72
|
"imports": [
|
71
|
-
"_index-
|
73
|
+
"_index-CRHbhwXr.js"
|
72
74
|
]
|
73
75
|
},
|
74
76
|
"src/index.ts": {
|
@@ -77,34 +79,53 @@
|
|
77
79
|
"src": "src/index.ts",
|
78
80
|
"isEntry": true,
|
79
81
|
"imports": [
|
80
|
-
"_index-
|
82
|
+
"_index-CRHbhwXr.js"
|
81
83
|
]
|
82
84
|
},
|
83
85
|
"src/organizations/DetailOrganization.tsx": {
|
84
|
-
"file": "DetailOrganization-
|
86
|
+
"file": "DetailOrganization-ChDFPj6w.js",
|
85
87
|
"name": "DetailOrganization",
|
86
88
|
"src": "src/organizations/DetailOrganization.tsx",
|
87
89
|
"isDynamicEntry": true,
|
88
90
|
"imports": [
|
89
|
-
"_index-
|
91
|
+
"_index-CRHbhwXr.js"
|
90
92
|
]
|
91
93
|
},
|
92
94
|
"src/organizations/NewOrganization.tsx": {
|
93
|
-
"file": "NewOrganization-
|
95
|
+
"file": "NewOrganization-IjGiIFRg.js",
|
94
96
|
"name": "NewOrganization",
|
95
97
|
"src": "src/organizations/NewOrganization.tsx",
|
96
98
|
"isDynamicEntry": true,
|
97
99
|
"imports": [
|
98
|
-
"_index-
|
100
|
+
"_index-CRHbhwXr.js"
|
101
|
+
]
|
102
|
+
},
|
103
|
+
"src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx": {
|
104
|
+
"file": "PermissionConfigurationDetails-B_xt8b5a.js",
|
105
|
+
"name": "PermissionConfigurationDetails",
|
106
|
+
"src": "src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
|
107
|
+
"isDynamicEntry": true,
|
108
|
+
"imports": [
|
109
|
+
"_index-CRHbhwXr.js",
|
110
|
+
"_ScopePicker-kvjSuh0C.js"
|
99
111
|
]
|
100
112
|
},
|
101
113
|
"src/realm-settings/ExecutorForm.tsx": {
|
102
|
-
"file": "ExecutorForm-
|
114
|
+
"file": "ExecutorForm-CqhYZ9zD.js",
|
103
115
|
"name": "ExecutorForm",
|
104
116
|
"src": "src/realm-settings/ExecutorForm.tsx",
|
105
117
|
"isDynamicEntry": true,
|
106
118
|
"imports": [
|
107
|
-
"_index-
|
119
|
+
"_index-CRHbhwXr.js"
|
120
|
+
]
|
121
|
+
},
|
122
|
+
"src/realm/RealmSection.tsx": {
|
123
|
+
"file": "RealmSection-BkVmYRIb.js",
|
124
|
+
"name": "RealmSection",
|
125
|
+
"src": "src/realm/RealmSection.tsx",
|
126
|
+
"isDynamicEntry": true,
|
127
|
+
"imports": [
|
128
|
+
"_index-CRHbhwXr.js"
|
108
129
|
]
|
109
130
|
},
|
110
131
|
"style.css": {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { jsxs as r, Fragment as w, jsx as t } from "react/jsx-runtime";
|
2
|
-
import { u as h, a as F,
|
3
|
-
import { useTranslation as
|
4
|
-
import { useNavigate as
|
2
|
+
import { u as h, a as F, V as b, b as v, c as y, P as g, F as S, d as A, N as C, $ as I, A as T, X as V, B as H, t as N, e as i, f as P } from "./index-CRHbhwXr.js";
|
3
|
+
import { useTranslation as k } from "react-i18next";
|
4
|
+
import { useNavigate as x, Link as B } from "react-router-dom";
|
5
5
|
const c = ["basic-flow", "client-flow"];
|
6
6
|
function E() {
|
7
|
-
const { adminClient: u } = h(), { t: e } =
|
7
|
+
const { adminClient: u } = h(), { t: e } = k(), d = x(), { realm: n } = F(), { addAlert: l } = b(), s = v(), { handleSubmit: m, formState: p } = s;
|
8
8
|
return /* @__PURE__ */ r(w, { children: [
|
9
9
|
/* @__PURE__ */ t(y, { titleKey: "createFlow", subKey: "authenticationCreateFlowHelp" }),
|
10
10
|
/* @__PURE__ */ t(g, { variant: "light", children: /* @__PURE__ */ t(S, { ...s, children: /* @__PURE__ */ r(
|
@@ -17,7 +17,7 @@ function E() {
|
|
17
17
|
try {
|
18
18
|
const { id: o } = await u.authenticationManagement.createFlow(f);
|
19
19
|
l(e("flowCreatedSuccess"), i.success), d(
|
20
|
-
|
20
|
+
P({
|
21
21
|
realm: n,
|
22
22
|
id: o,
|
23
23
|
usedBy: "notInUse"
|
@@ -50,7 +50,7 @@ function E() {
|
|
50
50
|
),
|
51
51
|
/* @__PURE__ */ r(T, { children: [
|
52
52
|
/* @__PURE__ */ t(
|
53
|
-
|
53
|
+
V,
|
54
54
|
{
|
55
55
|
formState: p,
|
56
56
|
"data-testid": "create",
|
@@ -60,11 +60,11 @@ function E() {
|
|
60
60
|
}
|
61
61
|
),
|
62
62
|
/* @__PURE__ */ t(
|
63
|
-
|
63
|
+
H,
|
64
64
|
{
|
65
65
|
"data-testid": "cancel",
|
66
66
|
variant: "link",
|
67
|
-
component: (a) => /* @__PURE__ */ t(
|
67
|
+
component: (a) => /* @__PURE__ */ t(B, { ...a, to: N({ realm: n }) }),
|
68
68
|
children: e("cancel")
|
69
69
|
}
|
70
70
|
)
|
@@ -77,4 +77,4 @@ function E() {
|
|
77
77
|
export {
|
78
78
|
E as default
|
79
79
|
};
|
80
|
-
//# sourceMappingURL=CreateFlow-
|
80
|
+
//# sourceMappingURL=CreateFlow-C8ou3z3D.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CreateFlow-
|
1
|
+
{"version":3,"file":"CreateFlow-C8ou3z3D.js","sources":["../src/authentication/form/CreateFlow.tsx"],"sourcesContent":["import type AuthenticationFlowRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/authenticationFlowRepresentation\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { FormSubmitButton, SelectControl } from \"@keycloak/keycloak-ui-shared\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useAlerts } from \"@keycloak/keycloak-ui-shared\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { toAuthentication } from \"../routes/Authentication\";\nimport { toFlow } from \"../routes/Flow\";\nimport { NameDescription } from \"./NameDescription\";\n\nconst TYPES = [\"basic-flow\", \"client-flow\"] as const;\n\nexport default function CreateFlow() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { realm } = useRealm();\n const { addAlert } = useAlerts();\n const form = useForm<AuthenticationFlowRepresentation>();\n const { handleSubmit, formState } = form;\n\n const onSubmit = async (formValues: AuthenticationFlowRepresentation) => {\n const flow = { ...formValues, builtIn: false, topLevel: true };\n\n try {\n const { id } =\n await adminClient.authenticationManagement.createFlow(flow);\n addAlert(t(\"flowCreatedSuccess\"), AlertVariant.success);\n navigate(\n toFlow({\n realm,\n id: id!,\n usedBy: \"notInUse\",\n }),\n );\n } catch (error: any) {\n addAlert(\n t(\"flowCreateError\", {\n error: error.response?.data?.errorMessage || error,\n }),\n AlertVariant.danger,\n );\n }\n };\n\n return (\n <>\n <ViewHeader titleKey=\"createFlow\" subKey=\"authenticationCreateFlowHelp\" />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n isHorizontal\n role=\"manage-authorization\"\n onSubmit={handleSubmit(onSubmit)}\n >\n <NameDescription />\n <SelectControl\n name=\"providerId\"\n label={t(\"flowType\")}\n labelIcon={t(\"topLevelFlowTypeHelp\")}\n aria-label={t(\"selectFlowType\")}\n controller={{ defaultValue: TYPES[0] }}\n options={TYPES.map((type) => ({\n key: type,\n value: t(`top-level-flow-type.${type}`),\n }))}\n />\n <ActionGroup>\n <FormSubmitButton\n formState={formState}\n data-testid=\"create\"\n allowInvalid\n allowNonDirty\n >\n {t(\"create\")}\n </FormSubmitButton>\n <Button\n data-testid=\"cancel\"\n variant=\"link\"\n component={(props) => (\n <Link {...props} to={toAuthentication({ realm })}></Link>\n )}\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n </FormAccess>\n </FormProvider>\n </PageSection>\n </>\n );\n}\n"],"names":["TYPES","CreateFlow","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","realm","useRealm","addAlert","useAlerts","form","useForm","handleSubmit","formState","jsxs","Fragment","jsx","ViewHeader","PageSection","FormProvider","FormAccess","formValues","flow","id","AlertVariant","toFlow","error","NameDescription","SelectControl","type","ActionGroup","FormSubmitButton","Button","props","Link","toAuthentication"],"mappings":";;;;AAoBA,MAAMA,IAAQ,CAAC,cAAc,aAAa;AAE1C,SAAwBC,IAAa;AAC7B,QAAA,EAAE,aAAAC,EAAY,IAAIC,EAAe,GAEjC,EAAE,GAAAC,EAAE,IAAIC,EAAe,GACvBC,IAAWC,EAAY,GACvB,EAAE,OAAAC,EAAM,IAAIC,EAAS,GACrB,EAAE,UAAAC,EAAS,IAAIC,EAAU,GACzBC,IAAOC,EAA0C,GACjD,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcH;AA0BpC,SAEI,gBAAAI,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAW,EAAA,UAAS,cAAa,QAAO,gCAA+B;AAAA,sBACvEC,GAAY,EAAA,SAAQ,SACnB,UAAC,gBAAAF,EAAAG,GAAA,EAAc,GAAGT,GAChB,UAAA,gBAAAI;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,cAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAUR,EAhCH,OAAOS,MAAiD;AACvE,gBAAMC,IAAO,EAAE,GAAGD,GAAY,SAAS,IAAO,UAAU,GAAK;AAEzD,cAAA;AACF,kBAAM,EAAE,IAAAE,EAAG,IACT,MAAMvB,EAAY,yBAAyB,WAAWsB,CAAI;AAC5D,YAAAd,EAASN,EAAE,oBAAoB,GAAGsB,EAAa,OAAO,GACtDpB;AAAA,cACEqB,EAAO;AAAA,gBACL,OAAAnB;AAAA,gBACA,IAAAiB;AAAA,gBACA,QAAQ;AAAA,cACT,CAAA;AAAA,YACH;AAAA,mBACOG,GAAY;AACnB,YAAAlB;AAAA,cACEN,EAAE,mBAAmB;AAAA,gBACnB,OAAOwB,EAAM,UAAU,MAAM,gBAAgBA;AAAA,cAAA,CAC9C;AAAA,cACDF,EAAa;AAAA,YACf;AAAA,UAAA;AAAA,QAEJ,CAUyC;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAR,EAACW,GAAgB,EAAA;AAAA,UACjB,gBAAAX;AAAA,YAACY;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAO1B,EAAE,UAAU;AAAA,cACnB,WAAWA,EAAE,sBAAsB;AAAA,cACnC,cAAYA,EAAE,gBAAgB;AAAA,cAC9B,YAAY,EAAE,cAAcJ,EAAM,CAAC,EAAE;AAAA,cACrC,SAASA,EAAM,IAAI,CAAC+B,OAAU;AAAA,gBAC5B,KAAKA;AAAA,gBACL,OAAO3B,EAAE,uBAAuB2B,CAAI,EAAE;AAAA,cAAA,EACtC;AAAA,YAAA;AAAA,UACJ;AAAA,4BACCC,GACC,EAAA,UAAA;AAAA,YAAA,gBAAAd;AAAA,cAACe;AAAAA,cAAA;AAAA,gBACC,WAAAlB;AAAA,gBACA,eAAY;AAAA,gBACZ,cAAY;AAAA,gBACZ,eAAa;AAAA,gBAEZ,YAAE,QAAQ;AAAA,cAAA;AAAA,YACb;AAAA,YACA,gBAAAG;AAAA,cAACgB;AAAA,cAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,SAAQ;AAAA,gBACR,WAAW,CAACC,MACV,gBAAAjB,EAACkB,GAAM,EAAA,GAAGD,GAAO,IAAIE,EAAiB,EAAE,OAAA7B,EAAM,CAAC,EAAG,CAAA;AAAA,gBAGnD,YAAE,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACb,EACF,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,OAEJ,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
|
@@ -1,18 +1,18 @@
|
|
1
1
|
import { jsx as t, jsxs as c } from "react/jsx-runtime";
|
2
|
-
import { u as
|
3
|
-
import { useTranslation as
|
4
|
-
import { useState as
|
2
|
+
import { u as O, V as F, a as x, ao as K, b as R, n as V, aG as w, ap as B, P as m, F as C, aH as H, aI as I, aJ as n, d as j, aK as k, A as D, X as G, B as M, aL as r, aM as N, aN as X, aO as $, aP as J, aQ as u, aR as L, aS as Q, aT as _ } from "./index-CRHbhwXr.js";
|
3
|
+
import { useTranslation as q } from "react-i18next";
|
4
|
+
import { useState as U } from "react";
|
5
5
|
function et() {
|
6
|
-
const { adminClient:
|
6
|
+
const { adminClient: b } = O(), { addAlert: v, addError: h } = F(), { realm: T, realmRepresentation: g } = x(), { id: o } = K(), { t: e } = q(), a = R(), l = async (s) => {
|
7
7
|
try {
|
8
|
-
const i =
|
9
|
-
await
|
8
|
+
const i = L(s);
|
9
|
+
await b.organizations.updateById({ id: o }, i), v(e("organizationSaveSuccess"));
|
10
10
|
} catch (i) {
|
11
11
|
h("organizationSaveError", i);
|
12
12
|
}
|
13
13
|
};
|
14
|
-
|
15
|
-
() =>
|
14
|
+
V(
|
15
|
+
() => b.organizations.findOne({ id: o }),
|
16
16
|
(s) => {
|
17
17
|
if (!s)
|
18
18
|
throw new Error(e("notFound"));
|
@@ -24,17 +24,17 @@ function et() {
|
|
24
24
|
},
|
25
25
|
[o]
|
26
26
|
);
|
27
|
-
const d = (s) =>
|
28
|
-
|
27
|
+
const d = (s) => w(
|
28
|
+
_({
|
29
29
|
realm: T,
|
30
30
|
id: o,
|
31
31
|
tab: s
|
32
32
|
})
|
33
|
-
), y = d("settings"),
|
34
|
-
return /* @__PURE__ */ t(
|
35
|
-
/* @__PURE__ */ t(
|
33
|
+
), y = d("settings"), E = d("attributes"), p = d("members"), z = d("identityProviders"), P = d("events"), { hasAccess: f } = B(), [S, A] = U("adminEvents");
|
34
|
+
return /* @__PURE__ */ t(m, { variant: "light", className: "pf-v5-u-p-0", children: /* @__PURE__ */ c(C, { ...a, children: [
|
35
|
+
/* @__PURE__ */ t(H, { save: () => l(a.getValues()) }),
|
36
36
|
/* @__PURE__ */ c(
|
37
|
-
|
37
|
+
I,
|
38
38
|
{
|
39
39
|
"data-testid": "organization-tabs",
|
40
40
|
"aria-label": e("organization"),
|
@@ -48,17 +48,17 @@ function et() {
|
|
48
48
|
"data-testid": "settingsTab",
|
49
49
|
title: /* @__PURE__ */ t(r, { children: e("settings") }),
|
50
50
|
...y,
|
51
|
-
children: /* @__PURE__ */ t(
|
51
|
+
children: /* @__PURE__ */ t(m, { children: /* @__PURE__ */ c(
|
52
52
|
j,
|
53
53
|
{
|
54
54
|
role: "anyone",
|
55
|
-
onSubmit: a.handleSubmit(
|
55
|
+
onSubmit: a.handleSubmit(l),
|
56
56
|
isHorizontal: !0,
|
57
57
|
children: [
|
58
58
|
/* @__PURE__ */ t(k, { readOnly: !0 }),
|
59
|
-
/* @__PURE__ */ c(
|
59
|
+
/* @__PURE__ */ c(D, { children: [
|
60
60
|
/* @__PURE__ */ t(
|
61
|
-
|
61
|
+
G,
|
62
62
|
{
|
63
63
|
formState: a.formState,
|
64
64
|
"data-testid": "save",
|
@@ -66,7 +66,7 @@ function et() {
|
|
66
66
|
}
|
67
67
|
),
|
68
68
|
/* @__PURE__ */ t(
|
69
|
-
|
69
|
+
M,
|
70
70
|
{
|
71
71
|
onClick: () => a.reset(),
|
72
72
|
"data-testid": "reset",
|
@@ -86,12 +86,12 @@ function et() {
|
|
86
86
|
id: "attributes",
|
87
87
|
"data-testid": "attributeTab",
|
88
88
|
title: /* @__PURE__ */ t(r, { children: e("attributes") }),
|
89
|
-
...
|
90
|
-
children: /* @__PURE__ */ t(
|
91
|
-
|
89
|
+
...E,
|
90
|
+
children: /* @__PURE__ */ t(m, { variant: "light", children: /* @__PURE__ */ t(
|
91
|
+
N,
|
92
92
|
{
|
93
93
|
form: a,
|
94
|
-
save:
|
94
|
+
save: l,
|
95
95
|
reset: () => a.reset({
|
96
96
|
...a.getValues()
|
97
97
|
}),
|
@@ -106,8 +106,8 @@ function et() {
|
|
106
106
|
id: "members",
|
107
107
|
"data-testid": "membersTab",
|
108
108
|
title: /* @__PURE__ */ t(r, { children: e("members") }),
|
109
|
-
...
|
110
|
-
children: /* @__PURE__ */ t(
|
109
|
+
...p,
|
110
|
+
children: /* @__PURE__ */ t(X, {})
|
111
111
|
}
|
112
112
|
),
|
113
113
|
/* @__PURE__ */ t(
|
@@ -116,21 +116,21 @@ function et() {
|
|
116
116
|
id: "identityProviders",
|
117
117
|
"data-testid": "identityProvidersTab",
|
118
118
|
title: /* @__PURE__ */ t(r, { children: e("identityProviders") }),
|
119
|
-
...
|
120
|
-
children: /* @__PURE__ */ t(
|
119
|
+
...z,
|
120
|
+
children: /* @__PURE__ */ t($, {})
|
121
121
|
}
|
122
122
|
),
|
123
|
-
g?.adminEventsEnabled &&
|
123
|
+
g?.adminEventsEnabled && f("view-events") && /* @__PURE__ */ t(
|
124
124
|
n,
|
125
125
|
{
|
126
126
|
"data-testid": "admin-events-tab",
|
127
127
|
title: /* @__PURE__ */ t(r, { children: e("adminEvents") }),
|
128
|
-
...
|
128
|
+
...P,
|
129
129
|
children: /* @__PURE__ */ c(
|
130
|
-
|
130
|
+
J,
|
131
131
|
{
|
132
|
-
activeKey:
|
133
|
-
onSelect: (s, i) =>
|
132
|
+
activeKey: S,
|
133
|
+
onSelect: (s, i) => A(i),
|
134
134
|
children: [
|
135
135
|
/* @__PURE__ */ t(
|
136
136
|
n,
|
@@ -161,4 +161,4 @@ function et() {
|
|
161
161
|
export {
|
162
162
|
et as default
|
163
163
|
};
|
164
|
-
//# sourceMappingURL=DetailOrganization-
|
164
|
+
//# sourceMappingURL=DetailOrganization-ChDFPj6w.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DetailOrganization-BZxym2fM.js","sources":["../src/organizations/DetailOrganization.tsx"],"sourcesContent":["import {\n FormSubmitButton,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n Button,\n PageSection,\n Tab,\n Tabs,\n TabTitleText,\n} from \"@patternfly/react-core\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../admin-client\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { AttributesForm } from \"../components/key-value-form/AttributeForm\";\nimport { arrayToKeyValue } from \"../components/key-value-form/key-value-convert\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../components/routable-tabs/RoutableTabs\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useParams } from \"../utils/useParams\";\nimport { DetailOrganizationHeader } from \"./DetailOraganzationHeader\";\nimport { IdentityProviders } from \"./IdentityProviders\";\nimport { Members } from \"./Members\";\nimport {\n OrganizationForm,\n OrganizationFormType,\n convertToOrg,\n} from \"./OrganizationForm\";\nimport {\n EditOrganizationParams,\n OrganizationTab,\n toEditOrganization,\n} from \"./routes/EditOrganization\";\nimport { useAccess } from \"../context/access/Access\";\nimport { AdminEvents } from \"../events/AdminEvents\";\nimport { useState } from \"react\";\n\nexport default function DetailOrganization() {\n const { adminClient } = useAdminClient();\n const { addAlert, addError } = useAlerts();\n\n const { realm, realmRepresentation } = useRealm();\n const { id } = useParams<EditOrganizationParams>();\n const { t } = useTranslation();\n\n const form = useForm<OrganizationFormType>();\n\n const save = async (org: OrganizationFormType) => {\n try {\n const organization = convertToOrg(org);\n await adminClient.organizations.updateById({ id }, organization);\n addAlert(t(\"organizationSaveSuccess\"));\n } catch (error) {\n addError(\"organizationSaveError\", error);\n }\n };\n\n useFetch(\n () => adminClient.organizations.findOne({ id }),\n (org) => {\n if (!org) {\n throw new Error(t(\"notFound\"));\n }\n form.reset({\n ...org,\n domains: org.domains?.map((d) => d.name),\n attributes: arrayToKeyValue(org.attributes),\n });\n },\n [id],\n );\n\n const useTab = (tab: OrganizationTab) =>\n useRoutableTab(\n toEditOrganization({\n realm,\n id,\n tab,\n }),\n );\n\n const settingsTab = useTab(\"settings\");\n const attributesTab = useTab(\"attributes\");\n const membersTab = useTab(\"members\");\n const identityProvidersTab = useTab(\"identityProviders\");\n const eventsTab = useTab(\"events\");\n\n const { hasAccess } = useAccess();\n const [activeEventsTab, setActiveEventsTab] = useState(\"adminEvents\");\n\n return (\n <PageSection variant=\"light\" className=\"pf-v5-u-p-0\">\n <FormProvider {...form}>\n <DetailOrganizationHeader save={() => save(form.getValues())} />\n <RoutableTabs\n data-testid=\"organization-tabs\"\n aria-label={t(\"organization\")}\n isBox\n mountOnEnter\n >\n <Tab\n id=\"settings\"\n data-testid=\"settingsTab\"\n title={<TabTitleText>{t(\"settings\")}</TabTitleText>}\n {...settingsTab}\n >\n <PageSection>\n <FormAccess\n role=\"anyone\"\n onSubmit={form.handleSubmit(save)}\n isHorizontal\n >\n <OrganizationForm readOnly />\n <ActionGroup>\n <FormSubmitButton\n formState={form.formState}\n data-testid=\"save\"\n >\n {t(\"save\")}\n </FormSubmitButton>\n <Button\n onClick={() => form.reset()}\n data-testid=\"reset\"\n variant=\"link\"\n >\n {t(\"reset\")}\n </Button>\n </ActionGroup>\n </FormAccess>\n </PageSection>\n </Tab>\n <Tab\n id=\"attributes\"\n data-testid=\"attributeTab\"\n title={<TabTitleText>{t(\"attributes\")}</TabTitleText>}\n {...attributesTab}\n >\n <PageSection variant=\"light\">\n <AttributesForm\n form={form}\n save={save}\n reset={() =>\n form.reset({\n ...form.getValues(),\n })\n }\n name=\"attributes\"\n />\n </PageSection>\n </Tab>\n <Tab\n id=\"members\"\n data-testid=\"membersTab\"\n title={<TabTitleText>{t(\"members\")}</TabTitleText>}\n {...membersTab}\n >\n <Members />\n </Tab>\n <Tab\n id=\"identityProviders\"\n data-testid=\"identityProvidersTab\"\n title={<TabTitleText>{t(\"identityProviders\")}</TabTitleText>}\n {...identityProvidersTab}\n >\n <IdentityProviders />\n </Tab>\n {realmRepresentation?.adminEventsEnabled &&\n hasAccess(\"view-events\") && (\n <Tab\n data-testid=\"admin-events-tab\"\n title={<TabTitleText>{t(\"adminEvents\")}</TabTitleText>}\n {...eventsTab}\n >\n <Tabs\n activeKey={activeEventsTab}\n onSelect={(_, key) => setActiveEventsTab(key as string)}\n >\n <Tab\n eventKey=\"adminEvents\"\n title={<TabTitleText>{t(\"adminEvents\")}</TabTitleText>}\n >\n <AdminEvents resourcePath={`organizations/${id}`} />\n </Tab>\n <Tab\n eventKey=\"membershipEvents\"\n title={<TabTitleText>{t(\"membershipEvents\")}</TabTitleText>}\n >\n <AdminEvents resourcePath={`organizations/${id}/members`} />\n </Tab>\n </Tabs>\n </Tab>\n )}\n </RoutableTabs>\n </FormProvider>\n </PageSection>\n );\n}\n"],"names":["DetailOrganization","adminClient","useAdminClient","addAlert","addError","useAlerts","realm","realmRepresentation","useRealm","id","useParams","t","useTranslation","form","useForm","save","org","organization","convertToOrg","error","useFetch","d","arrayToKeyValue","useTab","tab","useRoutableTab","toEditOrganization","settingsTab","attributesTab","membersTab","identityProvidersTab","eventsTab","hasAccess","useAccess","activeEventsTab","setActiveEventsTab","useState","jsx","PageSection","jsxs","FormProvider","DetailOrganizationHeader","RoutableTabs","Tab","TabTitleText","FormAccess","OrganizationForm","ActionGroup","FormSubmitButton","Button","AttributesForm","Members","IdentityProviders","Tabs","_","key","AdminEvents"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"DetailOrganization-ChDFPj6w.js","sources":["../src/organizations/DetailOrganization.tsx"],"sourcesContent":["import {\n FormSubmitButton,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n Button,\n PageSection,\n Tab,\n Tabs,\n TabTitleText,\n} from \"@patternfly/react-core\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../admin-client\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { AttributesForm } from \"../components/key-value-form/AttributeForm\";\nimport { arrayToKeyValue } from \"../components/key-value-form/key-value-convert\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../components/routable-tabs/RoutableTabs\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useParams } from \"../utils/useParams\";\nimport { DetailOrganizationHeader } from \"./DetailOraganzationHeader\";\nimport { IdentityProviders } from \"./IdentityProviders\";\nimport { Members } from \"./Members\";\nimport {\n OrganizationForm,\n OrganizationFormType,\n convertToOrg,\n} from \"./OrganizationForm\";\nimport {\n EditOrganizationParams,\n OrganizationTab,\n toEditOrganization,\n} from \"./routes/EditOrganization\";\nimport { useAccess } from \"../context/access/Access\";\nimport { AdminEvents } from \"../events/AdminEvents\";\nimport { useState } from \"react\";\n\nexport default function DetailOrganization() {\n const { adminClient } = useAdminClient();\n const { addAlert, addError } = useAlerts();\n\n const { realm, realmRepresentation } = useRealm();\n const { id } = useParams<EditOrganizationParams>();\n const { t } = useTranslation();\n\n const form = useForm<OrganizationFormType>();\n\n const save = async (org: OrganizationFormType) => {\n try {\n const organization = convertToOrg(org);\n await adminClient.organizations.updateById({ id }, organization);\n addAlert(t(\"organizationSaveSuccess\"));\n } catch (error) {\n addError(\"organizationSaveError\", error);\n }\n };\n\n useFetch(\n () => adminClient.organizations.findOne({ id }),\n (org) => {\n if (!org) {\n throw new Error(t(\"notFound\"));\n }\n form.reset({\n ...org,\n domains: org.domains?.map((d) => d.name),\n attributes: arrayToKeyValue(org.attributes),\n });\n },\n [id],\n );\n\n const useTab = (tab: OrganizationTab) =>\n useRoutableTab(\n toEditOrganization({\n realm,\n id,\n tab,\n }),\n );\n\n const settingsTab = useTab(\"settings\");\n const attributesTab = useTab(\"attributes\");\n const membersTab = useTab(\"members\");\n const identityProvidersTab = useTab(\"identityProviders\");\n const eventsTab = useTab(\"events\");\n\n const { hasAccess } = useAccess();\n const [activeEventsTab, setActiveEventsTab] = useState(\"adminEvents\");\n\n return (\n <PageSection variant=\"light\" className=\"pf-v5-u-p-0\">\n <FormProvider {...form}>\n <DetailOrganizationHeader save={() => save(form.getValues())} />\n <RoutableTabs\n data-testid=\"organization-tabs\"\n aria-label={t(\"organization\")}\n isBox\n mountOnEnter\n >\n <Tab\n id=\"settings\"\n data-testid=\"settingsTab\"\n title={<TabTitleText>{t(\"settings\")}</TabTitleText>}\n {...settingsTab}\n >\n <PageSection>\n <FormAccess\n role=\"anyone\"\n onSubmit={form.handleSubmit(save)}\n isHorizontal\n >\n <OrganizationForm readOnly />\n <ActionGroup>\n <FormSubmitButton\n formState={form.formState}\n data-testid=\"save\"\n >\n {t(\"save\")}\n </FormSubmitButton>\n <Button\n onClick={() => form.reset()}\n data-testid=\"reset\"\n variant=\"link\"\n >\n {t(\"reset\")}\n </Button>\n </ActionGroup>\n </FormAccess>\n </PageSection>\n </Tab>\n <Tab\n id=\"attributes\"\n data-testid=\"attributeTab\"\n title={<TabTitleText>{t(\"attributes\")}</TabTitleText>}\n {...attributesTab}\n >\n <PageSection variant=\"light\">\n <AttributesForm\n form={form}\n save={save}\n reset={() =>\n form.reset({\n ...form.getValues(),\n })\n }\n name=\"attributes\"\n />\n </PageSection>\n </Tab>\n <Tab\n id=\"members\"\n data-testid=\"membersTab\"\n title={<TabTitleText>{t(\"members\")}</TabTitleText>}\n {...membersTab}\n >\n <Members />\n </Tab>\n <Tab\n id=\"identityProviders\"\n data-testid=\"identityProvidersTab\"\n title={<TabTitleText>{t(\"identityProviders\")}</TabTitleText>}\n {...identityProvidersTab}\n >\n <IdentityProviders />\n </Tab>\n {realmRepresentation?.adminEventsEnabled &&\n hasAccess(\"view-events\") && (\n <Tab\n data-testid=\"admin-events-tab\"\n title={<TabTitleText>{t(\"adminEvents\")}</TabTitleText>}\n {...eventsTab}\n >\n <Tabs\n activeKey={activeEventsTab}\n onSelect={(_, key) => setActiveEventsTab(key as string)}\n >\n <Tab\n eventKey=\"adminEvents\"\n title={<TabTitleText>{t(\"adminEvents\")}</TabTitleText>}\n >\n <AdminEvents resourcePath={`organizations/${id}`} />\n </Tab>\n <Tab\n eventKey=\"membershipEvents\"\n title={<TabTitleText>{t(\"membershipEvents\")}</TabTitleText>}\n >\n <AdminEvents resourcePath={`organizations/${id}/members`} />\n </Tab>\n </Tabs>\n </Tab>\n )}\n </RoutableTabs>\n </FormProvider>\n </PageSection>\n );\n}\n"],"names":["DetailOrganization","adminClient","useAdminClient","addAlert","addError","useAlerts","realm","realmRepresentation","useRealm","id","useParams","t","useTranslation","form","useForm","save","org","organization","convertToOrg","error","useFetch","d","arrayToKeyValue","useTab","tab","useRoutableTab","toEditOrganization","settingsTab","attributesTab","membersTab","identityProvidersTab","eventsTab","hasAccess","useAccess","activeEventsTab","setActiveEventsTab","useState","jsx","PageSection","jsxs","FormProvider","DetailOrganizationHeader","RoutableTabs","Tab","TabTitleText","FormAccess","OrganizationForm","ActionGroup","FormSubmitButton","Button","AttributesForm","Members","IdentityProviders","Tabs","_","key","AdminEvents"],"mappings":"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"}
|