@keycloak/keycloak-admin-ui 26.2.5 → 26.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/.vite/manifest.json +42 -32
- package/lib/AddOAuth2-BdQ5f8j5.js +72 -0
- package/lib/AddOAuth2-BdQ5f8j5.js.map +1 -0
- package/lib/{CreateFlow-CWB0JMn7.js → CreateFlow-QW6oEhyd.js} +6 -6
- package/lib/{CreateFlow-CWB0JMn7.js.map → CreateFlow-QW6oEhyd.js.map} +1 -1
- package/lib/{DetailOrganization-BBgiO-1J.js → DetailOrganization-BA1Z02u1.js} +46 -46
- package/lib/{DetailOrganization-BBgiO-1J.js.map → DetailOrganization-BA1Z02u1.js.map} +1 -1
- package/lib/{ExecutorForm-UDoSS486.js → ExecutorForm-BaJ7yk2s.js} +16 -16
- package/lib/{ExecutorForm-UDoSS486.js.map → ExecutorForm-BaJ7yk2s.js.map} +1 -1
- package/lib/{FlowDetails-CS5k-eyp.js → FlowDetails-DBaoCEnX.js} +20 -17
- package/lib/{FlowDetails-CS5k-eyp.js.map → FlowDetails-DBaoCEnX.js.map} +1 -1
- package/lib/NewOrganization-Dz3NVBFR.js +36 -0
- package/lib/{NewOrganization-Bqe9gAvH.js.map → NewOrganization-Dz3NVBFR.js.map} +1 -1
- package/lib/{PermissionConfigurationDetails-BC-CKsEm.js → PermissionConfigurationDetails-dIiFB9YL.js} +61 -61
- package/lib/{PermissionConfigurationDetails-BC-CKsEm.js.map → PermissionConfigurationDetails-dIiFB9YL.js.map} +1 -1
- package/lib/{PermissionDetails-BgU8fw67.js → PermissionDetails-0JqG_vH7.js} +66 -66
- package/lib/{PermissionDetails-BgU8fw67.js.map → PermissionDetails-0JqG_vH7.js.map} +1 -1
- package/lib/{RealmSection-BcfZPWn1.js → RealmSection-2ac_W3pw.js} +18 -18
- package/lib/{RealmSection-BcfZPWn1.js.map → RealmSection-2ac_W3pw.js.map} +1 -1
- package/lib/{ResourceDetails-BxVNBjFH.js → ResourceDetails-CTjm-Bb1.js} +36 -36
- package/lib/{ResourceDetails-BxVNBjFH.js.map → ResourceDetails-CTjm-Bb1.js.map} +1 -1
- package/lib/{ScopeDetails-B7fOqprY.js → ScopeDetails-BTzWF0ph.js} +12 -12
- package/lib/{ScopeDetails-B7fOqprY.js.map → ScopeDetails-BTzWF0ph.js.map} +1 -1
- package/lib/{ScopePicker-BkvQJ5Lq.js → ScopePicker-BOG72GXl.js} +15 -15
- package/lib/{ScopePicker-BkvQJ5Lq.js.map → ScopePicker-BOG72GXl.js.map} +1 -1
- package/lib/clients/keys/ImportKeyDialog.d.ts +1 -4
- package/lib/clients/keys/SamlImportKeyDialog.d.ts +2 -1
- package/lib/components/key-value-form/KeyValueInput.d.ts +11 -3
- package/lib/components/role-mapping/AddRoleMappingModal.d.ts +11 -1
- package/lib/context/realm-context/useHash.d.ts +1 -0
- package/lib/identity-providers/add/AddOAuth2.d.ts +1 -0
- package/lib/identity-providers/add/AdvancedSettings.d.ts +2 -1
- package/lib/identity-providers/add/DiscoverySettings.d.ts +2 -1
- package/lib/identity-providers/add/ExtendedOAuth2Settings.d.ts +1 -0
- package/lib/identity-providers/add/OAuth2UserProfileClaimsSettings.d.ts +1 -0
- package/lib/identity-providers/add/OpenIdConnectSettings.d.ts +5 -1
- package/lib/identity-providers/routes/IdentityProviderOAuth2.d.ts +2 -0
- package/lib/{index-Cf5P7Xi4.js → index-Dcc2DpAw.js} +22028 -21863
- package/lib/{index-Cf5P7Xi4.js.map → index-Dcc2DpAw.js.map} +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/keycloak-admin-ui.css +1 -1
- package/lib/keycloak-admin-ui.js +39 -39
- package/lib/realm-settings/event-config/EventsTypeTable.d.ts +2 -1
- package/lib/realm-settings/security-defences/Time.d.ts +2 -1
- package/lib/realm-settings/themes/FileNameDialog.d.ts +6 -0
- package/lib/realm-settings/themes/ThemesTab.d.ts +1 -0
- package/lib/realm-settings/themes/UploadJar.d.ts +6 -0
- package/lib/realm-settings/user-profile/attribute/AddTranslationsDialog.d.ts +2 -1
- package/lib/{components/key-value-form → realm-settings/user-profile/attribute}/KeySelect.d.ts +2 -2
- package/lib/realm-settings/user-profile/attribute/TranslatableField.d.ts +2 -1
- package/lib/realm-settings/user-profile/attribute/ValueSelect.d.ts +6 -0
- package/lib/user/user-credentials/CredentialDataDialog.d.ts +2 -1
- package/lib/utils/useIsFeatureEnabled.d.ts +2 -1
- package/package.json +19 -18
- package/lib/NewOrganization-Bqe9gAvH.js +0 -36
- package/lib/components/key-value-form/ValueSelect.d.ts +0 -8
package/lib/.vite/manifest.json
CHANGED
@@ -1,25 +1,26 @@
|
|
1
1
|
{
|
2
|
-
"_ScopePicker-
|
3
|
-
"file": "ScopePicker-
|
2
|
+
"_ScopePicker-BOG72GXl.js": {
|
3
|
+
"file": "ScopePicker-BOG72GXl.js",
|
4
4
|
"name": "ScopePicker",
|
5
5
|
"imports": [
|
6
|
-
"_index-
|
6
|
+
"_index-Dcc2DpAw.js"
|
7
7
|
]
|
8
8
|
},
|
9
|
-
"_index-
|
10
|
-
"file": "index-
|
9
|
+
"_index-Dcc2DpAw.js": {
|
10
|
+
"file": "index-Dcc2DpAw.js",
|
11
11
|
"name": "index",
|
12
12
|
"dynamicImports": [
|
13
|
-
"src/authentication/form/CreateFlow.tsx",
|
14
13
|
"src/authentication/FlowDetails.tsx",
|
14
|
+
"src/authentication/form/CreateFlow.tsx",
|
15
|
+
"src/organizations/DetailOrganization.tsx",
|
15
16
|
"src/clients/authorization/PermissionDetails.tsx",
|
16
17
|
"src/clients/authorization/ResourceDetails.tsx",
|
17
|
-
"src/clients/authorization/ScopeDetails.tsx",
|
18
|
-
"src/clients/authorization/PermissionDetails.tsx",
|
19
18
|
"src/clients/authorization/ResourceDetails.tsx",
|
19
|
+
"src/clients/authorization/PermissionDetails.tsx",
|
20
20
|
"src/clients/authorization/ScopeDetails.tsx",
|
21
|
+
"src/clients/authorization/ScopeDetails.tsx",
|
22
|
+
"src/identity-providers/add/AddOAuth2.tsx",
|
21
23
|
"src/organizations/NewOrganization.tsx",
|
22
|
-
"src/organizations/DetailOrganization.tsx",
|
23
24
|
"src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
|
24
25
|
"src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
|
25
26
|
"src/realm-settings/ExecutorForm.tsx",
|
@@ -28,49 +29,58 @@
|
|
28
29
|
]
|
29
30
|
},
|
30
31
|
"src/authentication/FlowDetails.tsx": {
|
31
|
-
"file": "FlowDetails-
|
32
|
+
"file": "FlowDetails-DBaoCEnX.js",
|
32
33
|
"name": "FlowDetails",
|
33
34
|
"src": "src/authentication/FlowDetails.tsx",
|
34
35
|
"isDynamicEntry": true,
|
35
36
|
"imports": [
|
36
|
-
"_index-
|
37
|
+
"_index-Dcc2DpAw.js"
|
37
38
|
]
|
38
39
|
},
|
39
40
|
"src/authentication/form/CreateFlow.tsx": {
|
40
|
-
"file": "CreateFlow-
|
41
|
+
"file": "CreateFlow-QW6oEhyd.js",
|
41
42
|
"name": "CreateFlow",
|
42
43
|
"src": "src/authentication/form/CreateFlow.tsx",
|
43
44
|
"isDynamicEntry": true,
|
44
45
|
"imports": [
|
45
|
-
"_index-
|
46
|
+
"_index-Dcc2DpAw.js"
|
46
47
|
]
|
47
48
|
},
|
48
49
|
"src/clients/authorization/PermissionDetails.tsx": {
|
49
|
-
"file": "PermissionDetails-
|
50
|
+
"file": "PermissionDetails-0JqG_vH7.js",
|
50
51
|
"name": "PermissionDetails",
|
51
52
|
"src": "src/clients/authorization/PermissionDetails.tsx",
|
52
53
|
"isDynamicEntry": true,
|
53
54
|
"imports": [
|
54
|
-
"_index-
|
55
|
+
"_index-Dcc2DpAw.js"
|
55
56
|
]
|
56
57
|
},
|
57
58
|
"src/clients/authorization/ResourceDetails.tsx": {
|
58
|
-
"file": "ResourceDetails-
|
59
|
+
"file": "ResourceDetails-CTjm-Bb1.js",
|
59
60
|
"name": "ResourceDetails",
|
60
61
|
"src": "src/clients/authorization/ResourceDetails.tsx",
|
61
62
|
"isDynamicEntry": true,
|
62
63
|
"imports": [
|
63
|
-
"_index-
|
64
|
-
"_ScopePicker-
|
64
|
+
"_index-Dcc2DpAw.js",
|
65
|
+
"_ScopePicker-BOG72GXl.js"
|
65
66
|
]
|
66
67
|
},
|
67
68
|
"src/clients/authorization/ScopeDetails.tsx": {
|
68
|
-
"file": "ScopeDetails-
|
69
|
+
"file": "ScopeDetails-BTzWF0ph.js",
|
69
70
|
"name": "ScopeDetails",
|
70
71
|
"src": "src/clients/authorization/ScopeDetails.tsx",
|
71
72
|
"isDynamicEntry": true,
|
72
73
|
"imports": [
|
73
|
-
"_index-
|
74
|
+
"_index-Dcc2DpAw.js"
|
75
|
+
]
|
76
|
+
},
|
77
|
+
"src/identity-providers/add/AddOAuth2.tsx": {
|
78
|
+
"file": "AddOAuth2-BdQ5f8j5.js",
|
79
|
+
"name": "AddOAuth2",
|
80
|
+
"src": "src/identity-providers/add/AddOAuth2.tsx",
|
81
|
+
"isDynamicEntry": true,
|
82
|
+
"imports": [
|
83
|
+
"_index-Dcc2DpAw.js"
|
74
84
|
]
|
75
85
|
},
|
76
86
|
"src/index.ts": {
|
@@ -79,53 +89,53 @@
|
|
79
89
|
"src": "src/index.ts",
|
80
90
|
"isEntry": true,
|
81
91
|
"imports": [
|
82
|
-
"_index-
|
92
|
+
"_index-Dcc2DpAw.js"
|
83
93
|
]
|
84
94
|
},
|
85
95
|
"src/organizations/DetailOrganization.tsx": {
|
86
|
-
"file": "DetailOrganization-
|
96
|
+
"file": "DetailOrganization-BA1Z02u1.js",
|
87
97
|
"name": "DetailOrganization",
|
88
98
|
"src": "src/organizations/DetailOrganization.tsx",
|
89
99
|
"isDynamicEntry": true,
|
90
100
|
"imports": [
|
91
|
-
"_index-
|
101
|
+
"_index-Dcc2DpAw.js"
|
92
102
|
]
|
93
103
|
},
|
94
104
|
"src/organizations/NewOrganization.tsx": {
|
95
|
-
"file": "NewOrganization-
|
105
|
+
"file": "NewOrganization-Dz3NVBFR.js",
|
96
106
|
"name": "NewOrganization",
|
97
107
|
"src": "src/organizations/NewOrganization.tsx",
|
98
108
|
"isDynamicEntry": true,
|
99
109
|
"imports": [
|
100
|
-
"_index-
|
110
|
+
"_index-Dcc2DpAw.js"
|
101
111
|
]
|
102
112
|
},
|
103
113
|
"src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx": {
|
104
|
-
"file": "PermissionConfigurationDetails-
|
114
|
+
"file": "PermissionConfigurationDetails-dIiFB9YL.js",
|
105
115
|
"name": "PermissionConfigurationDetails",
|
106
116
|
"src": "src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
|
107
117
|
"isDynamicEntry": true,
|
108
118
|
"imports": [
|
109
|
-
"_index-
|
110
|
-
"_ScopePicker-
|
119
|
+
"_index-Dcc2DpAw.js",
|
120
|
+
"_ScopePicker-BOG72GXl.js"
|
111
121
|
]
|
112
122
|
},
|
113
123
|
"src/realm-settings/ExecutorForm.tsx": {
|
114
|
-
"file": "ExecutorForm-
|
124
|
+
"file": "ExecutorForm-BaJ7yk2s.js",
|
115
125
|
"name": "ExecutorForm",
|
116
126
|
"src": "src/realm-settings/ExecutorForm.tsx",
|
117
127
|
"isDynamicEntry": true,
|
118
128
|
"imports": [
|
119
|
-
"_index-
|
129
|
+
"_index-Dcc2DpAw.js"
|
120
130
|
]
|
121
131
|
},
|
122
132
|
"src/realm/RealmSection.tsx": {
|
123
|
-
"file": "RealmSection-
|
133
|
+
"file": "RealmSection-2ac_W3pw.js",
|
124
134
|
"name": "RealmSection",
|
125
135
|
"src": "src/realm/RealmSection.tsx",
|
126
136
|
"isDynamicEntry": true,
|
127
137
|
"imports": [
|
128
|
-
"_index-
|
138
|
+
"_index-Dcc2DpAw.js"
|
129
139
|
]
|
130
140
|
},
|
131
141
|
"style.css": {
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import { jsxs as r, Fragment as b, jsx as t } from "react/jsx-runtime";
|
2
|
+
import { u as p, b as f, _ as g, a as I, V as P, P as A, F as C, c as S, bx as O, by as D, bz as F, bA as x, A as V, B as o, bB as B, d as E, bC as j } from "./index-Dcc2DpAw.js";
|
3
|
+
import { useTranslation as k } from "react-i18next";
|
4
|
+
import { useNavigate as w, Link as z } from "react-router-dom";
|
5
|
+
function L() {
|
6
|
+
const { adminClient: d } = p(), { t: a } = k(), c = w(), i = "oauth2", n = f({
|
7
|
+
defaultValues: { alias: i },
|
8
|
+
mode: "onChange"
|
9
|
+
}), {
|
10
|
+
handleSubmit: l,
|
11
|
+
formState: { isDirty: m }
|
12
|
+
} = n, { addAlert: u, addError: v } = g(), { realm: s } = I(), h = async (e) => {
|
13
|
+
delete e.discoveryEndpoint;
|
14
|
+
try {
|
15
|
+
await d.identityProviders.create({
|
16
|
+
...e,
|
17
|
+
providerId: i
|
18
|
+
}), u(a("createIdentityProviderSuccess"), E.success), c(
|
19
|
+
j({
|
20
|
+
realm: s,
|
21
|
+
providerId: i,
|
22
|
+
alias: e.alias,
|
23
|
+
tab: "settings"
|
24
|
+
})
|
25
|
+
);
|
26
|
+
} catch (y) {
|
27
|
+
v("createIdentityProviderError", y);
|
28
|
+
}
|
29
|
+
};
|
30
|
+
return /* @__PURE__ */ r(b, { children: [
|
31
|
+
/* @__PURE__ */ t(P, { titleKey: a("addOAuth2Provider") }),
|
32
|
+
/* @__PURE__ */ t(A, { variant: "light", children: /* @__PURE__ */ t(C, { ...n, children: /* @__PURE__ */ r(
|
33
|
+
S,
|
34
|
+
{
|
35
|
+
role: "manage-identity-providers",
|
36
|
+
isHorizontal: !0,
|
37
|
+
onSubmit: l(h),
|
38
|
+
children: [
|
39
|
+
/* @__PURE__ */ t(O, {}),
|
40
|
+
/* @__PURE__ */ t(D, { isOIDC: !1 }),
|
41
|
+
/* @__PURE__ */ t(F, {}),
|
42
|
+
/* @__PURE__ */ t(x, {}),
|
43
|
+
/* @__PURE__ */ r(V, { children: [
|
44
|
+
/* @__PURE__ */ t(
|
45
|
+
o,
|
46
|
+
{
|
47
|
+
isDisabled: !m,
|
48
|
+
variant: "primary",
|
49
|
+
type: "submit",
|
50
|
+
"data-testid": "createProvider",
|
51
|
+
children: a("add")
|
52
|
+
}
|
53
|
+
),
|
54
|
+
/* @__PURE__ */ t(
|
55
|
+
o,
|
56
|
+
{
|
57
|
+
variant: "link",
|
58
|
+
"data-testid": "cancel",
|
59
|
+
component: (e) => /* @__PURE__ */ t(z, { ...e, to: B({ realm: s }) }),
|
60
|
+
children: a("cancel")
|
61
|
+
}
|
62
|
+
)
|
63
|
+
] })
|
64
|
+
]
|
65
|
+
}
|
66
|
+
) }) })
|
67
|
+
] });
|
68
|
+
}
|
69
|
+
export {
|
70
|
+
L as default
|
71
|
+
};
|
72
|
+
//# sourceMappingURL=AddOAuth2-BdQ5f8j5.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AddOAuth2-BdQ5f8j5.js","sources":["../src/identity-providers/add/AddOAuth2.tsx"],"sourcesContent":["import type IdentityProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation\";\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 { 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 { toIdentityProvider } from \"../routes/IdentityProvider\";\nimport { toIdentityProviders } from \"../routes/IdentityProviders\";\nimport { OIDCAuthentication } from \"./OIDCAuthentication\";\nimport { OIDCGeneralSettings } from \"./OIDCGeneralSettings\";\nimport { OpenIdConnectSettings } from \"./OpenIdConnectSettings\";\nimport { UserProfileClaimsSettings } from \"./OAuth2UserProfileClaimsSettings\";\n\ntype DiscoveryIdentity = IdentityProviderRepresentation & {\n discoveryEndpoint?: string;\n};\n\nexport default function AddOpenIdConnect() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const id = `oauth2`;\n\n const form = useForm<IdentityProviderRepresentation>({\n defaultValues: { alias: id },\n mode: \"onChange\",\n });\n const {\n handleSubmit,\n formState: { isDirty },\n } = form;\n\n const { addAlert, addError } = useAlerts();\n const { realm } = useRealm();\n\n const onSubmit = async (provider: DiscoveryIdentity) => {\n delete provider.discoveryEndpoint;\n try {\n await adminClient.identityProviders.create({\n ...provider,\n providerId: id,\n });\n addAlert(t(\"createIdentityProviderSuccess\"), AlertVariant.success);\n navigate(\n toIdentityProvider({\n realm,\n providerId: id,\n alias: provider.alias!,\n tab: \"settings\",\n }),\n );\n } catch (error) {\n addError(\"createIdentityProviderError\", error);\n }\n };\n\n return (\n <>\n <ViewHeader titleKey={t(\"addOAuth2Provider\")} />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n role=\"manage-identity-providers\"\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n >\n <OIDCGeneralSettings />\n <OpenIdConnectSettings isOIDC={false} />\n <OIDCAuthentication />\n <UserProfileClaimsSettings />\n <ActionGroup>\n <Button\n isDisabled={!isDirty}\n variant=\"primary\"\n type=\"submit\"\n data-testid=\"createProvider\"\n >\n {t(\"add\")}\n </Button>\n <Button\n variant=\"link\"\n data-testid=\"cancel\"\n component={(props) => (\n <Link {...props} to={toIdentityProviders({ realm })} />\n )}\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n </FormAccess>\n </FormProvider>\n </PageSection>\n </>\n );\n}\n"],"names":["AddOpenIdConnect","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","id","form","useForm","handleSubmit","isDirty","addAlert","addError","useAlerts","realm","useRealm","onSubmit","provider","AlertVariant","toIdentityProvider","error","jsxs","Fragment","jsx","ViewHeader","PageSection","FormProvider","FormAccess","OIDCGeneralSettings","OpenIdConnectSettings","OIDCAuthentication","UserProfileClaimsSettings","ActionGroup","Button","props","Link","toIdentityProviders"],"mappings":";;;;AA0BA,SAAwBA,IAAmB;AACzC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACXC,IAAK,UAELC,IAAOC,EAAwC;AAAA,IACnD,eAAe,EAAE,OAAOF,EAAA;AAAA,IACxB,MAAM;AAAA,EAAA,CACP,GACK;AAAA,IACJ,cAAAG;AAAA,IACA,WAAW,EAAE,SAAAC,EAAA;AAAA,EAAQ,IACnBH,GAEE,EAAE,UAAAI,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,EAAE,OAAAC,EAAA,IAAUC,EAAA,GAEZC,IAAW,OAAOC,MAAgC;AACtD,WAAOA,EAAS;AAChB,QAAI;AACF,YAAMjB,EAAY,kBAAkB,OAAO;AAAA,QACzC,GAAGiB;AAAA,QACH,YAAYX;AAAA,MAAA,CACb,GACDK,EAAST,EAAE,+BAA+B,GAAGgB,EAAa,OAAO,GACjEd;AAAA,QACEe,EAAmB;AAAA,UACjB,OAAAL;AAAA,UACA,YAAYR;AAAA,UACZ,OAAOW,EAAS;AAAA,UAChB,KAAK;AAAA,QAAA,CACN;AAAA,MAAA;AAAA,IACH,SACOG,GAAO;AACd,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAAA;AAAA,EAC/C;AAGF,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAW,UAAUtB,EAAE,mBAAmB,EAAA,CAAG;AAAA,sBAC7CuB,GAAA,EAAY,SAAQ,SACnB,UAAA,gBAAAF,EAACG,GAAA,EAAc,GAAGnB,GAChB,UAAA,gBAAAc;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY;AAAA,QACZ,UAAUlB,EAAaO,CAAQ;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAO,EAACK,GAAA,EAAoB;AAAA,UACrB,gBAAAL,EAACM,GAAA,EAAsB,QAAQ,GAAA,CAAO;AAAA,4BACrCC,GAAA,EAAmB;AAAA,4BACnBC,GAAA,EAA0B;AAAA,4BAC1BC,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAT;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,YAAY,CAACvB;AAAA,gBACb,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,eAAY;AAAA,gBAEX,YAAE,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAAa;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,eAAY;AAAA,gBACZ,WAAW,CAACC,MACV,gBAAAX,EAACY,GAAA,EAAM,GAAGD,GAAO,IAAIE,EAAoB,EAAE,OAAAtB,EAAA,CAAO,EAAA,CAAG;AAAA,gBAGtD,YAAE,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACb,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEJ,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { jsxs as r, Fragment as w, jsx as t } from "react/jsx-runtime";
|
2
|
-
import { u as h, a as F,
|
2
|
+
import { u as h, a as F, _ as b, b as v, V as y, P as g, F as S, c as A, N as C, $ as I, A as T, e as H, B as N, t as P, d as i, f as V } from "./index-Dcc2DpAw.js";
|
3
3
|
import { useTranslation as k } from "react-i18next";
|
4
4
|
import { useNavigate as x, Link as B } from "react-router-dom";
|
5
5
|
const c = ["basic-flow", "client-flow"];
|
@@ -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
|
+
V({
|
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
|
+
H,
|
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
|
+
N,
|
64
64
|
{
|
65
65
|
"data-testid": "cancel",
|
66
66
|
variant: "link",
|
67
|
-
component: (a) => /* @__PURE__ */ t(B, { ...a, to:
|
67
|
+
component: (a) => /* @__PURE__ */ t(B, { ...a, to: P({ 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-QW6oEhyd.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CreateFlow-
|
1
|
+
{"version":3,"file":"CreateFlow-QW6oEhyd.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;AACnC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACX,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,UAAAC,EAAA,IAAaC,EAAA,GACfC,IAAOC,EAAA,GACP,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcH;AA0BpC,SACE,gBAAAI,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAW,UAAS,cAAa,QAAO,gCAA+B;AAAA,sBACvEC,GAAA,EAAY,SAAQ,SACnB,UAAA,gBAAAF,EAACG,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,GAAA;AAExD,cAAI;AACF,kBAAM,EAAE,IAAAE,EAAA,IACN,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,cAAA,CACT;AAAA,YAAA;AAAA,UACH,SACOG,GAAY;AACnB,YAAAlB;AAAA,cACEN,EAAE,mBAAmB;AAAA,gBACnB,OAAOwB,EAAM,UAAU,MAAM,gBAAgBA;AAAA,cAAA,CAC9C;AAAA,cACDF,EAAa;AAAA,YAAA;AAAA,UACf;AAAA,QACF,CAWuC;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAR,EAACW,GAAA,EAAgB;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,EAAA;AAAA,cACnC,SAASA,EAAM,IAAI,CAAC+B,OAAU;AAAA,gBAC5B,KAAKA;AAAA,gBACL,OAAO3B,EAAE,uBAAuB2B,CAAI,EAAE;AAAA,cAAA,EACtC;AAAA,YAAA;AAAA,UAAA;AAAA,4BAEHC,GAAA,EACC,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,YAAA;AAAA,YAEb,gBAAAG;AAAA,cAACgB;AAAA,cAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,SAAQ;AAAA,gBACR,WAAW,CAACC,MACV,gBAAAjB,EAACkB,GAAA,EAAM,GAAGD,GAAO,IAAIE,EAAiB,EAAE,OAAA7B,EAAA,CAAO,EAAA,CAAG;AAAA,gBAGnD,YAAE,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACb,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEJ,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
@@ -1,77 +1,77 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { u as O,
|
3
|
-
import { useTranslation as
|
4
|
-
import { useState as
|
5
|
-
function
|
6
|
-
const { adminClient: b } = O(), { addAlert: v, addError: h } = F(), { realm: T, realmRepresentation: g } = x(), { id: o } = K(), { t
|
1
|
+
import { jsx as e, jsxs as c } from "react/jsx-runtime";
|
2
|
+
import { u as O, _ as F, a as x, ao as K, b as R, y as w, aG as B, aH as C, ap as H, P as m, F as I, aI as V, aJ as _, aK as n, c as j, aL as k, A as D, e as G, B as M, aM as r, aN as N, aO as $, aP as J, aQ as L, aR as u, aS as Q, aT as q } from "./index-Dcc2DpAw.js";
|
3
|
+
import { useTranslation as U } from "react-i18next";
|
4
|
+
import { useState as W } from "react";
|
5
|
+
function te() {
|
6
|
+
const { adminClient: b } = O(), { addAlert: v, addError: h } = F(), { realm: T, realmRepresentation: g } = x(), { id: o } = K(), { t } = U(), a = R(), l = async (s) => {
|
7
7
|
try {
|
8
|
-
const i =
|
9
|
-
await b.organizations.updateById({ id: o }, i), v(
|
8
|
+
const i = Q(s);
|
9
|
+
await b.organizations.updateById({ id: o }, i), v(t("organizationSaveSuccess"));
|
10
10
|
} catch (i) {
|
11
11
|
h("organizationSaveError", i);
|
12
12
|
}
|
13
13
|
};
|
14
|
-
|
14
|
+
w(
|
15
15
|
() => b.organizations.findOne({ id: o }),
|
16
16
|
(s) => {
|
17
17
|
if (!s)
|
18
|
-
throw new Error(
|
18
|
+
throw new Error(t("notFound"));
|
19
19
|
a.reset({
|
20
20
|
...s,
|
21
21
|
domains: s.domains?.map((i) => i.name),
|
22
|
-
attributes:
|
22
|
+
attributes: B(s.attributes)
|
23
23
|
});
|
24
24
|
},
|
25
25
|
[o]
|
26
26
|
);
|
27
|
-
const d = (s) =>
|
28
|
-
|
27
|
+
const d = (s) => C(
|
28
|
+
q({
|
29
29
|
realm: T,
|
30
30
|
id: o,
|
31
31
|
tab: s
|
32
32
|
})
|
33
|
-
), y = d("settings"), E = d("attributes"), p = d("members"), z = d("identityProviders"), P = d("events"), { hasAccess: f } =
|
34
|
-
return /* @__PURE__ */
|
35
|
-
/* @__PURE__ */
|
33
|
+
), y = d("settings"), E = d("attributes"), p = d("members"), z = d("identityProviders"), P = d("events"), { hasAccess: f } = H(), [S, A] = W("adminEvents");
|
34
|
+
return /* @__PURE__ */ e(m, { variant: "light", className: "pf-v5-u-p-0", children: /* @__PURE__ */ c(I, { ...a, children: [
|
35
|
+
/* @__PURE__ */ e(V, { save: () => l(a.getValues()) }),
|
36
36
|
/* @__PURE__ */ c(
|
37
|
-
|
37
|
+
_,
|
38
38
|
{
|
39
39
|
"data-testid": "organization-tabs",
|
40
|
-
"aria-label":
|
40
|
+
"aria-label": t("organization"),
|
41
41
|
isBox: !0,
|
42
42
|
mountOnEnter: !0,
|
43
43
|
children: [
|
44
|
-
/* @__PURE__ */
|
44
|
+
/* @__PURE__ */ e(
|
45
45
|
n,
|
46
46
|
{
|
47
47
|
id: "settings",
|
48
48
|
"data-testid": "settingsTab",
|
49
|
-
title: /* @__PURE__ */
|
49
|
+
title: /* @__PURE__ */ e(r, { children: t("settings") }),
|
50
50
|
...y,
|
51
|
-
children: /* @__PURE__ */
|
51
|
+
children: /* @__PURE__ */ e(m, { children: /* @__PURE__ */ c(
|
52
52
|
j,
|
53
53
|
{
|
54
54
|
role: "anyone",
|
55
55
|
onSubmit: a.handleSubmit(l),
|
56
56
|
isHorizontal: !0,
|
57
57
|
children: [
|
58
|
-
/* @__PURE__ */
|
58
|
+
/* @__PURE__ */ e(k, { readOnly: !0 }),
|
59
59
|
/* @__PURE__ */ c(D, { children: [
|
60
|
-
/* @__PURE__ */
|
60
|
+
/* @__PURE__ */ e(
|
61
61
|
G,
|
62
62
|
{
|
63
63
|
formState: a.formState,
|
64
64
|
"data-testid": "save",
|
65
|
-
children:
|
65
|
+
children: t("save")
|
66
66
|
}
|
67
67
|
),
|
68
|
-
/* @__PURE__ */
|
68
|
+
/* @__PURE__ */ e(
|
69
69
|
M,
|
70
70
|
{
|
71
71
|
onClick: () => a.reset(),
|
72
72
|
"data-testid": "reset",
|
73
73
|
variant: "link",
|
74
|
-
children:
|
74
|
+
children: t("reset")
|
75
75
|
}
|
76
76
|
)
|
77
77
|
] })
|
@@ -80,14 +80,14 @@ function et() {
|
|
80
80
|
) })
|
81
81
|
}
|
82
82
|
),
|
83
|
-
/* @__PURE__ */
|
83
|
+
/* @__PURE__ */ e(
|
84
84
|
n,
|
85
85
|
{
|
86
86
|
id: "attributes",
|
87
87
|
"data-testid": "attributeTab",
|
88
|
-
title: /* @__PURE__ */
|
88
|
+
title: /* @__PURE__ */ e(r, { children: t("attributes") }),
|
89
89
|
...E,
|
90
|
-
children: /* @__PURE__ */
|
90
|
+
children: /* @__PURE__ */ e(m, { variant: "light", children: /* @__PURE__ */ e(
|
91
91
|
N,
|
92
92
|
{
|
93
93
|
form: a,
|
@@ -100,52 +100,52 @@ function et() {
|
|
100
100
|
) })
|
101
101
|
}
|
102
102
|
),
|
103
|
-
/* @__PURE__ */
|
103
|
+
/* @__PURE__ */ e(
|
104
104
|
n,
|
105
105
|
{
|
106
106
|
id: "members",
|
107
107
|
"data-testid": "membersTab",
|
108
|
-
title: /* @__PURE__ */
|
108
|
+
title: /* @__PURE__ */ e(r, { children: t("members") }),
|
109
109
|
...p,
|
110
|
-
children: /* @__PURE__ */
|
110
|
+
children: /* @__PURE__ */ e($, {})
|
111
111
|
}
|
112
112
|
),
|
113
|
-
/* @__PURE__ */
|
113
|
+
/* @__PURE__ */ e(
|
114
114
|
n,
|
115
115
|
{
|
116
116
|
id: "identityProviders",
|
117
117
|
"data-testid": "identityProvidersTab",
|
118
|
-
title: /* @__PURE__ */
|
118
|
+
title: /* @__PURE__ */ e(r, { children: t("identityProviders") }),
|
119
119
|
...z,
|
120
|
-
children: /* @__PURE__ */
|
120
|
+
children: /* @__PURE__ */ e(J, {})
|
121
121
|
}
|
122
122
|
),
|
123
|
-
g?.adminEventsEnabled && f("view-events") && /* @__PURE__ */
|
123
|
+
g?.adminEventsEnabled && f("view-events") && /* @__PURE__ */ e(
|
124
124
|
n,
|
125
125
|
{
|
126
126
|
"data-testid": "admin-events-tab",
|
127
|
-
title: /* @__PURE__ */
|
127
|
+
title: /* @__PURE__ */ e(r, { children: t("adminEvents") }),
|
128
128
|
...P,
|
129
129
|
children: /* @__PURE__ */ c(
|
130
|
-
|
130
|
+
L,
|
131
131
|
{
|
132
132
|
activeKey: S,
|
133
133
|
onSelect: (s, i) => A(i),
|
134
134
|
children: [
|
135
|
-
/* @__PURE__ */
|
135
|
+
/* @__PURE__ */ e(
|
136
136
|
n,
|
137
137
|
{
|
138
138
|
eventKey: "adminEvents",
|
139
|
-
title: /* @__PURE__ */
|
140
|
-
children: /* @__PURE__ */
|
139
|
+
title: /* @__PURE__ */ e(r, { children: t("adminEvents") }),
|
140
|
+
children: /* @__PURE__ */ e(u, { resourcePath: `organizations/${o}` })
|
141
141
|
}
|
142
142
|
),
|
143
|
-
/* @__PURE__ */
|
143
|
+
/* @__PURE__ */ e(
|
144
144
|
n,
|
145
145
|
{
|
146
146
|
eventKey: "membershipEvents",
|
147
|
-
title: /* @__PURE__ */
|
148
|
-
children: /* @__PURE__ */
|
147
|
+
title: /* @__PURE__ */ e(r, { children: t("membershipEvents") }),
|
148
|
+
children: /* @__PURE__ */ e(u, { resourcePath: `organizations/${o}/members` })
|
149
149
|
}
|
150
150
|
)
|
151
151
|
]
|
@@ -159,6 +159,6 @@ function et() {
|
|
159
159
|
] }) });
|
160
160
|
}
|
161
161
|
export {
|
162
|
-
|
162
|
+
te as default
|
163
163
|
};
|
164
|
-
//# sourceMappingURL=DetailOrganization-
|
164
|
+
//# sourceMappingURL=DetailOrganization-BA1Z02u1.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DetailOrganization-BBgiO-1J.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-BA1Z02u1.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","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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"}
|